流水灯程序
一、实验目的
1. 学习PI口的使用方法;
2. 学习延时子程序的编写。
二、实验内容
分别采用ISP下载和仿真器在线仿真两种方式调试运行程序,编写流水灯程序(采用软件定时每隔0.5秒左右依次点亮八个LED)。
ISP下载:第一步 接串口线,USB转串口供电线。执行XLISP。JP17编程ISP实验时为弹起状态! 下载跑马灯HEX程序, 用一条8PIN排线一端插入CPU 部份的 P1 口(JP44) 另外一端插入八路指示灯部份的JP32,我们就看到P1口的8个发光管轮流闪烁。
仿真器在线仿真:接USB转串口供电线到仿真器,把仿真电缆(带仿真头)接到仿真器再插入CPU座。JP17仿真时为按下状态。
运行Keil UV2软件,编写程序,编译生成HEX文件,进入Debug调试模式,全速或单步执行。用一条8PIN排线, 一端插入CPU 部份的 P1 口(JP44) 另外一端插入八路指示灯部份的JP32,可以看到P1口的8个发光管轮流闪烁。
仿真器在线仿真,不能够同时运行其他可能占用串口资源的软件例如XLISP下载软件。
三、实验程序
org 0000h ;开始
ajmp loop
org 0080h ;到0080h 处避开00-30 的敏感地址
loop:
mov p1,#0ffh;关闭所有灯
clr p1.0 ;点亮灯p1.0
lcall delay ;延时一段时间?
clr p1.1 ;点亮灯p1.1
lcall delay
clr p1.2 ;点亮灯p1.2
lcall delay
clr p1.3 ;点亮灯p1.3
lcall delay
clr p1.4 ;点亮灯p1.4
lcall delay
clr p1.5 ;点亮灯p1.5
lcall delay
clr p1.6 ;点亮灯p1.6
lcall delay
clr p1.7 ;点亮灯p1.7
lcall delay
AJMP LOOP;到最开始loop 处重新运行
delay: mov r5,#20 ;延时。
d1: mov r6,#40
d2: mov r7,#248
djnz r7,$
djnz r6,d2
djnz r5,d1
ret
end
四、实验现象与结论
实验现象:可以观察到P1口的8个发光管轮流闪烁。
心得体会:通过本次的实验,熟悉了keil仿真软件、proteus仿真软件的使用。了解并熟悉了单片机I/O口和LED灯的电路结构。掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。
因篇幅问题不能全部显示,请点此查看更多更全内容