资源描述:
《8位led电子时钟设计设计的源程序清单》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、4程序源代码本设计的汇编、C语言原程序清单如下:(1)汇编程序汇编语言源程序清单为:ORG0000HLJMPSTARTORG000BH;定时/计数器T0中断程序入口LJMPINTT0;主程序START:MOVR0,#70H;70H~77H单元为LED数码管的显示缓冲区MOVR7,#0CH;78H,79H,7AH分别为秒、分、小时计数单元;7BH为50ms计数器,7CH为调时按键计数器INIT:MOV@R0,#00HINCR0DJNZR7,INIT;70H-7CH全部清0MOVTMOD,#01H;T0工作在方式1MOVTL0,#0B0H;T0定时50msMOVTH0,#3CHSET
2、BEASETBET0SETBTR0START1:LCALLSCAN;调用显示子程序LCALLKEYSCAN;调用键盘子程序SJMPSTART1;延时1ms子程序DL1MS:MOVR6,#14H;1µsDL1:MOVR7,#19H;1µsDL2:DJNZR7,DL2;25次×2µs=50µsDJNZR6,DL1;2µsRET;2µs1µs+(25次×2µs+3µs)×20次+2µs=1063µs=1.063ms≈1ms;延时20ms子程序DL20MS:ACALLSCANACALLSCANACALLSCANRET;数码管显示程序SCAN:MOVA,78H;秒MOVB,#0AHDIVA
3、B;A-商,B-余数MOV71H,A;秒十位MOV70H,B;秒个位MOVA,79H;分MOVB,#0AHDIVABMOV74H,AMOV73H,BMOVA,7AH;时MOVB,#0AHDIVABMOV77H,AMOV76H,BMOVR1,#70H;循环扫描8位显示MOVR5,#0FEH;位选码初值MOVR6,#08H;8位显示SCAN1:MOVA,R5MOVP2,AMOVA,@R1MOVDPTR,#TABMOVCA,@A+DPTR;远程查表MOVP0,A;段选码MOVA,R5LCALLDL1MSINCR1MOVA,R5RRAMOVR5,ADJNZR6,SCANMOVP2,#0F
4、FHMOVP0,#0FFHRETTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH;“0~9”,“-”的七段共阳极字段码;定时器/计数器T0中断服务程序INTT0:PUSHACC;现场保护PUSHPSWCLRET0CLRTR0MOVTL0,#0B0H;T0定时50msMOVTH0,#3CHSETBTR0INC7BH;50ms定时到记数MOVA,7BHCJNEA,#14H,OUTT0;计20次(即1s)MOV7BH,#00INC78H;秒加1MOVA,78HCJNEA,#3CH,OUTT0;计60sMOV78H,#00IN
5、C79H;分加1MOVA,79HCJNEA,#3CH,OUTT0;不等跳,计60分MOV79H,#00INC7AH;时加1MOVA,7AHCJNEA,#18H,OUTT0;计24时MOV7AH,#00OUTT0:SETBET0RETI;按键处理程序KEYSCAN:CLREAJNBP1.0,KEYSCAN0;为0跳JNBP1.1,KEYSCAN1JNBP1.2,KEYSCAN2KEYOUT:SETBEARETKEYSCAN0:LCALLDL20MS;K0去抖JBP1.0,KEYOUT;为1跳WAIT0:JNBP1.0,WAIT0;P1.0=0跳INC7CH;K0松开后7CH加1CL
6、RET0CLRTR0CJNEA,#03H,KEYOUT;不等跳;K0按1下或2下返回,按3下7CH清0,不能调秒MOV7CH,#00SETBET0SETBTR0SJMPKEYOUTKEYSCAN1:LCALLDL20MS;K1键去抖JBP1.1,KEYOUTWAIT1:JNBP1.1,WAIT1;P1.1=0跳,等待松开K1MOVA,7CHCJNEA,#02H,KSCAN11;不等跳,K0按2下,调整分INC79H;分加1MOVA,79HCJNEA,#3CH,KEYOUT;为60分吗?MOV79H,#00SJMPKEYOUTKSCAN11:INC7AH;时加1MOVA,7AHCJ
7、NEA,#18H,KEYOUT;为24时吗?MOV7AH,#00SJMPKEYOUT;按1下调时,按2下调分KEYSCAN2:LCALLDL20MS;K2去抖JBP1.2,KEYOUT;P1.2=1跳WAIT2:JNBP1.2,WAIT2;松开K2MOVA,7CHCJNEA,#02H,KSCAN21;K2按2下吗?按2下调整分DEC79H;分减1MOVA,79HCJNEA,#0FFH,KEYOUTMOV79H,#3BH;计59分SJMPKEYOUTKSCAN21:DEC7AH;时