
单片机实验01流水灯.doc
2页实验一 流水灯一、 设计任务循环点亮8盏灯二、 设计步骤1、 电路设计2、 程序设计ORG 0000H START: MOV R2,#08H MOV A,#0FEH ;FEH=1111 1110亮一盏灯 NEXT: MOV P1,A ACALL DELAY ;延时 RL A ;左移,亮下一盏灯 DJNZ R2,NEXT ;减1不等于0(8盏灯没亮完),转移到NEXT SJMP START DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END3、 编译程序 4、电路仿真三、 思考题1、 计算每盏灯亮的时间如果想加快或者降低流水灯的循环速度,如:显示速度加快一倍或者降低一倍,应该怎样修改程序?答:机器周期=12*振荡周期=12*(1/12MHz)=1us需要1+ { [1+(1+2)*255] + 2 }*255 +2个机器周期所以,需要个机器周期= us=0. s显示速度加快一倍方法:将DEL2: MOV R4,#0FFH修改为DEL2: MOV R4,#7FH(将原来的#0FFH减少一半)显示速度降低一倍方法(修改延时程序):DELAY: MOV R3,#0FFH DEL3: MOV R5,#02H DEL2: MOV R4,#0FFH DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2DJNZ R5,DEL3 RET2、 元件AT89C51、RES、CAP、CAP-ELEC、CRYSTAL、BUTTON、LED-YELLOW分别在哪个元件库中获取?答:元件AT89C51从MCS8051元件库中获取 元件RES、CAP、CAP-ELEC、CRYSTAL 从DEVICE元件库中获取 元件BUTTON、LED-YELLOW从ACTIVE元件库中获取3、如果将8个LED反向,阴极端全部接地,应该怎样修改电路和程序?将修改后项目以01-1文件名保存。
答:将MOV A,#0FEH改为MOV A,#01H 电路修改见01-1文件夹4、观察全速运行、单步运行和跟踪运行的区别,不要书面作答5、单步运行时,观察当前各个寄存器的值,不要书面作答。