一、
设计任务 循环点亮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 END
3、 编译程序 4、电路仿真 三、 思考题
1、 计算每盏灯亮的时间。如果想加快或者降低流水灯的循环速度,如:显示速度加快一倍
或者降低一倍,应该怎样修改程序?
答:机器周期=12*振荡周期=12*(1/12MHz)=1us 需要1+ { [1+(1+2)*255] + 2 }*255 +2个机器周期 所以,需要195843个机器周期= 195843 us=0. 195843 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,DEL2
DJNZ R5,DEL3
RET
2、 元件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、单步运行时,观察当前各个寄存器的值,不要书面作答。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务