找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10446|回复: 5
收起左侧

单片机电子钟制作 数码管显示小时—分钟—秒 有程序 实物图

[复制链接]
ID:85192 发表于 2015-7-9 23:25 | 显示全部楼层 |阅读模式
本电子时钟主要是由AT89S51单片机及8个共阳数码管组成。由于数码管引脚比较多,占用单片机的I\O口也比较多,由于单片机最多只有32I\O口,在数码管比较多时(两个以上),就满足不了实际需要,因此在数码管比较多时,采用动态扫描的方式使数码管逐个点亮。本电子时钟就是采用的这种显示方式。利用取表指令“MOV DPTR,#TABLEMOVC A,@A+DPTR”和条件转移指令“CJNE A,#data,rel”所要显示的时间送入单片机的端口(P0口和P2口)并放大后,驱动数码管显示出所要显示的具体时间。采用单片机内部定时器定时,计数,时间非常准确!
显示的时间格式为:120000,即“小时—分钟—秒”。P0口为数码管的各段位接口,P2口为8个数码管的电源端。P3.2口为“小时”调整,P3.3口为“分钟”调整,P3.4口为“秒”调整。但每个调整键只能加,不能减。晶振为12MHZ
汇编源程序如下:

SECOND EQU 30H
MINITE EQU 31H
HOUR    EQU 32H
HOURK   BIT P3.2
MINITEK BIT P3.3
SECONDK BIT P3.4
DISPBUF EQU 40H
DISPBIT EQU 48H
T2SCNTA EQU 49H
T2SCNTB EQU 4AH
TEMP    EQU 4BH
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
START:MOV SECOND,#00H
      MOV MINITE,#00H
      MOV HOUR,#12
      MOV DISPBIT,#00H
      MOV T2SCNTA,#00H
      MOV T2SCNTB,#00H
      MOV TEMP,#0FEH
      LCALL DISP
      MOV TMOD,#01H
      MOV TH0,#(65536-2000) / 256
      MOV TL0,#(65536-2000) MOD 256
      SETB TR0
      SETB ET0
      SETB EA
WT:JB SECONDK,NK1
   LCALL DELY10MS
   JB SECONDK,NK1
   INC SECOND
   MOV A,SECOND
   CJNE A,#60,NS60
   MOV SECOND,#00H
NS60:LCALL DISP
     JNB SECONDK,$
NK1:JB MINITEK,NK2
    LCALL DELY10MS
    JB MINITEK,NK2
    INC MINITE
    MOV A,MINITE
    CJNE A,#60,NM60
    MOV MINITE,#00H
NM60:LCALL DISP
     JNB MINITEK,$
NK2:JB HOURK,NK3
    LCALL DELY10MS
    JB HOURK,NK3
    INC HOUR
    MOV A,HOUR
    CJNE A,#24,NH24
    MOV HOUR,#00H
NH24:LCALL DISP
     JNB HOURK,$
NK3:LJMP WT
DELY10MS:MOV R6,#10
      D1:MOV R7,#248
         DJNZ R7,$
         DJNZ R6,D1
         RET   
DISP:MOV A,#DISPBUF
     ADD A,#8
     DEC A
     MOV R1,A
     MOV A,HOUR
     MOV B,#10
     DIV AB
     MOV @R1,A
     DEC R1
     MOV A,B
     MOV @R1,A
     DEC R1
     MOV A,#10
     MOV @R1,A
     DEC R1
     MOV A,MINITE
     MOV B,#10
     DIV AB
     MOV @R1,A
     DEC R1
     MOV A,B
     MOV @R1,A
     DEC R1
     MOV A,#10
     MOV@R1,A
     DEC R1
     MOV A,SECOND
     MOV B,#10
     DIV AB
     MOV @R1,A
     DEC R1
   MOV A,B
     MOV @R1,A
     DEC R1
     RET
INT_T0:MOV TH0,#(65536-2000) / 256
       MOV TL0,#(65536-2000) MOD 256
       MOV A,#DISPBUF
       ADD A,DISPBIT
       MOV R0,A
       MOV A,@R0
       MOV DPTR,#TABLE
       MOVC A,@A+DPTR
       MOV P0,A
       MOV A,DISPBIT
       MOV DPTR,#TAB
       MOVC A,@A+DPTR
       MOV P2,A
       INC DISPBIT
       MOV A,DISPBIT
       CJNE A,#08H,KNA
       MOV DISPBIT,#00H
KNA:INC T2SCNTA
    MOV A,T2SCNTA
    CJNE A,#100,DONE
    MOV T2SCNTA,#00H
    INC T2SCNTB
    MOV A,T2SCNTB
    CJNE A,#05H,DONE
    MOV T2SCNTB,#00H
    INC SECOND
    MOV A,SECOND
    CJNE A,#60,NEXT
    MOV SECOND,#00H
    INC MINITE
    MOV A,MINITE
    CJNE A,#60,NEXT
    MOV MINITE,#00H
    INC HOUR
    MOV A,HOUR
    CJNE A,#24,NEXT
    MOV HOUR,#00H
NEXT:LCALL DISP
DONE:RETI
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH
TAB:DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH
END
本程序已通过实践验证!!!




评分

参与人数 1威望 +7 黑币 +7 收起 理由
王朗的诱惑 + 7 + 7 赞一个!

查看全部评分

回复

使用道具 举报

ID:44523 发表于 2015-8-28 16:26 | 显示全部楼层
不错,很好的资料,谢谢
回复

使用道具 举报

ID:89071 发表于 2015-9-1 14:58 | 显示全部楼层
不错 但是准确度可能不是很高吧 晶振提供的时基电路存在漂变 建议升级一个时钟芯片版
回复

使用道具 举报

ID:102823 发表于 2016-1-11 21:17 | 显示全部楼层
楼主,有电路图吗
回复

使用道具 举报

ID:103150 发表于 2016-1-14 07:54 | 显示全部楼层
不能减。晶振为12MHZ。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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