標(biāo)題: 基于單片機(jī)匯編語(yǔ)言的電子時(shí)鐘程序和仿真 [打印本頁(yè)]

作者: 木皇PHP    時(shí)間: 2017-12-26 13:22
標(biāo)題: 基于單片機(jī)匯編語(yǔ)言的電子時(shí)鐘程序和仿真

  1. /*************************************************
  2. *文件名:電子時(shí)鐘
  3. *說(shuō)  明:通過T0方式1定時(shí)時(shí)時(shí)更新,晶振:6MHZ
  4. *************************************************/
  5.                 ORG                0000H
  6.                 AJMP        MAIN
  7.                 ORG                000BH
  8.                 AJMP        IT0P
  9.                 ORG                0100H
  10. MAIN:        MOV         DPTR,#TAB
  11.                 MOV                TMOD,#01H                        ;設(shè)T0為方式一,定時(shí)
  12.                 MOV                30H,#0AH                        ;裝入中斷次數(shù)
  13.                 MOV                42H,#55                                ;顯示55秒位
  14.                 MOV                41H,#59                                ;顯示59分位
  15.                 MOV                40H,#23                                ;顯示23時(shí)位
  16.                 MOV                TH0,#3CH                        ;給T0裝入初值
  17.                 MOV                TL0,#0B0H
  18.                 SETB        ET0                                        ;允許T0申請(qǐng)中斷               
  19.                 SETB        TR0                                        ;啟動(dòng)T0
  20.                 SETB        EA                                        ;開總中斷

  21. HERE:        MOV                R3,42H                                ;調(diào)顯示子程序(等待中斷)
  22.                 MOV                R2,#00
  23.                 ACALL        DISPLAY
  24.                 MOV                R3,41H
  25.                 MOV                R2,#02
  26.                 ACALL        DISPLAY
  27.                 MOV                R3,40H
  28.                 MOV         R2,#04
  29.                 ACALL        DISPLAY
  30.                 AJMP        HERE                                 

  31. ;******1S定時(shí)子程序(并顯示)******
  32. IT0P:        PUSH        PSW                                        ;現(xiàn)場(chǎng)保護(hù)
  33.                 PUSH        Acc                                                                  
  34.                 MOV                TH0,#3CH                        ;重裝初值
  35.                 MOV                TL0,#0B0H
  36.                 DJNZ        30H,RETURN                        ;1秒未到,返回
  37.                 MOV                30H,#0AH                        ;重置中斷次數(shù)
  38.                 ;******顯示秒*********
  39.                 MOV                A,42H                                ;"秒"單元加1
  40.                 INC                A
  41.                 MOV                42H,A                                ;“秒”的BCD碼返回“秒”單元
  42.                 CJNE        A,#60,RETURN                ;是否到60秒,未到則返回
  43.                 MOV                42H,#00H                        ;計(jì)滿60秒,“秒”單元清零
  44.                 ;******顯示分*********
  45.                 MOV                A,41H                                ;"分"單元加1
  46.                 INC                A
  47.                 MOV                41H,A                                ;“分”的BCD碼返回“分”單元
  48.                 CJNE        A,#60,RETURN                ;是否到60分,未到則返回
  49.                 MOV                41H,#00H                        ;計(jì)滿60分,“分”單元清零
  50.                 ;******顯示時(shí)*********
  51.                 MOV                A,40H                                ;"時(shí)"單元加1
  52.                 INC                A
  53.                 MOV                40H,A                                ;“時(shí)”的BCD碼返回“時(shí)”單元
  54.                 CJNE        A,#24,RETURN                ;是否到24小時(shí),未到則返回
  55.                 MOV                40H,#00H                        ;計(jì)滿24小時(shí),“時(shí)”單元清零
  56. RETURN:        POP                Acc                                        ;恢復(fù)現(xiàn)場(chǎng)
  57.                 POP                PSW
  58.                 RETI         

  59. ;******顯示子程序(分兩屏顯示)******
  60. DISPLAY:MOV                A,R3                        ;R3存要顯示的兩位數(shù)字
  61.         MOV                B,#0AH
  62.                 MOV         P2,R2
  63.                 DIV                AB                                ;A為商,表十位;B為余數(shù),表個(gè)位
  64.                 MOV                R3,A
  65.                 MOV         A,B                                ;顯示個(gè)位
  66.         MOVC         A,@A+DPTR
  67.         MOV         P0,A
  68.                 ACALL         DELY
  69.         INC         R2                                ;顯示十位
  70.                 MOV         P2,R2
  71.                 MOV         A,R3
  72.         MOVC         A,@A+DPTR
  73.                 MOV         P0,A
  74.         ACALL         DELY
  75.         RET

  76. ;******延時(shí)0.5MS子程序******
  77. DELY:        MOV R7,#10
  78. DEL1:        MOV R6,#100
  79.         DJNZ R6,$
  80.         DJNZ R7,DEL1                ;(100*2+2+1)*10+2+1
  81.         RET
  82. TAB:        DB 3FH,06H,5BH,4FH,66H  ;七段共陰顯示碼
  83.         DB 6DH,7DH,07H,7FH,6FH,3FH               
  84.               END

復(fù)制代碼
全部資料51hei下載地址:
電子時(shí)鐘.zip (182.92 KB, 下載次數(shù): 27)




作者: hanzhe    時(shí)間: 2017-12-27 19:50
于單片機(jī)匯編語(yǔ)言的電子時(shí)鐘程序和仿真




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