|
單片機(jī)用的是AT89S51 所有IO口全用上了 P1.2作為按鍵減 程序不管怎么修改都不能正常按順序減 我也不改了就這么用了 我做的實(shí)物上把它作為星期顯示用了 然后溫度能顯示四位數(shù)(含零下) 上傳的程序里星期用的是P1.4
溫度用的是P1.5 P1.6 P1.7 只顯示三位 想要四位就在程序里改吧
設(shè)置順序是 年 月 日 星期 時 分 秒
設(shè)置時數(shù)碼管的小數(shù)點(diǎn)(兩位數(shù)時只個位數(shù)小數(shù)點(diǎn)亮)點(diǎn)亮以確認(rèn)設(shè)置哪一位 連續(xù)按P1.0退出設(shè)置狀態(tài)并保存數(shù)據(jù)
在設(shè)置狀態(tài)時按P1.3退出設(shè)置狀態(tài)不保存設(shè)置數(shù)據(jù) 正常走時狀態(tài)按P1.3切換12小時制24小時制 通電默認(rèn)12小時制
初次使用時可以按住P1.0在通電 把預(yù)置好的年月日星期時間寫入到1302內(nèi)
我用的晶振每小時快1秒左右 24小時快23秒左右 程序里就加入了誤差修正 每小時減一秒 半夜12點(diǎn)不減秒
上傳的程序里每小時都減一秒 屏蔽了半夜12點(diǎn)不減秒
源程序網(wǎng)上找的 把LCD1602顯示變成了數(shù)碼管顯示 并加入了四位溫度顯示 經(jīng)過修改后變成現(xiàn)在的樣子
制作出來的實(shí)物圖如下:
51hei截圖20200609202906.jpg (46.4 KB, 下載次數(shù): 56)
下載附件
2020-6-9 20:29 上傳
51hei截圖20200601105735.jpg (202.33 KB, 下載次數(shù): 53)
下載附件
2020-6-9 20:29 上傳
部分單片機(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 ; 時
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
;***************************************************************
; 初始化開機(jī)時間 &&&&&&& 初始化鬧鈴時間
;***************************************************************
START:
MOV HHH,#00H
MOV WCS,#00H;
MOV WCF,#00H;
MOV WCM,#01H; 每小時誤差幾秒改成幾 誤差判斷時到整點(diǎn)秒歸零
JNB MOSHI,YZ;初次使用時按住MOSHI 把預(yù)置的時間寫入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; 時間誤差初始化
;***************************************************************
; 主函數(shù)(這個大家都懂的)
;***************************************************************
MAIN:
lcall RD_DS1302 ; 讀時間日期
LCALL WCXZ; 誤差修正
LCALL SJ_DIP_2;顯示時間動態(tài)數(shù)據(jù); 顯示時間日期
lcall key ; 時間設(shè)定
JNB ALARM,AMPM; 12小時24小時切換
LCALL RE_TEMP ; 讀溫度
LCALL CONVER ; 處理溫度
LCALL DISPBCD ; BCD 碼溫度值
LCALL DISPLAY_INT ; 顯示溫度
LJMP MAIN
全部資料51hei下載地址:
DS1302數(shù)碼管電子鐘.rar
(68.47 KB, 下載次數(shù): 76)
2020-6-9 20:35 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評分
-
查看全部評分
|