引言單片機(jī)的出現(xiàn)方便了人們的生活,所以單片機(jī)的使用也使搶答器電路更加簡單和實(shí)用。但是傳統(tǒng)搶答器具有以下問題有待解決:
- 有的傳統(tǒng)搶答器由數(shù)字電路組成,在使用現(xiàn)場會有多名選手或代表團(tuán)參加比賽,所以會造成布線繁瑣麻煩,現(xiàn)場不美觀等問題;
- 由于傳統(tǒng)搶答器由電子元器件集成制作而成,所以會造成可靠性低,元器件集成工藝復(fù)雜,花費(fèi)比較高等麻煩;
3、由于傳統(tǒng)搶答器由數(shù)字電路構(gòu)成,所以可能造成搶答時(shí)控制不精確,功能單一等缺陷。
隨著科學(xué)技術(shù)的發(fā)展和普及,各種各樣的競賽越來越多, 其中搶答器的作用也就顯而易見。因此設(shè)計(jì)一種更易于使用和區(qū)分度高的搶答器成了非常迫切的任務(wù)。 現(xiàn)在單片機(jī)已進(jìn)入各個(gè)領(lǐng)域,以其功耗小、智能化而著稱。所以來利用單片機(jī)來設(shè)計(jì)搶答器便使以上問題得以解決。針對以上情況, 本課程通過Keilc軟件編程,Protues軟件仿真,設(shè)計(jì)出以AT89C51單片機(jī)為核心的八位搶答器,與晶振、數(shù)碼管、蜂鳴器等通過外圍接口實(shí)現(xiàn)的八路搶答器,利用單片機(jī)的延時(shí)電路、按鍵復(fù)位電路、時(shí)鐘電路、定時(shí)器/計(jì)數(shù)器等,設(shè)計(jì)八路搶答器不僅具有實(shí)時(shí)顯示選手的號碼和搶答時(shí)間的功能,同時(shí)還利用匯編語言,使其實(shí)現(xiàn)復(fù)位,定時(shí)和報(bào)警功能。本次設(shè)計(jì)的系統(tǒng)實(shí)用性強(qiáng),操作簡單,擴(kuò)展功能強(qiáng)。
1 設(shè)計(jì)背景1.1課題背景各種知識競賽、文娛活動的廣泛開展,使搶答器成了必不可少的電子設(shè)備,它為參賽選手提供了公正、客觀、快速的裁決,已逐漸發(fā)展成為一種成型的電子產(chǎn)品,但市面上所售搶答器價(jià)格一般較貴且多為小規(guī)模集成電路構(gòu)成,其性能單一,工作起來不夠理想。本文介紹了通過Keilc軟件編程,及Protues軟件仿真,模擬出一種以AT89C51單片機(jī)為核心的智能搶答器,它充分利用了單片機(jī)系統(tǒng)的優(yōu)點(diǎn),具有結(jié)構(gòu)簡單、功能強(qiáng)大、可靠性好、成本較低的特點(diǎn)。它能根據(jù)不同的搶答輸入信號,經(jīng)過單片機(jī)的控制處理并產(chǎn)生不同的與輸入信號相對應(yīng)的輸出信號,最后通過液晶顯示屏顯示相應(yīng)的路數(shù)和答題時(shí)間等。
1.2設(shè)計(jì)要求本設(shè)計(jì)主要是介紹了單片機(jī)控制下的八路智能搶答器系統(tǒng),詳細(xì)介紹了其硬件和軟件設(shè)計(jì),并對其各功能模塊做了詳細(xì)介紹,其主要功能和指標(biāo)如下:
(1)同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕表示。
(2)設(shè)置系統(tǒng)清除開關(guān)S和搶答控制開關(guān)S,該開關(guān)由主持人控制。
(3)搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在數(shù)碼管上顯示選手號碼。并且優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。
(4)搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定。
(5)當(dāng)主持人啟動“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí)。參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,定時(shí)顯示器上顯示00。
2 8位競賽搶答器系統(tǒng)簡介
2.1系統(tǒng)設(shè)計(jì)原理
該搶答器系統(tǒng)的硬件設(shè)計(jì)是以單片機(jī)為中心控制模塊,采用模塊化設(shè)計(jì)的八路搶答器,具有四個(gè)模塊,分別為:按鍵輸入模塊、顯示模塊、時(shí)鐘與復(fù)位模塊、核心控制模塊。
2.2系統(tǒng)組成按鍵輸入模塊共有10個(gè)按鍵,分為搶答按鍵和控制按鍵。搶答按鍵共有八個(gè),分別為S0―S7,供搶答選手進(jìn)行搶答使用,P1.0-P1.7口為八個(gè)按鍵搶答信號的輸入口,低電平有效。控制按鍵有2個(gè),分別為S8與S9,S8和S9分別為“清除/設(shè)置時(shí)間”和“開始鍵”, 其對應(yīng)的I∕O接口分P2.0與P2.1
顯示模塊本系統(tǒng)采用七段數(shù)碼管顯示搶答選手及時(shí)間。
時(shí)鐘與復(fù)位模塊包括時(shí)鐘電路和復(fù)位電路,單片機(jī)的最小系統(tǒng)就是由時(shí)鐘電路、復(fù)位電路、電源電路及單片機(jī)構(gòu)成。單片機(jī)的時(shí)鐘信號用來提供單片機(jī)片內(nèi)各種操作的時(shí)間基準(zhǔn),單片機(jī)的時(shí)鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。復(fù)位操作則使單片機(jī)的片內(nèi)電路初始化,使單片機(jī)從一種確定的初態(tài)開始運(yùn)行。根據(jù)應(yīng)用的要求,復(fù)位操作通常有兩種基本形式:上電復(fù)位或開關(guān)復(fù)位。當(dāng)5l系列單片機(jī)的復(fù)位引腳RST(全稱RESET)出現(xiàn)2個(gè)機(jī)器周期以上的高電平時(shí),單片機(jī)就執(zhí)行復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。
核心控制模塊就是人們所謂的CPU,它是整個(gè)系統(tǒng)的總控制部分,本系統(tǒng)的核心控制模塊為51系列的單片機(jī),只有我們通過軟件程序的編寫,并將程序?qū)懭雴纹瑱C(jī),該系統(tǒng)才會正確的工作。
3 系統(tǒng)硬件設(shè)計(jì)3.1主控制器選擇主控制器選擇即為單片機(jī)的選擇,單片機(jī)實(shí)際上就是把CPU、RAM、ROM、定時(shí)器/計(jì)數(shù)器、I/O接口電路等微型機(jī)的主要部件集成在一塊芯片上,因此稱之為單片機(jī)。
AT89C51單片機(jī)簡介:
AT89C51單片機(jī)主要有以下部件構(gòu)成:八位微處理器CPU、振蕩電路、總線控制部件、中斷控制部件、片內(nèi)Flash存儲器、片內(nèi)RAM、并行I/O接口、定時(shí)器和串行I/O接口。AT89C51單片機(jī)內(nèi)部由CPU、4KB的FPEROM ,128B的RAM,兩個(gè)16位的定時(shí)/計(jì)數(shù)器T0和T1,4個(gè)8位的I/O端P0、P1、P2、P3等組成。單片微機(jī)內(nèi)部最核心的部分是CPU,CPU按其功能可分為運(yùn)算器和控制器兩部分。控制器由程序計(jì)數(shù)器PC、指令儲存器、指令譯碼器、實(shí)時(shí)控制與條件轉(zhuǎn)移邏輯電路等組成。它的功能是對來自存儲器中的指令進(jìn)行譯碼,通過實(shí)時(shí)控制電路,在規(guī)定的時(shí)刻發(fā)出各種操作所需的內(nèi)部和外部的控制信號,使各部分協(xié)調(diào)工作,完成指令所規(guī)定的操作。運(yùn)算器由算術(shù)邏輯器部件ALU、累加器ACC、暫存器、程序狀態(tài)字寄存器PSW,BCD碼運(yùn)算調(diào)整電路等組成。為了提高數(shù)據(jù)處理和位操作功能,片內(nèi)增加了一個(gè)通用寄存器B和一些專用寄存器,還增加了位處理邏輯電路的功能。
AT89C51引腳圖如圖3-1所示。
圖3-1 引腳圖
P0口:P0口為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8個(gè)TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。
P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。
P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。
P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。
RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。
ALE∕P:當(dāng)訪問外部存儲器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。
PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的PSEN信號將不出現(xiàn)。
EA/VPP:當(dāng)保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),EA/VPP將內(nèi)部鎖定為RESET;當(dāng)EA/VPP端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
3.2 數(shù)碼管動態(tài)顯示電路在單片機(jī)的應(yīng)用系統(tǒng)中,顯示器是最常見的輸出設(shè)備,也是人機(jī)對話必不可少的部分。顯示器按其顯示形式分為分段式顯示器、點(diǎn)陣式顯示器和條圖(光柱)式顯示器。顯示器可用于數(shù)字、符號、文字、圖形和光柱顯示。七段數(shù)碼管顯示器是單片機(jī)開發(fā)中常用的輸出器件。它是由若干個(gè)發(fā)光二極管組成的,當(dāng)發(fā)光二極管導(dǎo)通時(shí),相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆畫發(fā)亮。控制不同組合的二極管導(dǎo)通,就能顯示出各種字符。 常用的LED顯示屏有7段式和“米”字段之分,7字段單個(gè)數(shù)碼管內(nèi)共有八只發(fā)光二極管,7只為字段,可組成字形,第八個(gè)為小數(shù)點(diǎn)。故單個(gè)管有人稱為7段數(shù)碼管顯示,也有人稱為8段顯示。7段數(shù)碼顯示管內(nèi)部結(jié)構(gòu)如圖3-2所示。
圖3-2 內(nèi)部結(jié)構(gòu)圖
顯示屏外形尺寸如圖3-3所示。
圖3-3顯示屏的外形尺寸
顯示模塊電路連接圖如圖3-4所示:
圖3-4顯示模塊電路連接圖
3.3 8位競賽搶答器與單片機(jī)的接口電路圖 AT89C51單片機(jī)P1.0~P1.7端口分別與S0~S7按鈕相連對應(yīng)8個(gè)不同的選手的搶答按鍵。選手通過搶答按鍵進(jìn)行搶答,單片機(jī)接收信號后內(nèi)部進(jìn)行處理并在顯示屏上顯示選手編號。內(nèi)部進(jìn)行鎖存。如圖3-5所示。
圖3-5 8位競賽搶答器與單片機(jī)的接口電路圖
3.4時(shí)鐘電路
單片機(jī)必須在時(shí)鐘的驅(qū)動下才能工作。AT89C51單片機(jī)的時(shí)鐘產(chǎn)生方法有兩種:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。無論何種形式,都需要外部附加電路,產(chǎn)生時(shí)鐘脈沖。
外部時(shí)鐘方式就是直接將外部的振蕩脈沖通過XTALl或XTAL2接入單片機(jī),外部時(shí)鐘方式多用于多機(jī)系統(tǒng),以便各個(gè)單片機(jī)能夠同時(shí)工作。對外部震蕩信號無特殊要求,但需保證脈沖寬度不小于20ns,且頻率應(yīng)低于單片機(jī)所支持的最高頻率。
內(nèi)部時(shí)鐘方式就是利用單片機(jī)芯片內(nèi)部的振蕩器,通過在引腳XTALl和XTAL2兩端跨接晶體振蕩器,構(gòu)成穩(wěn)定的自激振蕩器的方法,再由獲得的自激振蕩器發(fā)出穩(wěn)定的脈沖,直接送入芯片內(nèi)部的時(shí)鐘電路的方式。跨接的晶體振蕩器如果已經(jīng)起振,則會向XTAL2引腳上輸出一定幅值的正弦波。自激振蕩器的頻率取決于晶體振蕩器的頻率,常見的晶體振蕩器頻率有6MHz和12MHz。AT89C52單片機(jī)的時(shí)鐘頻率最高可為24Mz。
本系統(tǒng)中采用的是內(nèi)部時(shí)鐘方式。時(shí)鐘電路如圖3-6所示。
圖3-6時(shí)鐘電路圖
從時(shí)鐘電路的示意圖中可以看到,單片機(jī)所跨接的晶體振蕩器旁邊還有兩個(gè)電容器C8和C9。C8和C9被稱為諧振電容,主要作用有兩點(diǎn):一是可以促使單片機(jī)系統(tǒng)快速起振;二是C8、C9具有對頻率進(jìn)行微調(diào)作用,有利于單片機(jī)系統(tǒng)振蕩頻率的穩(wěn)定,維持單片機(jī)的正常運(yùn)行。諧振電容的容值選擇,與所用的晶體振蕩器的頻率值有關(guān)。晶體振蕩器的振蕩頻率越高,相應(yīng)的諧振電容的容值也要提高。二者如果配合的好,可以發(fā)揮諧振電容的積極作用。反之,自激振蕩器頻率的穩(wěn)定性將受到影響。經(jīng)過大量的實(shí)際應(yīng)用,晶體振蕩器的頻率與諧振電容的容值之間形成了一定的固定搭配。例如:當(dāng)晶體振蕩器的頻率為12MHz時(shí),諧振電容的容值一般為30pF左右。
確定系統(tǒng)中晶體振蕩器的頻率,我認(rèn)為與具體的應(yīng)用有關(guān)。理論上當(dāng)然希望單片機(jī)的運(yùn)算速度越快越好,即晶體振蕩器的頻率越高越好。但是,在有些情況下,單片機(jī)的外圍設(shè)備的速度無法匹配單片機(jī)的運(yùn)行速度。為了節(jié)約成本,可以選擇振蕩頻率較低的晶體振蕩器。基于這種考慮,本文中的晶體振蕩頻率設(shè)計(jì)為12MHz,諧振電容的容值選定為30pF。
單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號頻率的倒數(shù),常用T=1/fosc表示。圖中時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12µs。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號。
為了減小寄生電容,更好地保證振蕩器穩(wěn)定、可靠地工作。在設(shè)計(jì)電路板時(shí),晶體振蕩器和諧振電容的位置應(yīng)盡可能地靠近單片機(jī)的XTALl和XTAL2引腳 。
3.5復(fù)位電路
使CPU進(jìn)入初始狀態(tài),從0000H地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。單片機(jī)本身不能自動進(jìn)行復(fù)位,必須配合相應(yīng)的外部復(fù)位電路才能實(shí)現(xiàn)。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。
硬件復(fù)位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動清除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個(gè)事實(shí)卻容易為不少編碼人員所忽視。
軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實(shí)際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因?yàn)樗鼪]有明確的位地址可供編程。有的編程人員用020000(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯(cuò)誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性。
單片機(jī)系統(tǒng)在啟動運(yùn)行時(shí),首先完成的復(fù)位操作,即上電復(fù)位。其目的是使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。復(fù)位很重要,單片機(jī)有多種復(fù)位方式。這里僅介紹上電復(fù)位和按鍵復(fù)位這兩種常用的復(fù)位方式。
上電復(fù)位常用的方法是使用電容器。利用電容器的充電特性達(dá)到滿足接通電源后,單片機(jī)實(shí)現(xiàn)自動復(fù)位的要求。
單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖3-7所示。

圖3-7復(fù)位電路
在電路圖中,電容的的大小是10uF,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(3.5V),需要的時(shí)間是10K*10uF=0.1S。也就是說在電腦啟動的0.1S內(nèi),電容兩端的電壓時(shí)在0-3.5V增加。這個(gè)時(shí)候10K電阻兩端的電壓為從5-1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V-1.5V。在5V正常工作的52單片機(jī)中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機(jī)0.1S內(nèi),單片機(jī)系統(tǒng)自動復(fù)位(RST引腳接收到的高電平信號時(shí)間為0.1S左右)。
在單片機(jī)啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時(shí)候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當(dāng)按鍵按下的時(shí)候,開關(guān)導(dǎo)通,這個(gè)時(shí)候電容兩端形成了一個(gè)回路,電容被短路,所以在按鍵按下的這個(gè)過程中,電容開始釋放之前充的電量。隨著時(shí)間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個(gè)時(shí)候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機(jī)系統(tǒng)自動復(fù)位。
復(fù)位電路的原理是單片機(jī)RST引腳接收到2uS以上的電平信號,只要保證電容的充放電時(shí)間大于2uS,即可實(shí)現(xiàn)復(fù)位,所以電路中的電容值是可以改變的。值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。
3.6系統(tǒng)總體電路圖
系統(tǒng)總體電路圖如圖3-8所示。
本設(shè)計(jì)主要是介紹了單片機(jī)控制下的8路競賽搶答器系統(tǒng),同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕S0~ S7表示。設(shè)置一個(gè)系統(tǒng)清楚和搶答控制開關(guān)S,該開關(guān)由主持人控制。搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應(yīng)的編號,并在數(shù)碼管上顯示選手號碼。并且優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定。(如本次試驗(yàn)設(shè)定為50s)當(dāng)主持人啟動“開始”鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間為0.5s左右。參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。如果定時(shí)時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。
圖3-8系統(tǒng)總體電路圖
4 程序設(shè)計(jì)
4.1系統(tǒng)運(yùn)行結(jié)果
8位競賽搶答器在正常工作的情況下,首先對控制系統(tǒng)進(jìn)行初始化,然后進(jìn)行鍵盤掃描,判斷主持人是否按下了“開始搶答”按鍵,如果按鍵沒有按下,則選手無法搶答;如果“開始搶答”按鍵按下則執(zhí)行倒計(jì)時(shí)子程序和顯示子程序,并調(diào)正常搶答處理子程序,如果。其中倒計(jì)時(shí)程序包括搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)。涉及的程序框圖如圖4-1,4-2,4-3所示。
圖4-1 主程序流程圖

定時(shí)器T1用于倒計(jì)時(shí),每次中斷為50ms,當(dāng)計(jì)數(shù)標(biāo)志為20時(shí)即為一秒,顯示數(shù)字減一。其流程圖如下:
圖4-2 倒計(jì)時(shí)中斷流程圖
圖4-3主程序流程圖詳細(xì)介紹
4.2系統(tǒng)分析
由于這次的課設(shè)我們選擇了用AT89C51單片機(jī)來設(shè)計(jì)設(shè)計(jì)搶答器,很多東西都是臨時(shí)學(xué)的,像Proteus仿真軟件的使用以及keil軟件的使用,還有各種硬件的選擇和區(qū)分。我通過查資料和搜集有關(guān)的文獻(xiàn),學(xué)習(xí)使用各種軟件及焊接電路板,培養(yǎng)了自學(xué)能力和動手能力。在以往的傳統(tǒng)的學(xué)習(xí)模式下,我們可能會記住很多的書本知識,但是通過課程設(shè)計(jì),我們學(xué)會了如何將學(xué)到的知識轉(zhuǎn)化為自己的東西,并且由原先的被動的接受知識轉(zhuǎn)換為主動的尋求知識,這可以說是學(xué)習(xí)方法上的一個(gè)很大的突破。
對于單片機(jī)設(shè)計(jì),其硬件電路是比較簡單的,主要是解決程序設(shè)計(jì)中的問題。而程序設(shè)計(jì)是一個(gè)很靈活的東西,它反映了你解決問題的邏輯思維和創(chuàng)新能力。它才是一個(gè)設(shè)計(jì)的靈魂所在。因此在整個(gè)設(shè)計(jì)過程中大部分時(shí)間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個(gè)子程序才是關(guān)鍵的問題所在,這需要對單片機(jī)的結(jié)構(gòu)很熟悉。因此可以說單片機(jī)的設(shè)計(jì)是軟件和硬件的結(jié)合,二者是密不可分的。通過這次課程設(shè)計(jì)我也發(fā)現(xiàn)自己的很多不足之處。在設(shè)計(jì)過程中我發(fā)現(xiàn)自己考慮問題很不全面,自己的專業(yè)知識掌握的很不牢固,所掌握的計(jì)算機(jī)應(yīng)用軟件還不夠多,我希望自己的這些不足之處能在今后的學(xué)習(xí)中得到改善。我的設(shè)計(jì)也還存在著一些缺陷,有待于在將來設(shè)計(jì)中進(jìn)一步提高,在此懇請老師批評指正。這次設(shè)計(jì)也讓我懂得細(xì)節(jié)決定成敗,在以后的設(shè)計(jì)中我會嚴(yán)格吸取教訓(xùn),做的更好!