基于AW60十秒倒計時搶答器的設計(共20頁)_第1頁
基于AW60十秒倒計時搶答器的設計(共20頁)_第2頁
基于AW60十秒倒計時搶答器的設計(共20頁)_第3頁
基于AW60十秒倒計時搶答器的設計(共20頁)_第4頁
基于AW60十秒倒計時搶答器的設計(共20頁)_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第 頁 基于(jy)AW60十秒倒計時搶答器的設計(shj)完成(wn chng)人:黃鎮(電子1203)馮越(電子1203)馬沛沛(電子1203)摘要:充分了解aw60的引腳功能,再利用這些集成芯片的功能來設計成:能實現四人搶答、倒計時10秒后就不能搶答、數碼管顯示搶答成功的按鍵及倒計時,在搶答成功和十秒倒計時結束時報警。由黃鎮完成程序設計,馬沛沛完成硬件設計,馮越完成報告Abstract: fully understand aw60 pin function, using the integrated chip features to design into: can realize fo

2、ur vies to answer first, the countdown after 10 seconds cannot succeed in digital tube display vies to answer first vies to answer first, keys and the countdown, at the end of the vies to answer first success and ten seconds countdown alarm.關鍵字:aw60、4人搶答、倒計時10s、數碼管顯示Key words: aw60, four people vies

3、 to answer first, the countdown 10 s, digital tube display1 設計要求 具體要求(1)提供4路搶答鍵,編號分別為1、2、3、4,提供“開始”鍵,編號為“*”。(2)系統復位后,數碼管顯示“0000”并閃爍;按下“開始”鍵后,各搶答鍵才有效,數碼管停止閃爍,并進行10s倒計時,計時時間在后兩位數碼管顯示;若在10s內沒有人搶答,則在計數為0后,顯示“0000”并閃爍,直至“開始”鍵再次按下,重新計數;若在10s內有人按下搶答鍵,則停止計數,后兩位數碼管顯示當前計數時間,第1位數碼管顯示搶答鍵編號,數碼管閃爍,直至“開始”鍵再次按下,重新計

4、數。(3)每次按鍵或計時為0后通過蜂鳴器發出提示音。系統功能 該系統能夠按下開始鍵后數碼管開始10s倒計時,當倒計時為零若沒有搶答鍵按下則數碼管顯示0000,并閃爍蜂鳴器報警。若有一個或多個搶答鍵在倒計時結束前按下,則數碼管第一位顯示按下的搶答鍵的次序,后兩位數碼管顯示按下時的時間,其他顯示0且閃爍蜂鳴器報警。當開始鍵再次按下的時候,系統恢復十秒倒計時狀態,第一位數碼管清零。2 總體設計2.1 系統組成及工作原理以下為系統的流程圖,其中開始鍵,1234搶答鍵為鍵盤控制,由中斷中的程序控制各種狀態的實現,其工作原理為:接通電源后,搶答器數碼管數碼管0010,主持人按下開始鍵,搶答器的計時器開始進

5、行10s的倒計時;選手在定時時間內搶答時,搶答器完成:優先判斷、編號鎖存、編號顯示、時間顯示、數碼管閃爍、蜂鳴器提示。擋在正常的十秒搶答時間中沒有人按下搶答鍵,則倒計時一直進行到零,數碼管顯示0000,蜂鳴器報警,數碼管閃爍,當主持人再次按下開始鍵時數碼管恢復到0010開始新一輪搶答倒計時。 3 硬件(yn jin)設計3.1 硬件(yn jin)組成 本設計實驗硬件部分包括按鍵(n jin)模塊、電源模塊、LED模塊、蜂鳴器模塊 Led模塊為顯示模塊,包括顯示10s倒計時,搶答編號,搶答時間,數碼管閃爍。蜂鳴器模塊提供(tgng)當有搶答或倒計時到0時的報警功能。鍵盤模塊提供搶答鍵1234,

6、開始(復位)鍵。電源模塊提供電源。3.2 單片機核心(hxn)模塊 本設計采用AW60單片機,S08是2004年左右推出8位MCU,資源豐富,功耗低,性價比很高,是08系列MCU發展趨勢,其性能與許多16位MCU相當。MC9S08AW60是低成本、高性能8位微處理器S08家族中的成員,本次課程設計就是以該芯片為基礎(jch),來進行嵌入式的設計。該單片機的主要性能:(1)最高達40MHz的CPU工作頻率和20Hz的內部總線工作頻率表;時鐘源選項包括晶振、諧振器、外部時鐘或內部產生的時鐘。(2)相比HC08 CPU指令集,S08 CPU增加了BGND指令。(3)單線后臺調試模式接口;增強的斷點能

7、力,允許單一的斷點設置在線調試(在片內調試的模塊增加了多于兩個的斷點)。(4)內含32個中斷/復位源;內含2KB的片內RAM;內含60KB的片內在線可編程Flash存儲器,帶有塊保護和安全選項。(5)可選的計算機正常操作(COP)復位;低電壓檢測和復位或中斷;非法操作碼檢測與復位;非法地址檢測與復位。(6)ADC:多達16個通道,10位A/D轉換器與自動比較功能;兩個串行通信接口SCI模塊(m kui)與可選的13位中斷;一個串行外設接口SPI模塊;集成電路互連總線I2C模塊運作高達100kbps的最高總線(zn xin)負載;8引腳鍵盤中斷KBI模塊。(7)Timers:1個2通道和1個6通

8、道16位定時器/脈沖寬度調制器模板。具有(jyu)輸入、捕捉、輸出比較、脈寬調制功能。3.3 顯示和控制電路本系統采用數碼管顯示搶答位和剩余時間,鉅陣鍵盤用于搶答器開始復位和的搶答工作。數碼管顯示原理簡單,編程比較容易實現。矩陣鍵盤可以實現多種控制,便于擴展功能,同時又可節省大量的IO口,供單片機的其它功能應用。3.4電源模塊電路中需要大量引腳用來提供足夠的電流容量。所有的電源引腳必須有適當的旁路電容,來抑制高頻噪音。一些VDD和VSS引腳僅用于噪音旁路。圖中的電源電路顯示了一個典型的電源連接圖。電源電路部分的電容構成濾波電路,可以(ky)改善系統的電磁兼容性,降低電源波動對系統的影響,增強電

9、路工作穩定性。為標識系統通電與否,可以增加一個電源指示燈。注意那些僅連接電容的引腳,不要將它們直接連接電源電壓 3.5蜂鳴器模塊(m kui)在單片機應用(yngyng)的設計上,很多方案都會用到蜂鳴器,大部分都是使用蜂鳴器來做提示或報警,比如按鍵按下、開始(kish)工作、工作結束或是故障等等由于蜂鳴器的工作電流一般比較大,以致于單片機的I/O口是無法直接驅動的,所以要利用放大電路來驅動,一般使用三極管來放大電流就可以了3.6長距離傳輸模塊限制數據長距離傳輸的因素遠距離,幾十公里幾百公里的數字信號傳輸,可采用單用調制解調器的調頻、調相或調幅的傳輸設備來實現,并可利用已有的電話線等作為傳輸線。

10、而傳輸距離只有幾百米或幾十公里時,就不需要調制解調器的傳輸模式,耳殼采用數字信號的直接傳輸方式,是傳輸速度、誤碼率等性能優于采用調制解調器的傳輸方式。尤其是近距離點對多點的數據傳輸,采用數字信號直接傳輸的方法更具優勢。限制數據長距離傳輸的因素外界電磁場通過傳輸線對信號產生的干擾由于發送和接收設備之間存在的公共地線,因此各種干擾極易通過公共地線疊加在信號上,特別是現場的電磁干擾通過公共底線能很容易的導入接受設備。傳輸線分布電容數據的傳輸實際上是對傳輸線分布電容充電和放電的過程,而充電的上升時間和放電的下降時間有所不同,會引起數據接受錯誤。傳輸線存在的地的電位差傳輸線間連接的公共地線,由于發送設備

11、和接受設備往往使用各自的電源設備。是二者的電位可能不一致,從而信號地線中會產生電流。由于傳輸線電阻的此女在,使底線兩端產生電壓降,即電位差。當發送設備想接收設備發送數據時,接受設備得到的電壓信號與沒有地電位差時得到的不同。當又用信號較小、而地電位差較大時,接受設備無法得到準確的信號,數據傳輸將無法進行。傳輸線的負載阻抗與傳輸特性阻抗不匹配當傳輸的負載阻抗與傳輸特性阻抗不匹配時,會在線路中產生多次發射,致使信號產生畸變,數據傳輸出現錯誤傳輸線的分布電阻傳輸線間的干擾長距離傳輸按鍵模塊遠程(yunchng)控制電路通過(tnggu)一個共射放大電路,基極(j j)輸入一個高電平,三極管導通, HY

12、PERLINK /s?wd=%E9%9B%86%E7%94%B5%E6%9E%81&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 集電極接地,輸出是 HYPERLINK /s?wd=%E4%BD%8E%E7%94%B5%E5%B9%B3&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 低電平。(可能會有一個0.3V左右的電壓可以忽略看做一個低電平。)基極輸入 HYPERLINK /s?wd=%E4%BD%8E%E7%94%B5%E5%B9%B3&hl_tag=textlink&tn=SE_

13、hldp01350_v6v6zkg6 t _blank 低電平,三極管關斷, HYPERLINK /s?wd=%E9%9B%86%E7%94%B5%E6%9E%81&hl_tag=textlink&tn=SE_hldp01350_v6v6zkg6 t _blank 集電極電壓為電源電壓,輸出是高電平。長距離傳輸壓降模塊穩壓(wn y)電路利用(lyng)了LM317三端可調輸出正電壓穩壓器。來調節輸入的電壓使輸出電壓達到單片機要求的5V電壓。在控制電路與穩壓電路之間加了一個電阻充當電線(dinxin)的阻抗。4 程序設計4.1 主程序設計程序開始后初始化芯片,模塊,變量,然后進行主循環,開始執

14、行主程序,計時器開始10s倒數計時數碼管顯示狀態為0010,執行過程中還可檢測是否有搶答鍵,如果按下則計時停止后兩位數碼管顯示時間,第一位數碼管顯示搶答編號,其他數碼管均為零,蜂鳴器報警,延時2s,再次按下開始復位鍵時,數碼管顯示0010進行倒計時。如果沒有搶答鍵按下,則倒計時為零時數碼管顯示0000,并開始閃爍,蜂鳴器報警延時2s。4.2 子程序設計(chn x sh j)附錄(fl)一:電路實物照片附錄(fl)二:模擬電路仿真圖附錄(fl)三:電路原理圖附錄四:主要(zhyo)程序/*/工 程 名: timer */硬件(yn jin)連接:(1)PTD.0接指示燈 */ (2)MCU的串

15、口與PC方的串口相連(xin lin) */程序描述: */ (1)TPM1溢出中斷,數碼管顯示分秒信息。/目 的: 學習定時器基本功能 */說 明: 無 */蘇州大學飛思卡爾嵌入式系統研發中心2011年*/總頭文件#include Includes.hvoid main(void) /1 主程序使用(shyng)的變量定義 uint32 mRuncount=0; /運行(ynxng)計數器 ledbuf0=0; ledbuf1=0; ledbuf2=1; ledbuf3=0; /2 關總中斷(zhngdun) DisableInterrupt(); /禁止總中斷 /3 芯片初始化 MCUIn

16、it(); /4 模塊初始化 Light_Init(Light_Run_PORT,Light_Run,Light_OFF); /指示燈初始化 TPMinit(TPM_NUM_1); /定時器1初始化 /SCIInit(SCI_NUM_1,SYSTEM_CLOCK,9600); /串行口初始化 LEDinit(); KBInit(); /鍵盤初始化 GPIO_Init(PORT_C,6,1,0); /GPIO初始化 /5 內存初始化 /6 開放中斷 EnabletimerInt(TPM_NUM_1); /開放定時器1溢出中斷 EnableInterrupt(); /開放總中斷 EnableKBi

17、nt(); /開鍵盤中斷 /7 主循環 while (1) /1 主循環計數到一定的值,使小燈的亮、暗狀態切換 mRuncount+; if (mRuncount=1000) mRuncount=0; /2 主循環執行的任務 LEDshow(ledbuf); /*/ 文件名: isr.c */ 說 明: 中斷(zhngdun)處理函數文件 */*/頭文件#include isr.huint8 KeyDef;uint8 aa=0;/*/函數(hnsh)名: isrKeyBoard */功 能: 掃描鍵盤(jinpn),向串口發送鍵值和定義值 */參 數: 無 */返 回: 無 */說 明: 調用

18、了KBScanN、SCISend1、KBInit函數 */*interrupt void isrKeyBoard(void) uint8 value; uint16 i; for(i=0; i1000; i+); DisableInterrupt(); /關總中斷 DisableKBint(); /屏蔽鍵盤中斷 value = KBScanN(10); /掃描鍵值,存于value中 if(value!=0 xFF) KeyDef=KBDef(value); if(KeyDef=*) aa=0; ledbuf0=0; ledbuf1=0; ledbuf2=1; ledbuf3=0; jishu=

19、0; k=0; else if(aa=0) if(KeyDef=1|KeyDef=2|KeyDef=3|KeyDef=4) aa=1; k=1; x=ledbuf2; y=ledbuf3; z=KeyDef; b=1; GPIO_Set(PORT_C,6,1); Delay(2); GPIO_Set(PORT_C,6,0); KBInit(); /鍵盤(jinpn)初始化鍵盤中斷 EnableKBint(); /開放鍵盤(jinpn)中斷 EnableInterrupt() ; /開總中斷(zhngdun)/此處為用戶新定義中斷處理函數的存放處/*/函數名: isrT1Out */功 能: 定

20、時器1溢出中斷處理函數,以秒為最小單位計時,并清定時器1溢出標志位 */參 數: 無 */返 回: 無 */說 明: 調用SecAdd1函數 */*interrupt void isrT1Out(void)/溢出時間1s uint8 temp; DisableInterrupt(); /禁止總中斷 if(k=0) if(jishu=0) if(ledbuf3=0)&(ledbuf2=0) ledbuf0=0; ledbuf1=0; ledbuf2=0; ledbuf3=0; jishu=1; a=1; GPIO_Set(PORT_C,6,1); Delay(2); GPIO_Set(PORT_

21、C,6,0); else ledbuf3-; if(ledbuf30) ledbuf2-; ledbuf3=9; else if(a=1) ledbuf0=0; ledbuf1=0; ledbuf2=0; ledbuf3=0; a=0; else ledbuf0=10; ledbuf1=10; ledbuf2=10; ledbuf3=10; a=1; else if(b=1) ledbuf0=z; ledbuf1=0; ledbuf2=x; ledbuf3=y; b=0; else ledbuf0=10; ledbuf1=10; ledbuf2=10; ledbuf3=10; b=1; tem

22、p = TPM_CSTR(1); /讀取定時器1狀態(zhungti)和控制寄存器TPM1SC TPM_CSTR(1) &= (TPM1SC_TOF_MASK); /向定時器溢出(y ch)標志位TOF寫0 EnableInterrupt(); /開放(kifng)總中斷 /未定義的中斷處理函數,本函數不能刪除interrupt void isrDummy(void)/中斷處理子程序類型定義typedef void( *ISR_func_t)(void);/中斷矢量表,如果需要定義其它中斷函數,請修改下表中的相應項目const ISR_func_t ISR_vectors 0 xFFCC = isrDummy, /時基中斷 isrDummy, /IIC中斷(zhngdun) isrDummy, /ADC轉換(zhunhun)中斷 isrKeyBoard, /鍵盤(

溫馨提示

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

評論

0/150

提交評論