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