找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3187|回复: 1
收起左侧

24小时时钟汇编单片机程序

[复制链接]
ID:616962 发表于 2019-11-30 14:08 | 显示全部楼层 |阅读模式
作者只是学习单片机的一名大学生,如有纰漏,恳请批评指正。
一、proteus仿真截图
     
        图一(像素比较高,连线清晰)
时钟2.PNG

      图二(仿真截图,按键的上拉排电阻可有可无,最小系统电路仿真时可以不加,但实际实验电路要有最小系统电路)
  单片机为89C51(80C51、89C52等51系列通用),晶振12MHz,数码管为六位一体共阴极数码管,74LS244用来放大电流,三个按键分别控制秒清零、分加一、时加一。

二、汇编代码
  ORG 0000H
           LJMP MAIN
           ORG 000BH
           LJMP SUB1
           ORG 0100H
MAIN:  MOV SP,#60H
           MOV IE,#82H
           MOV TMOD,#01H
           MOV TH0,#3CH
           MOV TL0,#0B0H
           MOV R7,#20
           MOV R1,#00H          ;秒位
       MOV R2,#00H          ;十秒位
       MOV R3,#00H          ;分位
       MOV R4,#00H          ;十分位
           MOV R5,#00H          ;时位
           MOV R6,#00H          ;十时位
           SETB   TR0
HERE: LCALL SHOW      ;数码管显示
          LCALL ANJIAN    ;按键调整
          SJMP HERE
      ORG 0200H
SUB1:  CLR EA         ;关闭定时器T0
       DJNZ R7,NEXT
       MOV R7,#20           

           INC R1
           CJNE R1,#10,NEXT
       MOV R1,#00H

       INC R2
       CJNE R2,#6,NEXT
       MOV R2,#00H

           INC R3
       CJNE R3,#10,NEXT
       MOV R3,#00H

       INC R4
       CJNE R4,#6,NEXT
       MOV R4,#00H

           INC R5
       CJNE R6,#2,SHI
           CJNE R5,#4,NEXT  ;4进位
       SJMP R50
SHI:   CJNE R5,#10,NEXT  ;10进位
R50:   MOV R5,#00H

           INC R6
       CJNE R6,#3,NEXT
       MOV R6,#00H
NEXT:  MOV TH0,#3CH     ;重新赋值,打开中断
           MOV TL0,#0B0H
       SETB EA
       RETI
SHOW:  MOV A,R1         ;数码管显示
       LCALL TA1
       MOV P0,A
       CLR P2.0
           LCALL DELAY5MS
           SETB P2.0

       MOV A,R2
       LCALL TA1
       MOV P0,A
           CLR P2.1
       LCALL DELAY5MS
           SETB P2.1

       MOV A,R3
       LCALL TA2
       MOV P0,A
           CLR P2.2
       LCALL DELAY5MS
           SETB P2.2

       MOV A,R4
       LCALL TA1
       MOV P0,A
           CLR P2.3
       LCALL DELAY5MS
           SETB P2.3

       MOV A,R5
       LCALL TA2
       MOV P0,A
           CLR P2.4
       LCALL DELAY5MS
           SETB P2.4

           MOV A,R6
       LCALL TA1
       MOV P0,A
           CLR P2.5
       LCALL DELAY5MS
           SETB P2.5
       RET
TA1:   MOV DPTR,#TABLE1
       MOVC A,@A+DPTR
           RET
TA2:   MOV DPTR,#TABLE2
       MOVC A,@A+DPTR
           RET
ANJIAN:JNB     P1.0,W1          ;按键调整
       JNB     P1.1,W2
       JNB     P1.2,W3
       AJMP    OUT
W1:    LCALL   DELAY5MS
       LCALL   DELAY5MS
           JB      P1.0,OUT
Q1:    LCALL   SHOW           ;
       JNB     P1.0,Q1
       MOV R1,#00H    ;按键一按一次清零秒位、十秒位
           MOV R2,#00H
       SJMP    OUT
W2:    LCALL   DELAY5MS
       LCALL   DELAY5MS
       JB      P1.1,OUT
Q2:    LCALL   SHOW             ;
       JNB     P1.1,Q2
       INC R3         ;按键二按一次分加一
       CJNE R3,#10,OUT
       MOV R3,#00H

       INC R4
       CJNE R4,#6,OUT
       MOV R4,#00H
       SJMP    OUT
W3:    LCALL   DELAY5MS
       LCALL   DELAY5MS
       JB      P1.2,OUT
Q3:    LCALL   SHOW             ;
       JNB     P1.2,Q3
       INC R5        ;按键三按一次时加一
       CJNE R6,#2,SHI2
           CJNE R5,#4,OUT  ;4进位
       SJMP R502
SHI2:   CJNE R5,#10,OUT  ;10进位
R502:   MOV R5,#00H

           INC R6
       CJNE R6,#3,OUT
       MOV R6,#00H
       SJMP  OUT
OUT:   RET  
DELAY5MS:
       MOV 31H,#10
LOOP1: MOV 32H,#250
LOOP2: DJNZ  32H,LOOP2
           DJNZ  31H,LOOP1
           RET
TABLE1:;共阴极无小数点
DB 03FH, 006H, 05BH, 04FH, 066H, 06DH, 07DH, 007H, 07FH, 06FH ;
TABLE2:; 共阴极有小数点
DB 0BFH, 086H, 0DBH, 0CFH, 0E6H, 0EDH, 0FDH, 087H, 0FFH, 0EFH ;      
           END



评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:616962 发表于 2019-11-30 14:11 | 显示全部楼层
图一没有上传上去,不过图二可以看清楚网络标号/连线
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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