单片机论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3074|回复: 14
收起左侧

数码管时钟倒计时定时器制作

  [复制链接]
sgq657785 发表于 2017-8-17 17:38 | 显示全部楼层 |阅读模式
IMG_20170817_171147.jpg IMG_20170817_171155.jpg IMG_20170817_171158.jpg IMG_20170817_171223.jpg IMG_20170817_171248.jpg
面板是自己做的有点粗糙,本定时器可以嵌入墙壁内,主控芯片是AT89C2051直接驱动数码管和继电器,红灯指示继电器输出,现在是定时时间内继电器吸合状态,也可以设置为定时时间到吸合
回复

使用道具 举报

admin 发表于 2017-8-17 17:57 | 显示全部楼层
好东东,楼主能分享一下源码吗?
回复

使用道具 举报

 楼主| sgq657785 发表于 2017-8-17 18:03 | 显示全部楼层
                MENU           BIT  P3.4
                UPO           BIT  P3.5
                ;DOWNO   BIT  P3.7
                JDQ                BIT         P3.7
                ORG     00H
                SJMP    MAIN               ;程序开始
                ORG     0BH                ;T0入口地址
                JMP                INTT0
                ORG                1BH
                JMP                INTT1
                ORG     30H
;------------------------------------------------
MAIN:         MOV            SP,#70H           ;堆键地址设置
                MOV            R1,#60H                         ;清除首址
                MOV            R7,#16                         ;清除单元数
                MOV                P3,#0FFH
                SETB        JDQ
CLEARH: MOV            @R1,#00H
                INC            R1
                DJNZ           R7,CLEARH
;--------------------------------------------------
                MOV                R2,#00H                   ;60S计数单元
                MOV                R3,#00H                   ;60M计数单元
                MOV            R4,#14H                   ;1S中断20次
                MOV                22H,#10                   ;0.5S中断10次
                MOV                29H,#00H           ;MENU键按键次数
                MOV                20H,#00H        ;0.5S标志位
                MOV                24H,#00H        ;24小时到标志单元
                MOV            6CH,#0BH        ;熄灭符
                MOV            TMOD,#11H
                MOV            TL0,#0B0H
                MOV            TH0,#3CH
                MOV            TL1,#0B0H
                MOV            TH1,#3CH
                SETB           EA
                SETB           ET0
                SETB           ET1
                SETB           TR0
                CLR            TR1
                JMP                MENUD1
;-----------------------------
START1: CALL          DISP
                JNB            MENU,MENU0          ;时间调整按键
                SJMP           START1
;------------------------------------------
MENU0:        CALL        DISP
                JNB                MENU,MENU0
NEXT:        MOV                R0,#68H          ;调时单元
                MOV                29H,#00H
                CLR                TR0
                SETB        TR1
NEXT1:        CALL        DISP
                JNB                MENU,MENUD1
                JNB                UPO,UP
                ;JNB                DOWNO,DOWN
                SJMP        NEXT1
MENUD1:        MOV                R0,#68H          ;调时单元
                ;MOV                29H,#00H
                CLR                TR0
                SETB        TR1
                CALL        DISP
                JNB                MENU,MENUD1
                INC                R0
                INC                R0
                INC                29H                                ;按“MENU”键29H单元加 1
                SETB        20H.1
                JNB                MENU,MENUD1
                JNB                UPO,UP
                ;JNB                DOWNO,DOWN
                MOV                A,29H
                CJNE        A,#02H,NEXT1         ;MENU键按下3次退出调时程序,不到3次继续
                MOV                29H,#00H
                SETB        TR0
                CLR                TR1
                CLR                JDQ
                MOV                R2,66H
                CLR                20H.2
                CLR                20H.1
                MOV                60H,66H
                MOV                61H,67H
                MOV                62H,68H
                MOV                63H,69H
                JMP                START1
;------------------------------------------               
UP:                CALL        DISP
                JNB                UPO,UP
UP2:        CJNE        R0,#68H,UP0
                CALL        ADDSS
UP3:        CALL        DISP
                JNB                MENU,MENUD1
                JNB                UPO,UP
                ;JNB                DOWNO,DOWN
                SJMP        UP3
UP0:        CJNE        R0,#6AH,UP1
                CALL        ADDMM1
UP1:        SJMP        UP3
;---------------------------------------------
DOWN:        CALL        DISP
                ;JNB                DOWNO,DOWN
                CJNE        @R0,#00H,DOWN0
                MOV                @R0,#0AH
DOWN0:        DEC                @R0
                MOV                60H,66H
                MOV                61H,67H
                MOV                62H,68H                  
                MOV                63H,69H
                MOV                64H,6AH
                MOV                65H,6BH
DOWN1:        CALL        DISP
                JNB                MENU,MENUD1
                JNB                UPO,UP
                ;JNB                DOWNO,DOWN
                JMP                DOWN1
;----------------------------------------------------
DISP:        MOV                   R5,#04H           ;数码管扫描位数
                MOV            R1,#60H                   ;显示首地址
                ;MOV            R5,#11110111B   ;数码管位扫描码
PLAY:   CJNE        R5,#04H,D3
                CLR                P3.3
D3:                CJNE        R5,#03H,D4
                CLR                P3.2
D4:                CJNE        R5,#02H,D5
                CLR                P3.1
D5:                CJNE        R5,#01H,D6
                CLR                P3.0
                ;MOV            A,R5
                ;MOV            P3,A
D6:                MOV            A,@R1
                JNB            20H.0,D1
                MOV            DPTR,#TAB0
                SJMP           D2
D1:                MOV            DPTR,#TAB1
D2:                MOVC           A,@A+DPTR
                MOV            P1,A
                CALL           DL1MS
                INC            R1
                SETB        P3.3
                SETB        P3.2
                SETB        P3.1
                SETB        P3.0
                ;MOV            A,R5
                ;RR             A
                ;MOV            R5,A
                DJNZ        R5,PLAY
                RET
;----------------------------------------------------
INTT1:        PUSH        ACC                                   ;调时闪烁中断程序
                PUSH        PSW
                CLR                TF1
                MOV                TL1,#0B0H
                MOV                TH1,#3CH
                SETB        TR1
                DJNZ    22H,T1OUT
                CPL                20H.2
                MOV                22H,#10
T1OUT:
                JB                20H.2,FLASH1
                MOV                60H,66H
                MOV                61H,67H
                MOV                62H,68H
                MOV                63H,69H
D1OUT:        POP                PSW
                POP                ACC
                RETI
FLASH1:        JB                20H.1,FLASH2
                MOV                60H,6CH
                MOV                61H,6CH
                MOV                62H,68H
                MOV                63H,69H
                AJMP        D1OUT
FLASH2:        MOV                60H,66H
                MOV                61H,67H
                MOV                62H,6CH
                MOV                63H,6CH
                AJMP        D1OUT
;====================================

INTT0:        PUSH        ACC                          ;秒中断程序
                PUSH        PSW
                CLR                TF0
                MOV                TL0,#0B0H
                MOV                TH0,#3CH
                SETB        TR0
                DJNZ    R4,T0OUT
                CALL        DECSS;ADDSS
T0OUT:        CJNE        R4,#10,D0OUT
                CPL                20H.0
D0OUT:        POP                PSW
                POP                ACC
                RETI
JIAYIOUT:RET
;===================================================               
ADDSS:        CPL                20H.0
                MOV     R4,#14H                        ;50毫秒中断20次
                INC                66H
                INC                R2                                ;60S计数寄存器
                MOV                60H,66H
                CJNE        R2,#60,ADDSS1
                JMP                ADDMM
ADDSS1:        MOV                A,66H                          ;秒个位传入显示
                CJNE        A,#0AH,JIAYIOUT          ;不相等转移
;----------------------------------------------------------
                MOV                66H,#00H                          ;---------------------------------------------------------------------------
                INC                67H
                MOV                61H,67H                          ;秒十位传入显示
                RET
;-----------------------------------------------------------
ADDMM:        MOV                66H,#00H                  ;秒个位清零
                MOV                60H,66H
                   MOV                67H,#00H                  ;秒十位清零
                MOV                61H,67H
                MOV                R2,#00H                          ;秒计数寄存器清零
;--------------------------------------------
ADDMM1:        INC                68H
                INC                R3                                  ;60分计数寄存器
                MOV                62H,68H                          ;分个位传入显示
                CJNE        R3,#60,ADM1
                JMP                start1
ADM1:        MOV                A,68H
                CJNE        A,#0AH,JIAYIOUT
;-------------------------------------
                MOV                68H,#00H
                INC                69H
                MOV                63H,69H                          ;分十位传入显示
                RET
;----------------------------------------------------------------------------
DECOUT:        CJNE        R2,#00H,A1
                MOV                R2,66H
                DEC                67H
                MOV                61H,67H
                RET
A1:                DEC                66H
                DEC                R2
                MOV                60H,66H
                RET
DECSS:        CPL                20H.0
                MOV     R4,#14H                        ;50毫秒中断20次
                MOV                A,66H
                CJNE        A,#00H,DECOUT
                MOV                A,67H
                CJNE        A,#00H,DECSS1
                MOV                A,68H
                CJNE        A,#00H,DECSS2
                MOV                A,69H
                CJNE        A,#00H,DECMM0
                CLR                TR0
                ;SETB        TR1
                SETB        JDQ
                RET
                ;JMP                START1
                ;SETB        TRO
DECSS1:        MOV                66H,#9                          ;秒个位从9-0开始
                MOV                60H,66H
                JMP                DECOUT
DECSS2:        MOV                66H,#9
                MOV                60H,66H
                MOV                67H,#6
                MOV                61H,67H
                DEC                68H
                MOV                62H,68H
                JMP                DECOUT
;-----------------------------
DECMM0:        MOV                66H,#9
                MOV                60H,66H
                MOV                67H,#6
                MOV                61H,67H
                MOV                68H,#9
                MOV                62H,68H
                DEC                69H
                MOV                63H,69H
                JMP                DECOUT       
;------------------------------------------------------------------------------
DL1MS:  MOV            27H,#10                                 ;2MS
DL2:        MOV            28H,#200
        DJNZ           28H,$
                DJNZ           27H,DL2
                RET
;-------0---1---2---3---4---5---6---7---8---9---0--熄灭符------------
TAB0:DB 02H,9EH,24H,0CH,98H,48H,40H,1EH,00H,08H,02H,0FFH;--“:”--亮
TAB1:DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,03H,0FFH;--“:”--灭
                        END        

评分

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

查看全部评分

回复

使用道具 举报

 楼主| sgq657785 发表于 2017-8-17 18:06 | 显示全部楼层
源码怎么上传?
回复

使用道具 举报

czhaii 发表于 2017-8-23 14:20 | 显示全部楼层
还有不少人弄汇编么?想当初入门也是一个一个汇编指令敲出来,一条一条研究。
回复

使用道具 举报

 楼主| sgq657785 发表于 2017-8-24 09:04 来自手机 | 显示全部楼层
czhaii 发表于 2017-8-23 14:20
还有不少人弄汇编么?想当初入门也是一个一个汇编指令敲出来,一条一条研究。

那是我以前做的,现在用C写了
回复

使用道具 举报

YBZYBZ 发表于 2018-2-23 22:19 | 显示全部楼层
求楼主给个电路图和HFX烧写文件,
回复

使用道具 举报

faridzled 发表于 2018-2-24 08:30 | 显示全部楼层
thanks for sharing
回复

使用道具 举报

YBZYBZ 发表于 2018-4-17 09:36 | 显示全部楼层
楼主给个电路图和HEX烧写文件吗?谢谢!
回复

使用道具 举报

GUOXUAN 发表于 2018-4-17 11:14 | 显示全部楼层
是呀是呀,楼主真要赐给个电路图哦.我们这些土包子是从音响功放DIY出来玩的,不是电子专业人士,没有电路图,怎么玩呀
回复

使用道具 举报

zyfzyf007 发表于 2018-12-22 15:27 | 显示全部楼层
楼主上传个电路图呗
回复

使用道具 举报

changhai 发表于 2019-2-9 22:51 来自手机 | 显示全部楼层
给个图!!!
回复

使用道具 举报

wc86110 发表于 2019-3-25 10:23 | 显示全部楼层
如楼主说的继电器状态不同接法也不同,看各自需求加上
数码管倒计时提醒器.jpg
回复

使用道具 举报

tigerzq 发表于 2019-3-25 14:53 | 显示全部楼层
底下还有一层电源吗?另外,这个at89c2051用什么烧录?isp行吗?必须要用编程器吗?
回复

使用道具 举报

tigerzq 发表于 2019-3-25 14:54 | 显示全部楼层
虽然学过汇编,但看起来依然很头疼
回复

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|单片机论坛 |51Hei单片机16群 联系QQ:125739409;技术交流QQ群7344883

Powered by 单片机教程网

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