-
大小: 251KB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2024-01-20
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
STC89C52+LCD12864+18B20+1302的萬(wàn)年歷,已編譯成功,可直接移植

代碼片段和文件信息
/*---------------------------------------------------------------------------
黃歷電子智能時(shí)鐘程序
單?片?機(jī):STC89C52RC
晶????振:12MHz
時(shí)鐘芯片:DS1302
液?晶?屏:LCM-12864-ST7920
功能描述:?大數(shù)字顯示時(shí)間;能顯示農(nóng)歷、溫度和設(shè)置鬧鈴;有整點(diǎn)報(bào)時(shí)功能
??紅外遙控和按鍵都能設(shè)置時(shí)間和鬧鈴
時(shí)????間:2011年2月2日修改完成今天大年三十算是給自己的禮物吧!呵呵...
說(shuō) ??明:LCM12864使用并口連接方式PSB、RST接高電平
修改日志:
------------------------------------------------------------------------------*/
/*-------------------------------頭文件---------------------------------------*/
#include?
#include?
#include?“LCD12864.h“
#include?“DS1302.h“
#include?“DS18B20.h“
#include?“nongli.h“
#include?“displaytime.h“
#include?“zk.h“
#include?“bell.h“
#include?“HW.H“
#include?“delay.h“
#define?uint??unsigned?int
#define?uchar?unsigned?char
/*--------------------定義按鍵-----------------------------------------------*/
sbit?K1??=?P1^0;?//K1-設(shè)置
sbit?K2??=?P1^1;?//K2-確認(rèn)、返回
sbit?K3??=?P1^2;?//K3-加
sbit?K4??=?P1^3;?//K4-減
//K5=P1^4K5-控制鬧鐘的打開(kāi)與關(guān)閉在“hw.h“中定義
/*---------------------函數(shù)聲明------------------------------*/??????
void?ds_w0(void);
void?ds_w(void);
void?Conver_week(bit?cuchar?yearuchar?monthuchar?day);
/*-----------------------------定義全局變量------------------------------*/
bit??w=0;????//調(diào)時(shí)標(biāo)志位
unsigned?char?yymoddxqhhmmssmonth_moonday_moonweektiangandizhimoontemp1moontemp2;//定義時(shí)間映射全局變量(專(zhuān)用寄存器)
signed?char?addressitemitem0maxmini;
unsigned?char?clk_ala[2]={0x000x00};//鬧鐘數(shù)據(jù)存放初始值為00:00
unsigned?char?hourminutetime;//用于鬧鈴的設(shè)置
/*-----------------------------日期、時(shí)間設(shè)置函數(shù)-----------------------------*/
void?tiaozheng(void){
yy?=?read_clock(0x8d);//調(diào)用1302時(shí)鐘數(shù)據(jù)中的年數(shù)據(jù),從地址0x8d中
mo?=?read_clock(0x89);//調(diào)用1302時(shí)鐘數(shù)據(jù)中的月數(shù)據(jù),從地址0x89中
dd?=?read_clock(0x87);//從1302芯片中讀取日數(shù)據(jù),從地址0x87中
week?=?read_clock(0x8b);//從1302芯片中讀取星期數(shù)據(jù),從地址0x8b中
//----------------------------------
lcm_w_test(00x80);
lcm_w_word(“20“);//顯示內(nèi)容字符20
lcm_w_test(1(yy/16)+0x30);//函數(shù)參數(shù)1,代表本行寫(xiě)數(shù)據(jù),YY/16+0X30得出年十位數(shù)字的顯示碼地址,送顯示
lcm_w_test(1yy%16+0x30);//函數(shù)
lcm_w_word(“年“);
//----------------------------------
lcm_w_test(1(mo/16)+0x30);
lcm_w_test(1mo%16+0x30);//與16取余數(shù),得到月份的個(gè)位數(shù),加0x30得到該數(shù)字的液晶內(nèi)定顯示碼送顯示
lcm_w_word(“月“);//調(diào)用字符顯示函數(shù),顯示文字?月
//----------------------------------
/*
lcm_w_test(00x88);//第一個(gè)參數(shù)0,表示本行寫(xiě)入LCM的是指令,指定顯示位置88H(第三行左端)
lcm_w_word(“星期“);//調(diào)用字符顯示函數(shù),顯示文字?星期
lcm_w_test(1mo%16+0x30);//與16取余數(shù),得到月份的個(gè)位數(shù),加0x30得到該數(shù)字的液晶內(nèi)定顯示碼送顯示
*/
//----------------------------------
lcm_w_test(1(dd/16)+0x30);
lcm_w_test(1dd%16+0x30);//第一個(gè)1參數(shù),表示本行寫(xiě)數(shù)據(jù),日數(shù)據(jù)與16取余得個(gè)位數(shù),加0x30得到顯示碼
lcm_w_word(“日“);//顯示字符?日
//----------------------------------
if(read_clock(0x85)?!=?hh){//如果程序中的小時(shí)與1302芯片中的不同,
hh?=?read_clock(0x85);//刷新程序中的小時(shí)數(shù)據(jù)
}
lcm_w_test(00x91);//第一個(gè)參數(shù)0,表示本行寫(xiě)入LCM的是指令,指定顯示位置88H(第三行左端)
lcm_w_test(1(hh/16)+0x30);//顯示十位
lcm_w_test(1hh%16+0x30);//顯示個(gè)位
lcm_w_word(“時(shí)“);
//----------------------------------
if(read_clock(0x83)?!=?mm){//如果1302芯片中的分鐘數(shù)據(jù)與程序中的分鐘變量不相等
mm?=?read_clock(0x83);//刷新程序中的分鐘數(shù)據(jù)
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件???????1133??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\bell.h
?????文件???????1358??2011-02-02?02:13??12864?1302大數(shù)字顯示時(shí)鐘\delay.h
?????文件???????6297??2011-02-17?14:57??12864?1302大數(shù)字顯示時(shí)鐘\displaytime.h
?????文件???????3332??2011-01-30?22:38??12864?1302大數(shù)字顯示時(shí)鐘\DS1302.h
?????文件???????2476??2011-02-01?14:45??12864?1302大數(shù)字顯示時(shí)鐘\DS18B20.h
?????文件???????3334??2011-02-03?21:36??12864?1302大數(shù)字顯示時(shí)鐘\HW.H
?????文件??????60025??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin
?????文件??????23004??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin.hex
?????文件??????63783??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin.M51
?????文件???????1919??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin.Opt
?????文件???????8149??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin.plg
?????文件???????1983??2010-11-04?14:25??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin.Uv2
?????文件???????1610??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin_Opt.Bak
?????文件???????2102??2010-10-12?21:46??12864?1302大數(shù)字顯示時(shí)鐘\Hzxin_Uv2.Bak
?????文件???????9665??2011-02-03?02:56??12864?1302大數(shù)字顯示時(shí)鐘\LCD12864.h
?????文件??????13725??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\main.c
?????文件??????25648??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\main.LST
?????文件??????73585??2011-02-17?17:19??12864?1302大數(shù)字顯示時(shí)鐘\main.OBJ
?????文件??????11604??2010-10-11?23:21??12864?1302大數(shù)字顯示時(shí)鐘\nongli.h
?????文件???????3644??2010-11-30?00:41??12864?1302大數(shù)字顯示時(shí)鐘\rs.h
?????文件??????27427??2011-02-03?02:56??12864?1302大數(shù)字顯示時(shí)鐘\zk.h
?????文件??????56789??2011-02-08?14:46??12864?1302大數(shù)字顯示時(shí)鐘\實(shí)物圖1.jpg
?????文件?????118371??2011-02-08?21:44??12864?1302大數(shù)字顯示時(shí)鐘\實(shí)物圖2.jpg
?????目錄??????????0??2011-02-17?17:23??12864?1302大數(shù)字顯示時(shí)鐘
-----------?---------??----------?-----??----
???????????????520963????????????????????24
評(píng)論
共有 條評(píng)論