1、单片机原理与系统设计实验指导书实验2 单片机控制LED灯点亮一、实验目的1、熟悉实验板的电路结构。2、完成简单的功能,并掌握程序调试的方法。二、实验准备1. 实验电路连接实验板LED电路图2. 实验中常见问题:l 区别中英文字符,区别字母O和数字0l 注意关键字的拼写 include、void、mainl SFR寄存器需要大写三、实验内容一、基础实验(一)、点亮1个LED分别用汇编和C语言编程,对比2种语言的相同和不同1. 用汇编语言编写ORG 0000HLJMP MAINORG 0030HMAIN:CLR P1.0CLR P1.1;可随意指定一个输出口作为驱动,点亮LED灯END2. 用C语
2、言编写#include /包含头文件,一般情况不需要改动, /头文件包含特殊功能寄存器的定义sbit P1_0=P10;/ 用sbit 关键字 定义 LED到P1.0端口, /LED是自己任意定义且容易记忆的符号/*-主函数-*/void main (void) P1_0=0; /将P1.0口赋值 0,对外输出低电平(二)、1个LED闪烁分别用汇编和C语言编程,对比2种语言的相同和不同问题:若想改变闪烁的频率,应该修改程序的哪部分?1. 用汇编语言编写ORG 0000HLJMP MAINORG 0030HMAIN:CLR P1.0;点亮LED灯CLR P1.1LCALL DELAYSETB P
3、1.0;熄灭LED灯SETB P1.1LCALL DELAYLJMP MAINDELAY:MOV R6,#125;延时50ms子程序LOOP2:MOV R7,#200LOOP1:DJNZ R7,LOOP1DJNZ R6,LOOP2RETEND2. 用C语言编写#include reg51.hsbit P1_0=P10;/延时50ms子程序void delay50ms()unsigned char i,j;for (i=125;i0;i-)for(j=200;j0;j-)/主程序段void main()while(1)/重复循环执行,实现闪烁 P1_0=0; delay50ms(); P1_0=1; delay50ms(); 思考:l 对比2中语言编写的延时子程序的相同和不同二、提高实验(一)、自己修改例程,试着实现:点亮左边4个LED(二)、自己修改例程,试着实现:右边4个LED闪烁