版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 單片機原理作業(yè)</b></p><p> ——電子答題器(課程設計)</p><p><b> 目錄</b></p><p> 一、設計任務與選題2</p><p> 1.作業(yè)設計任務2</p><p> 2.作業(yè)設計選題2<
2、;/p><p> 二、系統(tǒng)原理與設計分析2</p><p> 1.系統(tǒng)設計分析2</p><p> 2.系統(tǒng)原理圖設計3</p><p> 三、程序流程圖設計4</p><p><b> 四、源程序設計5</b></p><p> 1.按鍵查詢程序5&l
3、t;/p><p> 2.聲光提示程序6</p><p> 3.提示燈旋轉程序7</p><p> 五、系統(tǒng)調試與仿真8</p><p><b> 六、心得體會9</b></p><p> 電子答題器(課程設計)</p><p><b> 一、設計任
4、務與選題</b></p><p><b> 1.作業(yè)設計任務</b></p><p> 查詢相關資料,設計一個你自己最感興趣的單片機系統(tǒng)。</p><p><b> 2.作業(yè)設計選題</b></p><p> 電子答題器是基于AT89C51、AT89C52單片機的電子答題系統(tǒng),通
5、過單刀多擲開關和答題按鈕控制正確選項。在各種知識競答的活動以及抽獎等游戲活動都可以應用。</p><p> 二、系統(tǒng)原理與設計分析</p><p><b> 1.系統(tǒng)設計分析</b></p><p> 單片機的最小系統(tǒng)+數(shù)碼管(共陰)+8個按鈕+直流電動機+L298+二輸入與門(可使用中斷)+報警蜂鳴器+LED+單刀多擲開關</p&
6、gt;<p> 沒有按鍵按下,則相應輸入為高電平,否則為低電平。這樣可通過讀入AT89C51的P3口的數(shù)據(jù)來判斷按下的是什么鍵。在有鍵按下后,要有一定的延時以防止抖動。當按鍵按下后,若單刀多擲開關撥至該按鍵,則低電平輸入AT89C2051的P3.7端口,在單片機內(nèi),經(jīng)查詢、識別、判決等環(huán)節(jié)實時發(fā)出鳴笛狀態(tài)控制信號,驅動電路將控制信號放大并推動聲光鳴笛設備完成相應動作,同時波特率發(fā)生器通過程序控制產(chǎn)生PWM信號送給電機驅動
7、芯片L298N的使能端口ENA,并通過輸入端口IN1和IN2來控制電機的啟動和停止。</p><p> 最終實現(xiàn)按下相應的按鍵顯示相應的選項數(shù)字,當按中答案時系統(tǒng)發(fā)出正確提示音并亮起旋轉提示燈,按下復位鍵時數(shù)字顯示為0,同時提示燈停止運轉。</p><p><b> 2.系統(tǒng)原理圖設計</b></p><p> 系統(tǒng)所用元件為單片機AT8
8、9C51、AT89C52、AT89C2051、CAP(30/0.1pF)、CAP-ELEC(22μF)、BUTTON、LED-RED、7SEG-COM-CATHODE、CRYSTAL(12MHz)、RES、MOTOR、L298、DIODE、AND_2、NPN、SPEARKER、IN4148。</p><p> 電子答題器原理圖如下圖所示:</p><p><b> 三、程序流
9、程圖設計</b></p><p><b> 四、源程序設計</b></p><p><b> 1.按鍵查詢程序</b></p><p> #include<reg51.h> </p><p> #define uint unsigned int </p>
10、<p> #define uchar unsigned char </p><p><b> uchar j; </b></p><p><b> uchar t; </b></p><p><b> uint n; </b></p><p> const
11、 uchar tab[]={0x3f,0x06,0x5b,</p><p> 0x4f,0x66,0x6d,</p><p> 0x7d,0x07,0x7f,0x6f};</p><p> void delay(uint n)</p><p><b> { uint i;</b></p><p
12、> for(i=0;i<n;i++);</p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p> uchar key;</p><p><b> P2=0x
13、00;</b></p><p><b> P3=0xff;</b></p><p><b> while(1) </b></p><p><b> {</b></p><p> while(P3==0xff);</p><p> d
14、elay(2000);</p><p> while(P3==0xff);</p><p><b> key=P3;</b></p><p> switch(key) </p><p><b> {</b></p><p> case 0xfe:P2=tab[1];
15、break;</p><p> case 0xfd:P2=tab[2];break;</p><p> case 0xfb:P2=tab[3];break;</p><p> case 0xf7:P2=tab[4];break;</p><p> case 0xef:P2=tab[5];break;</p><p&
16、gt; case 0xdf:P2=tab[6];break;</p><p> case 0xbf:P2=tab[7];break;</p><p> case 0x7f:P2=tab[0];break;</p><p><b> }</b></p><p><b> }</b></
17、p><p><b> }</b></p><p><b> 2.聲光提示程序</b></p><p> #include<reg51.h></p><p> #include<intrins.h></p><p> #define uint un
18、signed int</p><p> #define uchar unsigned char</p><p> sbit zj=P3^7;</p><p> sbit bell=P1^3;</p><p> sbit red=P1^7;</p><p> void Delay100us()</p>
19、;<p><b> {</b></p><p> uchar i,j;</p><p><b> _nop_();</b></p><p><b> _nop_();</b></p><p><b> i=2;</b></p&
20、gt;<p><b> j=15;</b></p><p><b> do</b></p><p><b> {</b></p><p> while( --j);</p><p><b> }</b></p><
21、;p> while( --i);</p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p><b> uint z=0;</b></p><p> uc
22、har a=0;</p><p><b> P3=0xff;</b></p><p><b> bell=1;</b></p><p><b> red=1;</b></p><p><b> while(1)</b></p><
23、;p><b> {</b></p><p><b> if(zj==0)</b></p><p><b> {</b></p><p><b> //bell=1;</b></p><p> bell=!bell;</p>&
24、lt;p><b> red=0;</b></p><p><b> a=1;</b></p><p> Delay100us();</p><p><b> }</b></p><p><b> else</b></p>&l
25、t;p><b> {</b></p><p><b> bell=0;</b></p><p><b> red=1;</b></p><p><b> a=0;</b></p><p><b> }</b></
26、p><p><b> if(a==zj)</b></p><p> for(z=0;z<1000;z++)</p><p><b> {</b></p><p> bell=!bell;</p><p><b> red=0;</b><
27、/p><p> Delay100us();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 3.提示燈旋轉程序</b></p&g
28、t;<p> #include<reg51.h></p><p> #define uchar unsigned char</p><p> uchar cycle=100;</p><p> uchar speed=50;</p><p> sbit IN1=P2^0;</p><p&
29、gt; sbit IN2=P2^1;</p><p> sbit ENA=P2^2;</p><p><b> void zz()</b></p><p><b> {</b></p><p><b> IN1=1;</b></p><p>&
30、lt;b> IN2=0;</b></p><p><b> }</b></p><p> void stop()</p><p><b> {</b></p><p><b> IN1=0;</b></p><p><b
31、> IN2=0;</b></p><p><b> }</b></p><p> void t0(void) interrupt 1 using 1</p><p><b> {</b></p><p> if(cycle>100)</p><p
32、><b> cycle=0;</b></p><p> if(cycle>speed)</p><p><b> ENA=0;</b></p><p><b> else</b></p><p><b> ENA=1;</b><
33、/p><p><b> cycle++;</b></p><p><b> }</b></p><p> void main(void)</p><p><b> {</b></p><p><b> EA=1;</b><
34、;/p><p><b> EX0=1;</b></p><p><b> IT0=1;</b></p><p> TMOD=0x02;</p><p><b> TH0=0x06;</b></p><p><b> TL0=0x06;&l
35、t;/b></p><p><b> TR0=1;</b></p><p><b> ET0=1;</b></p><p><b> PX0=1;</b></p><p><b> P1=0Xff;</b></p><p&
36、gt;<b> while(1)</b></p><p><b> {</b></p><p><b> }</b></p><p><b> }</b></p><p> void int0(void) interrupt 0 using 0&
37、lt;/p><p><b> {</b></p><p> switch(P1)</p><p><b> {</b></p><p> case 0xfe:zz();break;</p><p> case 0xfd:stop();break;</p>
38、<p> default:P1=0xff;break;</p><p><b> }</b></p><p><b> }</b></p><p><b> 五、系統(tǒng)調試與仿真</b></p><p><b> 六、心得體會</b>&l
39、t;/p><p> 這是這一學期的單片機課程的最后一次作業(yè),也是最難的一次作業(yè)。前幾次作業(yè)的不用心讓我前幾次作業(yè)的成績并不是特別好,經(jīng)過老師的多次批評教育以及一些同學的成果展示,在親眼目睹了自己和同學的成績之后,我意識到了我的問題所在,也在老師的批評下漸漸醒悟了。</p><p> 第五次作業(yè)才算是我認真完成的第一次作業(yè),而作為本學期最后一次作業(yè)的這次大作業(yè),我更是頗為重視,查閱資料,參考
40、書本,詢問同學,研究程序。因為對匯編語言依然不夠了解,所以我選擇了C語言來進行編程。從選擇原件、設計電路到編寫程序,每一個環(huán)節(jié)我都認認真真,在最后運行成功的那一刻,真的有一種成就感油然而生。</p><p> 從第一次用單片機點亮一盞燈開始,到能夠循環(huán)點亮一串燈,現(xiàn)在回想起來那時,真的的點亮了我的人生,點亮了我人生路上前進的明燈,好比在夜晚漆黑的太平洋上漂泊著忽然看見了空中的北斗星。</p>&l
41、t;p> 從能夠循環(huán)點亮一串燈,到用串口驅動數(shù)碼管,我完成了一次又一次的作業(yè)。這其中不乏有借鑒同學的地方,也有不用心之處,但是其實每一次作業(yè)完成的那一刻,我都會在內(nèi)心燃起一絲絲的喜悅。</p><p> 和許多同學一樣,在這次大作業(yè)的設計的過程中我遇到了很多的困難,因為之前的學習并沒有太努力,沒有下那么多的功夫,所以對知識的掌握和理解有很多不到位的地方,甚至有許多地方的知識是不連貫的,需要重新去學習。但
42、是功夫不負有心人,我最終還是克服了這些困難,親手設計完成了這次大作業(yè)的任務。紙上得來終覺淺,絕知此事要躬行。而這次作業(yè)設計則是很大程度地鍛煉了我的獨立思考與設計的能力,也讓我有機會把所學的東西與實際生活聯(lián)系在一起。</p><p> 比如這次大作業(yè),我就設計了一套電子答題系統(tǒng),就是在多次參加和舉辦學生活動的過程中所看所想的,而這門課程則給了我把這一想法仿真出來的機會。我設計的這套電子答題器一共有8個按鈕和一組單
43、刀多擲開關,通過對單刀多擲開關的調節(jié)將正確選項與相應的按鈕相匹配,8個按鈕中有7個選擇按鈕和一共復位按鈕。最終實現(xiàn)的效果是按下相應的按鍵顯示相應的選項數(shù)字,當選中正確答案時系統(tǒng)發(fā)出正確提示音并亮起旋轉提示燈,當按下復位鍵時數(shù)字顯示為0,同時提示燈停止運轉。這套電子答題器可以用于選擇題的自動判斷,也可以用來作為抽獎游戲的抽獎器,有著很好的學習性和娛樂性,可以廣泛地應用于各種現(xiàn)場活動中。</p><p> 張老師一
44、直強調“工具先行”,果不其然,在學習一門知識之前,首先掌握學習這門課程所需要的所有工具,這樣在學習這門課程時有會有“工具”來幫助我們理解所學的知識,更好更快更加直觀地把所學的知識全部展現(xiàn)出來,讓我們能夠更快地把所學的知識吸收,并融會貫通。這種學習的方法讓我受益匪淺,雖然我前半段的單片機學習并沒有其他同學那樣用心,但是即便如此,我所掌握的知識也是很快,相比較其他專業(yè)的同學也掌握得更加深刻。我想,這應該就是“工具先行”的威力所在吧。所以我也
45、希望,張老師能夠把“工具先行”這一理念傳達給其他的老師,并在大學的高等教育中推廣開來。</p><p> 我知道多年以來,張老師都是孤獨地探索著教育之道,早年的經(jīng)歷和現(xiàn)在的成果給了您莫大的財富和啟迪,讓您想要把我們帶離這種優(yōu)哉游哉得過且過的墮落現(xiàn)狀,避免我們再重蹈您的覆轍,多走彎路。經(jīng)過多年的深入的課程教學改革研究、探索研究和實踐,終于在不久前創(chuàng)建出了一套效果十分顯著的全新全異的教學模式——“能力驅動課程教學模
46、式”,在提高了課堂教學和教學質量的同時,成為了解決中國高等教育現(xiàn)存問題的一種解決方案。</p><p> 所以我很榮幸能夠遇見張老師,能夠上這一門課,也在上學期跟著張老師和學長學姐們參加了挑戰(zhàn)杯的研究,真的讓我覺得受益匪淺。張老師以大愛之心鑄就教育之魂,對我們盡心盡力,對教育盡職盡責,讓我們在提高能力的同時充滿了自信,收獲了知識,也收獲了成長。</p><p> 非常感謝張老師,感謝張
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機原理作業(yè)—電子答題器(課程設計)
- 單片機原理作業(yè)—電子答題器(課程設計)
- 單片機課程設計-單片機課程設計---電子時鐘
- 單片機課程設計---單片機籃球計分器
- 單片機課程設計(電子鬧鐘)
- 單片機簡易電子琴單片機課程設計
- 單片機課程設計--電子門鈴
- 單片機課程設計--電子秒表
- 單片機課程設計——電子秒表
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計--單片機模擬電子時鐘設計
- 單片機課程設計---單片機電子時鐘
- 單片機課程設計---電子秒表設計
- 單片機課程設計--- 單片機電子時鐘設計
- 單片機課程設計---基于單片機的電子琴設計
- 單片機課程設計--單片機模擬電子時鐘設計.doc
- 單片機課程設計---電子琴
- 單片機課程設計——電子時鐘
- 單片機課程設計——電子時鐘
- 電子表課程設計單片機
評論
0/150
提交評論