版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
DS1302設計的可調萬年歷(本制作所用數碼管全為共陽數碼管)我剛開始想做萬年歷的時候是上網找別人的程序,可是發(fā)現找了很多都不理想,要不就沒日歷和時間一起顯示,要不就不能調時間的,后來我研究了兩天,自己終于把程序編了出來。好了,廢話我就不多說,本制作我已經把實物做了出來,保證沒問題!下面附有仿真圖和實物圖。拍攝的效果不夠好,但實物是不錯的,本人實物中用三級管代替了仿真圖的74HC04非門,用哪個都是可以的……請注意:本程序分兩個C文件的,如果不會編,可以Q我:1107588997我直接發(fā)程序過去給你……軟件源程序:(初始化程序只在開始時用一次,之后要把它屏蔽掉)#include<reg52.h>#include<intrins.h>#include<zichengxu.c>uchartime_data[7]={0,0,0,0,0,0,0};ucharwrite_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80};ucharread_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81};voidwrite_ds1302_byte(uchardat){ uchari; for(i=0;i<8;i++) { sck=0; io=dat&0x01; dat=dat>>1; sck=1; }}voidwrite_ds1302(ucharadd,uchardat){ rst=0;_nop_(); sck=0;_nop_(); rst=1;_nop_(); write_ds1302_byte(add); write_ds1302_byte(dat); rst=0;_nop_(); io=1; sck=1;}ucharread_ds1302(ucharadd){ uchari,value; rst=0;_nop_(); sck=0;_nop_(); rst=1;_nop_(); write_ds1302_byte(add); for(i=0;i<8;i++) { value=value>>1; sck=0; if(io) value=value|0x80; sck=1; } rst=0;_nop_(); sck=0;_nop_(); sck=1; io=1; returnvalue;}voidread_rtc(void) { uchari; for(i=0;i<7;i++) { time_data[i]=read_ds1302(read_add[i]); }}voidtime_pros(void){ nian=time_data[0]/16*10+time_data[0]%16; yue=time_data[2]/16*10+time_data[2]%16; ri=time_data[3]/16*10+time_data[3]%16; xi=time_data[1]/16*10+time_data[1]%16; shi=time_data[4]/16*10+time_data[4]%16; fen=time_data[5]/16*10+time_data[5]%16; miao=time_data[6]/16*10+time_data[6]%16;}voidmain(){// Init_DS1302();//初始化 while(1) { read_rtc(); time_pros(); display(); button(); }} //----------------------------zichengxu.c----------------------------------------------#defineDUAN1P2#defineDUAN2P3#defineWEIP0#defineuintunsignedint#defineucharunsignedcharsbitsck=P1^1;sbitio=P1^0;sbitrst=P1^2;sbitk1=P1^4;sbitk2=P1^5;sbitk3=P1^6;sbitk4=P1^7;ucharshi,fen,miao,nian,yue,ri,xi,menu,y;unsignedcharcodequan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidwrite_ds1302_byte(uchardat);voidwrite_ds1302(ucharadd,uchardat);ucharread_ds1302(ucharadd);//voidInit_DS1302(void); //初始化voidread_rtc(void);voidtime_pros(void);voiddisplay(void);voidbutton(void);voiddelay(uintz){ucharx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}/*(voidInit_DS1302(void) //初始化{ write_ds1302(0x8e,0x00); write_ds1302(0x80,0x00); write_ds1302(0x82,0x20); write_ds1302(0x84,0x09); write_ds1302(0x86,0x25); write_ds1302(0x88,0x12); write_ds1302(0x8a,0x06); write_ds1302(0x8c,0x10); write_ds1302(0x90,0x01); write_ds1302(0xc0,0xf0); write_ds1302(0x8e,0x80);} */ voiddisplay(void){ WEI=0; DUAN1=quan[2]; if(menu==3&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[shi/10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=1; DUAN1=quan[0]; if(menu==3&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[shi%10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=2; if(menu==7&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[nian/10]; if(menu==2&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[fen/10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=3; if(menu==7&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[nian%10]; if(menu==2&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[fen%10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=4; if(menu==6&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[yue/10]; if(menu==1&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[miao/10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=5; if(menu==6&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[yue%10]; if(menu==1&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[miao%10]; delay(2); DUAN1=0xff; DUAN2=0xff; WEI=6; if(menu==5&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[ri/10]; DUAN2=0xff; delay(2); DUAN1=0xff; WEI=7; if(menu==5&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN1=0xff;} elseDUAN1=quan[ri%10]; if(menu==4&&y<80&&k1!=0&&k2!=0&&k3!=0&&k4!=0) {DUAN2=0xff;} elseDUAN2=quan[xi%10]; delay(2); DUAN1=0xff; DUAN2=0xff;}voidbutton(void){ if(k4==0) { delay(10); if(k4==0) { menu++; if(menu>=8){menu=0;} while(!k4){display();} } } if(menu==1) { if(k2==0) { delay(10); if(k2==0) { miao++; if(miao==60){miao=0;} while(!k2){display();} } } if(k3==0) { delay(10); if(k3==0) { miao--; if(miao==255){miao=59;} while(!k3){display();} } } write_ds1302(0x8e,0x00); write_ds1302(0x80,miao/10*16+miao%10); write_ds1302(0x8e,0x80); y++;if(y>=160){y=0;} } if(menu==2) { if(k2==0) { delay(10); if(k2==0) { fen++; if(fen==60){fen=0;} while(!k2){display();} } } if(k3==0) { delay(10); if(k3==0) { fen--; if(fen==255){fen=59;} while(!k3){display();} } } write_ds1302(0x8e,0x00); write_ds1302(0x82,fen/10*16+fen%10); write_ds1302(0x8e,0x80); y++;if(y>=160){y=0;} } if(menu==3) { if(k2==0) { delay(10); if(k2==0) { shi++; if(shi==24){shi=0;} while(!k2){display();} } } if(k3==0) { delay(10); if(k3==0) { shi--; if(shi==255){shi=23;} while(!k3){display();} } } write_ds1302(0x8e,0x00); write_ds1302(0x84,shi/10*16+shi%10); write_ds1302(0x8e,0x80); y++;if(y>=160){y=0;} } if(menu==4) { if(k2==0) { delay(10); if(k2==0) { xi++; if(xi==8){xi=1;} while(!k2){display();} } } if(k3==0) { delay(10); if(k3==0) { xi--; if(xi==0){xi=7;} while(!k3){display();} } } write_ds1302(0x8e,0x00); write_ds1302(0x8a,xi/10*16+xi%10); write_ds1302(0x8e,0x80); y++;if(y>=160){y=0;} } if(menu==5) { if(k2==0) { delay(10); if(k2==0) { ri++; if(ri==32){ri=1;} while(!k2){display();} } } if(k3==0) { delay(10); if(k3==0) { ri--; if(ri==0){ri=31;} while(!k3){display();} } } write_ds1302(0x8e,0x00); write_ds1302(0x86,ri/10*16+ri%10); write_ds1302(0x8e,0x80); y++;if(y>=160){y=0;} } if(menu==6) { if(k2==0) { delay(10); if(k2==0) { yue++; if(yue==13){yue=1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智能農業(yè)農藥化肥供應及服務合同3篇
- 2025年度年度城市經濟適用房購置合同3篇
- 2025年度股東借款及股權激勵計劃合同3篇
- 2025年農村個人承包土地經營權與農村信息化建設合同3篇
- 二零二五年度農業(yè)機械租賃與農業(yè)人才培養(yǎng)合作合同3篇
- 二零二五年度醫(yī)療耗材研發(fā)與創(chuàng)新合作合同3篇
- 二零二五年度合伙經營中式快餐店合同書2篇
- 個人承包城市照明設施維護2025年度合同3篇
- 2025年度綠色生態(tài)豬肉直供基地合作協(xié)議合同3篇
- 公墓墓位買賣及墓園墓碑售后服務保障協(xié)議3篇
- 2025年中國社會科學院外國文學研究所專業(yè)技術人員招聘3人歷年高頻重點提升(共500題)附帶答案詳解
- 【9歷期末】安徽省淮北市2023-2024學年九年級上學期期末歷史試題
- 2024年度物流園區(qū)運營承包合同范本3篇
- 第五單元第四節(jié) 全球發(fā)展與合作 教學實錄-2024-2025學年粵人版地理七年級上冊
- 貴州省部分學校2024-2025學年高三年級上冊10月聯(lián)考 化學試卷
- 期末綜合試卷(試題)2024-2025學年人教版數學五年級上冊(含答案)
- 2024-2025學年上學期武漢小學語文六年級期末模擬試卷
- 2023-2024學年貴州省貴陽外國語實驗中學八年級(上)期末數學試卷(含答案)
- 廣東省廣州市越秀區(qū)2022-2023學年八年級上學期期末歷史試題(含答案)
- 《爭做文明班級》課件
- 遼寧省大連市沙河口區(qū)2022-2023學年八年級上學期物理期末試卷(含答案)
評論
0/150
提交評論