89C51单片机P1低四位于高四位分别通过BCD码—LED段码转换芯片连接梁文7段LED显示器,低四位所连的LED显示器用做个位显示,高四位所连的LED显示器用做十位显示。P0口直接连接8个发光二极管。通过设计硬件电路和程序设计完成如下功能:
1. 当主程序正常执行时,P0口所接的8个LED将实现单灯左移显示方式。
2. 通过定时器0实现60秒的定时功能。即时间每过一秒,两位LED显示器的显示数字加
加1,当加到现实数据位59时,在经过一秒钟的时间,则显示数字归零,然后从零开始下一个60秒的时间显示
一秒定时的程序我就不写了,况且你也没给出晶振的频率。我就写定时中断的响应程序吧。
程序初始化时:
mov r0,#1
mov r1,#0
....
time1s:
;这里你自己写恢复定时器系数的指令
;。。。
mov a,r0
srl a
mov r0,a
mov p0,a
mov a,#1
add a,r1
daa
mov r1,a
mov p1,a
reti
如果我没记错,发光二极管直接连接p0口是不会亮的,P0口是三态接口,平时是处于高阻态,只适合于做输入,只有访问外部程序或者数据存储器的时候才会在指令时序中短暂呈现输出状态。
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息