版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
多功能數(shù)字鐘的設(shè)計(jì)報(bào)告一、設(shè)計(jì)內(nèi)容內(nèi)容:用單片機(jī)控制實(shí)現(xiàn)基本數(shù)字電子鐘的設(shè)計(jì),擴(kuò)展了4X4鍵盤和4位LED數(shù)碼顯示器,可用于顯示和按鍵控制。功能:能夠顯示時(shí)和分;可通過按鍵設(shè)置鬧鐘功能;可進(jìn)行整點(diǎn)報(bào)時(shí);可通過按鍵設(shè)置分校時(shí)。二、總體方案設(shè)計(jì)2.1功能分析數(shù)字電子鐘系統(tǒng)可以分為主控制單元、復(fù)位電路、鍵盤電路、顯示電路等。2.2各模塊功能說明晶振電路的功能:每個(gè)單片機(jī)系統(tǒng)里都有晶振,全程是叫晶體震蕩器,在單片機(jī)系統(tǒng)里晶振的作用非常大,他結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)基礎(chǔ)上的,晶振的提供的時(shí)鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。晶振用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。復(fù)位電路的功能:把電路初始化到一個(gè)確定的狀態(tài),一般來說,單片機(jī)復(fù)位電路作用是把一個(gè)例如狀態(tài)機(jī)初始化到空狀態(tài),而在單片機(jī)內(nèi)部,復(fù)位的時(shí)候單片機(jī)是把一些寄存器以及存儲(chǔ)設(shè)備裝入廠商預(yù)設(shè)的一個(gè)值。鍵盤電路:根據(jù)4×4矩陣鍵盤,它是用四條I/O線作為行線,四條I/O線作為列線組成的鍵盤。在行線和列線的每個(gè)交叉點(diǎn)上設(shè)置一個(gè)按鍵。這樣鍵盤上按鍵的個(gè)數(shù)就為4×4個(gè)。這種行列式鍵盤結(jié)構(gòu)能有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。實(shí)現(xiàn)按鍵控制鬧鐘,設(shè)置時(shí)間的功能。顯示電路的功能:采用4位共陰極數(shù)碼管驅(qū)動(dòng)方式P2口相應(yīng)的位置0
即選擇要顯示的數(shù)碼管位,P0口相應(yīng)的位置1即可顯示相應(yīng)的數(shù)碼管段。負(fù)責(zé)顯示時(shí)鐘的時(shí)和分。三、硬件系統(tǒng)設(shè)計(jì)使用了Produce軟件進(jìn)行硬件原理圖的仿真設(shè)計(jì)。部分電路如圖所示:a.主控電路:80C51單片機(jī)b.晶振電路:89C51單片機(jī)內(nèi)部的振蕩電路是一個(gè)高增益反相放大器,引線XTAL1和XTAL2分別為反相振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來自反相振蕩器的輸出,該反相放大器可以配置為片內(nèi)振蕩器。c.復(fù)位電路:采用上電復(fù)位,上電后,由于電容充電,使RST持續(xù)一段時(shí)間的高電平,從而實(shí)現(xiàn)上電復(fù)位操作。這不僅能使單片機(jī)復(fù)位,還能是單片機(jī)的外圍設(shè)備同時(shí)復(fù)位,當(dāng)程序出現(xiàn)錯(cuò)誤時(shí),可以隨時(shí)使電路復(fù)位。d.鍵盤電路:當(dāng)按鍵被按下時(shí),相應(yīng)的引腳被拉低,經(jīng)掃描后,獲得鍵值,并執(zhí)行鍵功能程序,因此通過按下同一個(gè)鍵,將執(zhí)行不同的功能程序。e.顯示電路:主要是數(shù)碼管顯示數(shù)字電子鐘的時(shí)和分。四、軟件系統(tǒng)設(shè)計(jì)4.1程序總體流程圖主函數(shù)的流程框圖:先進(jìn)行初始化設(shè)定初值,然后相關(guān)子程序的調(diào)用4.2主要模塊程序流程1.調(diào)用中斷服務(wù)子程序,循環(huán)次數(shù)++,因?yàn)槎〞r(shí)時(shí)長為50ms,所以循環(huán)次數(shù)為20時(shí),循環(huán)次數(shù)清0,秒++;秒為60時(shí)分加++,秒清0;分為60時(shí),時(shí)++,分清0;時(shí)為24時(shí),時(shí)清0,中斷返回。2.先確認(rèn)彈簧消抖是否有鍵按下,之后判斷掃描按鍵,不同的按鍵觸發(fā)不同功能。五、源代碼部分代碼展示:#include<reg51.h>#definetl0xba;
//宏定義tl賦初值#defineth0x3c;
//宏定義th賦初值sbitspeaker=P3^5;
//鬧鐘輸出
蜂鳴器unsignedcharcodeled[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//數(shù)碼管顯示的數(shù)字0-9的編碼unsignedcharcount0,second,minit,hour;
//時(shí)間時(shí)分秒unsignedintsecond1,minit1,hour1;//鬧鐘時(shí)分秒//timenum1是調(diào)節(jié)時(shí)間的按鍵按下的次數(shù)//timenum2是調(diào)節(jié)鬧鐘的按鍵按下的次數(shù)//f1是否在設(shè)置鬧鐘//f2是否在設(shè)置時(shí)間unsignedchartimenum1,timenum2,f1,f2;unsignedintdsflg;unsignedchartemp;//延時(shí)子程序
代碼燒路軟件自動(dòng)生成的voiddelay(void){unsignedinti;for(i=0;i<100;i++);}//50ms//數(shù)碼管顯示voiddisplay(void){P0=led[hour/10];//p0口送數(shù)據(jù)拆數(shù)顯示,時(shí)的十位P2=0xFE;
//片選
P2.0delay();
//延時(shí)P2=0xFF;
//片選關(guān)P0=led[hour%10];
//p0口送數(shù)據(jù)拆數(shù)顯示,時(shí)的個(gè)位P2=0xFD;
//P2.1delay();P2=0xFF;P0=led[minit/10];
//p0口送數(shù)據(jù)拆數(shù)顯示,分的十位P2=0xFB;
//P2.2delay();P2=0xFF;P0=led[minit%10];
//p0口送數(shù)據(jù)拆數(shù)顯示,分的個(gè)位P2=0xF7;
//P2.3delay();P2=0xFF;}//掃描按鍵voidkeyscan(){unsignedchartemp;P1=0xfe;
//給P1.0賦低電平temp=P1;temp=temp&0xf0;
//判斷P1.0那一列是否有鍵按下if(temp!=0xf0)//確定有鍵按下的時(shí)候{delay1(10);
//延時(shí)子程序進(jìn)行消抖temp=P1;temp=temp&0xf0;//再次判斷p1.0那一列是否有鍵按下if(temp!=0xf0)
//確定有鍵按下{temp=P1;
//將P1的值給tempswitch(temp){case0xee:
//p1.4口timenum1++;
//標(biāo)記++TR1=0;
//不啟動(dòng)T1,關(guān)閉蜂鳴器f2=0;
//進(jìn)入調(diào)時(shí)間的狀態(tài)if(timenum1==1||timenum2==1)
//如果timenum1==1調(diào)時(shí){dsflg=0;
//正在調(diào)時(shí)間}if(timenum1==3)
如果timenum1==4退出{TR1=1;
//啟動(dòng)T1timenum1=0;
//將按鍵次數(shù)歸零dsflg=1;
//退出調(diào)時(shí)間f2=1;
//退出調(diào)節(jié)時(shí)間}break;case0xde:
//p1.5口//調(diào)時(shí)間if(timenum1==1)
//如果timenum1==1調(diào)時(shí){hour++;
//小時(shí)++}if(timenum1==2)
//如果timenum1==2調(diào)分{minit++;}//調(diào)鬧鐘if(timenum2==1)
//如果timenum2==1調(diào)時(shí)
鬧鐘{hour1++;
//小時(shí)++}if(timenum2==2)
//如果timenum2==2調(diào)分
鬧鐘{minit1++;}break;case0xbe:
//p1.6口speaker=1;
//蜂鳴器處于不響狀態(tài)在設(shè)置時(shí)間的時(shí)候if(timenum1==1)
//如果timenum1==1調(diào)時(shí){hour--;
//小時(shí)--}if(timenum1==2)
//如果timenum1==2調(diào)分{minit--;
//分鐘--}//調(diào)鬧鐘if(timenum2==1)
//如果timenum2==1調(diào)時(shí)
鬧鐘{hour1--;
//小時(shí)--}if(timenum2==2)
//如果timenum2==2調(diào)分
鬧鐘{minit1--;}break;case0x7e://p1.7timenum2++;
//標(biāo)記++f1=0;
//進(jìn)入設(shè)置鬧鐘if(timenum2==1||timenum2==2)
//如果timenum2=1設(shè)定腦鐘的小時(shí){dsflg=0;
//正在調(diào)時(shí)間}if(timenum2==3)
//如果timenum2=3退出{timenum2=0;
//將按鍵次數(shù)歸零dsflg=1;
//退出調(diào)時(shí)間f1=1;
//退出設(shè)置鬧鐘}break;}while(temp!=0xf0)
//判斷按鍵是否彈起{temp=P1;temp=temp&0xf0;}}}}//按鍵控制時(shí)間設(shè)置voidKeykonzhi(){if(timenum1==1)
//如果timenum1==1調(diào)時(shí){if(hour>23)
//限位{hour=0;}P0=led[hour/10];
//顯示小時(shí)P2=0xFE;
//小時(shí)十位p2.0delay();P2=0xFF;P0=led[hour%10];//顯示小時(shí)P2=0xFD;
//小時(shí)個(gè)位
p2.1delay();P2=0xFF;}if(timenum1==2)
如果timenum1==2調(diào)分
//以下也是和調(diào)時(shí)一樣的方法{if(minit>59){minit=0;}P0=led[minit/10];P2=0xFB;
//分鐘十位
p2.2delay();P2=0xFF;P0=led[minit%10];P2=0xF7;
//分鐘個(gè)位
p2.3delay();P2=0xFF;}}//設(shè)置鬧鐘voidalmset(){timenum1=0;if(timenum2==1)
//如果timenum2==1設(shè)定鬧鐘的小時(shí){if(hour1>23)
//限位{hour1=0;}P0=led[hour1/10];//小時(shí)顯示
十位P2=0xFE;//p2.0delay();P2=0xFF;P0=led[hour1%10];P2=0xFD;//p2.1
小時(shí)個(gè)位顯示delay();P2=0xFF;}if(timenum2==2)
//如果timenum2==2設(shè)定鬧鐘的分鐘
和上面小時(shí)一樣{if(minit1>59){minit1=0;}P0=led[minit1/10];//顯示分鐘十位P2=0xFB;//
p2.2delay();P2=0xFF;P0=led[minit1%10];//顯示分鐘個(gè)位P2=0xF7;//p2.3delay();P2=0xFF;}}//控制鬧鐘(鬧鐘到了設(shè)定時(shí)間就會(huì)響)voidalmkozi(){if((hour1==hour)&&(minit1==minit)&
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 店里合同協(xié)議書
- 家政清洗合同范本
- 批墻勞務(wù)合同范本
- 巴西本地合同范本
- 工地定金合同范本
- 工程實(shí)施合同范本
- 工程餐廳合同范本
- 封頭采購合同范本
- 影樓員工合同協(xié)議
- 房屋噴漆合同范本
- 鋁錠貿(mào)易專業(yè)知識(shí)培訓(xùn)課件
- (正式版)DB13∕T 6148-2025 《冀北地區(qū)退化草地生態(tài)修復(fù)技術(shù)規(guī)程》
- 2025國考國資委申論高分筆記
- 2025年高級(jí)經(jīng)濟(jì)師《人力資源》考試真題及答案
- 咖喱知識(shí)培訓(xùn)課件
- 2025年中國多深度土壤水分傳感器行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 眼科護(hù)理讀書報(bào)告
- 護(hù)理查對(duì)制度試卷(含答案)
- 外墻真石漆合同補(bǔ)充協(xié)議
- HJ 75-2017固定污染源煙氣(SO2、NOX、顆粒物)排放連續(xù)監(jiān)測(cè)技術(shù)規(guī)范
- 河南省工會(huì)經(jīng)費(fèi)管理辦法
評(píng)論
0/150
提交評(píng)論