資源簡(jiǎn)介
DS1302 LCM1602 protues仿真

代碼片段和文件信息
/*?本程序所使用CPU為51單片機(jī),時(shí)鐘為24MHZ,程序主體網(wǎng)上所得,稍加修,念在下初學(xué),還請(qǐng)?jiān)髡咭?jiàn)諒。特此聲明*/
??#include?
??#include???
??#include?“LCM1602.h“
??#include?“DS1302.h“?
??
sbit?Add_Key???=?P3?^?3;//加1鍵
sbit?Dec_Key???=?P3?^?4;//減1鍵
sbit?OK_Key????=?P3?^?5;//確定鍵
?struct?TimerStruct??????????//定義時(shí)鐘的數(shù)據(jù)結(jié)構(gòu)
{
??unsigned?char?Year;
??unsigned?char?Month;
??unsigned?char?Day;
??unsigned?char?Week;
??unsigned?char?Hour;
??unsigned?char?Minute;
??unsigned?char?Second;
};
??unsigned?char??DateBuffer[]?={“2000/12/20“}; ??//?隨便設(shè)置,不表示顯示的初始值,只為方便子程序調(diào)用 ?
??unsigned?char??TimeBuffer[]?=?{“21:49:00“}; ??//初始值在主程序中設(shè)置??
??unsigned?int?SecondCounter;//秒計(jì)數(shù)器(無(wú)符號(hào)整型)
??unsigned?char?Keyboard_Clock_Number;
??unsigned?char?Temp;
??struct?TimerStruct?RealClock;
void?timer0(void)?interrupt?1?//定時(shí)T0溢出中斷每25mS產(chǎn)生一次中斷???方式1????9E58
{????unsigned?char?Temp;?
?//????struct?
?????TH0=0x9e;//(65536-46080)/256;?????????//重新裝入定時(shí)25mS的初值到TH0TL0
?????TL0=0x58;//(65536-46080)%256; ????
?????SecondCounter++;???????????????//秒計(jì)數(shù)器加1
?????if(SecondCounter==40)??????????//到40表示1S時(shí)間到
????{
?????SecondCounter=0;
?/****--以下是讀取DS1302的時(shí)鐘信息并將結(jié)果存儲(chǔ)到顯示緩沖區(qū)中****/
??????Temp=Read_DS1302_RTC(0x81);???//讀秒信息
??????RealClock.Second=Temp;
??????TimeBuffer[7]=(Temp%16)|0x30;
??????TimeBuffer[6]=(Temp>>4)|0x30;
??????Temp=Read_DS1302_RTC(0x83);???//讀分信息
??????RealClock.Minute=Temp;
??????TimeBuffer[4]=(Temp%16)|0x30;
??????TimeBuffer[3]=(Temp>>4)|0x30;
??????Temp=Read_DS1302_RTC(0x85);??//讀時(shí)信息
??????RealClock.Hour=Temp;
??????TimeBuffer[1]=(Temp%16)|0x30;
??????TimeBuffer[0]=(Temp>>4)|0x30;????
??????Temp=Read_DS1302_RTC(0x87);??//讀日信息
??????RealClock.Day=Temp;
??????DateBuffer[9]=(Temp%16)|0x30;
??????DateBuffer[8]=(Temp>>4)|0x30;
??????Temp=Read_DS1302_RTC(0x89);???//讀月信息
??????RealClock.Month=Temp;
??????DateBuffer[6]=(Temp%16)|0x30;
??????DateBuffer[5]=(Temp>>4)|0x30;
??????Temp=Read_DS1302_RTC(0x8d);???//讀年信息
??????RealClock.Year=Temp;
??????DateBuffer[3]=(Temp%16)|0x30;
??????DateBuffer[2]=(Temp>>4)|0x30;
/*****************---送到LCD上顯示出來(lái)***********************/
??????DisplayListChar(00DateBuffer);//刷新LCD上的日期信息
??????DisplayListChar(01TimeBuffer);//刷新LCD上的時(shí)間顯示信息
????}
}
void?main(void){
??TMOD=0x01;?????????????????????//T0工作于16位定時(shí)功能
??TH0=(65536-46080)/256;??????????//T0定時(shí)25mS的初值裝入TH0TL0
??TL0=(65536-46080)%256;
??EA=1;???????????????????????????//CPU開(kāi)中斷
??ET0=1;?????????????????????????//允許T0溢出中斷
??Delay400Ms();
??LCMInit();??????????????????????//初始化LCD
/************?Init_DS1302_RTC();//初始化DS1302*************/
??Init_1302();
??TR0=1;?????????????????????????//啟動(dòng)T0開(kāi)始工作
??while(1)
??{
????OK_Key?=?1;
Add_Key?=?1;
Dec_Key?=?1;
??if?(OK_Key?==?0)?//?設(shè)置和選擇項(xiàng)目鍵
???????{
????????Delay5Ms();
????????Delay5Ms();
????????EA?=?0;
?????????if(OK_Key?==?0)
??? {
???? Keyboard_Clock_Number++;if(Keyboard_Clock_Number>5)Keyboard_Clock_Number=0;
??? }
?????????while(OK_Key?==?0);
?}
??????switch(?Keybo
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????68578??2007-11-23?11:41??DS1302\DS1302.DSN
?????文件???????2431??2007-11-23?11:28??DS1302\DS1302.h
?????文件????????484??2007-11-23?11:41??DS1302\DS1302.PWI
?????文件??????64284??2007-11-22?19:31??DS1302\Last?Loaded?DS1302.DBK
?????文件???????2424??2006-04-15?22:22??DS1302\LCD\LCD
?????文件???????2693??2006-04-15?22:22??DS1302\LCD\LCD.BIN
?????文件???????2120??2006-04-15?22:22??DS1302\LCD\LCD.C
?????文件???????2763??2006-04-15?22:28??DS1302\LCD\LCD.DSK
?????文件???????6505??2006-04-15?22:22??DS1302\LCD\LCD.HEX
?????文件???????7186??2006-04-15?22:22??DS1302\LCD\LCD.LST
?????文件???????8950??2006-04-15?22:22??DS1302\LCD\LCD.M51
?????文件???????3790??2006-04-15?22:22??DS1302\LCD\LCD.OBJ
?????文件???????2636??2006-04-14?22:38??DS1302\LCD\lcd.PRJ
?????文件??????59312??2007-06-22?21:54??DS1302\LCD\LCD四線\000.JPG
?????文件??????13101??2007-06-22?21:52??DS1302\LCD\LCD四線\LCD1602
?????文件???????4837??2007-10-15?10:11??DS1302\LCD\LCD四線\LCD1602.h
?????文件???????5029??2007-06-22?21:52??DS1302\LCD\LCD四線\LCD1602.hex
?????文件?????????43??2007-06-22?21:52??DS1302\LCD\LCD四線\LCD1602.lnp
?????文件??????18821??2007-06-22?21:52??DS1302\LCD\LCD四線\LCD1602.M51
?????文件????????992??2007-06-22?21:45??DS1302\LCD\LCD四線\LCD1602.Opt
?????文件????????855??2007-06-22?21:52??DS1302\LCD\LCD四線\LCD1602.plg
?????文件???????1681??2007-06-22?21:40??DS1302\LCD\LCD四線\LCD1602.Uv2
?????文件????????992??2007-06-22?21:45??DS1302\LCD\LCD四線\LCD1602_Opt.Bak
?????文件???????1681??2007-06-22?21:40??DS1302\LCD\LCD四線\LCD1602_Uv2.Bak
?????文件????????247??2007-06-22?21:45??DS1302\LCD\LCD四線\Main.c
?????文件???????1169??2007-06-22?21:52??DS1302\LCD\LCD四線\Main.LST
?????文件??????15376??2007-06-22?21:52??DS1302\LCD\LCD四線\Main.OBJ
?????文件??????58059??2007-06-22?21:53??DS1302\LCD\LCD四線\Proteus\Last?Loaded?LCD1602.DBK
?????文件??????58070??2007-10-11?21:05??DS1302\LCD\LCD四線\Proteus\LCD1602.DSN
?????文件????????386??2007-11-22?19:07??DS1302\LCD\LCD四線\Proteus\LCD1602.PWI
............此處省略14個(gè)文件信息
評(píng)論
共有 條評(píng)論