完美搶答器仿真圖及程序_第1頁(yè)
完美搶答器仿真圖及程序_第2頁(yè)
完美搶答器仿真圖及程序_第3頁(yè)
完美搶答器仿真圖及程序_第4頁(yè)
完美搶答器仿真圖及程序_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)題目:基于單片機(jī)的智能八路搶答器設(shè)計(jì)一、設(shè)計(jì)項(xiàng)目簡(jiǎn)介1. 設(shè)計(jì)意義及目的搶答器在現(xiàn)實(shí)生活中應(yīng)用廣泛,比如在各類娛樂(lè)節(jié)目中,像中央電視臺(tái)的幸運(yùn)52,開(kāi)心辭典,因此做一個(gè)搶答器是具有現(xiàn)實(shí)意義的。搶答器具有人數(shù)限制,我們選擇做八路搶答器。當(dāng)某人搶答時(shí),能夠顯示他的號(hào)碼,限定他的答題時(shí)間,別人不能搶答,主持人要有啟動(dòng)和清空的權(quán)利。八路搶答器在搶答過(guò)程中,為了知道哪一組或哪一位選手先答題,必須要設(shè)計(jì)一個(gè)系統(tǒng)來(lái)完成這個(gè)任務(wù)。如果在搶答中,靠視覺(jué)是很難判斷出哪組先答題。利用單片機(jī)系統(tǒng)來(lái)設(shè)計(jì)搶答器,使以上問(wèn)題得以解決,即使兩組的搶答時(shí)間相差幾微秒,也可分辨出哪組優(yōu)先答題。搶答組數(shù)可以在八組以內(nèi)任意使用

2、,本系統(tǒng)采用at89s52單片機(jī)作為核心,控制系統(tǒng)的四個(gè)模塊分別為:?jiǎn)纹瑱C(jī)最小系統(tǒng)、顯示模塊、顯示驅(qū)動(dòng)模塊、搶答開(kāi)關(guān)模塊。2. 系統(tǒng)功能描述設(shè)計(jì)一個(gè)具有特定功能的搶答器。該搶答器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“p.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開(kāi)始按鈕后,搶答開(kāi)始并限定時(shí)間30s;10s內(nèi)無(wú)人搶答,蜂鳴器發(fā)出音響;主持人按下開(kāi)始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯示器顯示違規(guī)臺(tái)號(hào),違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺(tái)號(hào),蜂鳴器發(fā)出音響,其它搶答按鈕無(wú)效;正常搶答下,從按下?lián)尨鸢粹o開(kāi)始30s內(nèi),答完按鈕沒(méi)按下,則作超時(shí)處理,超時(shí)處理時(shí),違規(guī)指示燈亮,數(shù)碼管顯示違規(guī)臺(tái)號(hào)

3、。蜂鳴器發(fā)出音響;各臺(tái)數(shù)字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過(guò)主持人按復(fù)位按鈕。3. 設(shè)計(jì)達(dá)到目標(biāo)我們?cè)谝蟮幕A(chǔ)上拓展了一些功能,比如增加倒數(shù)剩下5s的時(shí)候每秒響一聲,最后一聲比較悠長(zhǎng),以提示選手搶答或者回答時(shí)間將盡,還將搶答按鍵和答完按鍵做在了同一個(gè)按鍵上,搶答之后選手答完題目再次按下該搶答按鍵即是答完,使剩余時(shí)間與臺(tái)號(hào)定格??傮w上我們達(dá)到了:按該搶答器上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“p.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。主持人按下開(kāi)始按鈕后,搶答開(kāi)始并限定時(shí)間30s;10s內(nèi)無(wú)人搶答,蜂鳴器發(fā)出音響;最后5s倒計(jì)時(shí)蜂鳴器每秒響一聲提示,最后一聲比較悠長(zhǎng),提示搶答時(shí)間到;主持人按

4、下開(kāi)始按鈕之前有人按下?lián)尨鹌?,搶答違規(guī),顯示器顯示違規(guī)臺(tái)號(hào),違規(guī)指示燈亮,其它按鈕不起作用;正常搶答,顯示器顯示臺(tái)號(hào),蜂鳴器發(fā)出音響,其它搶答按鈕無(wú)效;正常搶答下,從按下?lián)尨鸢粹o開(kāi)始30s內(nèi),答完按鈕沒(méi)按下,則作超時(shí)處理,超時(shí)處理時(shí),違規(guī)指示燈亮,數(shù)碼管顯示違規(guī)臺(tái)號(hào),和搶答期間一樣,回答期間最后5s倒計(jì)時(shí)蜂鳴器每秒響一聲提示,最后一聲比較悠長(zhǎng),提示回答時(shí)間到;答完按鈕設(shè)置在搶答按鍵上,再次按下?lián)尨鸢存I即是答完,此時(shí)蜂鳴器響一聲,時(shí)間定格在答完題目之后剩下的時(shí)間;各臺(tái)數(shù)字顯示的消除,蜂鳴器音響及違規(guī)指示燈的關(guān)斷,都要通過(guò)主持人按復(fù)位按鈕。二、系統(tǒng)硬件設(shè)計(jì)1. 系統(tǒng)設(shè)計(jì)方案(1) 利用譯碼芯片先根

5、據(jù)74ls148的優(yōu)先功能,確定了先搶答到的選手的編碼號(hào),再根據(jù)74ls279的鎖存功能,將其信號(hào)保持下來(lái),并實(shí)現(xiàn)了鎖定功能,將選手的編碼鎖定。再者,根據(jù)74ls48的譯碼功能,將74ls279鎖定的數(shù)字編譯成二進(jìn)制,將信號(hào)送到顯示器中。這樣就實(shí)現(xiàn)了搶答功能。原理框圖如圖1所示。 圖 1 原理框圖(2)利用單片機(jī)可以利用單片機(jī)的定時(shí)/計(jì)數(shù)器進(jìn)行計(jì)時(shí),設(shè)定搶答時(shí)間和答題時(shí)間;可以利用單片機(jī)的i/o口線接按鍵,通過(guò)按鍵按下后,所接口線電平的變化來(lái)判斷那位選手按下鍵。我選擇利用單片機(jī)做搶答器。1、仿真圖2、 程序/*操作非常簡(jiǎn)單*主持人先按鍵,然后有30s的時(shí)間,等待選手按鍵*選手在30s內(nèi)按鍵,就

6、顯示選手的號(hào)數(shù),及30s的回答倒計(jì)時(shí)*此時(shí),其他選手按鍵無(wú)效,*只有搶答選手按鍵,才停止,并顯示鎖定*最后,按復(fù)位,進(jìn)行新一輪搶答*/#includereg52.h#includeintrins.h#includeabsacc.h#define uchar unsigned char#define uint unsigned int #define ulong unsigned long/* 定義定時(shí)器t0和t1時(shí)間常數(shù)和方式控制字 */#define v_th0 0x3c#define v_tl0 0xb0#define v_tmod 0x11sbit p30=p30;sbit p36=p3

7、6;sbit p32=p32;sbit p31=p31;uchar led_buf8;/顯示緩沖數(shù)組uchar code dispcode11=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c;/段碼數(shù)組uchar keyzhi;uint m,time,time2; void delay(uint a) /延時(shí)程序while(a-);void led()/違規(guī)指示燈亮程序p32=0;delay(2000);delay(2000); void ring() /蜂鳴器程序p36=0;delay(10000);p36=1; void led

8、k() /p.顯示程序 uchar dmask=0x01; /位控碼初始化uchar pos;for(pos=0;pos3;pos+)p2=dmask; /位控碼輸出到位控口p0=dispcode10; /取顯示段碼并輸出到段控口delay(200); dmask=_crol_(dmask,1); /位控碼左移一位 void led_buf_auto_flush(void) reentrant /顯示緩沖區(qū)更新函數(shù) led_buf0=m; /獲得選手的號(hào)碼led_buf1=time/10; /獲得秒十位led_buf2=time%10; /獲得秒的個(gè)位 void timer0(void) in

9、terrupt 1 /定時(shí)器t0中斷服務(wù)函數(shù),選用定時(shí)器0工作方式為1 uchar j;static uchar click=0; th0=v_th0;tl1=v_tl0;/設(shè)置初始值50ms為循環(huán)20次為1ms,12mhz+click;if(click=20) /定時(shí)器0定時(shí)中斷次數(shù)-time;click=0; if(time=20)&(j=0xff)ring();if(time=5)&(time!=0)&(j=0xff) ring();if(time=0)&(j=0xff)ring(); delay(1000); ring();led_buf_auto_flush(); /led顯示緩沖區(qū)

10、時(shí)間值更新 void timer1(void) interrupt 3 /選用定時(shí)器1工作方式為1 uchar j; static uchar click=0; /定時(shí)器0定時(shí)中斷次數(shù)th1=v_th0;tl1=v_tl0; /設(shè)置初始值50ms為循環(huán)20次為1ms,12mhz+click;if(click=20) -time2;click=0;if(time2=5)&(time2!=0)&(j!=0xff) ring();if(time2=0)&(j!=0xff)ring();delay(1000);ring();tr1=0;p32=0;time=time2;led_buf_auto_flu

11、sh(); /led顯示緩沖區(qū)時(shí)間值更新void put_on_leds(void) /顯示輸出函數(shù)uchar dmask=0x01; /位控碼初始化uchar pos;for(pos=0;pos4;pos+)p2=dmask; /位控碼輸出到位控口p0=dispcodeled_bufpos; /取顯示段碼并輸出到段控口delay(100); /延時(shí)delay(100);dmask=_crol_(dmask,1); /修改未控碼 void init_sys(void) /進(jìn)行初始化并接受用戶的初始化時(shí)間設(shè)置tmod=v_tmod; th0=v_th0;tl0=v_tl0;th1=v_th0;t

12、l1=v_tl0; /設(shè)置時(shí)間初值tr0=0; ea=1; et0=1;tr1=0;et1=1; /開(kāi)啟中斷,關(guān)閉定時(shí)器 uchar keychuli() /處理與鍵盤相連的p1口的內(nèi)容,作為鍵值uchar k; k=p1; /p1口內(nèi)容送kreturn(k); /返回鍵值uchar key()/鍵盤掃描函數(shù),函數(shù)返回值即鍵值uchar keyzhi,keyzhii; /電子鐘鍵盤按鍵鍵值臨時(shí)存放keyzhi=keychuli(); /調(diào)p1口處理函數(shù)if(keyzhi!=0xff) /有鍵動(dòng)作延時(shí)去抖動(dòng),否則函數(shù)返回delay(100); /再次調(diào)p1口處理函數(shù)if(keyzhi!=0xff

13、) /真正有鍵按下,取鍵值并暫存keyzhii=keyzhi;while(keyzhi!=0xff) /判按鍵是否釋放,沒(méi)有釋放延時(shí)去抖動(dòng)等待釋放put_on_leds();put_on_leds();keyzhi=keychuli();keyzhi=keyzhii; /按鍵釋放后恢復(fù)按鍵鍵值 return(keyzhi); /返回按鍵鍵值void main() /主函數(shù)調(diào)用init_sys()函數(shù)對(duì)系統(tǒng)初始化,調(diào)用put_on_leds()函數(shù) uchar j;uchar c=1;/c 1,2,31:無(wú)人違規(guī)合法搶答,2:有人違規(guī),3: 允許答完uchar keyzhiii;while(1)

14、keyzhiii=key(); /調(diào)鍵盤掃描函數(shù)得到按鍵鍵碼ledk(); /調(diào)p.程序if(p30=0) /主持人是否按下啟動(dòng)鍵delay(100);if(p30=0) c=1; break;if(keyzhiii!=0xff)c=2;led();break;init_sys(); /調(diào)用init_sys()函數(shù)對(duì)系統(tǒng)初始化time=30;time2=30;tr0=1; /開(kāi)定時(shí)器0while(1) put_on_leds(); /調(diào)顯示函數(shù)delay(100); /調(diào)延時(shí)函數(shù)if(c=1) /判斷有沒(méi)有違規(guī)keyzhiii=key(); /調(diào)鍵盤掃描函數(shù)得到按鍵鍵碼j=keyzhiii;i

15、f(c=3)keyzhiii=key(); /調(diào)鍵盤掃描函數(shù)得到按鍵鍵碼if(time=0)while(1)tr0=0;put_on_leds();delay(100);if(c=1|c=2)switch(keyzhiii) /按鍵功能控制 case 0xfe: /1號(hào)選手搶答,搶答時(shí)間設(shè)定為三十秒 m=1;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;cas

16、e 0xfd: /2號(hào)選手搶答 m=2;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;case 0xfb: /3號(hào)選手搶答 m=3;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_f

17、lush();put_on_leds();break;case 0xf7: /4號(hào)選手搶答m=4;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;case 0xef: /5號(hào)選手搶答 m=5;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違

18、規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;case 0xdf: /6號(hào)選手搶答 m=6;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;case 0xbf: /7號(hào)選手搶答 m=7;if(c=1)ring(); /有人正常按下,蜂鳴器發(fā)出聲音tr1=1; /開(kāi)定時(shí)器1,關(guān)定時(shí)器0tr0=0;c=3;keyzhiii=0xff; if(c=2) /有人違規(guī)tr1=0;time=0; led_buf_auto_flush();put_on_leds();break;case 0x7f: /8號(hào)選手搶答 m=8;if(c=1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論