




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include <reg52.h>#include <intrins.h>#include <string.h>#define uint unsigned int#define uchar unsigned chartypedef unsigned char BYTE;sbit IO = P10;sbit SCLK = P11;sbit RST = P12;sbit RS = P20;sbit RW = P21;sbit EN = P22;uchar *WEEK="SUN","*","MON",&
2、quot;TUS","WEN","THU","FRI","SAT"uchar LCD_DSY_BUFFER1="DATE 00-00-00 "uchar LCD_DSY_BUFFER2="TIME 00:00:00 "uchar DateTime7;void DelayMS(uint ms) uchar i;while(ms-) for(i=0;i<120;i+); /DS1302片選口P1.2 /秒 分 時(shí) 日 月 星期 年BYTE code init =
3、0x00, 0x00, 0x20, 0x01, 0x01, 0x05, 0x10;BYTE data now7;void DS1302_Initial();void DS1302_SetTime(BYTE *p);void DS1302_GetTime(BYTE *p);/*void main() DS1302_Initial(); /初始化DS1302 DS1302_SetTime(init); /設(shè)置初始時(shí)間 DS1302_GetTime(now); /讀取當(dāng)前時(shí)間 while (1);*/*延時(shí)X微秒(STC12C5A60S212M)不同的工作環(huán)境,需要調(diào)整此函數(shù)此延時(shí)函數(shù)是使用1T的指
4、令周期進(jìn)行計(jì)算,與傳統(tǒng)的12T的MCU不同*/void Delay() _nop_(); _nop_();/*從DS1302讀1字節(jié)數(shù)據(jù)*/BYTE DS1302_ReadByte() BYTE i; BYTE dat = 0; for (i=0; i<8; i+) /8位計(jì)數(shù)器 SCLK = 0; /時(shí)鐘線拉低Delay(); /延時(shí)等待 dat >>= 1; /數(shù)據(jù)右移一位if (IO) dat |= 0x80; /讀取數(shù)據(jù)SCLK = 1; /時(shí)鐘線拉高Delay(); /延時(shí)等待 return dat;/*向DS1302寫1字節(jié)數(shù)據(jù)*/void DS1302_Writ
5、eByte(BYTE dat) char i; for (i=0; i<8; i+) /8位計(jì)數(shù)器 SCLK = 0; /時(shí)鐘線拉低 Delay(); /延時(shí)等待 dat >>= 1; /移出數(shù)據(jù) IO = CY; /送出到端口 SCLK = 1; /時(shí)鐘線拉高 Delay(); /延時(shí)等待 /*讀DS1302某地址的的數(shù)據(jù)*/BYTE DS1302_ReadData(BYTE addr) BYTE dat; RST = 0; Delay(); SCLK = 0; Delay(); RST = 1; Delay(); DS1302_WriteByte(addr); /寫地址
6、dat = DS1302_ReadByte(); /讀數(shù)據(jù) SCLK = 1; RST = 0; return dat;/*往DS1302的某個(gè)地址寫入數(shù)據(jù)*/void DS1302_WriteData(BYTE addr, BYTE dat) RST = 0; Delay(); SCLK = 0; Delay(); RST = 1; Delay(); DS1302_WriteByte(addr); /寫地址 DS1302_WriteByte(dat); /寫數(shù)據(jù) SCLK = 1; RST = 0;/*寫入初始時(shí)間*/void DS1302_SetTime(BYTE *p) BYTE add
7、r = 0x80; BYTE n = 7; DS1302_WriteData(0x8e, 0x00); /允許寫操作 while (n-) DS1302_WriteData(addr, *p+); addr += 2; DS1302_WriteData(0x8e, 0x80); /寫保護(hù)/*讀取當(dāng)前時(shí)間*/void DS1302_GetTime(BYTE *p) BYTE addr = 0x81; BYTE n = 7; while (n-) *p+ = DS1302_ReadData(addr); addr += 2; /*初始化DS1302*/void DS1302_Initial() R
8、ST = 0; SCLK = 0; DS1302_WriteData(0x8e, 0x00); /允許寫操作 DS1302_WriteData(0x80, 0x00); /時(shí)鐘啟動 DS1302_WriteData(0x90, 0xa6); /一個(gè)二極管4K電阻充電 DS1302_WriteData(0x8e, 0x80); /寫保護(hù)uchar Read_LCD_State() uchar state;RS=0;RW=1;EN=1;DelayMS(1);state=P0;EN = 0;DelayMS(1);return state;void LCD_Busy_Wait() while(Read
9、_LCD_State()&0x80)=0x80);DelayMS(5);void Write_LCD_Data(uchar dat) LCD_Busy_Wait();RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMS(1);EN=0;void Write_LCD_Command(uchar cmd) LCD_Busy_Wait();RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMS(1);EN=0;void Init_LCD() Write_LCD_Command(0x38);DelayMS(1);Write_LCD_Command(0x01);De
10、layMS(1);Write_LCD_Command(0x06);DelayMS(1);Write_LCD_Command(0x0c);DelayMS(1);void Set_LCD_POS(uchar p) Write_LCD_Command(p|0x80);void Display_LCD_String(uchar p,uchar *s) uchar i;Set_LCD_POS(p);for(i=0;i<16;i+)Write_LCD_Data(si);DelayMS(1); void Format_DateTime(uchar d,uchar *a) a0=d/10+'0'a1=d%10+'0'void main() Init_LCD();while(1) DS1302_GetTime(now); Format_DateTime(DateTime6,LCD_DSY_BUFFER1+5);Format_DateTime(DateTime4,LCD_DSY_BUFFER1+8);Format_DateTime(DateTime3,LCD_DSY_BUFFER1+11);strcpy(LCD_DSY_BUFFER1+13,WEEKDateTime5);Format_DateTime(DateTime2,LCD_DSY_BUFFER1+5);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度房屋維修資金頂賬退還協(xié)議書
- 二零二五年度景區(qū)合作合同-景區(qū)旅游電子商務(wù)平臺合作協(xié)議
- 二零二五年度機(jī)場充電樁場地租賃及旅客服務(wù)協(xié)議
- 二零二五年度生物制藥公司股權(quán)轉(zhuǎn)讓及創(chuàng)新藥物開發(fā)合同
- 二零二五年度文化娛樂節(jié)目編排與市場推廣協(xié)議
- 二零二五年度臨時(shí)撫養(yǎng)權(quán)變更協(xié)議范本
- 二零二五年度商業(yè)辦公空間租賃免責(zé)合同
- 二零二五年度民宿合作社民宿與旅行社合作共贏協(xié)議
- 2025年度三方合同協(xié)議書:網(wǎng)絡(luò)安全防護(hù)系統(tǒng)研發(fā)與應(yīng)用合作協(xié)議
- 2025年度房屋買賣合同中介服務(wù)費(fèi)爭議訴狀
- 2022年南京信息職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測試模擬試題及答案解析
- 英語演講素材OfMiceandMen課件
- 廣東佛山祖廟導(dǎo)游詞
- 硬筆書法紙可打印
- 正丁烷的理化性質(zhì)及危險(xiǎn)特性表
- 入團(tuán)志愿書(2016版本)(可編輯打印標(biāo)準(zhǔn)A4) (1)
- 《朝天子詠喇叭》教學(xué)設(shè)計(jì)
- 《金融學(xué)基礎(chǔ)》實(shí)訓(xùn)手冊
- 稅收基礎(chǔ)知識考試題庫
- 1t燃?xì)庹羝仩t用戶需求(URS)(共13頁)
- 廣發(fā)證券分支機(jī)構(gòu)人員招聘登記表
評論
0/150
提交評論