找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5267|回复: 6
收起左侧

DS1302数码管电子钟 含年月日星期温度 汇编程序

  [复制链接]
ID:261025 发表于 2020-6-9 20:40 | 显示全部楼层 |阅读模式
单片机用的是AT89S51 所有IO口全用上了   P1.2作为按键减  程序不管怎么修改都不能正常按顺序减  我也不改了就这么用了  我做的实物上把它作为星期显示用了  然后温度能显示四位数(含零下) 上传的程序里星期用的是P1.4  
温度用的是P1.5 P1.6 P1.7 只显示三位  想要四位就在程序里改吧

设置顺序是 年 月 日 星期 时 分 秒  
设置时数码管的小数点(两位数时只个位数小数点亮)点亮以确认设置哪一位  连续按P1.0退出设置状态并保存数据  
在设置状态时按P1.3退出设置状态不保存设置数据   正常走时状态按P1.3切换12小时制24小时制  通电默认12小时制

初次使用时可以按住P1.0在通电 把预置好的年月日星期时间写入到1302内   

我用的晶振每小时快1秒左右 24小时快23秒左右  程序里就加入了误差修正  每小时减一秒 半夜12点不减秒  
上传的程序里每小时都减一秒 屏蔽了半夜12点不减秒  

源程序网上找的  把LCD1602显示变成了数码管显示 并加入了四位温度显示 经过修改后变成现在的样子   
制作出来的实物图如下:
51hei截图20200609202906.jpg 51hei截图20200601105735.jpg

部分单片机程序
                                                                               RST     BIT      P3.5; 5脚   ;1302串行口数据端                                                                                                                                                    SU      BIT      P3.6; 6脚                                                                          
                                                                                CLK     BIT      P3.7; 7脚  
                                                                                MOSHI   BIT      P1.0;    ;模式     退出并保存  
                                                                                JIA     BIT      P1.1;    ;加   
                                                                                JIAN    BIT      P1.2;    ;减       不能正常按顺序减                                                                                 
                                                                                ALARM   BIT      P1.3;    闹钟设置  改成退出不保存                                                                                       
                                                                                DQ      BIT      P3.0;   18b20                                                                                 
                                                                        
                                                                            TEMPL       DATA  26H                    
                                                                                TEMPH       DATA  27H        
                                                                                                                                                                                       
                                                                                TEMPHC      DATA  2AH
                                        TEMPLC      DATA  2BH
                                                                                TEMP_ZH     DATA  2CH
;==========================================================================================                                                                                                                                                                                               
                                                                            NIAN    EQU      7FH ; 年                                                                                          
                                                                                YUE     EQU      7DH ; 月                                                                                          
                                                                                DAY     EQU      7CH ; 日  
                                                                                WEEK    EQU      29H ; 周                                                                                    
                                                                                HHH     EQU      7EH ;                                                                                                                                                                  
                                                                                SHI     EQU      7BH ; 时                                                                                          
                                                                                FEN     EQU      7AH ; 分                                                                                          
                                                                                MIAO    EQU      79H ; 秒
                                                                                SHIHC   EQU      74H;                                                                                 
;==========================================================================================                                                                                                                                                                           
;==========================================================================================        
                                                                        AMPMBZ   EQU      2DH;
                                                                                WCS     EQU      2EH;
                                                                                WCF     EQU      2FH;
                                                                                WCM     EQU      30H;

                                                                                SHIA EQU 3AH;
                                                                                SHIB EQU 3BH;
                                                                                FENA EQU 3CH;
                                                                                FENB EQU 3DH;
                                                                                MIAOA EQU 3EH;
                                                                                MIAOB EQU 3FH;
                                                                                GEW     EQU      75H

                                                                                SHIBZ EQU   20H.0
                                                                                FENBZ EQU   20H.1
                                                                                MIAOBZ EQU   20H.2
                                                                                NIANBZ EQU   20H.3;
                                                                                YUEBZ  EQU   20H.4;
                                                                                RIBZ   EQU   20H.5;
                                                                                ZHOUBZ   EQU   20H.6;

                                                                                FLAG    EQU      6EH                          ;温度标志位
                                                                                SETB SHIBZ
                                                                                SETB FENBZ
                                                                                SETB MIAOBZ
                                                                                SETB NIANBZ
                                                                                SETB YUEBZ
                                                                                SETB RIBZ
                                                                                SETB ZHOUBZ
                                                                                SETB AMPMBZ;
                                                                        
;==========================================================================================                                                                                                                                                               
                                                                                DS1302_ADDR   EQU   6DH                                                                                          
                                                                                DS1302_DATA   EQU   6CH                                                                                          
;==================================================================================                                                                                                                                                               
                                    ;    ORG      0000H                                                                                                  
                                                                        ;        LJMP     START                                                                                                   
                                                                        ;        ORG      0030H                                                                                                   
;***************************************************************                                                
;  初始化开机时间    &&&&&&&     初始化闹铃时间                                                                                         
;***************************************************************  
                                START:                                         
                                                                                MOV     HHH,#00H

                                                                                MOV     WCS,#00H;
                                                                                MOV     WCF,#00H;
                                                                                MOV     WCM,#01H;   每小时误差几秒改成几        误差判断时到整点秒归零

                                                        JNB MOSHI,YZ;初次使用时按住MOSHI 把预置的时间写入DS1302;
                                                                                LJMP LCDCSH;  
;===============================================================                                                                                                                                                                                                                                                                                       
                   YZ:                              
                                                                                MOV     NIAN,#20H                                                                                                
                                                                                MOV     YUE,#06H                                                                                                
                                                                                MOV     DAY,#01H
                                                        MOV     WEEK,#1H;                                                                     
                                                                                MOV     SHI,#07H
                                                                                MOV     FEN,#59H  
                                                                                MOV     MIAO,#55H   
                                                                                LCALL   WR_DS1302 ;写1302子程序
                                                                                                                                                                                                                                                                                                                                                                                                                     
;***************************************************************                                                
;  初始化LCD1602    &&&&&&&          初始化DS1302                                                                                         
;***************************************************************                                                                                                                                                                                       
                    LCDCSH:                        
                                                                                lcall   RD_DS1302 ; 读时间日期
                                                                                LCALL WCCS;     时间误差初始化                                                                                                                                                                                                                              
;***************************************************************                                                
;                   主函数(这个大家都懂的)                                                                                         
;***************************************************************     

                                        MAIN:                                                                                                   
                                        lcall   RD_DS1302 ; 读时间日期   
                                                                                LCALL   WCXZ;     误差修正                                                                                                     
                                                                                LCALL   SJ_DIP_2;显示时间动态数据; 显示时间日期                                                                                             
                                                                                lcall   key       ; 时间设定
                                                                                JNB     ALARM,AMPM; 12小时24小时切换                                                                        
                                                                                LCALL   RE_TEMP   ; 读温度                                                                                             
                                                                                LCALL   CONVER    ; 处理温度  
                                                                                LCALL   DISPBCD    ; BCD 码温度值                                                                                          
                                                                                LCALL   DISPLAY_INT ; 显示温度                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                        LJMP MAIN      


全部资料51hei下载地址:
DS1302数码管电子钟.rar (68.47 KB, 下载次数: 76)

评分

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

查看全部评分

回复

使用道具 举报

ID:639106 发表于 2020-6-12 16:46 | 显示全部楼层
这个怎么没人顶?我来顶一下,楼主肯分享自己的成果,必须顶一下。
回复

使用道具 举报

ID:102963 发表于 2020-6-15 08:32 | 显示全部楼层
看样子不错,就是没电路图,只有程序,可用性就大打折扣!新手都不知道怎么接电路,程序就没用了!
回复

使用道具 举报

ID:302325 发表于 2020-6-17 09:01 | 显示全部楼层
好资料,51黑有你更精彩!!!
回复

使用道具 举报

ID:99987 发表于 2022-5-31 13:00 | 显示全部楼层
songxia8013 发表于 2020-6-15 08:32
看样子不错,就是没电路图,只有程序,可用性就大打折扣!新手都不知道怎么接电路,程序就没用了!

程序都有了,就能画出电路图。
回复

使用道具 举报

ID:76044 发表于 2022-6-2 16:20 | 显示全部楼层
很遗憾不是用 Keil 写的,下了没什么用
回复

使用道具 举报

ID:88256 发表于 2022-6-2 21:49 | 显示全部楼层
好奇下载看看附件里有什么
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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