版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、目錄 TOC o 1-6 h z u HYPERLINK l _Toc311201577 第一章設(shè)計(jì)內(nèi)容要求 PAGEREF _Toc311201577 h 2 HYPERLINK l _Toc311201578 第一章、軟件設(shè)計(jì)要求 PAGEREF _Toc311201578 h 2 HYPERLINK l _Toc311201579 第三章、設(shè)計(jì)內(nèi)容 PAGEREF _Toc311201579 h 2 HYPERLINK l _Toc311201580 (一)、硬件設(shè)計(jì) PAGEREF _Toc311201580 h 3 HYPERLINK l _Toc311201581 3.1.1.晶振
2、電路及XTAL1,XTAL2的連接 PAGEREF _Toc311201581 h 3 HYPERLINK l _Toc311201582 、復(fù)位電路及復(fù)位引腳RST的連接 PAGEREF _Toc311201582 h 3 HYPERLINK l _Toc311201583 、數(shù)碼管顯示電路 PAGEREF _Toc311201583 h 3 HYPERLINK l _Toc311201584 、蜂鳴器模塊 PAGEREF _Toc311201584 h 5 HYPERLINK l _Toc311201585 、鍵盤(pán)設(shè)計(jì)模塊 PAGEREF _Toc311201585 h 6 HYPERLI
3、NK l _Toc311201586 、電路總圖見(jiàn)附錄一 PAGEREF _Toc311201586 h 7 HYPERLINK l _Toc311201587 (二)軟件設(shè)計(jì) PAGEREF _Toc311201587 h 7 HYPERLINK l _Toc311201588 、操作使用說(shuō)明 PAGEREF _Toc311201588 h 7 HYPERLINK l _Toc311201589 3.2.2、時(shí)鐘主要程序設(shè)計(jì) PAGEREF _Toc311201589 h 7 HYPERLINK l _Toc311201590 、鍵盤(pán)程序設(shè)計(jì) PAGEREF _Toc311201590 h
4、7 HYPERLINK l _Toc311201591 、中斷程序 PAGEREF _Toc311201591 h 8 HYPERLINK l _Toc311201592 、總程序清單見(jiàn)附錄二 PAGEREF _Toc311201592 h 10 HYPERLINK l _Toc311201593 第四章、調(diào)試過(guò)程與結(jié)果分析 PAGEREF _Toc311201593 h 10 HYPERLINK l _Toc311201594 第五章、總結(jié)與體會(huì) PAGEREF _Toc311201594 h 11 HYPERLINK l _Toc311201595 第六章、附錄 PAGEREF _Toc3
5、11201595 h 12 HYPERLINK l _Toc311201596 附錄一 電路原理總圖 PAGEREF _Toc311201596 h 12 HYPERLINK l _Toc311201597 附錄二 程序 PAGEREF _Toc311201597 h 12第一章設(shè)計(jì)內(nèi)容要求1.電子鐘 顯示時(shí)、分、秒。2.具有定時(shí)報(bào)警功能;每天可設(shè)置4個(gè)報(bào)警時(shí)間(時(shí)、分)。3.能借助鍵盤(pán),設(shè)置時(shí)鐘及報(bào)警時(shí)間。4.報(bào)警時(shí),蜂鳴器鳴響1秒,然后停止。5.具有秒表功能,可以儲(chǔ)存五個(gè)數(shù)據(jù),并且讀出數(shù)據(jù)。第一章、軟件設(shè)計(jì)要求1.簡(jiǎn)單的用戶使用說(shuō)明書(shū)。2.根據(jù)項(xiàng)目要求,設(shè)計(jì)軟件整體規(guī)劃,人機(jī)對(duì)話,各模塊的
6、關(guān)聯(lián),底層驅(qū)動(dòng)模塊。3.程序在必要的地方進(jìn)行注釋。4.每個(gè)函數(shù)的出入口要有輸入輸出參數(shù)的說(shuō)明。5.程序必須具有良好的可讀性,可重用,容易調(diào)試和維護(hù)。6.使用C語(yǔ)言進(jìn)行編程,允許中間加插匯編。第三章、設(shè)計(jì)內(nèi)容(一)、硬件設(shè)計(jì)3.1.1.晶振電路及XTAL1,XTAL2的連接 如右圖1圖1晶振電路模塊X1,X2分別是系統(tǒng)時(shí)鐘信號(hào)Fosc的輸入、輸出端。一般的晶振的負(fù)載電容為15p或12.5p ,如果再考慮元件引腳的等效輸入電容,則兩個(gè)22p的電容構(gòu)成晶振的振蕩電路就是比較好的選擇。本課程設(shè)計(jì)使用的開(kāi)發(fā)板是電子科技協(xié)會(huì)制作8051C單片機(jī)開(kāi)發(fā)系統(tǒng),該開(kāi)發(fā)板的使用的是石英晶體振蕩器,晶振頻率為fo=1
7、2MHz,而振蕩電容C1、C2的典型值取值范圍為2033pF,所以這里取22pF的瓷介電容。注意:為減少寄生電容對(duì)振蕩頻率的影響,在印制板上的電容C1和C2應(yīng)盡可能靠近CPU芯片的X1和X2引腳。3、復(fù)位電路及復(fù)位引腳RST的連接如作圖2所示,開(kāi)發(fā)板采用的是RC分立元件構(gòu)成的外部復(fù)位電路。掉電復(fù)位。當(dāng)正常工作時(shí),二極管D801反偏,圖2 復(fù)位電路斷電后,VCC下降,當(dāng)VCC=0時(shí),VCC與地GND等電位,電容C801通過(guò)D801放電,保證再上電時(shí),RST引腳為高電平,CPU可靠復(fù)位。D801的作用是給電容C801提供放電通路。按鍵復(fù)位。但按下按鈕PB801時(shí),電容C801通過(guò)R802放電,當(dāng)電
8、容C801放電結(jié)束后,RET引腳電位由R802和R803分壓比決定,由于R8020.7V,PN結(jié)導(dǎo)通,三極管飽和導(dǎo)通,從而驅(qū)動(dòng)數(shù)碼管DB0。圖3 數(shù)碼管顯示電路設(shè)計(jì)數(shù)碼管中各段發(fā)光二極管的伏安特性和普通二極管類(lèi)似,只是正向壓較大,正向電阻也大,在一定范圍內(nèi),其正向電流也發(fā)光亮度成正比。由于常規(guī)的數(shù)碼管起輝電流只有1-2mA,最大極限電流也只有10-30mA,最大不超過(guò)50mA,所以它的輸入端在5V電源的電路信號(hào)相接時(shí),一定要串加限流電阻,以免損壞元件。void sfmbj() s1=s/10; s2=s%10; display(7,s1); display(6,s2); display(2,1
9、7); f1=f/10; f2=f%10; display(4,f1); display(3,f2); display(5,17); m1=m/10; m2=m%10; display(1,m1); display(0,m2);void sfmpb() ps1=ps/10; ps2=ps%10; display(7,ps1); display(6,ps2); display(2,17); pf1=pf/10; pf2=pf%10; display(4,pf1); display(3,pf2); display(5,17); display(1,pm); display(0,17);void s
10、fm() shi1=shi/10; shi2=shi%10; display(7,shi1); display(6,shi2); display(2,17); fen1=fen/10; fen2=fen%10; display(4,fen1); display(3,fen2); display(5,17); miao1=miao/10; miao2=miao%10; display(1,miao1); display(0,miao2); 3、蜂鳴器模塊圖4 蜂鳴器模塊電路如圖所示,三極管的基極接單片機(jī)的P3.2口,當(dāng)P3.2口輸出低電平時(shí),三極管導(dǎo)通,蜂鳴器可以發(fā)出聲音。其基極的限流電阻R14
11、01=10K,當(dāng)VCC=5V時(shí),Ib=(VCC-0.7)/10K0.43mA,PNP三極管 8550的放大系數(shù)約為100,則最大集電極電流Ic大約43mA,足以驅(qū)動(dòng)蜂鳴器工作。此時(shí)集極的限流電阻Rc的經(jīng)典值為10。 if(12=shi&0=fen&0=miao) beep=0; if(12=shi&0=fen&5=miao) beep=1; if(kai=1) if(s=shi&f=fen&m=miao) beep=0; if(s=shi&f=fen&m+1=miao) beep=1;f=f+1; 3.1.5、鍵盤(pán)設(shè)計(jì)模塊本設(shè)計(jì)使用的開(kāi)發(fā)板,原來(lái)的設(shè)計(jì)4x4矩陣鍵盤(pán),如圖5所示。2C占據(jù)了,從
12、而導(dǎo)致P2.5,P2.6列鍵無(wú)法使用。因此只能使用P2.4列鍵,即只有四個(gè)按鍵可以使用,其等效電路圖如圖5右圖所示。 3.1.6、電路總圖見(jiàn)附錄一(二)軟件設(shè)計(jì)3.2.1、操作使用說(shuō)明 打開(kāi)開(kāi)關(guān),啟動(dòng)時(shí)鐘,單片機(jī)將從I2C中讀取數(shù)據(jù),時(shí)鐘開(kāi)始工作。8位數(shù)碼管分別顯示“時(shí)-分-秒”,在設(shè)計(jì)鬧鐘狀態(tài)下時(shí),顯示“時(shí)-分-秒”。當(dāng)按一下KEY3鍵,時(shí)鐘進(jìn)入調(diào)時(shí)狀態(tài);按key6鍵,時(shí)+;按key2鍵,時(shí)-;按key4鍵,分+;按key5鍵,分-;按key7置0;按key1,換回計(jì)數(shù)。此時(shí)數(shù)碼管顯示用戶設(shè)置的時(shí)間。設(shè)置結(jié)束,按下KEY4鍵作為確認(rèn),系統(tǒng)將把該數(shù)據(jù)儲(chǔ)存到I2C,以掉電保護(hù),并以設(shè)置好的時(shí)間進(jìn)
13、行計(jì)時(shí),判斷鬧鐘時(shí)間。當(dāng)時(shí)間與某個(gè)鬧鐘相同時(shí),蜂鳴器將會(huì)鳴叫一秒鐘。3.2.2、時(shí)鐘主要程序設(shè)計(jì) 本課程設(shè)計(jì)利用單片機(jī)芯片的定時(shí)器來(lái)固定時(shí)間,但該方法做出來(lái)的時(shí)鐘不是十分精確,不做長(zhǎng)期保留,僅供學(xué)習(xí)研究。 選用T1計(jì)時(shí)器,產(chǎn)生一個(gè)50ms中斷,循環(huán)20次,即為一秒。則1min為60個(gè)周期,1h為3600個(gè)周期。該開(kāi)發(fā)板采用12MHz晶體振蕩器,初值:TH1=(65536-50000/(12/12)/256=76=0 x4CTL1=(65536-50000/(12/12)%256=03.2.3、鍵盤(pán)程序設(shè)計(jì)按鍵功能:KEY6,2(0 xe7):調(diào)時(shí);KEY4,5(0 xeb):調(diào)分;KEY3(0
14、 xed):進(jìn)入設(shè)置時(shí)時(shí)間,設(shè)置鬧鐘狀態(tài);9 按鍵定義KEY1(0 xee):設(shè)置結(jié)束,確認(rèn)圖k=keyscan();if(k=3) ajc=1;if(ajc=1) if(k=8)pb=1; if(pb=0) kai=1; switch(k) case 6:s-;if(s=-1) s=23;break; case 2:s+;if(s=24) s=0;break; case 4:f+;if(f=60)f=0;break; case 5:f-; if(f=-1) f=59;break; case 7:s=0;f=0;m=0;break; case 1:ajc=0;break; sfmbj(); e
15、lse switch(k) case 4:TR0=TR0;flag=1;break; case 1:pb=0;break; sfmpb(); if(k=2) shu0a0+=ps; shu1a1+=pf; shu2a2+=pm; if(a2=6) a0=0;a1=0;a2=0; else switch(k) case 6:shi-;if(shi=-1) shi=23;break; case 2:shi+;if(shi=24) shi=0;break; case 4:fen+;if(fen=60)fen=0;break; case 5:fen-; if(fen=-1) fen=59;break;
16、 case 7:shi=0;fen=0;miao=0;break; case 8:TR0=TR0;flag=1;break; case 1:beep=1;kai=0;break; 3.2.4、中斷程序void t0_int() interrupt 1 TH0=(65536-500)/256; TL0=(65536-500)%256; num+; if(pb=1) pm1+; if(pm1=2) pm+; pm1=0; if(pm=10) pf+; pm=0; if(pf=60) pf=0; ps+; if(ps=60) ps=0; if(num=20) miao+; if(miao=60) m
17、iao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; k=keyscan();if(k=3) ajc=1;if(ajc=1) if(k=8)pb=1; if(pb=0) kai=1; switch(k) case 6:s-;if(s=-1) s=23;break; case 2:s+;if(s=24) s=0;break; case 4:f+;if(f=60)f=0;break; case 5:f-; if(f=-1) f=59;break; case 7:s=0;f=0;m=0;break; case 1:ajc=0;break; sf
18、mbj(); else switch(k) case 4:TR0=TR0;flag=1;break; case 1:pb=0;break; sfmpb(); if(k=2) shu0a0+=ps; shu1a1+=pf; shu2a2+=pm; if(a2=6) a0=0;a1=0;a2=0; else switch(k) case 6:shi-;if(shi=-1) shi=23;break; case 2:shi+;if(shi=24) shi=0;break; case 4:fen+;if(fen=60)fen=0;break; case 5:fen-; if(fen=-1) fen=5
19、9;break; case 7:shi=0;fen=0;miao=0;break; case 8:TR0=TR0;flag=1;break; case 1:beep=1;kai=0;break; sfm(); if(12=shi&0=fen&0=miao) beep=0; if(12=shi&0=fen&5=miao) beep=1; if(kai=1) if(s=shi&f=fen&m=miao) beep=0; if(s=shi&f=fen&m+1=miao) beep=1;f=f+1; 3.2.5、總程序清單見(jiàn)附錄二第四章、調(diào)試過(guò)程與結(jié)果分析秒表功能時(shí)鐘分-返回計(jì)數(shù)界面鬧鐘設(shè)置暫停在本次
20、課程設(shè)計(jì)中,我用萬(wàn)利 軟件和STC89C52單片機(jī)開(kāi)發(fā)系統(tǒng)調(diào)試程序,經(jīng)過(guò)多次調(diào)試,了解了如何進(jìn)行編譯、連接,還讀懂了單片機(jī)的相關(guān)電路原理圖,但是在下載程序運(yùn)行后并沒(méi)有顯示理想的效果。在檢查了多次之后,還是沒(méi)有找出錯(cuò)誤。接近一星期的日子里,不斷對(duì)程序進(jìn)行分析,拆合,修改,調(diào)試。經(jīng)過(guò)努力,雖然編寫(xiě)的程序比較簡(jiǎn)單,單片機(jī)試驗(yàn)的功能不是出眾,但基本把老師布置的內(nèi)容,按時(shí)完成。下圖為調(diào)試過(guò)程返回計(jì)數(shù)界面設(shè)置鬧鐘暫停置0時(shí)鐘分-時(shí)鐘分+秒表調(diào)試第五章、總結(jié)與體會(huì)接近一個(gè)星期的單片機(jī)課程設(shè)計(jì),使我學(xué)到了很多很多,不僅鞏固了以前所學(xué)過(guò)的模電,數(shù)電,單片機(jī)及C語(yǔ)言知識(shí),而且學(xué)到了很多在書(shū)本上所沒(méi)有學(xué)到過(guò)的知識(shí),
21、如,萬(wàn)利的軟件使用等。通過(guò)這次課程設(shè)計(jì),我懂得了理論與實(shí)際相結(jié)合的重要性,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題會(huì)很多,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己還有許多不足之處,所學(xué)到的知識(shí)還遠(yuǎn)遠(yuǎn)不夠, 對(duì)以前所學(xué)過(guò)的知識(shí)理解得也不夠深刻,掌握得不夠牢固,以至于還有一些功能要求難以完成,對(duì)單片機(jī)的結(jié)構(gòu)還有些模糊不清,特別對(duì)中斷??傊?,這次課程設(shè)計(jì)不但增加和鞏固了我的單片機(jī)方面的知識(shí),包括軟、硬件方面。第六章、附錄附錄一 電路原理總圖附錄二 程序#include#define uint unsigned
22、int#define uchar unsigned charsbit CLK=P34;sbit DIN=P23;sbit key=P10;sbit beep=P12;void sfm();uchar code table=0 x03,0 x9F,0 x25,0 x0D,0 x99,0 x49,0 x41,0 x1F,0 x01,0 x09,0 x11,0 xC1,0 x63,0 x85,0 x61,0 x71,0 xFE ,0 xFD ;/0到F以及小數(shù)點(diǎn)。的代碼uchar num,num1,k,flag,ajc,kai;char shi;miao,miao1,miao2,fen,fen1,f
23、en2,shi1,shi2,s,f,m,s1,s2,f1,f2,m1,m2;char ps,pf,pm,pm1,pb,ps1,ps2,pf1,pf2,pu;uchar a0,a1,a2,b0,b1,b2;uchar shu06,shu16 ,shu26;void delay(int t)/延時(shí)函數(shù)int i,j;for(i=t;i0;i-)for(j=50;j0;j-);void clear164()/將164輸出所以清零char k;for(k=0;k8;k+)DIN=1;CLK=0;CLK=1;uchar keyscan()char i,j;j=0;P0=0 xff; /清除沒(méi)有用到的位顯
24、示DIN=0;for(i=0;i0;n-)/去掉沒(méi)有顯示的位數(shù)CLK=0;CLK=1;DIN=1;CLK=0;CLK=1;P0=tableshu1; /顯示號(hào)碼的位數(shù)delay(1); P0=0XFF;for(m=8-wei1;m0;m-)/去掉剩下的位數(shù)DIN=1;CLK=0;CLK=1;void sfmbj() s1=s/10; s2=s%10; display(7,s1); display(6,s2); display(2,17); f1=f/10; f2=f%10; display(4,f1); display(3,f2); display(5,17); m1=m/10; m2=m%1
25、0; display(1,m1); display(0,m2);void sfmpb() ps1=ps/10; ps2=ps%10; display(7,ps1); display(6,ps2); display(2,17); pf1=pf/10; pf2=pf%10; display(4,pf1); display(3,pf2); display(5,17); display(1,pm); display(0,17);void sfm() shi1=shi/10; shi2=shi%10; display(7,shi1); display(6,shi2); display(2,17); fe
26、n1=fen/10; fen2=fen%10; display(4,fen1); display(3,fen2); display(5,17); miao1=miao/10; miao2=miao%10; display(1,miao1); display(0,miao2);void int_() TMOD=0 x01; TH0=(65536-500)/256; TL0=(65536-500)%256; ET0=1; EA=1; TR0=1; void t0_int() interrupt 1 TH0=(65536-500)/256; TL0=(65536-500)%256; num+; if(pb=1) pm1+; if(pm1=2) pm+; pm1=0; if(pm=10) pf+; pm=0; if(pf=60) pf=0; ps+; if(ps=60) ps=0; if(num=20) miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; k=keyscan();if(k=3) ajc=1;if(ajc=1) if(k=8)pb=1; if(pb=0) kai=1; switch(k) case 6:s-;if(s=-1) s=23;break; case
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度鈑金展柜研發(fā)與市場(chǎng)推廣合作合同2篇
- 二零二五年度高品質(zhì)實(shí)木地板全球購(gòu)銷(xiāo)合同范本3篇
- 二零二五年掘進(jìn)機(jī)操作人員安全教育與培訓(xùn)合同3篇
- 二零二五版房地產(chǎn)股權(quán)托管及資產(chǎn)增值管理合同3篇
- 二零二五年度高級(jí)別墅房產(chǎn)出售合同3篇
- 2025年高性能材料采購(gòu)與合作研發(fā)合同3篇
- 二零二五版健身俱樂(lè)部健身教練就業(yè)保障與福利合同3篇
- 2024新勞動(dòng)法對(duì)人力資源績(jī)效評(píng)估與反饋合同3篇
- 專(zhuān)業(yè)化生產(chǎn)流程服務(wù)協(xié)議2024版版B版
- 2024版公共廁所管理承包合同3篇
- 2022-2024北京初三二模英語(yǔ)匯編:話題作文
- 《阻燃材料與技術(shù)》-顏龍 習(xí)題解答
- 人教版八年級(jí)英語(yǔ)上冊(cè)Unit1-10完形填空閱讀理解專(zhuān)項(xiàng)訓(xùn)練
- 2024年湖北省武漢市中考英語(yǔ)真題(含解析)
- GB/T 44561-2024石油天然氣工業(yè)常規(guī)陸上接收站液化天然氣裝卸臂的設(shè)計(jì)與測(cè)試
- 《城市綠地設(shè)計(jì)規(guī)范》2016-20210810154931
- 網(wǎng)球場(chǎng)經(jīng)營(yíng)方案
- 2024年公司保密工作制度(四篇)
- 重慶市康德卷2025屆高一數(shù)學(xué)第一學(xué)期期末聯(lián)考試題含解析
- 建筑結(jié)構(gòu)課程設(shè)計(jì)成果
- 雙梁橋式起重機(jī)小車(chē)改造方案
評(píng)論
0/150
提交評(píng)論