版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> 課程名稱:單片機(jī)</b></p><p> 報(bào)告題目:倒數(shù)計(jì)數(shù)器</p><p><b> 學(xué)生姓名:</b></p><p><b> 所在學(xué)院:</b></p&
2、gt;<p><b> 專業(yè)班級(jí):</b></p><p> 學(xué)生學(xué)號(hào): </p><p><b> 指導(dǎo)教師: </b></p><p> 2013年 12月25 日</p><p><b> 課程設(shè)計(jì)任務(wù)書</b></p>&
3、lt;p><b> 摘要</b></p><p> 本設(shè)計(jì)是基于AT89C51單片機(jī)的倒數(shù)計(jì)數(shù)器,根據(jù)單片機(jī)技術(shù)原理,主要通過軟件設(shè)計(jì),制作出的倒數(shù)計(jì)數(shù)器能穩(wěn)定運(yùn)行,并當(dāng)計(jì)數(shù)完成時(shí)能發(fā)出聲音.本設(shè)計(jì)主要用到數(shù)碼管,LED燈,鍵盤,蜂鳴器,定時(shí)器/計(jì)數(shù)器等學(xué)習(xí)單片機(jī)中所必須掌握的部分.利用Keil uVision4作為編程軟件進(jìn)行源程序設(shè)計(jì)及調(diào)試。同時(shí)利用STC-ISP-V483作為
4、程序下載器,將源程序燒入單片機(jī)中。</p><p> 關(guān)鍵詞:單片機(jī) 鍵盤 計(jì)數(shù)器 蜂鳴器 LED燈 數(shù)碼管</p><p><b> 目錄</b></p><p> 一、概述…………………………………………………………………………1</p><p> 二、設(shè)計(jì)方案………………………………………………………………
5、2</p><p> 1方案總體思路…………………………………………………………………2</p><p> 2.程序流程圖……………………………………………………………………2</p><p> 三、程序…………………………………………………………3</p><p> 四、總原理圖及元器件清單……………………………………………………4
6、</p><p> 五、結(jié)論與心得………………………………………………………………………6</p><p> 六、參考文獻(xiàn)……………………………………………………………………6</p><p><b> 概述</b></p><p> 單片機(jī)是20世紀(jì)中期發(fā)展起來的一種面向控制的大規(guī)模集成電路模塊,具有功能強(qiáng)、體
7、積小、可靠性高、價(jià)格低廉等特點(diǎn),在工業(yè)控制、數(shù)據(jù)采集、智能儀表、機(jī)電一體化、家用電器等領(lǐng)域得到了廣泛的應(yīng)用,極大的提高了這些領(lǐng)域的技術(shù)水平和自動(dòng)化程度。 AT89C51是一種低功耗、高性能CMOS8位微控制器,具有8K 在線系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CP
8、U 和在系統(tǒng)可編程Flash,使得AT89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p> 本例利用AT89C51單片機(jī)設(shè)計(jì)一個(gè)簡易的倒數(shù)計(jì)數(shù)器,可用來煮方便面、煮開水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出聲響,通知倒計(jì)數(shù)終了。</p><p><b> 二、設(shè)計(jì)方案</b></p><p>
9、<b> 1. 方案總體思路</b></p><p> 用8051單片機(jī)控制程序執(zhí)行,通過LED動(dòng)態(tài)掃描來顯示倒計(jì)時(shí)。買次執(zhí)行中斷時(shí)判斷計(jì)時(shí)是否繼續(xù)倒計(jì)時(shí),同時(shí)通過按鍵掃描的方式來判斷是否有輸入更改倒計(jì)時(shí)的控制信息。通過單片機(jī)的處理來達(dá)到對倒計(jì)時(shí)的更新,當(dāng)?shù)褂?jì)時(shí)結(jié)束時(shí)來驅(qū)動(dòng)蜂鳴器發(fā)出響聲。</p><p><b> 2.程序流程圖</b>&
10、lt;/p><p><b> v</b></p><p><b> 三、程序</b></p><p> C語言比匯編語言簡潔緊湊,靈活方便,語法限制不太嚴(yán)格,自由度大,本例采用C語言進(jìn)行程序編寫。</p><p> #include <reg52.h></p><
11、p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> void diyi(); //函數(shù)聲明</p><p> void xianshi();//函數(shù)聲明</p><p> void panduan();//函數(shù)聲明</p&
12、gt;<p> void delay(uchar z);//函數(shù)聲明</p><p> uchar t=10,m=0,a,temp,b; //定義相關(guān)變量</p><p> uchar code at[]={0xe0,0xd0,0xb0,0x70};</p><p> uchar code as[10]={0xc0,0xf9,0xa4,0xb
13、0,0x99,0x92,0x82,0xf8,0x80,0x90};</p><p> uchar code bs[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};</p><p><b> //數(shù)組定義</b></p><p> void main()//主函數(shù)</p><p&
14、gt;<b> {</b></p><p> diyi(); //調(diào)用定義函數(shù)</p><p> EA=0; //關(guān)閉中斷 </p><p><b> while(1)</b></p><p><b> {</b></p><p>
15、 panduan(); //調(diào)用判斷函數(shù)</p><p><b> if(b==1)</b></p><p> xianshi();//調(diào)用顯示函數(shù)</p><p><b> }</b></p><p><b> }</b></p><p>
16、 void diyi()//定義定義子函數(shù)</p><p><b> {</b></p><p> P2=0xbf;P0=0xbf; P2=0x9f; P0=0xff;</p><p> TMOD=0x01;</p><p> TH0=(65536-50000)/256;</p><p
17、> TL0=(65536-50000)%256;</p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p
18、><p> void exer1() interrupt 1 //定義定時(shí)器/計(jì)數(shù)器子函數(shù)</p><p><b> {</b></p><p><b> uchar t1;</b></p><p> TH0=(65536-50000)/256;</p><p> T
19、L0=(65536-50000)%256;</p><p><b> t1++;</b></p><p> if(t1==10)</p><p> {P2=0x9f;P0=0x00;}</p><p> if(t1==20)</p><p><b> {</b>&
20、lt;/p><p> P2=0x9f;P0=0xff; //LED燈閃爍</p><p><b> t1=0; </b></p><p><b> if(t==0)</b></p><p><b> {</b></p><p> if((m
21、==0))</p><p><b> {</b></p><p> P2=0xbf; P0=0xff;P2=0x9f;P0=0xff;//定時(shí)時(shí)間到了 打開蜂鳴器 關(guān)閉LED燈</p><p> P2 = 0xdf;P0 =bs[4]; P2=0x1f; P0=0xff; P2 = 0xff; P0=0xff; P2=0x1f;P0=0
22、x00;</p><p><b> b=0;</b></p><p><b> EA=0;</b></p><p><b> }</b></p><p><b> if(m!=0)</b></p><p><b>
23、 {</b></p><p> t=60; m--;</p><p><b> } </b></p><p><b> } </b></p><p><b> t--;</b></p><p><b> }&
24、lt;/b></p><p><b> }</b></p><p> void xianshi()//定義顯示子函數(shù) </p><p><b> {</b></p><p> P2 = 0xdf;P0 =bs[0]; P2=0x1f; P0=0xff; P2 = 0xff;
25、P0 =as[t%10]; P2=0x1f;P0=0x00;delay(3);</p><p> P2 = 0xdf;P0 =bs[1]; P2=0x1f; P0=0xff; P2 = 0xff; P0 =as[(t/10)%10]; P2=0x1f;P0=0x00;delay(3);</p><p> P2 = 0xdf;P0 =bs[2]; P2=0x1f; P0=0xff
26、; P2 = 0xff; P0 =0xbf; P2=0x1f;P0=0x00;delay(3);</p><p> P2 = 0xdf;P0 =bs[3]; P2=0x1f; P0=0xff; P2 = 0xff; P0 =as[m%10]; P2=0x1f;P0=0x00;delay(3);</p><p> P2 = 0xdf;P0 =bs[4]; P2=0x1f;
27、P0=0xff; P2 = 0xff; P0 =as[(m/10)%10]; P2=0x1f;P0=0x00;delay(3);</p><p><b> }</b></p><p> void delay(uchar z)//延時(shí)子函數(shù)</p><p><b> {</b></p><p>
28、; uchar i,j;</p><p> for(i=0;i<z;i++)</p><p> for(j=0;j<110;j++);</p><p><b> }</b></p><p> void panduan()//判斷子函數(shù)</p><p><b>
29、{</b></p><p><b> P3=0xfd; </b></p><p><b> delay(5);</b></p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><
30、;p> if(temp!=0xf0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(temp!=0xfd)</p><p><b> {</b></p><p>
31、 P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 = 0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);</p><p> while(P3!=0xfd); //判斷是否有鍵按下及格鍵功能</p><p> if(temp==at[0]) </p><p>
32、; { a=1;EA=0; m++;if(m==60)m=0;t=0; P2=0x9f;P0=0xff; P2=0xbf;P0=0xbf;b=1; }</p><p> if(temp==at[1])</p><p><b> {</b></p><p><b> if(a==1)</b></p>
33、<p> {EA=1; a=0;m=5;t=0; P2=0x9f;P0=0xff;}</p><p><b> }</b></p><p> if(temp==at[2])</p><p><b> {</b></p><p><b> if(a==1)</b&
34、gt;</p><p> {EA=1;a=0;m=10;t=0; P2=0x9f;P0=0xff;}</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b&g
35、t; P3=0xfe; </b></p><p><b> delay(5);</b></p><p><b> temp=P3;</b></p><p> temp=temp&0xf0;</p><p> if(temp!=0xf0)</p><p
36、><b> {</b></p><p><b> delay(5);</b></p><p> if(temp!=0xfe)</p><p><b> {</b></p><p> P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;
37、P2 = 0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);</p><p> while(P3!=0xfe); //判斷是否有鍵按下及格鍵功能</p><p> if(temp==at[0])</p><p><b> {</b></p><p><b> if(a==
38、1)</b></p><p> {EA=1; a=0;m=20;t=0;P2=0x9f;P0=0xff;}</p><p><b> }</b></p><p> P2 = 0xc0;P0 =bs[4]; P2=0x00;P0=0xff;P2 = 0xe0;P0 =0xff;P2=0x00;P0=0x00;delay(3);&
39、lt;/p><p><b> }</b></p><p><b> }</b></p><p><b> } </b></p><p><b> 總原理圖</b></p><p><b> 1,單片機(jī)電路<
40、;/b></p><p><b> 2,按鍵電路</b></p><p> 3,LED燈及數(shù)碼管電路</p><p><b> 五、結(jié)論與心得</b></p><p> 在此次單片機(jī)項(xiàng)目設(shè)計(jì)的過程中,我進(jìn)一步認(rèn)識(shí)到全面專業(yè)知識(shí)以及邏輯思考方式對研究問題的重要性,以及成功最重要的一塊敲門
41、磚是不妥協(xié),不放棄!</p><p> 在這過程中書到用時(shí)方恨少,天下還是好人多——同學(xué)和老師的幫助給了我莫大的動(dòng)力。在這兩周周中,有時(shí)一天中翻專業(yè)書的次數(shù)比前三周理論學(xué)習(xí)時(shí)合起來翻的次數(shù)都多,對理論聯(lián)系實(shí)際的重要性有了更新的領(lǐng)悟。通過請教他人加上自己的理解,并與所學(xué)的知識(shí)緊密相結(jié)合,我相信這過程必然對我今后的學(xué)習(xí)和工作產(chǎn)生積極的影響。除了獲取新的知識(shí),深感鞏固舊的學(xué)問也很重要,尤其是結(jié)合了這幾年學(xué)的相關(guān)的專業(yè)
42、知識(shí),對各門課都做一個(gè)全面的溫習(xí),才不用帶著書柜跑。這不僅對我現(xiàn)在的學(xué)習(xí)乃至今后的工作都會(huì)有很大的幫助。 </p><p> 通過此次多功能數(shù)字計(jì)數(shù)器的設(shè)計(jì)制作,我們將從書本上學(xué)到的知識(shí)應(yīng)用于實(shí)踐,再次鞏固了我的單片機(jī)知識(shí)。雖然設(shè)計(jì)過程中遇到了很多困難,但是在解決這些問題的過程無疑是對自身專業(yè)素質(zhì)的提高。當(dāng)最終調(diào)試成功的時(shí)候也是對自己的一種肯定。此次的設(shè)計(jì)不僅增強(qiáng)了自己在專業(yè)設(shè)計(jì)方面的信息,鼓舞了自己,更是一
43、次興趣的培養(yǎng),為以后的學(xué)習(xí)方向明確了重點(diǎn)。 另外在這次設(shè)計(jì)中我們遇到了不少的問題,針對不同的問題我們采取不同的解決方法,最終一一解決了。在我們遇到不懂得問題時(shí),利用課本上、參考書上的知識(shí),以及網(wǎng)上的資料最終解決問題。和隊(duì)友之間相互討論,明白了團(tuán)隊(duì)合作的重要性。 本次項(xiàng)目設(shè)計(jì)還存在很多不足,比如,計(jì)數(shù)功能也不夠詳細(xì)等。以后爭取完善這個(gè)設(shè)計(jì),以提高我們的單片機(jī)設(shè)計(jì)能力。 這里很感謝李曉艷老師給我們的指導(dǎo)和教育,感謝她給我們提供了良好的學(xué)
44、習(xí)設(shè)計(jì)環(huán)境,也很感謝可愛的伙伴們,讓我覺得團(tuán)隊(duì)的力量很偉大。 希望老師給以評(píng)點(diǎn)和支持,我將在今后朝著這些方向?qū)W習(xí)奮斗。</p><p><b> 六、參考文獻(xiàn)</b></p><p> 【3】張毅剛,彭喜元,彭宇.單片機(jī)原理及應(yīng)用.高等教育出版社.2012,11</p><p> 【2】譚浩強(qiáng).C程序設(shè)計(jì)教程.清華大學(xué)出版社2011,0
45、8</p><p> 【3】張永瑞.電子測量技術(shù)基礎(chǔ)[M].西安:西安電子科技大學(xué)出版社,2002.</p><p> 【4】李春.數(shù)字頻率計(jì)設(shè)計(jì)[D].北京:邵陽電子廠,2011,02: 4頁到7頁;</p><p> 【5】張杰,楊艷麗,馬莉莉,張立倩.基于單片機(jī)C語言的數(shù)字頻率計(jì)設(shè)計(jì).</p><p> 內(nèi)蒙古農(nóng)業(yè)大學(xué)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于c語言單片機(jī)倒數(shù)計(jì)時(shí)器設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--音樂倒數(shù)計(jì)時(shí)器
- 課程設(shè)計(jì)-基于單片機(jī)音樂倒數(shù)計(jì)時(shí)器的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)電秒計(jì)時(shí)器
- 單片機(jī)課程設(shè)計(jì)-秒計(jì)時(shí)器設(shè)計(jì)
- 單片機(jī)時(shí)鐘計(jì)時(shí)器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--00-59_秒計(jì)時(shí)器
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)60秒計(jì)時(shí)器的設(shè)計(jì)與仿真
- 單片機(jī)答辯倒計(jì)時(shí)器課程設(shè)計(jì)報(bào)告
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---籃球比賽計(jì)分計(jì)時(shí)器
- 單片機(jī)課程設(shè)計(jì)---(00-59秒計(jì)時(shí)器設(shè)計(jì))
- 課程設(shè)計(jì)---基于單片機(jī)at89c51的數(shù)字鐘自動(dòng)計(jì)時(shí)器
- 60秒倒計(jì)時(shí)器-單片機(jī)課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)的紅外計(jì)時(shí)器
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--答辯倒計(jì)時(shí)器
- 單片機(jī)課程設(shè)計(jì)---倒數(shù)計(jì)數(shù)器
- 課程設(shè)計(jì)報(bào)告-籃球30秒倒數(shù)計(jì)時(shí)器
- 基于c語言單片機(jī)秒表課程設(shè)計(jì)
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論