版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include / 頭文件#include #define uchar unsigned char#define uint unsigned int sbit K1=P30;sbit K2=P31;sbit K6=P32;sbit K4=P35;sbit K5=P36;sbit K7=P33;sbit K3=P34;sbit K8=P37;sbit ALARM_BEEP = P13;uchar kedaoru=0,qw1=0;uchar second2,minute2,hour2,second3,minute3,hour3,second4,minute4,hour4,second5,minu
2、te5,hour5,second6,minute6,hour6,second7,minute7,hour7;uchar hour1=100; uchar e=1 ;uchar tmp=0;uchar qw=0;uchar g,f,p,q,h,m,second1,minute1,year1=1,month1,day1,jilu;uchar disbuffer12;disbuffer16; uchar displaytable10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar chocode6=0xfe,0xfd,0xfb,0xf7
3、,0xef,0xdf;uchar second,minute,hour,year,month,day,flag,flag1,naozhong,miaobiao=0;void delaynus(uchar nuchar i;for(i=0;i void delayms(uchar nuchar i;while(n-for(i=0;i<120;i+;void delay(uint euint m;for(m=0;m void write1302(uchar datuchar i;SCLK=0; /拉低SCLK,為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備delaynus(2; /稍微等待,使硬件做好準(zhǔn)備fo
4、r(i=0;i<8;i+ /連續(xù)寫8個(gè)二進(jìn)制位數(shù)據(jù)DATA=dat&0x01; /取出dat的第0位數(shù)據(jù)寫入1302delaynus(2; /稍微等待,使硬件做好準(zhǔn)備SCLK=1; /上升沿寫入數(shù)據(jù)delaynus(2; /稍微等待,使硬件做好準(zhǔn)備SCLK=0; /重新拉低SCLK,形成脈沖dat>>=1; /將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個(gè)數(shù)據(jù)位void writeset1302(uchar Cmd,uchar datRST=0; /禁止數(shù)據(jù)傳遞SCLK=0; /確保寫數(shù)居前SCLK被拉低RST=1; /啟動(dòng)數(shù)據(jù)傳輸delaynus(2; /稍微等待,使硬
5、件做好準(zhǔn)備write1302(Cmd; /寫入命令字write1302(dat; /寫數(shù)據(jù)SCLK=1; /將時(shí)鐘電平置于已知狀態(tài)RST=0; /禁止數(shù)據(jù)傳遞unsigned char read1302(voiduchar i,dat;delaynus(2; /稍微等待,使硬件做好準(zhǔn)備for(i=0;i<8;i+ /連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù)dat>>=1; /將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位if(DATA=1 /如果讀出的數(shù)據(jù)是1dat|=0x80; /將1取出,寫在dat的最高位SCLK=1; /將SCLK置于高電平,為下降沿讀出delaynus(2;
6、/稍微等待SCLK=0; /拉低SCLK,形成脈沖下降沿delaynus(2; /稍微等待return dat; /將讀出的數(shù)據(jù)返回uchar readset1302(uchar Cmdunsigned char dat;RST=0; /拉低RST 178 / 192SCLK=0; /確保寫數(shù)居前SCLK被拉低RST=1; /啟動(dòng)數(shù)據(jù)傳輸write1302(Cmd; /寫入命令字dat=read1302(; /讀出數(shù)據(jù)SCLK=1; /將時(shí)鐘電平置于已知狀態(tài)RST=0; /禁止數(shù)據(jù)傳遞return dat; /將讀出的數(shù)據(jù)返回void setprotect(bit flag/設(shè)置保護(hù)if(fl
7、ag=1writeset1302(0x8e,0x80;/寫入保護(hù)指令else writeset1302(0x8e,0x00;/寫入不保護(hù)指令void stoptime(bit flag / 是否將時(shí)鐘停止uchar dat;dat=readset1302(0x81;setprotect(0;if(flagwriteset1302(0x80, dat|0x80;elsewriteset1302(0x80, dat&0x7f;void init_ds1302(voidsetprotect(0; /根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令writeset1302(0x80,(45/10<
8、<4|(45%10; /根據(jù)寫秒寄存器命令字,寫入秒的初始值writeset1302(0x82,(59/10<<4|(59%10; /根據(jù)寫分寄存器命令字,寫入分的初始值writeset1302(0x84,(8/10<<4|(8%10; /根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的初始值writeset1302(0x86,(5/10<<4|(5%10; / riwriteset1302(0x88,(12/10<<4|(12%10; / yuewriteset1302(0x8c,(13/10<<4|(13%10; / nianvoid d
9、isplay1(void/調(diào)時(shí)if(miaobiao=0 if(K2=0delay(10;if(K2=0f+;delay(10;if(f=7f=1;while(!K2delay(10;switch(fcase 1:flag=1; e=1;kedaoru=1; miaobiao=0;break;case 2: kedaoru=1 ;break;case 3: kedaoru=1 ;break;case 4: e=2; kedaoru=1;break;case 5: kedaoru=1;break;case 6: kedaoru=1 ;break;default:break;if(kedaoru=
10、1if(K6=0delay(10;if(K6=0delay(10;while(!K6delay(10;switch(fcase 1: second+;if(second=60second=0;break;case 2: minute+;if(minute=60minute=0; break;case 3: hour+;if(hour=24hour=0; break;case 4: day+;if(day=32day=1; break;case 5: month+;if(month=13month=1; break;case 6: year+;if(year=100year=0; break;d
11、efault:break;if(kedaoru=1if(K7=0delay(10;if(K7=0delay(10;while(!K7delay(10;switch(fcase 1: second-;if(second=-1second=59;break;case 2: minute-;if(minute=-1minute=59; break;case 3: hour-;if(hour=-1hour=23; break;case 4: day-;if(day=0day=31; break;case 5: month-;if(month=0month=12; break;case 6: year-
12、;if(year=-1year=99; break;default:break;if(K3=0&&(kedaoru=1/保存鬧鐘second1=second;minute1=minute;hour1=hour;year1=year;month1=month;day1=day;delay(10;flag=0;f=0;naozhong=0;kedaoru=0;return; if(K4=0&&(kedaoru=1/保存時(shí)間delay(10;setprotect(0; /根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令writeset1302(0x80,(second/10&l
13、t;<4|(second%10; /根據(jù)寫秒寄存器命令字,寫入秒的值writeset1302(0x82,(minute/10<<4|(minute%10; /根據(jù)寫分寄存器命令字,寫入分的值writeset1302(0x84,(hour/10<<4|(hour%10; /根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的值writeset1302(0x86,(day/10<<4|(day%10; / riwriteset1302(0x88,(month/10<<4|(month%10; / yuewriteset1302(0x8c,(year/10<
14、<4|(year%10;flag=0;f=0;kedaoru=0;return;if(kedaoru=0if(K8=0delay(10;if(K8=0q+;delay(10;if(q=5q=1;while(!K8delay(10;switch(qcase 1: flag=1;e=1; second=0;minute=0;hour=0;EA=1; miaobiao=1; kedaoru=0; jilu=0;break;case 2: e=1; TR0=1;kedaoru=0;miaobiao=1; /啟動(dòng) break;case 3: e=1; TR0=0; kedaoru=0;miaobi
15、ao=1; /暫停break;case 4: e=1; q=2; kedaoru=0;miaobiao=1;break;default:break;if(miaobiao=1&&(K3=0second=0;minute=0;hour=0;EA=0;q=1;if(miaobiao=1&&(jilu=0if(K6=0delay(10;if(K6=0;h+;delay(10;if(h=6h=1;while(!K6switch(hcase 1: second2=second;minute2=minute;hour2=hour;break;case 2: second3=
16、second;minute3=minute;hour3=hour;break;case 3: second4=second;minute4=minute;hour4=hour;break;case 4: second5=second;minute5=minute;hour5=hour;break;case 5: q=3; jilu=1; q=1;break;default:break;if(miaobiao=1if(K7=0delay(10;if(K7=0;m+;delay(10;if(m=5m=1;while(!K7switch(mcase 1:flag=1; e=1;second=seco
17、nd2;minute=minute2;hour=hour2; q=3; break;case 2:second=second3;minute=minute3;hour=hour3;break;case 3:second=second4;minute=minute4;hour=hour4;break;case 4:second=second5;minute=minute5;hour=hour5;break;default:break; if(K5=0delay(10;if(K5=0delay(10;while(!K5delay(10;h=0;m=0;naozhong=1;EA=0;q=0;ked
18、aoru=0;miaobiao=0;e=1;flag=0;f=0;return;void display(voidif(K1=0delay(10;if(K1=0e+;delay(10;if(e=3e=1;while(!K1delay(10;switch(ecase 1:for (g=0;g<6;g+P2=chocodeg;p=disbufferg+6;P0=displaytablep;delay(80 ;P2=0xff;delay(1;break;case 2:for (g=0;g<6;g+P2=chocodeg;p=disbufferg;P0=displaytablep;dela
19、y(80 ;P2=0xff;delay(1; break;default:break;void time_init(void TMOD=0x01; /定時(shí)器設(shè)置TH0=(65536-10000/256; /定時(shí)器0賦初值TL0=(65536-10000%256;EA=1; /開總中斷ET0=1; TR0=0; /關(guān)定時(shí)器0中斷 void int0( interrupt 1 /秒表中斷 TH0=(65536-10000/256;TL0=(65536-10000%256;while(+qw=100 qw=0;second+;if(second>=60 second=0;minute+;if(
20、minute>=60 minute=0; hour+;if(hour>=24hour=0;void main(uchar ReadValue; /緩沖數(shù)據(jù)用的init_ds1302(; /ds1302初始化time_init(;while(1 if(flag=0ReadValue = readset1302(0x81; /從秒寄存器讀數(shù)據(jù)second=(ReadValue&0x70>>4*10 + (ReadValue&0x0F;/將讀出數(shù)據(jù)轉(zhuǎn)化 ReadValue = readset1302(0x83; /從分寄存器讀minute=(ReadValue
21、&0x70>>4*10 + (ReadValue&0x0F; /將讀出數(shù)據(jù)轉(zhuǎn)化ReadValue = readset1302(0x85; /從分寄存器讀hour=(ReadValue&0x70>>4*10 + (ReadValue&0x0F; /將讀出數(shù)據(jù)轉(zhuǎn)化ReadValue = readset1302(0x87; /從ri寄存器讀數(shù)據(jù)day=(ReadValue&0x70>>4*10 + (ReadValue&0x0F;/將讀出數(shù)據(jù)轉(zhuǎn)化ReadValue = readset1302(0x89; /從yue寄存器讀month=(ReadValue&0x70>>4*10 + (ReadValue&0x0F; /將讀出數(shù)據(jù)轉(zhuǎn)化ReadValue = readset1302(0x8d; /從nian寄存器讀year=(ReadValue&0x70>>4*10 + (ReadValue&0x0F; /將讀出數(shù)據(jù)轉(zhuǎn)化if(minute=59 if(second&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 湖北省隨州市部分高中2025-2026學(xué)年高一上學(xué)期期末聯(lián)考?xì)v史答案
- 2025-2026學(xué)年黑龍江省綏化十中九年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
- 職業(yè)暴露應(yīng)急預(yù)案考試試題及答案
- 初中師德培訓(xùn)課件
- 陜西省西安市雁塔區(qū)高新區(qū)第一中學(xué)2025~2026學(xué)年上學(xué)期期末考試八年級(jí)歷史試題(原卷版+解析版)
- 鋼結(jié)構(gòu)表面處理技術(shù)要點(diǎn)
- 地源熱泵系統(tǒng)技術(shù)應(yīng)用方法
- 2026屆遼寧省名校聯(lián)盟高三1月期末考試歷史試題(含答案)
- 市政給排水考試及答案
- 紹興轉(zhuǎn)業(yè)考試題目及答案
- 湖北中煙2024年招聘考試真題(含答案解析)
- 2026年常州機(jī)電職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫及答案1套
- 2026年稅務(wù)師執(zhí)業(yè)規(guī)范考試題目含答案
- 2026年江蘇農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測(cè)試模擬測(cè)試卷必考題
- 廣東省廣州市八區(qū)聯(lián)考2024-2025學(xué)年高一上學(xué)期期末教學(xué)質(zhì)量監(jiān)測(cè)數(shù)學(xué)試卷(含答案)
- 選舉法知識(shí)課件
- 蒸汽管道安裝現(xiàn)場(chǎng)施工方案
- 2024年中考英語真題分類匯編-記敘文閱讀理解(含答案)
- 道路清掃保潔服務(wù)方案投標(biāo)文件(技術(shù)方案)
- GB/T 2820.5-2025往復(fù)式內(nèi)燃機(jī)驅(qū)動(dòng)的交流發(fā)電機(jī)組第5部分:發(fā)電機(jī)組
- 蘇教版語文《唐詩宋詞選讀》選修(教材上全部詩歌,已全部校對(duì)無誤)
評(píng)論
0/150
提交評(píng)論