版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、#include<reg52.h> /52單片機(jī)頭文件,聲明各寄存器等#include <intrins.h>#define uint unsigned int /宏定義符號(hào),類似于替換#define uchar unsigned char sbit key1=P34; /宏定義位,也即IO口定義sbit key2=P35; sbit key3=P36; sbit key4=P37; sbit fm=P23;sbit dula=P26;sbit wela=P27;sbit bear=P23;uint i; /定義各符號(hào)uchar aa,bb,numdu,numwe;uc
2、har sec1,min1,hour1,year1,mon1,day1,temp1,temp2,sec2,min2,hour2; /主功能符號(hào)定義uchar code tablew=0x71,0x6d,0x5b,0x3f,0x6d,0x5b,0x06, ;uchar code tablewe=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;uchar code table=0x3f,0x06,0x5b,0x4f, /主功能數(shù)組定義0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void w1(); /子函數(shù)聲明
3、void w2();void w3();void w4();void delayms(uint xms); void timer0();void delay(uint z); /主功能子函數(shù)聲明 void init();void display(uchar hour,uchar min,uchar sec);void keyscan(); void alarm();void time1();/*- 主函數(shù)-*/void main() key1=1;key2=1;key3=1;key4=1;while(1) while(!key1)w1();while(!key2)w2();while(!key
4、3)w3();while(!key4)w4(); /*- 按鍵控制蜂鳴器過(guò)程 -*/void w1()if(!key1)delayms(300); /延時(shí)防抖,松手檢測(cè)if(key1) fm=!fm; /*- 按鍵控制流水燈過(guò)程 -*/void w2()loop1:P1=0xff;if(!key2) delayms(300);if(key2)aa=0xfe;/賦初值11111110 while(1) /大循環(huán)P1=aa;delayms(100); /延時(shí)500毫秒aa=_crol_(aa,1); /將aa循環(huán)左移1位后再賦給aa /相應(yīng)的cror是循環(huán)右移一位 if(!key2)delayms
5、(300);if(key2)goto loop1; /*- 按鍵控制數(shù)碼管過(guò)程 -*/void w3() loop2:wela=1; P0=0xff; if(!key3) delayms(300);if(key3)numdu=0;numwe=0;while(1)numdu+;if(numdu=7)numdu=1;dula=1; /開(kāi)段鎖存器P0=tablewnumdu; /送段碼dula=0; /鎖存段碼wela=1; /開(kāi)位鎖存器P0=tablewenumwe; /送位碼wela=0; /鎖存位碼numwe+;if(numwe=6)numwe=0;delayms(5); if(!key3)d
6、elayms(300);if(key3)goto loop2; /*- 按鍵控制作息時(shí)間過(guò)程 -*/void w4()if(!key4) delayms(300);if(key4)init(); /主功能主程序while(1) keyscan();alarm(); /*-延時(shí)函數(shù)(用于按鍵,蜂鳴器,流水燈等的延時(shí))-*/void delayms(uint xms)uint i,j;for(i=xms;i>0;i-) /i=xms即延時(shí)約xms毫秒for(j=110;j>0;j-);/*- 主功能相關(guān)所有子程序-*/void delay(uint z) /延時(shí)程序/uint x,y;
7、for(x=0;x<z;x+)for(y=0;y<110;y+);void init() /賦初值程序/TMOD=0X02; /選擇模式2,可自動(dòng)重裝載的八位計(jì)數(shù)器TH0=6; /給TH0賦初值 最大256-250=6 ;250與后面的3886相乘約為1sTL0=6; /給TH0賦初值 自動(dòng)裝入初值TL=TH6EA=1; /開(kāi)總中斷ET0=1; /開(kāi)T0中斷TR0=1;hour1=15;min1=20; sec1=57;year1=11;mon1=12;day1=24;void display(uchar hour,uchar min,uchar sec) /顯示程序/uchar
8、s1,s2,m1,m2,h1,h2; /該段用于數(shù)碼管顯示要賦的值s2=sec/10; /顯示秒的第二位,即個(gè)位s1=sec%10; /顯示秒的第一位,即十位 ; “%” 兩邊為整型,表示取余; m2=min/10; /下四句同m1=min%10;h2=hour/10;h1=hour%10;dula=1; /顯示小時(shí)的十位數(shù)P0=tableh2; dula=0;P0=0XFF; /P0初始化wela=1;P0=0XFE; /打開(kāi)第一位數(shù)碼管delay(1);dula=1; /顯示小時(shí)的個(gè)位數(shù)P0=tableh1+0x80; /0x80顯示小數(shù)點(diǎn)dula=0;P0=0XFF; /P0初始化wel
9、a=1; P0=0XFd; /打開(kāi)第二位數(shù)碼管delay(1);dula=1; /顯示分鐘的十位數(shù)P0=tablem2;dula=0;P0=0XFF;wela=1;P0=0XFb;delay(1);dula=1; /顯示分鐘的個(gè)位數(shù)P0=tablem1+0x80;dula=0;P0=0XFF;wela=1;P0=0XF7;delay(1);dula=1; /顯示秒的十位數(shù)P0=tables2;dula=0;P0=0XFf;wela=1;P0=0Xef;delay(1);dula=1; /顯示秒的個(gè)位數(shù)P0=tables1;dula=0;P0=0XFF;wela=1;P0=0Xdf;delay(
10、1);void keyscan() /鍵盤(pán)掃描程序/if(key1=0)delay(10);if(key1=0)/TR0=0;temp1+;if(temp1=4) /temp1用于記小時(shí),分鐘,秒的數(shù)碼管temp1=0; TR0=1;while(!key1)switch(temp2) /temp2用于記日歷,鬧鐘,時(shí)鐘三種模式case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;if(key2=0)delay(10);if
11、(key2=0)if(temp2=0)TR0=0;switch(temp1)case 1:sec1+;if(sec1=60)sec1=0;break;case 2:min1+;if(min1=60)min1=0;break;case 3:hour1+;if(hour1=24)hour1=0;break;while(!key2)display(hour1,min1,sec1);if(temp2=1)TR0=1;switch(temp1)case 1:day1+;if(day1=31)day1=1;break;case 2:mon1+;if(mon1=13)mon1=1;break;case 3:
12、year1+;if(year1=100)year1=0;break;while(!key2)display(year1,mon1,day1);if(temp2=2)TR0=1;switch(temp1)case 1:sec2+;if(sec2=60)sec2=0;break;case 2:min2+;if(min2=60)min2=0;break;case 3:hour2+;if(hour2=24)hour2=0;break;while(!key2)display(hour2,min2,sec2);if(key3=0)delay(10);if(key3=0)if(temp2=0)TR0=0;s
13、witch(temp1)case 1:if(sec1=0)sec1=60;sec1-;break;case 2:if(min1=0)min1=60;min1-;break;case 3:if(hour1=0)hour1=24;hour1-;break;while(!key3)display(hour1,min1,sec1);if(temp2=1)TR0=1;switch(temp1)case 1:if(day1=1)day1=31;day1-;break;case 2:if(mon1=1)mon1=13;mon1-;break;case 3:if(year1=0)year1=100;year1
14、-;break;while(!key3)display(year1,mon1,day1);if(temp2=2)TR0=1;switch(temp1)case 1:if(sec2=0)sec2=60;sec2-;break;case 2:if(min2=0)min2=60;min2-;break;case 3:if(hour2=0)hour2=24;hour2-;break;while(!key3)display(hour2,min2,sec2);if(key4=0)delay(10);if(key4=0)temp1=0;temp2+;if(temp2=3)temp2=0;while(!key
15、4)switch(temp2)case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;switch(temp2)case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;void alarm() /蜂鳴器,流水燈程序/uint i; if(hour1=hou
16、r2&&min1=min2&&(sec1>=sec2&&sec1<sec2+30)|(min1=0&&sec1<20) /鬧鐘響30秒,正點(diǎn)報(bào)時(shí)20秒功能for(i=0;i<20;i+)bear=bear;P1=P1;switch(temp2)case 0:display(hour1,min1,sec1);break;case 1:display(year1,mon1,day1);break;case 2:display(hour2,min2,sec2);break;delay(30);bear=1;P1=0xff;/*void mainw() /主功能主程序/init();while(1) keyscan
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年度城市綜合體建設(shè)項(xiàng)目承包主體合同4篇
- 2025年華師大新版七年級(jí)地理下冊(cè)月考試卷含答案
- 虛擬購(gòu)物場(chǎng)景智能導(dǎo)航-洞察分析
- 2025年滬教版九年級(jí)科學(xué)下冊(cè)月考試卷
- 2025年人教新課標(biāo)八年級(jí)生物下冊(cè)階段測(cè)試試卷含答案
- 印染行業(yè)廢水處理創(chuàng)新-洞察分析
- 音樂(lè)治療在兒童自閉癥中的應(yīng)用效果-洞察分析
- 二零二五版煤炭運(yùn)輸質(zhì)量保證合同范本4篇
- 2025年華師大新版九年級(jí)物理上冊(cè)階段測(cè)試試卷含答案
- 郁病心理康復(fù)研究進(jìn)展-洞察分析
- GB/T 37238-2018篡改(污損)文件鑒定技術(shù)規(guī)范
- 普通高中地理課程標(biāo)準(zhǔn)簡(jiǎn)介(湘教版)
- 河道治理工程監(jiān)理通知單、回復(fù)單范本
- 超分子化學(xué)簡(jiǎn)介課件
- 高二下學(xué)期英語(yǔ)閱讀提升練習(xí)(一)
- 易制爆化學(xué)品合法用途說(shuō)明
- 【PPT】壓力性損傷預(yù)防敷料選擇和剪裁技巧
- 大氣喜慶迎新元旦晚會(huì)PPT背景
- DB13(J)∕T 242-2019 鋼絲網(wǎng)架復(fù)合保溫板應(yīng)用技術(shù)規(guī)程
- 心電圖中的pan-tompkins算法介紹
- 羊絨性能對(duì)織物起球的影響
評(píng)論
0/150
提交評(píng)論