×
单片机 > 单片机程序设计 > 详情

单片机数字电子时钟系统

发布时间:2020-08-21 发布时间:
|

单片机系统的开发。其实,这个时钟系统花了我一个礼拜的时间。从刚开始的显示模块,到键盘模块,我都一步一步

实现。当然,这其中,也遇到了很多困难,麻烦!刚开始,数码管部分一点不显示,键盘也没用,很烦人,很恼火。

但是,我还是把程序调试出来了,并且在硬件上运行达到效果。本以为这几部分实现了后,联合在一块,偶的时钟系统就OK 了。然而,我错了,一个模块运行成功并不意味着模块组成的系统就能按照预想的一样达到目的,实现功能!当我将几个模块结合在一块时候,问题有接踵而至!哎呀!烦人啊!我只能重新设计方案,重新检查,重新写程序,源代码写了

一遍又一遍,程序调了又调,程序一遍又一遍地下载到单片机中运行,观察现象,分析出错原因,找出解决办法!最终,

在我的不断努力下,我的单片机数字电子时钟系统成功的实现了所有的功能,达到了预期的效果!!先把我写了好多遍,

调试了好多遍的源代码上传,来和大家一起分享一下!!


     ORG  0000H
     SJMP START
     ORG  0003H
     LJMP INTT0
     ORG  000BH
     LJMP TIME0
     ORG  001BH
     LJMP TIME1
     ORG  0045H
      START:MOV SP,#60H
            SETB EA
     SETB ET0
     SETB ET1
     MOV TMOD,#11H
     MOV TL0,#0B0H
     MOV TH0,#3CH
     MOV TL1,#80H
     MOV TH1,#0C1H
     SETB EX0
     CLR IT0
     SETB PX0
     MOV R0,#20
     MOV 40H,#0
     MOV 41H,#0
     MOV 42H,#0
     MOV 30H,#0
     MOV 31H,#0
     MOV 32H,#0
     MOV 33H,#0
     MOV 34H,#0
     MOV 35H,#0
     MOV P2,#0FFH
     SETB TR0
     SETB TR1
     SJMP $
      INTT0:CLR TR0
            CLR TR1
            PUSH ACC
     PUSH PSW
     LCALL DISP
     MOV P1,#0FFH
       KEY1:JNB P1.0,ST
            LCALL DISP
            JNB P1.1,MT
     LCALL DISP
     JNB P1.2,HT
     LCALL DISP
     JNB P1.3,COMN
     LCALL DISP
     SJMP KEY1
       COMN:LCALL CONT
  ST:LCALL DELAY2
     JB P1.0,KEY1
     JNB P1.0,$
     INC 40H
     MOV A,40H
     MOV B,#10
     DIV AB
     MOV 31H,A
     MOV A,B
     MOV 30H,A
     LCALL DISP
     MOV A,40H
     CJNE A,#60,KEY1
     MOV 30H,#0
     MOV 31H,#0
     MOV 40H,#0
     LJMP KEY1
         MT:LCALL DELAY2
     JB P1.1,KEY1
     JNB P1.1,$
     INC 41H
     MOV A,41H
     MOV B,#10
     DIV AB
     MOV 33H,A
     MOV A,B
     MOV 32H,A
     LCALL DISP
     MOV A,41H
     CJNE A,#60,KEY1
     MOV 32H,#0
     MOV 33H,#0
     MOV 41H,#0
     LJMP KEY1
         HT:LCALL DELAY2
     JB P1.2,KEY1
     JNB P1.2,$
     INC 42H
     MOV A,42H
     MOV B,#10
     DIV AB
     MOV 35H,A
     MOV A,B
     MOV 34H,A
     LCALL DISP
     MOV A,42H
     CJNE A,#24,KEYPRESS
     MOV 34H,#0
     MOV 35H,#0
                   MOV 42H,#0
     LJMP KEY1
          KEYPRESS:LCALL KEY1
       CONT:LCALL DELAY2
            JB P1.3,KEYPRESS
     JNB P1.3,$
     SETB TR0
     SETB TR1
     POP PSW
     POP ACC
     RETI
      TIME0:PUSH ACC
            PUSH PSW
     MOV TL0,#0B0H
     MOV TH0,#3CH
     DJNZ R0,BACK
     MOV R0,#20
     INC 40H
     MOV A,40H
     MOV B,#10
     DIV AB
     MOV 31H,A
     MOV A,B
     MOV 30H,A
     MOV A,40H
     CJNE A,#60,BACK
     MOV 30H,#0
     MOV 31H,#0
     MOV 40H,#0
     INC 41H
     MOV A,41H
     MOV B,#10
     DIV AB
     MOV 33H,A
     MOV A,B
     MOV 32H,A
     MOV A,41H
     CJNE A,#60,BACK
     MOV 32H,#0
     MOV 33H,#0
     MOV 41H,#0
     INC 42H
     MOV A,42H
     MOV B,#10
     DIV AB
     MOV 35H,A
     MOV A,B
     MOV 34H,A
     MOV A,42H
     CJNE A,#24,BACK
     MOV 42H,#0
     MOV 34H,#0
     MOV 35H,#0
     MOV 30H,#0
     MOV 31H,#0
     MOV 32H,#0
     MOV 33H,#0
       BACK:POP PSW
            POP ACC
     RETI
      TIME1:PUSH ACC
            PUSH PSW
     MOV TL1,#80H
     MOV TH1,#0C1H
     LCALL DISP
     POP PSW
     POP ACC
     RETI
       DISP:MOV DPTR,#TAB1
            MOV A,30H
     MOVC A,@A+DPTR
     MOV P0,A
     SETB P2.0
     CLR P2.5
     LCALL DELAY1
     SETB P2.5
     MOV A,31H
     MOVC A,@A+DPTR
     MOV P0,A
     SETB P2.0
     CLR P2.4
     LCALL DELAY1
     MOV DPTR,#TAB2
     MOV A,32H
     MOVC A,@A+DPTR
     SETB P2.4
     MOV P0,A
     SETB P2.0
     CLR P2.3
     LCALL DELAY1
     MOV DPTR,#TAB1
     MOV A,33H
     MOVC A,@A+DPTR
     SETB P2.3
     MOV P0,A
     SETB P2.0
     CLR P2.2
     LCALL DELAY1
     MOV DPTR,#TAB2
     MOV A,34H
     MOVC A,@A+DPTR
     SETB P2.2
     MOV P0,A
     SETB P2.0
     CLR P2.1
     LCALL DELAY1
     MOV DPTR,#TAB1
     MOV A,35H
     MOVC A,@A+DPTR
     SETB P2.1
     MOV P0,A
     CLR P2.0
     LCALL DELAY1
     RET
            DELAY1:MOV R7,#02H
         DL:MOV R6,#0FFH
        DL1:DJNZ R6,DL1
            DJNZ R7,DL
     RET
     DELAY2:MOV R7,#10H
        TS1:MOV R6,#0FFH
        TS2:DJNZ R6,TS2
            DJNZ R7,TS1
     RET
       TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H
            DB 92H,82H,0F8H,80H,90H
       TAB2:DB 40H,79H,24H,30H,19H
            DB 12H,02H,78H,00H,10H
     END

 

关键字:单片机  数字电子  时钟系统

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
C51 特殊功能寄存器SFR的名称和地址