汇编数字钟 (8 位数码管显示) 这款数字钟是笔者亲自试验过的作品,电路图和程序都经过优化,供爱好者制作参考。 显示格式依然是23-59-59(同样是小时十位如果为 0 则不显示),调整时间增加了一只按钮,通过调整选择键 SET_KEY 选择调整位,选中位开始闪烁,此时再按增加键ADD_KEY 或减少键 DEC_KEY 调整选中位,如果长按 ADD_KEY 或 DEC_KEY,系统识别后则进行调时快进,此时停止闪烁,方便人眼观察。同时还增加了调秒功能:如果选中位是秒,则按增加键或减少键都是将秒清零。 汇编程序设计: /************************************************************** 程序名称:51 单片机 8 位数码管数字钟汇编程序 简要说明:实现 24 小时制电子钟,8 位数码管显示,显示时分秒 显示格式:23-59-59(小时十位如果为 0 则不显示) 通过3 只按键来调整时间 调整选择键 SET_KEY:P1.0;通过选择键选择调整位,选中位闪烁 增加键 ADD_KEY:P1.1;按一次使选中位加 1 减少键DEC_KEY;P1.2;按一次使选中位减1 如果长按ADD_KEY 或DEC_KEY,识别后则进行调时快进,此时停止闪烁 如果选中位是秒,则按增加键或减少键都是将秒清零 P0 口输出数码管段选信号,P2 口输出数码管位选信号。晶振12M 编 写:JiangX.net 最后更新:08/12/31 晚 **************************************************************/ ORG 0000H ;程序入口地址 LJMP START ORG 000BH ;定时器0 中断入口地址 LJMP TIMER_0 ORG 0300H /*****程序开始,初始化*****/ START: SETB 48H ;使用一个bit位用于调时闪烁标志 SETB 47H ;使用一个bit位用于产生脉冲用于调时快进时基 MOV R1,#0 ;调整选择键功能标志:0 正常走时、1 调时、2 调分、3 调秒 MOV 20H,#00H ;用于控制秒基准时钟源的产生 MOV 21H,#00H ;清零秒寄存器 MOV 22H,#00H ;清零分寄存器 MOV 23H,#00H ;清零时寄存器 MOV 24H,#00H ;用于控制调时闪烁的基准时钟的产生 MOV IP,#02H ;IP,IE 初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器0 工作方式 1 MOV TH0,#3CH MOV TL0,#0B0H ;赋定时初值,定时50ms SETB TR0 ;启动定时器0 MOV SP,#40H ;重设堆栈指针 /*****主程序*****/ MAIN: LCALL DISPLAY ;调用显示子程序 LCALL KEY_SCAN ;调用按键检测子程序 JZ MAIN ;无键按下则返回重新循环 LCALL SET_KEY ;...