標(biāo)題: DS1302數(shù)碼管電子鐘 含年月日星期溫度 匯編程序 [打印本頁(yè)]

作者: 418854190    時(shí)間: 2020-6-9 20:40
標(biāo)題: DS1302數(shù)碼管電子鐘 含年月日星期溫度 匯編程序
單片機(jī)用的是AT89S51 所有IO口全用上了   P1.2作為按鍵減  程序不管怎么修改都不能正常按順序減  我也不改了就這么用了  我做的實(shí)物上把它作為星期顯示用了  然后溫度能顯示四位數(shù)(含零下) 上傳的程序里星期用的是P1.4  
溫度用的是P1.5 P1.6 P1.7 只顯示三位  想要四位就在程序里改吧

設(shè)置順序是 年 月 日 星期 時(shí) 分 秒  
設(shè)置時(shí)數(shù)碼管的小數(shù)點(diǎn)(兩位數(shù)時(shí)只個(gè)位數(shù)小數(shù)點(diǎn)亮)點(diǎn)亮以確認(rèn)設(shè)置哪一位  連續(xù)按P1.0退出設(shè)置狀態(tài)并保存數(shù)據(jù)  
在設(shè)置狀態(tài)時(shí)按P1.3退出設(shè)置狀態(tài)不保存設(shè)置數(shù)據(jù)   正常走時(shí)狀態(tài)按P1.3切換12小時(shí)制24小時(shí)制  通電默認(rèn)12小時(shí)制

初次使用時(shí)可以按住P1.0在通電 把預(yù)置好的年月日星期時(shí)間寫(xiě)入到1302內(nèi)   

我用的晶振每小時(shí)快1秒左右 24小時(shí)快23秒左右  程序里就加入了誤差修正  每小時(shí)減一秒 半夜12點(diǎn)不減秒  
上傳的程序里每小時(shí)都減一秒 屏蔽了半夜12點(diǎn)不減秒  

源程序網(wǎng)上找的  把LCD1602顯示變成了數(shù)碼管顯示 并加入了四位溫度顯示 經(jīng)過(guò)修改后變成現(xiàn)在的樣子   
制作出來(lái)的實(shí)物圖如下:


部分單片機(jī)程序
                                                                               RST     BIT      P3.5; 5腳   ;1302串行口數(shù)據(jù)端                                                                                                                                                    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;    鬧鐘設(shè)置  改成退出不保存                                                                                       
                                                                                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 ; 時(shí)                                                                                          
                                                                                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                          ;溫度標(biāo)志位
                                                                                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                                                                                                   
;***************************************************************                                                
;  初始化開(kāi)機(jī)時(shí)間    &&&&&&&     初始化鬧鈴時(shí)間                                                                                         
;***************************************************************  
                                START:                                         
                                                                                MOV     HHH,#00H

                                                                                MOV     WCS,#00H;
                                                                                MOV     WCF,#00H;
                                                                                MOV     WCM,#01H;   每小時(shí)誤差幾秒改成幾        誤差判斷時(shí)到整點(diǎn)秒歸零

                                                        JNB MOSHI,YZ;初次使用時(shí)按住MOSHI 把預(yù)置的時(shí)間寫(xiě)入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 ;寫(xiě)1302子程序
                                                                                                                                                                                                                                                                                                                                                                                                                     
;***************************************************************                                                
;  初始化LCD1602    &&&&&&&          初始化DS1302                                                                                         
;***************************************************************                                                                                                                                                                                       
                    LCDCSH:                        
                                                                                lcall   RD_DS1302 ; 讀時(shí)間日期
                                                                                LCALL WCCS;     時(shí)間誤差初始化                                                                                                                                                                                                                              
;***************************************************************                                                
;                   主函數(shù)(這個(gè)大家都懂的)                                                                                         
;***************************************************************     

                                        MAIN:                                                                                                   
                                        lcall   RD_DS1302 ; 讀時(shí)間日期   
                                                                                LCALL   WCXZ;     誤差修正                                                                                                     
                                                                                LCALL   SJ_DIP_2;顯示時(shí)間動(dòng)態(tài)數(shù)據(jù); 顯示時(shí)間日期                                                                                             
                                                                                lcall   key       ; 時(shí)間設(shè)定
                                                                                JNB     ALARM,AMPM; 12小時(shí)24小時(shí)切換                                                                        
                                                                                LCALL   RE_TEMP   ; 讀溫度                                                                                             
                                                                                LCALL   CONVER    ; 處理溫度  
                                                                                LCALL   DISPBCD    ; BCD 碼溫度值                                                                                          
                                                                                LCALL   DISPLAY_INT ; 顯示溫度                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                        LJMP MAIN      


全部資料51hei下載地址:
DS1302數(shù)碼管電子鐘.rar (68.47 KB, 下載次數(shù): 76)

作者: gqzjl    時(shí)間: 2020-6-12 16:46
這個(gè)怎么沒(méi)人頂?我來(lái)頂一下,樓主肯分享自己的成果,必須頂一下。
作者: songxia8013    時(shí)間: 2020-6-15 08:32
看樣子不錯(cuò),就是沒(méi)電路圖,只有程序,可用性就大打折扣!新手都不知道怎么接電路,程序就沒(méi)用了!
作者: swustlx86    時(shí)間: 2020-6-17 09:01
好資料,51黑有你更精彩!!!
作者: madell    時(shí)間: 2022-5-31 13:00
songxia8013 發(fā)表于 2020-6-15 08:32
看樣子不錯(cuò),就是沒(méi)電路圖,只有程序,可用性就大打折扣!新手都不知道怎么接電路,程序就沒(méi)用了!

程序都有了,就能畫(huà)出電路圖。
作者: lxm41577    時(shí)間: 2022-6-2 16:20
很遺憾不是用 Keil 寫(xiě)的,下了沒(méi)什么用
作者: hhdsdy    時(shí)間: 2022-6-2 21:49
好奇下載看看附件里有什么




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1