求编程~流水灯与数码管倒计时
时间:10-02
整理:3721RD
点击:
新人不懂求教~
按下第一个独立按键,led全亮
按下第二个,流水灯,循环右移
同时数码管60s倒计时
52单片机
按下第一个独立按键,led全亮
按下第二个,流水灯,循环右移
同时数码管60s倒计时
52单片机




很简单,用汇编语言即可实现。
按键采用外部中断。
第一步,在外部中断ext0中执行mov p1,0x00h
第二步,外部中断ext1启动内部定时器,开始60秒倒计时,倒计时数据保存在内存中,同时在定时器中完成流水灯(根据流水灯移动的快慢要求选择程序语句在定时器中断中的位置),循环右移;还利用定时器还用来产生位码扫描显示定时信号。
在主程序中根据扫描显示定时信号(为减小扫描闪动,定时周期应该小于20ms)将倒计时数据转换为两位十进制数据,用查表法在转换为两个数码管的字段码,交替输出倒计时的十位和个位的段码和位码信号(注意段码与位码的对应关系)。
R11、R13、R16、R17应移至集电极中,且阻值太大了,应该用几百欧的。为减少其对亮度的影响,建议取消,同时在各段码(P0口)中串入330-680欧的电阻。R10、R12、R14、R15阻值偏大,应选用1k左右的电阻。
我用的是c语言 0-0
c语言我不太懂。不过程序构架差不多。有一个语句写错了,应该mov p1,#0x00h。
谢谢啦~~~~
