找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3019|回復(fù): 0
收起左側(cè)

學(xué)習(xí)專用的,電子技術(shù)設(shè)計電子鐘表范文模板

[復(fù)制鏈接]
ID:781762 發(fā)表于 2020-6-17 11:05 | 顯示全部樓層 |閱讀模式
  1.   AJMP   TIME1_3
  2. TIME1_2:MOV    STOREKEYNUMT1 , KEYNUMT1   ;加1后存儲當前的KEYNUMT1的值
  3.         ACALL  ADDBUFF0                   ;分加1
  4. TIME1_3:JNB    P3.2,TIME1_1        ;若p3.2已關(guān),則退出增時,否則繼續(xù)循環(huán)
  5.         CLR    ET1
  6.         CLR    PT1
  7.         CLR    TR1
  8.         AJMP   START1

  9. ;********************
  10. ;*****時間增1分******
  11. ;********************

  12. ADDBUFF0:MOV   A , MBUFF         ; 若按鍵小于1s,則分增1
  13.         ADD    A , #1
  14.         DA     A
  15.         MOV    MBUFF , A
  16.         ANL    A , #0FH
  17.         MOV    MBUFF1 , A
  18.         MOV    A , MBUFF
  19.         SWAP   A
  20.         ANL    A , #0FH
  21.         MOV    MBUFF2 , A
  22.         MOV    A ,  MBUFF
  23.         CJNE   A , #60H ,  ADDBUFF1
  24.         MOV    MBUFF , #00H
  25.         MOV    MBUFF2 , #00H
  26.         MOV    MBUFF1 , #00H
  27.         MOV    A , HBUFF                      ;時增1
  28.         ADD    A , #1
  29.         DA     A
  30.         MOV    HBUFF , A
  31.         ANL    A , #0FH
  32.         MOV    HBUFF1 , A
  33.         MOV    A , HBUFF
  34.         SWAP   A
  35.         ANL    A , #0FH
  36.         MOV    HBUFF2 , A
  37.         MOV    A , HBUFF
  38.         CJNE   A , #24H , ADDBUFF1     ;若沒到24小時,則不必初值置0
  39.         MOV    HBUFF , #00H
  40.         MOV    HBUFF2 , #00H
  41.         MOV    HBUFF1 , #00H
  42. ADDBUFF1:RET

  43. ;*********************************
  44. ;*int1中斷子程序******************
  45. ;*********************************     
  46.       
  47. ADJUSTTIME2: NOP
  48.         ACALL  DL100MS
  49.         MOV    C , P3.3
  50.         JC     TIME2_6            ;如果(P3.3按鍵<100ms以上)   則不做處理
  51.         MOV    KEYNUMT2 , #00H    ;否則進入定鬧設(shè)置
  52.         MOV    STOREKEYNUMT2 , KEYNUMT2   ;記錄當前NUMT2的數(shù)據(jù),以看下次有沒改變
  53. TIME2_1:NOP
  54.         MOV    TH1 , #3CH        ;T1置初值,進行100ms計時,用于調(diào)整時間
  55.         MOV    TL1 , #0B0H
  56.         SETB   ET1               ;開T1中斷
  57.         SETB   PT1               ;設(shè)T1中斷優(yōu)先級最高
  58.         SETB   TR1               ;允許T1計時
  59. TIME2_2:ACALL  ALARMDISPLAY
  60.         MOV    A , KEYNUMT2
  61.         CJNE   A , STOREKEYNUMT2 ,TIME2_3
  62.         AJMP   TIME2_4
  63. TIME2_3: MOV    STOREKEYNUMT2 , KEYNUMT2
  64.         MOV    A , ALARMMBUFF              ; 若按鍵小于1s,則分增1
  65.         ADD    A , #1
  66.         DA     A
  67.         MOV    ALARMMBUFF , A
  68.         ANL    A , #0FH
  69.         MOV    ALARMMBUFF1 , A
  70.         MOV    A , ALARMMBUFF
  71.         SWAP   A
  72.         ANL    A , #0FH
  73.         MOV    ALARMMBUFF2 , A
  74.         MOV    A ,  ALARMMBUFF
  75.         CJNE   A , #60H ,  TIME2_4
  76.         MOV    ALARMMBUFF , #00H
  77.         MOV    ALARMMBUFF2 , #00H
  78.         MOV    ALARMMBUFF1 , #00H
  79.         MOV    A , ALARMHBUFF                         ;時增1
  80.         ADD    A , #1
  81.         DA     A
  82.         MOV    ALARMHBUFF , A
  83.         ANL    A , #0FH
  84.         MOV    ALARMHBUFF1 , A
  85.         MOV    A , ALARMHBUFF
  86.         SWAP   A
  87.         ANL    A , #0FH
  88.         MOV    ALARMHBUFF2 , A
  89.         MOV    A , ALARMHBUFF
  90.         CJNE   A , #24H , TIME2_4      ;若沒到24小時,則初值不必置0
  91.         MOV    ALARMHBUFF , #00H
  92.         MOV    ALARMHBUFF2 , #00H
  93.         MOV    ALARMHBUFF1 , #00H
  94. TIME2_4:NOP
  95.         JNB    P3.3,TIME2_2             ;若按鍵已經(jīng)未按,則退出循環(huán)
  96.         CLR    ET1
  97.         CLR    TR1
  98.         MOV    KEYNUMT2 , #00H
  99.         MOV    NUMT2 , #00H
  100.         MOV    R2 , #10             ; 直到p3.3  20s鐘內(nèi)都是未按,此時復(fù)原數(shù)據(jù),即退出設(shè)置
  101. TIME2_7:MOV    R1 , #200                          
  102. TIME2_5:ACALL  ALARMDISPLAY
  103.         ACALL  DL1MS
  104.         JNB    P3.3 , TIME2_1
  105.         DJNZ   R1 , TIME2_5
  106.         DJNZ   R2 , TIME2_7
  107. TIME2_6:CLR   ET1
  108.         CLR    PT1
  109.         CLR    TR1
  110.         LJMP   START1
  111. ;***********************************
  112. ;**T1中斷子程序*********************
  113. ;***********************************

  114. INTERT1:NOP
  115.         MOV    TH1 , #3CH      ;T1置初值,進行100ms計時,用于調(diào)整時間
  116.         MOV    TL1 , #0B0H
  117.         PUSH   ACC
  118.         PUSH   PSW
  119.         CLR    ET0
  120.         CLR    ET1              ;關(guān)T1中斷
  121.         MOV    A , NUMT1
  122.         INC    A
  123.         MOV    NUMT1 , A        ;中斷一次則相應(yīng)的增加NUMT1
  124.         CJNE   A , #5 ,  INTERT1NEXT     ;每中斷五次,即半秒,都增加KEYNUMT1
  125.         MOV    A ,KEYNUMT1
  126.         INC    A
  127.         MOV    KEYNUMT1 , A
  128.         MOV    NUMT1 , #00H       ;NUMT1已經(jīng)是5了,則處理過KEYNUMT1后,重置NUMT1
  129. INTERT1NEXT:NOP
  130.         MOV    A , NUMT2          ;中斷一次則相應(yīng)的增加NUMT1
  131.         INC    A
  132.         MOV    NUMT2 , A
  133.         CJNE   A, #5,ENDINTERT1   ;每中斷五次,即半秒,都增加KEYNUMT1
  134.         MOV    A ,   KEYNUMT2
  135.         INC    A
  136.         MOV    KEYNUMT2 , A
  137.         MOV    NUMT2 , #00H       ;NUMT1已經(jīng)是5了,則處理過KEYNUMT1后,重置NUMT1
  138. ENDINTERT1: SETB   ET1
  139.         SETB   ET0
  140.         POP    ACC
  141.         POP    PSW
  142.         RETI




  143.      ;**************
  144.      ;** 整點報時 **
  145.      ;**************
  146. ZDBS:   MOV    A , MBUFF                  ;在整點時,響半秒
  147.         JNZ    ZDBSEND
  148.         MOV    A , SBUFF
  149.         CJNE   A , #3CH , ZDBSEND
  150.         CLR    P3.2
  151.         ACALL  DL0FIVE
  152.         SETB   P3.2
  153. ZDBSEND:RET

  154.      ;**************
  155.      ;**定鬧顯示子程序**
  156.      ;**************
  157. ALARMDISPLAY: MOV  P1 ,#0FFH                   ;使時的十位亮
  158.         MOV    A , ALARMHBUFF2
  159.         MOVC   A ,  @A+DPTR
  160.         SETB   ACC.7
  161.         MOV    P1 ,  A
  162.         CLR    P3.0
  163.         ACALL  DL1MS
  164.         SETB   P3.0
  165.         MOV    A , ALARMHBUFF1               ;使時的個位亮
  166.         MOVC   A ,  @A+DPTR
  167.         MOV    C ,  DP
  168.         MOV    ACC.7 ,  C
  169.         MOV    P1 ,  A
  170.         CLR    P3.1
  171.         ACALL  DL1MS
  172.         SETB   P3.1
  173.         MOV    A ,ALARMMBUFF2              ;使分的十位亮
  174.         MOVC   A ,  @A+DPTR
  175.         MOV    C ,  DP
  176.         MOV    ACC.7 ,  C
  177.         MOV    P1 ,  A
  178.         CLR    P3.4
  179.         ACALL  DL1MS
  180.         SETB   P3.4
  181.         MOV    A , ALARMMBUFF1       ;使時的個位亮
  182.         MOVC   A ,  @A+DPTR
  183.         SETB   ACC.7
  184.         MOV    P1,A
  185.         CLR    P3.5
  186.         ACALL  DL1MS
  187.         SETB   P3.5
  188.         RET

  189. ;********************************
  190. ;**晚上顯示子程序****************
  191. ;********************************    ;降低顯示的占空比,數(shù)碼管進入節(jié)能
  192. NIGHTDISPLAY:  NOP
  193.         MOV    P1 ,#0FFH
  194.         MOV    A , HBUFF2
  195.         MOVC   A ,  @A+DPTR
  196.         SETB   ACC.7
  197.         MOV    P1 ,  A
  198.         CLR    P3.0
  199.         ACALL  DL1MS                 ;亮1ms
  200.         SETB   P3.0
  201.         ACALL  DL1MS
  202.         ACALL  DL1MS                 ;暗2ms
  203.         MOV    A , HBUFF1
  204.         MOVC   A ,  @A+DPTR
  205.         MOV    C ,  DP
  206.         MOV    ACC.7 ,  C
  207.         MOV    P1 ,  A
  208.         CLR    P3.1
  209.         ACALL  DL1MS
  210.         SETB   P3.1
復(fù)制代碼


6b09f31691a1e26ee88b0e5bdf39a8a.png
dbdff6210dec1decb87a1c18051946d.png

設(shè)計資料.7z

2.69 MB, 下載次數(shù): 7, 下載積分: 黑幣 -5

大學(xué)設(shè)計文檔范文

回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表