找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2062|回复: 0
打印 上一主题 下一主题
收起左侧

学习专用的,电子技术设计电子钟表范文模板

[复制链接]
跳转到指定楼层
楼主
  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已关,则退出增时,否则继续循环
  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    ;否则进入定闹设置
  52.         MOV    STOREKEYNUMT2 , KEYNUMT2   ;记录当前NUMT2的数据,以看下次有没改变
  53. TIME2_1:NOP
  54.         MOV    TH1 , #3CH        ;T1置初值,进行100ms计时,用于调整时间
  55.         MOV    TL1 , #0B0H
  56.         SETB   ET1               ;开T1中断
  57.         SETB   PT1               ;设T1中断优先级最高
  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             ;若按键已经未按,则退出循环
  96.         CLR    ET1
  97.         CLR    TR1
  98.         MOV    KEYNUMT2 , #00H
  99.         MOV    NUMT2 , #00H
  100.         MOV    R2 , #10             ; 直到p3.3  20s钟内都是未按,此时复原数据,即退出设置
  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计时,用于调整时间
  116.         MOV    TL1 , #0B0H
  117.         PUSH   ACC
  118.         PUSH   PSW
  119.         CLR    ET0
  120.         CLR    ET1              ;关T1中断
  121.         MOV    A , NUMT1
  122.         INC    A
  123.         MOV    NUMT1 , A        ;中断一次则相应的增加NUMT1
  124.         CJNE   A , #5 ,  INTERT1NEXT     ;每中断五次,即半秒,都增加KEYNUMT1
  125.         MOV    A ,KEYNUMT1
  126.         INC    A
  127.         MOV    KEYNUMT1 , A
  128.         MOV    NUMT1 , #00H       ;NUMT1已经是5了,则处理过KEYNUMT1后,重置NUMT1
  129. INTERT1NEXT:NOP
  130.         MOV    A , NUMT2          ;中断一次则相应的增加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已经是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. ;********************************    ;降低显示的占空比,数码管进入节能
  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
复制代码


6b09f31691a1e26ee88b0e5bdf39a8a.png (164.39 KB, 下载次数: 65)

6b09f31691a1e26ee88b0e5bdf39a8a.png

dbdff6210dec1decb87a1c18051946d.png (117.97 KB, 下载次数: 71)

dbdff6210dec1decb87a1c18051946d.png

设计资料.7z

2.69 MB, 下载次数: 7, 下载积分: 黑币 -5

大学设计文档范文

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表