簡易四路搶答器_第1頁
簡易四路搶答器_第2頁
簡易四路搶答器_第3頁
簡易四路搶答器_第4頁
簡易四路搶答器_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機課程設計預習報告班 級: 建電141 姓 名: 付鵬鑫 學 號: 1412032031 設計題目: 四位競賽搶答器系統(tǒng)設計 設計時間: 2016.01.0301.07 評定成績: 評定教師: 目錄摘要2一、任務分析:3二、總體方案:42.1 可行方案52.2 方案設計5三、硬件設計:83.1 電路原理圖81.AT89C51簡介102.PCF8591簡介113.RESPACK8及RX8簡介.123.2 器件選擇14四、軟件設計:154.1程序處理流程154.2 程序流程圖154.3 程序介紹17五、調試過程:225.1 調試步驟22六、參考文獻:23 摘要:搶答器作為一種工具,已廣泛應用于

2、各自智力與知識競賽場合。本設計是基于C52單片機系統(tǒng)的四路搶答器??紤]到其限時回答功能,利用單片機的定時器/計數(shù)器定時和計數(shù)原理,將軟件和硬件結合,使系統(tǒng)能準確計時,并使數(shù)碼管正確的顯示時間。用開關做鍵盤輸出,揚聲器做提示報警。同時系統(tǒng)能夠實現(xiàn)搶答結果鎖存、調整定時時長(用pcf8591實現(xiàn)A/D轉換)以及手動復位功能。關鍵字:AT89C51單片機、鎖存、減計時、動態(tài)顯示、報警一、任務分析1.1 設計要求以及需求分析1、設計一個四位競賽搶答單片機系統(tǒng),可同時供4 名選手或4 個代表隊參加比賽,每隊設置單獨的搶答按鈕,編號為1、2、3、4,主要的需求是通過對按鈕的設置實現(xiàn)每個小組的搶答2、給節(jié)目

3、主持人設置一個“搶答開始”控制開關,用來控制搶答開始,主要需求是通過對搶答按鈕的設置實現(xiàn)搶答的開始3、給節(jié)目主持人設置一個“系統(tǒng)清除”控制開關,用來控制系統(tǒng)清零主要需求是通過對系統(tǒng)清零按鍵的設置以實現(xiàn)系統(tǒng)的清除功能的實現(xiàn)4、搶答器具有編號鎖存、搶答計分、時間顯示和聲響提示等功能。1)主持人按下“搶答開始”后,系統(tǒng)以減計時方式,顯示搶答剩余時間。2)如果搶答時間計時結束,卻沒有選手搶答時,本次搶答無效,系統(tǒng)報警提示(顯示單音,持續(xù)2 秒);3)搶答時間內,若有選手按動對應的搶答按鈕,此對編號立即鎖存,數(shù)碼管上顯示出隊伍編號和此隊累計分數(shù),同時系統(tǒng)給出音響提示(顯示單音,持續(xù)2 秒)。4)在主持人

4、啟動“搶答開始”鍵前,選手提前搶答,搶答無效,系統(tǒng)報警提示(顯示單音,持續(xù)2 秒)。主要需求是對系統(tǒng)報警功能實現(xiàn)以及對選手搶答按鍵和主持人按鍵的檢測5、搶答成功后,禁止其他選手搶答,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清零為止,主要實現(xiàn)數(shù)據(jù)鎖存。6、搶答器具有利用旋鈕調整搶答時間功能,時間范圍20 秒50 秒,主要需求是對搶答時間的準確設置1.2 功能模塊設置及其功能(1)鍵盤輸入模塊:主要是實現(xiàn)選手的搶答以及主持人實現(xiàn)系統(tǒng)清零和搶答開始的功能;(2)蜂鳴器報警模塊:主要是實現(xiàn)提示和報警功能;(3)旋鈕調節(jié)模塊:主要是實現(xiàn)對選手搶答時間設置的功能,通過PCF8591進行A/D轉換改變計時器

5、初值來實現(xiàn);(4)數(shù)碼管顯示模塊:主要是實現(xiàn)選手搶答時間的顯示以及選手的組別和答題分數(shù)的設置的功能二、總體方案設計方案一:搶答器系統(tǒng)采用中小規(guī)模集成電路,使用按鈕作為開關,完成輸入信號的觸發(fā)。該方案不需要軟件編程,只需要硬件電路不出錯就可實現(xiàn)需要的功能。但是電路的結構復雜,不利于調試,成本較高,實現(xiàn)接線的時候會因導線連接混亂造成干擾和短路等故障。方案二:采用現(xiàn)場可編程門列陣(FPGA)。FPGA可以給出很多邏輯單元,可以將想要實現(xiàn)的功能的電路應硬件語言描述出來,可以實現(xiàn)許多的復雜功能,比較靈活多變而在時序方面比單片機要好。但是該設計方式對數(shù)據(jù)的處理方式的速度要求不高,F(xiàn)PGA高速優(yōu)勢無法體現(xiàn),

6、同時芯片的引腳比較多,實物電路板布線復雜,加重實際焊接的工作,而且從成本方面來看,較為不經(jīng)濟。方案三:搶答器系統(tǒng)由一塊AT89C51單片機芯片為控制核心,通過PCF8951芯片實現(xiàn)電壓輸入模擬量的采集以及A/D轉換實現(xiàn)向單片機數(shù)據(jù)的傳輸以控制減計時時間的控制,通過蜂鳴器發(fā)出報警信號,以及通過開關的閉合采集減計時、選手組好、分數(shù)和主持人輸入信號的采集以在數(shù)碼管上顯示,性能良好,可靠性高,且成本相對較低。從成本、性能、可靠性等多方面進行對比和論證,以及基于安全、法律等因素和性價比最優(yōu)原則,最終實施方案三結合課題功能指標,利用學習過的AT89C51單片機作為控制核心。同時利用獨立式鍵盤來實現(xiàn)選手的搶

7、答功能以及主持人對搶答開始和系統(tǒng)清零的控制,同時用8 位的共陽極數(shù)碼管顯示隊伍的編號、分數(shù)、以及減計時的時間,同時也用到了轉換器PCF8951顯示電路PCF8951模擬信號采集轉換電路報警電路選手開關AT89C52 主持人開關系統(tǒng)總體框圖(各組成部分的作用和特點PCF8591:通過對電壓模擬信號的采集以及A/D轉換,將數(shù)字量輸出送給單片機來控制減計時的時間;AT89C52:處理鍵盤輸入及控制數(shù)碼管輸入與報警電路顯示電路:顯示倒計時、搶答隊伍及其分數(shù)報警電路:用于實現(xiàn)選手搶答和減計時結束卻沒有組別回答問題時的報警功能。主持人/選手開關:通過鍵盤控制輸入C52的數(shù)據(jù)三、硬件設計3.1電路原理圖 系

8、統(tǒng)整體設計圖報警系統(tǒng)數(shù)碼管顯示開關按鍵A/D轉換電路關鍵器件的介紹:1.AT89C51簡介AT89C51是美國ATMEL公司生產(chǎn)的低電壓,高性能CMOS8位單片機,片內含4k bytes的可反復擦寫的只讀程序存儲器(PEROM)和128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內置通用8位中央處理器(CPU)和Flash存儲單元,功能強大,可靈活應用于各種控制領域。主要性能參數(shù): 與MCS-51產(chǎn)品指令系統(tǒng)完全兼容 4k字節(jié)可重擦寫Flash閃速存儲器 1000次擦寫周期 全靜態(tài)操作:0Hz24MHz 三級

9、加密程序存儲器 1288字節(jié)內部RAM 32個可編程IO口線 2個16位定時計數(shù)器 5個中斷源 可編程串行UART通道 低功耗空閑和掉電模式2.PCF8591簡介PCF8591是8位A/D和D/A轉換器,是單片、單電源低功耗 8 位 CMOS 數(shù)據(jù)采集器件,具有4個模擬輸入、一個輸出和一個串行I2C 總線接口。3個地址引腳A0、A1和A2用于編程硬件地址,允許將最多8個器件連接至I2C總線而不需要額外硬件。器件的地址、控制和數(shù)據(jù)通過兩線雙向I2C總線傳輸。器件功能包括多路復用模擬輸入、片上跟蹤和保持功能、8位模數(shù)轉換和8位數(shù)模擬轉換。最大轉換速率取決于I2C總線的最高速率。主要性能參數(shù):單電源

10、供電工作電壓:2.5 V-6 V待機電流低I2C總線串行輸入/輸出通過3個硬件地址引腳編址采樣速率取決于I2C總線速度4個模擬輸入可編程為單端或差分輸入自動增量通道選擇模擬電壓范圍:VSS VDD片上跟蹤與保持電路8位逐次逼近式A/D轉換帶一個模擬輸出的乘法DACA/D和D/A轉換的計算公式以及輸入與輸出關系圖時序圖PCF8591的數(shù)據(jù)傳送服從I2C總線協(xié)議,總線上數(shù)據(jù)信號的傳送由起始信號(S)開始,由終止信號(P)結束。在SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號,起始信號表示一次數(shù)據(jù)傳送的開始,其后為尋址字節(jié),來尋址被控的從機(本設計中取為40H),在尋址字節(jié)后為其應

11、答位。再之后,是按指定讀/寫的數(shù)據(jù)字節(jié)與應答位。在數(shù)據(jù)傳送結束以后主器件都必須發(fā)送停止信號。停止信號用在SCL為高電平期間,SDA線由低電平向高電平的變化來表示。這便是一次完整的數(shù)據(jù)傳送應答時序。A/D轉換的時序圖3、排阻RESPACK8 及RX8電阻塊RESPACK8用于P0口驅動,電流不夠,加排阻增加電流RX8用于單片機IO用作低電平輸入時是提供灌電流,電阻大小的確定一般都是根據(jù)你的拉電阻的選擇,因為漏極輸出的IO內阻相當大,等效電路的電阻即為拉電阻,拉電流就是外接電源/拉電阻,一般的TTL電平驅動電流在20ma-25ma5、獨立按鍵的簡介共有六個鍵盤,其中1-4組按鍵用于實現(xiàn)組別選手的搶

12、答按鍵 5號按鍵用于實現(xiàn)主持人設置搶答開始 6號按鍵用于實現(xiàn)主持人設置系統(tǒng)清零3.2器件的選擇(1)鍵盤的選擇:由于只要實現(xiàn)四組搶答以及主持人使用的系統(tǒng)清零和搶答開始功能,故使用單獨六個按鍵來實現(xiàn)功能以減少器件使用的成本,且能夠實現(xiàn)完全的功能(2)模擬器件的選取: 為了符合設計要求的規(guī)定,A/D轉換器選擇了采用I2C串行通信的PCF8591(3)數(shù)碼管的選取由于通過PCF8591芯片采集的模擬量信號的輸入電壓最大為+5V,所以八位數(shù)碼管已基本滿足需求,為了使P0口獲得更大的驅動能力,在此選擇了共陽極數(shù)碼管。(4)I/O驅動能力分析: 與P1、P2、P3口相比,P0口的驅動能力較大,每位可驅動8

13、個LSTTL輸入,而P1、P2、P3口的每一位的驅動能力,只有P0口的一半。當P0口的某位為高電平時,可提供400uA的電流,當P0口的某位為低電平時,可提供3.2mA的灌電流。無論是P0口,還是P1、P2、P3口,想要獲得較大的驅動能力,只能用低電平輸出。 (5)電路結構的確定 獨立的鍵盤作為人機接口,直接與單片機的P1口相連,單片機的P1口驅動能力相對較弱,但滿足數(shù)碼管驅動,用于驅動八個8段LED數(shù)碼管, P3口低四位作為四個數(shù)碼管的位選信號。P3.0、P3.1分別作為時鐘線和信號線接口與PCF8591相接,P1.6用來接入蜂鳴器。四、軟件設計4.1 程序處理流程開始的時候先設置各存儲器的

14、地址以及控制字和IO口的設定減計時設置完成以后,若主持人未按下【開始搶答】按鍵,卻有 【1組】、【2組】、【3組】、【4組】中的某一組按下按鍵,則系統(tǒng)提示報警信號,發(fā)出2s的報警提示音;若主持人按下【開始搶答】按鍵,則進入減計時程序,此時若減計時結束,卻沒有組進行搶答,則系統(tǒng)提示報警信號,發(fā)出2s的報警提示音,然后支持人對系統(tǒng)設置【系統(tǒng)清零】,若在減計時結束之前有【1組】、【2組】、【3組】、【4組】中的某一組按下按鍵搶答,則在數(shù)碼管上顯示該組的成績累計加分,并顯示改組的組號,同時系統(tǒng)設置鎖存,保存該組現(xiàn)有的得分,阻止其他組繼續(xù)搶答,系統(tǒng)提示報警信號,發(fā)出2s的報警提示音開始4.2程序流程圖設

15、置存儲器存儲地址設置時間主持人設置開始搶答減計時某組直接搶答P1.0P1.4=0報警2S N報警2S系統(tǒng)清零顯示組號和分數(shù)加分 Y報警2S系統(tǒng)清零4.3 程序介紹(1)A/D轉換23/-定義PCF8591的讀寫地址-/#define WRITEADDR 0x90 /寫地址#define READADDR 0x91 /讀地址/-聲明全局函數(shù)-/void Pcf8591SendByte(unsigned char channel);unsigned char Pcf8591ReadByte();void Pcf8591DaConversion(unsigned char value);* 函 數(shù)

16、名 : Pcf8591SendByte* 函數(shù)功能 : 寫入一個控制命令* 輸 入 : channel(轉換通道)* 輸 出 : 無*/void Pcf8591SendByte(unsigned char channel)I2C_Start();I2C_SendByte(WRITEADDR, 1); /發(fā)送寫器件地址I2C_SendByte(0x40|channel, 0); /發(fā)送控制寄存器I2C_Stop();/* 函 數(shù) 名 : Pcf8591ReadByte* 函數(shù)功能 : 讀取一個轉換值* 輸 入 : 無* 輸 出 : dat*/unsigned char Pcf8591ReadBy

17、te()unsigned char dat;I2C_Start();I2C_SendByte(READADDR, 1);/發(fā)送讀器件地址dat=I2C_ReadByte(); /讀取數(shù)據(jù)I2C_Stop(); /結束總線 return dat;/* 函 數(shù) 名 : Pcf8591DaConversion* 函數(shù)功能 : PCF8591的輸出端輸出模擬量* 輸 入 : value(轉換的數(shù)值)* 輸 出 : 無*/void Pcf8591DaConversion(unsigned char value)I2C_Start();I2C_SendByte(WRITEADDR, 1);/發(fā)送寫器件地址

18、I2C_SendByte(0x40, 1); /開啟DA寫到控制寄存器I2C_SendByte(value, 0); /發(fā)送轉換數(shù)值I2C_Stop();功能:PCF8591芯片通過對模擬輸入電壓的采集,然后對其進行A/D轉換,通過信號線傳給單片機已實現(xiàn)對減計時時間的設定思路:減計時時間的設定與PCF8591采集到的模擬量輸出電壓的大小有關,PCF8591可以將其采集到的模擬量信號通過A/D轉換轉換成數(shù)字量信號從而達到控制減計時時間的功能(2)開關檢測if(start = 0 | flag = 1)ET0 = 1;flag = 1;if(m = 0)flag = 0;else if(m = 1

19、) beep_flag = 1;if(flag1 = 0) & (flag2 = 0) &(flag3 = 0) & (flag4 = 0)/未有隊伍搶答則倒計時display(0, m);if(key1 = 0 | flag1 = 1) & (flag2 = 0 & flag3 = 0 & flag4 = 0)/隊伍一搶答并且其他隊伍未搶答ET0 = 1;if(flag = 1)/若已開始,則有效 flag1 = 1;flag2 = 0;flag3 = 0;flag4 = 0;display(1, score1);ET0 = 0;m = m1;else/若未開始則啟動蜂鳴器提醒beep_fl

20、ag = 1;if(key2 = 0 | flag2 = 1) & (flag1 = 0 & flag3 = 0 & flag4 = 0) /同上ET0 = 1;if(flag = 1)flag2 = 1;flag1 = 0;flag3 = 0;flag4 = 0;display(2, score2);ET0 = 0;m = m1;elsebeep_flag = 1;if(key3 = 0 | flag3 = 1) & (flag1 = 0 & flag2 = 0 & flag4 = 0)/同上ET0 = 1;if(flag = 1)flag3 = 1;flag1 = 0;flag2 = 0;

21、flag4 = 0;display(3, score3);ET0 = 0;m = m1;elsebeep_flag = 1;if(key4 = 0 | flag4 = 1) & (flag1 = 0 & flag2 = 0 & flag3 = 0) /同上ET0 = 1;if(flag = 1)flag4 = 1;flag1 = 0;flag2 = 0;flag3 = 0;display(4, score4);ET0 = 0;m = m1;elsebeep_flag = 1;if(flag = 0)display(0,0);功能:通過按鍵的檢測判斷是否有人搶答或是主持人是否有按下按鍵設置搶答開

22、始和系統(tǒng)清零思路:通過對按鍵是否閉合的檢測,檢測出選手搶答和主持人按鍵開始和系統(tǒng)清零,從而實現(xiàn)對沒對搶答以后隊伍的顯示和分數(shù)的顯示,以及減計時的顯示和主持人對系統(tǒng)的清零(3)數(shù)碼管對某隊搶答和分數(shù)的顯示void display(unsigned char team, unsigned char m) /數(shù)碼管顯示程序unsigned ms,mg;ms = m / 10;mg = m % 10;if(team = 0)data = 0x00;weixuan1 = 0;weixuan2 = 1;weixuan3 = 1;weixuan4 = 1;Delay2ms();weixuan1 = 1; d

23、ata = 0x00;weixuan1 = 1;weixuan2 = 0;weixuan3 = 1;weixuan4 = 1;Delay2ms();weixuan2 = 1;data = tablems;weixuan1 = 1;weixuan2 = 1;weixuan3 = 0;weixuan4 = 1;Delay2ms();weixuan3 = 1;data = tablemg;weixuan1 = 1;weixuan2 = 1;weixuan3 = 1;weixuan4 = 0;Delay2ms();weixuan4 = 1;elsedata = tableteam;weixuan1 =

24、 0;weixuan2 = 1;weixuan3 = 1;weixua n4 = 1;Delay2ms();weixuan1 = 1; data = 0x40;weixuan1 = 1;weixuan2 = 0;weixuan3 = 1;weixuan4 = 1;Delay2ms();weixuan2 = 1;data = tablems;weixuan1 = 1;weixuan2 = 1;weixuan3 = 0;weixuan4 = 1;Delay2ms();weixuan3 = 1;data = tablemg;weixuan1 = 1;weixuan2 = 1;weixuan3 = 1;weixuan4 = 0;Delay2ms();weixuan4 = 1;功能:通過對每一組開關按鍵的檢測,實現(xiàn)該組的隊伍和分數(shù)的檢測思路:通過對每一組開關按鍵的檢測,設置處數(shù)碼管的位選碼和段碼,從而達到對該隊成績與隊伍的顯示(4)報警顯示void Timer0_INT() interrupt 1 /中斷服務函數(shù)count+;if(count=20)/count=20,計時一秒count=0;

溫馨提示

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

評論

0/150

提交評論