單片機課程設(shè)計競賽智能搶答控制器_第1頁
單片機課程設(shè)計競賽智能搶答控制器_第2頁
單片機課程設(shè)計競賽智能搶答控制器_第3頁
單片機課程設(shè)計競賽智能搶答控制器_第4頁
單片機課程設(shè)計競賽智能搶答控制器_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、單片機課程設(shè)計競 賽智能搶答控制器 2006552118零六建筑設(shè)施智能技術(shù)二班摘要 近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅掌握單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,加以完善。智能搶答器是一種新型的搶答工具,它不僅能大量增加搶答人數(shù),更使搶答的公平性得以大大提高。本系統(tǒng)采用單片機at89c51為中心器件來設(shè)計智能搶答器,系統(tǒng)實用性強、操作簡單、擴展性強。設(shè)計內(nèi)容及要求1、利用mcs51單片機作為主控制器設(shè)計組成一個16路

2、智能搶答控制器;2、通過小鍵盤,可以按照2 - 4人一組設(shè)定分組搶答;3、搶答器具有數(shù)據(jù)鎖存功能,搶答開始后,若有選手搶答,編號立即鎖存,led數(shù)碼管顯示選手搶答組號。同時led指示燈給出提示,此外,要封鎖輸入電路;4、主持人宣布開始后,方可搶答,主持人可以清除原來的狀態(tài)。系統(tǒng)方案設(shè)計(1)控制系統(tǒng)主要由單片機應(yīng)用電路、存儲器接口電路、顯示接口電路,驅(qū)動接口電路組成。其中單片機at89c51是系統(tǒng)工作的核心,它主要負(fù)責(zé)各個部分協(xié)調(diào)工作。(2)硬件組成及所需元件:該系統(tǒng)的核心器件是at89c51,在其外圍上接上復(fù)位電路、上拉電阻、控制電路、驅(qū)動電路、數(shù)碼管、按鈕。元件為:晶振、電容、電阻、按鈕、

3、三極管等。p0.0p0.7和p2.0p2.4分別是32路搶答器的列與行的輸入口,p2.6、p2.7為數(shù)碼管的段選口,位選口用的是p1.0p1.7口輸出,p2.4口用于對組號的設(shè)置,p2.5口用于設(shè)置搶答的開始,p3.0口用于按鍵的顯示。 搶答器通過鍵盤掃描輸出按鍵信息,再通過單片機將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示的型碼。七段數(shù)碼管顯示在本設(shè)計中根據(jù)實際情況采用的是動態(tài)顯示方法。當(dāng)搶答完畢時,會在數(shù)碼管上顯示搶答的組號以表示搶答成功,同時按鍵顯示燈亮。畫出系統(tǒng)框圖51系列單片機4*4鍵盤七段數(shù)碼管8155擴展器復(fù)位電路晶振電路發(fā)光二極管等系統(tǒng)原理框圖完整的電路圖 完整電路圖工作原理32路搶答器用單

4、片機來設(shè)計制作完成,其功能實現(xiàn)主要通過軟件編程來實現(xiàn),采用單片機at89c51,它是低功耗、高性能的cmos型8位單片機。允許在系統(tǒng)內(nèi)改寫或用編程器編程。at89c51單片機由微處理器,存儲器,i/o口以及特殊功能寄存器等部分構(gòu)成。其存儲器在物理上設(shè)計成程序存儲器和數(shù)據(jù)存儲器兩個獨立的空間,片內(nèi)程序存儲器的容量為4kb,片內(nèi)數(shù)據(jù)存儲器為128個字節(jié)。89c51單片機有4個8位的并行的i/o口:p0口,p1口,p2口和p3口。各個接口均由接口鎖存器,輸出驅(qū)動器,和輸入緩沖器組成。p1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。p3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不

5、同的第二功能。在需要外部程序存儲器和數(shù)據(jù)存儲器擴展時,p0口作為分時復(fù)用的低8位地址/數(shù)據(jù)總線,p2口可作為高8位的地址總線。p3口也可作為at89c51的一些特殊功能口,同時為閃爍編程和編程校驗接收一些控制信號。at89c51的管腳圖外部振蕩電路單片機必須在at89c51的驅(qū)動下才能工作,在單片機內(nèi)部有一個時鐘振蕩電路,只需外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元。外部振蕩電路見下圖:單片機的外部中斷和內(nèi)部中端并存,單片機有硬件復(fù)位端,只要持續(xù)輸入4個周期的高電平即可實現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)如寄存器和存儲器的值都恢復(fù)到了初始值,所以不能對單片機進行硬件復(fù)位,只能軟件復(fù)

6、位,即當(dāng)程序執(zhí)行完畢后,將程序指針通過一條跳轉(zhuǎn)指令跳轉(zhuǎn)到指定程序。復(fù)位電路如下圖:復(fù)位后通過設(shè)置按鈕設(shè)置分組后,再通過開始按鈕進行搶答。電路圖如下圖:整個系統(tǒng)中還設(shè)計了個按鍵顯示燈,用來確定是否有人搶答。其電路圖如下圖:單片機的輸出通過驅(qū)動器聯(lián)接到數(shù)碼管,并在數(shù)碼管上顯示出來。它是共陰極的由高電平點亮。數(shù)碼管圖如下圖:軟件仿真控制系統(tǒng)仿真用到了keil軟件。keil軟件是目前最流行開發(fā)mcs-51系列單片機的軟件。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。keil c51是美國k

7、eil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結(jié)構(gòu)性、可讀性、可維護性上有明顯的優(yōu)勢,因而易學(xué)易用。用過匯編語言后再使用c來開發(fā),體會更加深刻。系統(tǒng)仿真還用到了proteus軟件,可通過仿真完全顯示出所設(shè)計系統(tǒng)的功能,對于程序的調(diào)試等有很大的幫助。根據(jù)系統(tǒng)硬件圖編寫系統(tǒng)調(diào)試程序#include<reg51.h>#define uchar unsigned charsbit p00=p00;sbit p01=p01;sbit p02=p02;sbit p03=p03;sbit p04=p04;sbit p05=p05;sbit p

8、06=p06;sbit p07=p07;sbit set=p24; /p2.4口做每組人數(shù)的設(shè)定 sbit start=p25; /p2.5口做主持人復(fù)位按鍵 sbit disp1=p26; /p2.6口做第一位數(shù)碼管顯示控制位 sbit disp2=p27; /p2.7口做第二位數(shù)碼管顯示控制位sbit p30=p30; /p3.0口做有人搶答顯示標(biāo)志 uchar code display10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共陰極數(shù)碼管段碼表 void delay_1ms(uchar time)/延時1 ms 子程序 u

9、char i,j;while(time-) for(i=0x02;i>0;i-) for(j=0xfa;j>0;j-);uchar keyscan()/鍵盤掃描子函數(shù),返回按鍵值 uchar idata i,j,keyvalue=0xff; while(1) p0=0xff;p2=0xf0;if(p0!=0xff) delay_1ms(10); /鍵盤消抖 if(p0!=0xff) if(p00=0) i=0; if(p01=0) i=1; if(p02=0) i=2; if(p03=0) i=3; if(p04=0) i=4; if(p05=0) i=5; if(p06=0) i

10、=6; if(p07=0) i=7; p0=0xff; p2=0xfe; if(p0!=0xff) j=0; p2=0xfd; if(p0!=0xff) j=1; p2=0xfb; if(p0!=0xff) j=2; p2=0xf7; if(p0!=0xff) j=3; keyvalue=i*4+j; if(keyvalue!=0xff) break;return keyvalue;void display_2(uchar dat)/兩位數(shù)碼管動態(tài)顯示 uchar idata shi,ge;shi=dat/10;ge =dat%10; p1=displayshi;disp1=0;delay_1

11、ms(10);disp1=1;p1=displayge; disp2=0;delay_1ms(10);disp2=1; void main()/主函數(shù) uchar idata number=4,keyvalue,squen;while(1)p30=1;/當(dāng)設(shè)置每組人數(shù)鍵按下時,進入鍵盤掃描, 得到每組人數(shù) if(set=0) delay_1ms(10); if(set=0) number=keyscan(); display_2(number);delay_1ms(1000); if(start=0)/當(dāng)主持人復(fù)位鍵按下時,進入鍵盤掃描,得到按鍵值 delay_1ms(10); if(star

12、t=0) keyvalue=keyscan(); p30=0; /當(dāng)有人搶答時,led發(fā)光提示 squen=keyvalue/number+1; /根據(jù)每組人數(shù),將按鍵值轉(zhuǎn)為組號 do display_2(squen); /調(diào)用顯示子函數(shù),顯示組號 while(start=1);/直到主持人復(fù)位,進行新的一輪搶答 do ; while(start!=1); 設(shè)置三人一組,按行2列3按鈕和行7列2按鈕示意圖如下。設(shè)置四人一組,按行3列3按鈕和行8列2按鈕示意圖如下。設(shè)置二人一組,按行3列2按鈕和行8列3按鈕示意圖如下。系統(tǒng)聯(lián)調(diào):完成仿真程序在實際硬件系統(tǒng)上的調(diào)試,說明調(diào)試的方法和技巧,調(diào)試中出現(xiàn)

13、的故障、原因及排除方法 通過keil軟件編程,再生成單片機可以識別的hex文件,在仿真過程中,在單片機中加載已生成的hex文件,便可以開始仿真。在調(diào)試中要先進行復(fù)位,再開始設(shè)置分組,然后按動開始按鈕,便可以通過搶答按鈕進行搶答了。有時需要修改程序,可修改正確后,重新在單片機中加載,仿真結(jié)果卻一樣。經(jīng)過詢問才知道是修改的程序還沒生成新的hex文件。當(dāng)生成新的hex文件后,重新加載后運行就成功了??偨Y(jié)設(shè)計電路的特點電路使用的器件比較簡單,連線比較簡潔。由于程序所占的容量比較小,所以沒有用到8155擴展器。按鍵的擺放很規(guī)范,適合實物連線,而且它的排放格式剛好符合實物鍵盤的格式。個人覺得還是比較符合設(shè)

14、計要求的。收獲和體會 單片機課程設(shè)計是一門很實用,很難的設(shè)計。這個設(shè)計用到了單片機、電路等方面的知識,通過這次課程設(shè)計,使我對單片機及其附屬電路有了一定的了解,對課本上的知識有了進一步的掌握,也深深明白了自己的不足。 完成本次課程設(shè)計的過程,是一個漫長的過程。經(jīng)歷了失落,失落,再失落,慢慢建立自信,奮發(fā),完成等幾個過程。剛接到設(shè)計題目時,一看就覺得好難,知識書上面都有,可卻不知道怎么去運用,發(fā)現(xiàn)其中的算法和設(shè)計是多么的復(fù)雜。經(jīng)過幾天的努力,卻一點成就也沒有。于是埋頭查東西,虛心向同學(xué)請教。終于最后,還是有了那么一點成果,那感覺是甜蜜的,雖然過程是痛苦的。沒有努力,哪來的收獲,就在這種痛苦與甜蜜的交換中,我學(xué)到了很多的知識,也學(xué)會

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論