找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4433|回复: 3
收起左侧

单片机数字时钟课程设计报告 可运行

[复制链接]
ID:210915 发表于 2017-6-13 19:42 | 显示全部楼层 |阅读模式
仿真图:
0.png 0.png

  系统采用通用的80C51芯片,显示器为6个共阳极LED数码管,用1个BCD 7段译码器74LS47驱动数码管(74LS47的输入为BCD码,其输出级为集电极开路输出,可直接驱动7段译码管,具有首尾消零等特点),用3-8译码器74LS138的输出作为动态扫描时数码管的选通信号,因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显示功能了。

   选用P0.0--P0.3作为显示数据值的输出,连接在BCD 7段译码器74LS47的BCD码输入端,P0.4--P0.6作为扫描值的输出连接在3-8译码器74LS138的输入端(74LS138的A、B、C),因此,写程序时应以P0口高4位为位扫描值,低4位为显示数据值(分离BCD码)。由于LED数据管点亮时耗电量较大,因此使用了排阻作为电源驱动输出,以保证数码管的正常亮度。单片机的P1.0--P1.5口分别接在S1--S6 6个按键上,以控制“时”,“分”,“秒”的调整。
时间以24小时为一个周期,数字时钟钟的格式为:XX XX XX,由左向右分别为:时、分、秒。完成显示由秒加1,一直加1至59,再恢复为00;分加1,一直加1至59,再恢复00;时加1,一直加1至23,再恢复00。
***** 按键功能*****
1.启动时,数字时钟从23:59:00 开始自动计时;
2.按键S1控制对“时”的调整,每按一次时计数值加1;
3.按键S2控制对“分”的调整,每按一次分计数值加1;
4.按键S3控制对“秒”的调整,每按一次秒计数值加1;
5.按键S4控制对“时”的调整,每按一次时计数值减1;
6.按键S5控制对“分”的调整,每按一次分计数值减1;
7.按键S6控制对“秒”的调整,每按一次秒计数值减1。

课程设计报告内容预览:
0.png 0.png

单片机源程序如下:

  1.        ORG     0000H
  2.              LJMP   START
  3.        ORG     000BH
  4.              LJMP   TT0
  5.        ORG     0050H
  6. START:
  7.        MOV     SP,#70H      
  8.        MOV     36H,#00H             ;(36H)为扫描指针
  9.        MOV     40H,#00H             ;秒控制
  10.        MOV     41H,#59H             ;分控制
  11.        MOV     42H,#23H             ;时控制
  12.        MOV     30H,#00H
  13.        MOV     31H,#00H             ;显示秒
  14.        MOV     32H,#09H
  15.        MOV     33H,#05H             ;显示分
  16.        MOV     34H,#03H
  17.        MOV     35H,#02H             ;显示时
  18.        MOV     TMOD,#01H            ;定时器T0工作方式设定
  19.        MOV     TL0,#0B0H            ;设置定时器T0低4位初值
  20.        MOV     TH0,#3CH             ;设置定时器T0高4位初值
  21.        MOV     IE,#82H              ;闭合EA,ET0
  22.        MOV     50H,#20              ;定时1秒循环次数
  23.        SETB    TR0
  24. LOOP: JB      P1.0,N2              ;S1按下时加1
  25.        CALL    DE                   ;消除抖动
  26.        MOV     A,42H
  27.        ADD     A,#01H
  28.        DA      A
  29.        MOV     42H,A
  30.        CJNE    A,#24H,N1
  31.        MOV     42H,#00H
  32. N1:    JNB     P1.0,$
  33.        CALL    DE
  34. N2:    JB      P1.1,N4              ;S2按下分加1
  35.        CALL    DE      
  36.        MOV     A,41H
  37.        ADD     A,#01H
  38.        DA      A
  39.        MOV     41H,A
  40.        CJNE    A,#60H,N3
  41.        MOV     41H,#00H
  42. N3:    JNB     P1.1,$
  43.        CALL    DE
  44. N4:    JB      P1.2,N6              ;S3按下秒加1
  45.        CALL    DE
  46.        MOV     A,40H
  47.        ADD     A,#01H
  48.        DA      A
  49.        MOV     40H,A
  50.        CJNE    A,#60H,N5
  51.        MOV     40H,#00H
  52. N5:    JNB     P1.2,$
  53.        CALL    DE
  54. N6:    JB      P1.3,N8              ;S4按下时减1
  55.        CALL    DE
  56.        MOV     R7,34H
  57.        CJNE    R7,#00H,N60
  58.        MOV     R6,35H
  59.        CJNE    R6,#00H,N61
  60.        MOV     42H,#23H
  61.        JMP     N7
  62. N60:   MOV     A,34H
  63.        DEC     A
  64.        MOV     34H,A
  65.        MOV     A,35H
  66.        SWAP    A
  67.        ADD     A,34H
  68.        MOV     42H,A
  69.        JMP     N7
  70. N61:   MOV     34H,#09H
  71.        MOV     A,35H
  72.        DEC     A
  73.        SWAP    A
  74.        ADD     A,34H
  75.        MOV     42H,A
  76. N7:    JNB     P1.3,$
  77.        CALL    DE
  78. N8:    JB      P1.4,N10             ;S5按下分减1
  79.        CALL    DE
  80.        MOV     R7,32H
  81.        CJNE    R7,#00H,N80
  82.        MOV     R6,33H
  83.        CJNE    R6,#00H,N81
  84.        MOV     41H,#59H
  85.        JMP     N9
  86. N80:   MOV     A,32H
  87.        DEC     A
  88.        MOV     32H,A
  89.        MOV     A,33H
  90.        SWAP    A
  91.        ADD     A,32H
  92.        MOV     41H,A
  93.        JMP     N9
  94. N81:   MOV     32H,#09H
  95.        MOV     A,33H
  96.        DEC     A
  97.        SWAP    A
  98.        ADD     A,32H
  99.        MOV     41H,A
  100. N9:    JNB     P1.4,$
  101.        CALL    DE
  102. N10:   JB      P1.5,N11             ; S6按下秒减1
  103.        CALL    DE
  104.        MOV     R7,30H
  105.        CJNE    R7,#00H,N100
  106.        MOV     R6,31H
  107.        CJNE    R6,#00H,N101
  108.        MOV     40H,#59H
  109.        JMP     N11
  110. N100:  MOV     A,30H
  111.        DEC     A
  112.        MOV     30H,A
  113.        MOV     A,31H
  114.        SWAP    A
  115.        ADD     A,30H
  116.        MOV     40H,A
  117.        JMP     N11
  118. N101:  MOV     30H,#09H
  119.        MOV     A,31H
  120.        DEC     A
  121.        MOV     31H,A
  122.        SWAP    A
  123.        ADD     A,30H
  124.        MOV     40H,A
  125. N11:   JNB     P1.5,$
  126.        CALL    DE
  127.         

  128. TT0:   MOV     TH0,#3CH
  129.        MOV     TL0,#0B0H
  130.        PUSH    ACC
  131.        PUSH    PSW
  132.        DJNZ    50H,TINT0
  133.        CALL    TIME
  134.        CALL    VIEW
  135. TINT0: CALL    SCAN
  136.        POP     ACC
  137.        POP     PSW
  138.        LJMP    LOOP

  139. SCAN:  MOV     R0,#36H
  140. SCAN0: MOV    A,@R0
  141.        ADD    A,#30H              ;A加30H即为显示缓冲区地址
  142.        MOV    R1,A
  143.        MOV   A,@R0
  144.        SWAP   A
  145.        ORL    A,@R1
  146.        MOV    P0,A               ;P0高4位为扫描值,低4位为显示数据值
  147.        CALL   DELAY
  148.        INC    @R0
  149.        CJNE   @R0,#06H,SCAN0
  150.        MOV    @R0,#00H              
  151.        RET

  152. TIME:  MOV     A,40H
  153.        ADD     A,#01H
  154.        DA      A
  155.        MOV     40H,A
  156.        CJNE    A,#60H,TTI
  157.        MOV     40H,#00H
  158.        MOV     A,41H
  159.        ADD     A,#01H
  160.        DA      A
  161.        MOV     41H,A
  162.        MOV     A,41H
  163.        CJNE    A,#60H,TTI
  164.        MOV     41H,#00H
  165.        MOV     A,42H
  166.        ADD     A,#01H
  167.        DA      A
  168.        MOV     42H,A
  169.        CJNE    A,#24H,TTI
  170.        MOV     42H,#00H
  171. TTI:   RET

  172. VIEW:  MOV     A,40H                   ;30H为显示缓冲区首地址
  173.        ANL     A,#0FH
  174.        MOV     30H,A
  175.        MOV     A,40H
  176.        SWAP    A
  177.        ANL     A,#0FH
  178.        MOV     31H,A
  179.        MOV     A,41H
  180.        ANL     A,#0FH
  181.        MOV     32H,A
  182.        MOV     A,41H
  183.        SWAP    A
  184.        ANL     A,#0FH
  185.        MOV     33H,A
  186.        MOV     A,42H
  187.        ANL     A,#0FH
  188.        MOV     34H,A
  189.        MOV     A,42H
  190.        SWAP    A
  191.        ANL     A,#0FH
  192.        MOV     35H,A
  193.        RET

  194. DELAY: MOV     R7,#65
  195.        DJNZ    R7,$
  196.        RET
  197. DE:    MOV     R4,#10                ;延时5ms
  198. DE1:   MOV     R5,#249
  199.        DJNZ    R5,$
  200.        DJNZ    R4,DE1
  201.        RET
  202.        END
复制代码

所有资料51hei提供下载:
单片机课程设计可运行.zip (393.35 KB, 下载次数: 81)

评分

参与人数 1黑币 +5 收起 理由
348652560 + 5

查看全部评分

回复

使用道具 举报

ID:211258 发表于 2017-6-15 17:41 | 显示全部楼层
非常好
回复

使用道具 举报

ID:459953 发表于 2019-1-5 15:18 | 显示全部楼层
好喜欢,做的真的不错
回复

使用道具 举报

ID:480493 发表于 2019-3-23 17:14 | 显示全部楼层
可以运行不
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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