標(biāo)題: 八個(gè)數(shù)碼管能顯示:小時(shí)十位小時(shí)個(gè)位—分十位分個(gè)位—秒十位秒個(gè)位,其中獨(dú)立按鍵P... [打印本頁]

作者: lianlian    時(shí)間: 2015-7-10 02:22
標(biāo)題: 八個(gè)數(shù)碼管能顯示:小時(shí)十位小時(shí)個(gè)位—分十位分個(gè)位—秒十位秒個(gè)位,其中獨(dú)立按鍵P...
本帖最后由 lianlian 于 2015-7-10 02:23 編輯

八個(gè)數(shù)碼管能顯示:小時(shí)十位小時(shí)個(gè)位—分十位分個(gè)位—秒十位秒個(gè)位,其中獨(dú)立按鍵P3.2可以調(diào)節(jié)小時(shí),每按一次加一,P3.3調(diào)節(jié)分,每按一次加一,P3.4調(diào)節(jié)分,每按一次減一。

最佳答案
這個(gè)電子鐘程序已經(jīng)基本符合你的要求。希望能對(duì)你有用。程序說明:顯示的時(shí)間格式為:12-00-00,既,時(shí)-分-秒按鍵說明:P3.2為時(shí)調(diào)節(jié)。P3.3為分調(diào)節(jié)。P3.4為秒調(diào)節(jié)。這三個(gè)按鍵均是每按一次加一。晶振說明:12MHZ數(shù)碼管說明:共陽數(shù)碼管。共8個(gè)數(shù)碼管。共用了兩個(gè)4連共陽數(shù)碼管。其中,P0口為數(shù)碼管的段選,P2口為數(shù)碼管的位選。本程序已通過實(shí)踐驗(yàn)證。!


匯編源程序如下:
SECOND  EQU 30H
MINITE  EQU 31H
HOUR    EQU 32H
HOURK   bit P3.2
MINITEK bit P3.3
SECONDK bit P3.4
dispBUF EQU 40H
dispbit EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP    EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV SECOND,#00H
      MOV MINITE,#00H
      MOV HOUR,#12
      MOV dispbit,#00H
      MOV T2SCNTA,#00H
      MOV T2SCNTB,#00H
      MOV TEMP,#0FEH
      LCALL disp
      MOV TMOD,#01H
      MOV TH0,#(65536-2000) / 256
      MOV TL0,#(65536-2000) MOD 256
      SETB TR0
      SETB ET0
      SETB EA
WT:JB SECONDK,NK1
   LCALL DELY10MS
   JB SECONDK,NK1
   INC SECOND
   MOV A,SECOND
   cjne A,#60,NS60
   MOV SECOND,#00H
NS60:LCALL disp
     JNB SECONDK,$
NK1:JB MINITEK,NK2
    LCALL DELY10MS
    JB MINITEK,NK2
    INC MINITE
    MOV A,MINITE
    cjne A,#60,NM60
    MOV MINITE,#00H
NM60:LCALL disp
     JNB MINITEK,$
NK2:JB HOURK,NK3
    LCALL DELY10MS
    JB HOURK,NK3
    INC HOUR
    MOV A,HOUR
    cjne A,#24,NH24
    MOV HOUR,#00H
NH24:LCALL disp
     JNB HOURK,$
NK3:LJMP WT  
DELY10MS:MOV R6,#10
      D1:MOV R7,#248
         djnz R7,$
         djnz R6,D1
         RET   
disp:MOV A,#dispBUF
     add A,#8
     dec A
     MOV R1,A
     MOV A,HOUR
     MOV B,#10
     div AB
     MOV @R1,A
     dec R1
     MOV A,B
     MOV @R1,A
     dec R1
     MOV A,#10
     MOV @R1,A
     dec R1
     MOV A,MINITE
     MOV B,#10
     div AB
     MOV @R1,A
     dec R1
     MOV A,B
     MOV @R1,A
     dec R1
     MOV A,#10
     MOV@R1,A
     dec R1
     MOV A,SECOND
     MOV B,#10
     div AB
     MOV @R1,A
     dec R1
     MOV A,B
     MOV @R1,A
     dec R1
     RET  
INT_T0:MOV TH0,#(65536-2000) / 256
       MOV TL0,#(65536-2000) MOD 256
       MOV A,#dispBUF
       add A,dispbit
       MOV R0,A
       MOV A,@R0
       MOV dptr,#TABLE
       MOVC A,@A+dptr
       MOV P0,A
       MOV A,dispbit
       MOV dptr,#TAB
       MOVC A,@A+dptr
       MOV P2,A
       INC dispbit
       MOV A,dispbit
       cjne A,#08H,KNA
       MOV dispbit,#00H
KNA:INC T2SCNTA
    MOV A,T2SCNTA
    cjne A,#100,done
    MOV T2SCNTA,#00H
    INC T2SCNTB
    MOV A,T2SCNTB
    cjne A,#05H,done
    MOV T2SCNTB,#00H
    INC SECOND
    MOV A,SECOND
    cjne A,#60,NEXT
    MOV SECOND,#00H
    INC MINITE
    MOV A,MINITE
    cjne A,#60,NEXT
    MOV MINITE,#00H
    INC HOUR
    MOV A,HOUR
    CJNE A,#24,NEXT
    MOV HOUR,#00H
NEXT:LCALL DISP
done:RETI
TABLE:db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
TAB:db 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
    END


作者: 愛就像宮保雞丁    時(shí)間: 2015-7-11 13:56
還是用LCD顯示更好一點(diǎn)
作者: xiaoyuxinke    時(shí)間: 2015-10-13 06:42
走時(shí)精度很難保證,一看電路布線分布電容,二看晶振精度了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1