




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、l 電路原理圖:l PCB電路圖:l 電路板3D效果圖:LED燈退出確定減加鬧鐘調(diào)時DS1302LCD1602插槽STC89C52RCLED對比度調(diào)節(jié)蜂鳴器正面(直插LCD1602,鍵盤,LED燈)背面(主控芯片,lcd對比度調(diào)節(jié),蜂鳴器)l 主程序:#include<reg52.h>#include"lcd1602.h"#include"ds1302.h"sbit add=P30;sbit sub=P31;sbit chooset=P32;sbit choosec=P33;sbit ok=P34;sbit out=P35;sbit buzz
2、=P22;sbit relay=P24;unsigned char welcome1=">>> Welcome <<< "unsigned char welcome2=" _ "unsigned int dd=0,c,t,flag1=0,flag,adjust,i,sec,min,hour,day,month,week,year,shi,fen,miao,nian,yue,ri,zhou,n,y,r,z,s,f,m;void delay5ms(void) /誤差 0us unsigned char a,b; for(b
3、=19;b>0;b-) for(a=130;a>0;a-);void delay1s(unsigned int d) /誤差 0us unsigned char a,b,c;while(d>0) for(c=167;c>0;c-) for(b=171;b>0;b-) for(a=16;a>0;a-);d-;void Ds1302_init()Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x80,55);Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Sin
4、gle_Byte_Write(0x82,59);Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x84,11);Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x86,21);Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x88,2);Ds1302_Single_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x8a,7);Ds1302_Sin
5、gle_Byte_Write(0x8e,0);Ds1302_Single_Byte_Write(0x8C,16);void display()while(1)Ds1302_Single_Byte_Write(0x8f,0);sec =Ds1302_Single_Byte_Read(0x81);Ds1302_Single_Byte_Write(0x8f,0);min =Ds1302_Single_Byte_Read(0x83);Ds1302_Single_Byte_Write(0x8f,0);hour =Ds1302_Single_Byte_Read(0x85);Ds1302_Single_By
6、te_Write(0x8f,0);day =Ds1302_Single_Byte_Read(0x87);Ds1302_Single_Byte_Write(0x8f,0);month =Ds1302_Single_Byte_Read(0x89);Ds1302_Single_Byte_Write(0x8f,0);week =Ds1302_Single_Byte_Read(0x8b);Ds1302_Single_Byte_Write(0x8f,0);year =Ds1302_Single_Byte_Read(0x8d);write_command(0x80+2);write_data(year /
7、10 % 10 + 48);write_data(year % 10 + 48);write_command(0x80+5);write_data(month / 10 % 10 + 48);write_data(month % 10 + 48);write_command(0x80+8);write_data(day / 10 % 10 + 48);write_data(day % 10 + 48);write_command(0x80+14);write_data(week + 48);write_command(0x80+0x40+8);write_data(hour / 10 % 10
8、 + 48);write_data(hour % 10 + 48);write_command(0x80+0x40+11);write_data(min / 10 % 10 + 48);write_data(min % 10 + 48);write_command(0x80+0x40+14);write_data(sec / 10 % 10 + 48);write_data(sec % 10 + 48);if(n=year)&&(y=month)&&(r=day)&&(z=week)&&(s=hour)&&(f=m
9、in)&&(m=sec)dd=200;if(dd>0)if(sec%2=0)P2 =0xa0;buzz=1;relay=1;P2 =0x1f;dd-;if(ok=0)delay5ms();if(ok=0)while(!ok);delay5ms();if(ok=1)dd=0;if(sec%2)!=0)P2 =0xa0;buzz=0;relay=0;P2 =0x1f;void keyscan()while(adjust>0)&&(flag=0)if(adjust=1)write_command(0x80+0x40+14);write_command(0x
10、0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)miao+;if(miao=60)miao=0;write_command(0x80+0x40+14);write_data(miao / 10 % 10 + 48);write_data(miao % 10 + 48);write_command(0x80+0x40+14);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)miao-;i
11、f(miao=-1)miao=59;write_command(0x80+0x40+14);write_data(miao / 10 % 10 + 48);write_data(miao % 10 + 48);write_command(0x80+0x40+14);write_command(0x0f);flag1=1;if(adjust=2)write_command(0x80+0x40+11);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)fen+;if(fen=60)fen
12、=0;write_command(0x80+0x40+11);write_data(fen / 10 % 10 + 48);write_data(fen % 10 + 48);write_command(0x80+0x40+11);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)fen-;if(fen=-1)fen=59;write_command(0x80+0x40+11);write_data(fen / 10 % 10 + 48);write_data(fen
13、 % 10 + 48);write_command(0x80+0x40+11);write_command(0x0f);flag1=1;if(adjust=3)write_command(0x80+0x40+8);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)shi+;if(shi=24)shi=0;write_command(0x80+0x40+8);write_data(shi / 10 % 10 + 48);write_data(shi % 10 + 48);write_c
14、ommand(0x80+0x40+8);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)shi-;if(shi=-1)shi=23;write_command(0x80+0x40+8);write_data(shi / 10 % 10 + 48);write_data(shi % 10 + 48);write_command(0x80+0x40+8);write_command(0x0f);flag1=1;if(adjust=4)write_command(0x80
15、+14);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)zhou+;if(zhou=8)zhou=1;write_command(0x80+13);write_data(zhou / 10 % 10 + 48);write_data(zhou % 10 + 48);write_command(0x80+14);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub
16、=1)zhou-;if(zhou=-1)zhou=7;write_command(0x80+14);write_data(zhou / 10 % 10 + 48);write_data(zhou % 10 + 48);write_command(0x80+14);write_command(0x0f);flag1=1;if(adjust=5)write_command(0x80+8);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)ri+;switch(yue)case 2:if(
17、nian%4=0)&&(nian%100!=0)|(nian%100=0)&&(nian%400=0)if(ri=29)ri=1;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;else if(ri=30)ri=1;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 +
18、48);write_command(0x80+8);write_command(0x0f);flag1=1;case 1:case 3:case 5:case 7:case 8:case 10:case 12:if(ri=32)ri=1;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;case 4:case 6:case 9:case 11:if(ri=32)ri=1;write_comma
19、nd(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)ri-;switch(yue)case 2:if(nian%4=0)&&(nian%100!=0)|(nian%100=0)&&(nian%400=0)if(ri=-1)ri=28;write_command(0x
20、80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;else if(ri=-1)ri=29;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;case 1:case 3:case 5:case 7:case 8:case 10
21、:case 12:if(ri=-1)ri=31;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_command(0x0f);flag1=1;case 4:case 6:case 9:case 11:if(ri=-1)ri=30;write_command(0x80+8);write_data(ri / 10 % 10 + 48);write_data(ri % 10 + 48);write_command(0x80+8);write_
22、command(0x0f);flag1=1;if(adjust=6)write_command(0x80+5);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5ms();if(add=1)yue+;if(yue=13)yue=1;write_command(0x80+5);write_data(yue / 10 % 10 + 48);write_data(yue % 10 + 48);write_command(0x80+5);write_command(0x0f);flag1=1;if(sub=0)dela
23、y5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)yue-;if(yue=-1)yue=12;write_command(0x80+5);write_data(yue / 10 % 10 + 48);write_data(yue % 10 + 48);write_command(0x80+5);write_command(0x0f);flag1=1;if(adjust=7)write_command(0x80+2);write_command(0x0f);if(add=0)delay5ms();if(add=0)while(!add);delay5
24、ms();if(add=1)nian+;if(nian=100)nian=0;write_command(0x80+2);write_data(nian / 10 % 10 + 48);write_data(nian % 10 + 48);write_command(0x80+2);write_command(0x0f);flag1=1;if(sub=0)delay5ms();if(sub=0)while(!sub);delay5ms();if(sub=1)nian-;if(nian=-1)nian=99;write_command(0x80+2);write_data(nian / 10 %
25、 10 + 48);write_data(nian % 10 + 48);write_command(0x80+2);write_command(0x0f);flag1=1;if(ok=0)delay5ms();if(ok=0)while(!ok);delay5ms();if(ok=1)adjust=0;if(flag1=1)if(t=1)Ds1302_Single_Byte_Write(0x80,miao);Ds1302_Single_Byte_Write(0x82,fen);Ds1302_Single_Byte_Write(0x84,shi);Ds1302_Single_Byte_Writ
26、e(0x8a,zhou);Ds1302_Single_Byte_Write(0x86,ri);Ds1302_Single_Byte_Write(0x88,yue);Ds1302_Single_Byte_Write(0x8c,nian);t=0;if(c=1)n=nian;y=yue;r=ri;z=zhou;s=shi;f=fen;m=miao;c=0;if(adjust=0)flag=1;if(out=0)delay5ms();if(out=0)while(!out);delay5ms();if(out=1)flag=1;if(t=1)&&(adjust!=0)if(choos
27、et=0)delay5ms();if(chooset=0)while(!chooset);delay5ms();if(chooset=1)adjust+;if(adjust=8)adjust=1;if(c=1)&&(adjust!=0)if(choosec=0)delay5ms();if(choosec=0)while(!choosec);delay5ms();if(choosec=1)adjust+;if(adjust=8)adjust=1; void main()EA=1;EX0=1;IT0=1;EX1=1;IT1=1;P2 =0x80;P0 =0xff;P2 =0x1f;
28、P2 =0xc0;P0 =0xff;P2 =0x1f;P2 =0xe0;P0 =0xff;P2 =0x1f;P2 =0xa0;relay=0;buzz=0;P2 =0x1f;init_1602();write_command(0x80);for(i=0;i<16;i+)write_data(welcome1i);write_command(0x80+40);for(i=0;i<16;i+)write_data(welcome2i);delay1s(2);init_1602();Ds1302_init();write_command(0x80);write_data('2
29、39;);write_data('0');write_command(0x80+4);write_data('-');write_command(0x80+7);write_data('-');write_command(0x80+0x40+10);write_data(':');write_command(0x80+0x40+13);write_data(':');display();void time_adjust() interrupt 0EX1=0;miao=sec;fen=min;shi=hour;zhou=week;ri=day;yue=month;nian=year;if(chooset=0)delay5ms();if(chooset=0)while(!chooset);delay5ms();if(chooset=1)write_command(0x80+0x40);write_data('>');write_data('>');write_data('T');t=1;adjust=
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題22 能源與可持續(xù)發(fā)展-2025年中考《物理》一輪復(fù)習(xí)知識清單與解題方法
- 二零二五年度藥品研發(fā)成果許可與銷售分成合同范本
- 2025年度勞動合同法企業(yè)勞動爭議調(diào)解中心設(shè)立合同
- 河道整治砂石運(yùn)輸合同模板
- 2025年度生物科技行業(yè)勞動合同解除協(xié)議范本
- 2025年度供應(yīng)鏈金融應(yīng)收賬款回款合作協(xié)議
- 家具銷售居間合同文件資料
- 2025年度品牌連鎖店鋪授權(quán)經(jīng)營合同
- 2025年度山林資源承包與生態(tài)補(bǔ)償金支付合同書
- 二零二五年度企業(yè)員工績效對賭合作框架協(xié)議
- 《選材專項訓(xùn)練》課件
- 附著式升降腳手架安裝平臺和架體檢查驗收表
- 小兒麻疹的護(hù)理查房
- DL-T 2574-2022 混流式水輪機(jī)維護(hù)檢修規(guī)程
- 《鋼鐵是怎樣煉成的》讀書分享課件
- GB/T 19830-2023石油天然氣工業(yè)油氣井套管或油管用鋼管
- 思想旗領(lǐng)航向心得體會
- 律師事務(wù)所章程
- 醫(yī)院合法性審查制度
- (新插圖)人教版四年級下冊數(shù)學(xué) 第2招 巧算24點(diǎn) 期末復(fù)習(xí)課件
- 駕駛員違規(guī)違章安全教育談話記錄表
評論
0/150
提交評論