基于51單片機的4人搶答器課程設(shè)計_第1頁
基于51單片機的4人搶答器課程設(shè)計_第2頁
基于51單片機的4人搶答器課程設(shè)計_第3頁
基于51單片機的4人搶答器課程設(shè)計_第4頁
基于51單片機的4人搶答器課程設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于51單片機的4人搶答器設(shè)計設(shè)計要求:以單片機為核心,設(shè)計一個4位競賽搶答器:同時供4名選手或4個代表隊比賽,分別用4個按鈕S0~S3表示。設(shè)置一個系統(tǒng)清除和搶答控制開關(guān)S,開關(guān)由主持人控制。搶答器具有鎖存與顯示功能。即選手按按鈕,鎖存相應(yīng)的編號,并在優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答器具有定時搶答功能,且一次搶答的時間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動“開始”鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間為0.5s左右。參賽選手在設(shè)定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。工作原理:通過鍵盤改變搶答的時間,原理與鬧鐘時間的設(shè)定相同,將定時時間的變量置為全局變量后,通過鍵盤掃描程序使每按下一次按鍵,時間加1(超過30時置0)。同時單片機不斷進行按鍵掃描,當(dāng)參賽選手的按鍵按下時,用于產(chǎn)生時鐘信號的定時計數(shù)器停止計數(shù),同時將選手編號(按鍵號)和搶答時間分別顯示在LED上。#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharnum; //定義中斷變量,num計滿20表示1秒時間到ucharnum1; //十秒倒計時顯示初始值ucharflag1,flag2; //清零鍵及開始鍵按下標(biāo)志位ucharflag3,flag4=0; //定義鍵盤按下標(biāo)志位ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //數(shù)碼管編碼 } } if(key2==0&&flag4==0) { delay(10); if(key2==0&&flag4==0) { display(2); TR0=0; flag1=flag2=0; flag4=1; beep(); while(!key2); } } if(key3==0&&flag4==0) { delay(10); if(key3==0&&flag4==0) { display(3); TR0=0; flag1=flag2=0; flag4=1; beep(); while(!key3); } } if(key4==0&&flag4==0) { delay(10); if(key4==0&&flag4==0) { display(4); TR0=0; flag1=flag2=0; flag4=1; beep(); while(!key4); } }}voidkeyscan() //檢測按鍵{ if(clear==0&&flag2!=1) //判斷清零鍵,判斷語句的作用是按下開始鍵清零鍵失效 { delay(10); if(clear==0&&flag2!=1) { while(!clear); //等待按鍵釋放 flag1=0; flag2=0; flag3=0; flag4=0; num=0; num1=10; clr(); //清零 flag1=1; //按下清零鍵標(biāo)志位 } } if(flag1==1) //如果按下清零鍵 { if(start==0&&flag3==0) //判斷開始鍵,判斷語句的作用是按下開始鍵后開始鍵失效 { delay(10); if(start==0&&flag3==0) { flag2=1; flag3=1; while(!start); } } } if(flag2==1) //按下開始鍵 { TR0=1; //啟動定時器0 dis30s(); player(); }}voidmain(){ TMOD=0x01; //設(shè)置定時器0工作方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; //開總中斷 ET0=1; //開定時器0中斷 while(1) //一直檢測按鍵 { keyscan(); }}voidT0_ser()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; num++; if(num==20

溫馨提示

  • 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

提交評論