久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 27729|回復: 7
打印 上一主題 下一主題
收起左側

基于單片機的八路搶答器設計論文 帶英文介紹與匯編語言源碼

  [復制鏈接]
跳轉到指定樓層
樓主
ID:305913 發表于 2018-4-11 15:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

基于AT89C51的八路搶答器

摘要

搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻率較低,且有的要么制作復雜,要么可靠性低。作為一個單位,如果專門購一臺搶答器雖然在經濟上可以承受,但每年使用的次數極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展,因此設計了本搶答器。


本設計是以八路搶答為基本理念。考慮到依需設定限時回答的功能,利用AT89C51單片機及外圍接口實現的搶答系統,利用單片機的定時器/計數器定時和記數的原理,將軟、硬件有機地結合起來,使得系統能夠正確地進行計時,同時使數碼管能夠正確地顯示時間。用開關做鍵盤輸出,揚聲器發生提示。同時系統能夠實現:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可在1-99s設定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,滿時后系統計時自動復位及主控強制復位;按鍵鎖定,在有效狀態下,按鍵無效非法


目錄

1              緒 論
1.1              課題研究的相關背景
1.2              選題的目的和意義
1.3              課題研究的內容
1.4              國內外研究現狀
1.5              搶答器目前存在的主要問題
2              搶答器的系統概述
2.1              系統的主要功能
2.2              系統需求分析
2.3              搶答器的工作流程
2.4              搶答器的工作過程
2.5              器件選型方案及詳細清單
2.6              AT89C51特殊功能寄存器
2.7              AT89C51的功能及簡介
2.8              搶答器的優點及組成
2.9              本章小結
3              系統總體方案的設計
3.1              硬件電路的設計
3.2              總體原理圖
3.3              時鐘頻率電路的設計
3.4              復位電路的設計
3.5              顯示電路的設計
3.6              鍵盤掃描電路的設計
3.7              發聲電路
3.8              系統復位
3.9              本章小結
4              軟件設計
4.1              主程序系統結構圖
4.2              軟件任務分析
4.3              程序流程圖
4.4              主要程序分析
4.5              本章小結
5              PROTEUS仿真系列組圖
5.1              復位圖
5.2              設置計時時間
5.3              非法搶答并顯示座號
5.4              搶答成功并顯示倒計時
5.5              本章小結
6              總結與展望
6.1              總結
6.2              展望
參 考 文 獻
ABSTRACT
致    謝


內部主要有以下部件:8031CPU、振蕩電路、總線控制部件、中斷控制部件、片內Flash存儲器、片內RAM、并行I/O接口、定時器和串行I/O接口


1.1        課題研究的相關背景

搶答器是一種應用非常廣泛的設備,在各種競賽、搶答場合中,它能迅速、客觀地分辨出最先獲得發言權的選手。早期的搶答器只由幾個三極管、可控硅、發光管等組成,能通過發光管的指示辯認出選手號碼。現在大多數搶答器均使用單片機(如MCS-51型)和數字集成電路,并增加了許多新功能,如選手號碼顯示、搶按前或搶按后的計時、選手得分顯示等功能。

本課題利用AT89C51單片機及外圍接口實現的搶答系統,利用單片機的定時器/計數器定時和記數的原理,將軟、硬件有機地結合起來,使得系統能夠正確地進行計時,同時使數碼管能夠正確地顯示時間和選手號碼。用開關做鍵盤輸出,揚聲器發生提示。系統達到要求:在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效;搶答限定時間和回答問題的時間可是在1-99s設定;可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示;搶答時間和回答問題時間倒記時顯示,時間完后系統自動復位;按鍵鎖定,在有效狀態下,按鍵無效非法[1]。

1.2         選題的目的和意義

通過這次設計,掌握51單片機的原理,了解簡單多功能搶答器組成原理,初步掌握多功能搶答器的調整及測試方法,提高動手能力和排除故障的能力。同時通過本課題設計與裝配、調試,提高自己的動手能力,鞏固已學的理論知識,建立單片機理論和實踐的結合,了解多功能搶答器各單元電路之間的關系及相互影響,從而能正確設計、計算定時計數的各個單元電路。初步掌握多功能搶答器的調整及測試方法。提高動手能力和排除故障的能力。

1.3          課題研究的內容

本系統采用模塊化設計智能搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。主持人有開始和結束、復位鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設置,原始狀態下搶答時間為20s,回答問題時間為30s。通過加鍵和減鍵修改上述時間,改完后結束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規,數碼顯示屏顯示犯規者的代號,揚聲器持續發生。主持人可按鍵結束,新一輪搶答開始。

通過研究并在設計驗證后發現,采用單片機技術設計的搶答器與目前常用的搶答器相比,首先,電路連接簡單,因為大多數功能單元都通過程序設計在單片機內部,第二,工作性能可靠,抗干擾能力優于目前搶答器。所以本研究是一個實用的工程設計,具有創新性。

本論文章節的結構和內容如下:

第一章:緒論。簡要介紹了搶答器的發展現狀,說明了本課題研究的內容。

第二章:搶答器系統概述。說明了搶答器的工作過程和主要功能,并定下了本課題要達到的設計目標。

第三章:搶答器的硬件電路的設計。詳細描述了本課題各個組成電路單元的設計。

第四章:搶答器的軟件設計,并編程序。

第五章:Proteus仿真,仿真出結果。

第六章:總結。總結課題設計,指出設計中的一些問題,提出改善的意見,并展望搶答器的未來設計。

1.4        國內外研究現狀

搶答器作為一種電子產品,早已廣泛應用于各種智力和知識競賽場合,但目前所使用的搶答器有的電路較復雜不便于制作,可靠性低,實現起來很困難;有的則用一些專用的集成塊,而專用集成塊的購買又很困難。為適應高校等多代表隊單位活動的需要而設計一個多功能搶答器,這種搶答器具有電路簡單,元件普通,易于購買等優點,很好地解決了制作者制作困難和難于購買的問題。在國內外已經開始了普遍的應用[2]。

1.5         搶答器目前存在的主要問題

隨著改革開放事業的不斷深入,促使人們學科學、學技術、學知識的手段多種多樣,搶答器作為一種工具,已廣泛應用于各種智力和知識競賽場合。但搶答器的使用頻率校低,且有的要么制作復雜,要么可靠性低,減少興致。作為一個單位若專購一臺搶答器雖然在經濟上可以承受,但每年使用的次數極少,往往因長期存放使(電子器件的)搶答器損壞,再購置的麻煩和及時性就會影響活動的開展。

而且目前多數搶答器存在3個不足之處[3]:第一,現場線路連接復雜。因為每個選手位于搶答現場的不同位置,每個選手與控制臺之間要有長長的連接線。選手越多,連接線就越多、越亂,這些連接線不僅影響了現場的美觀,而且降低了搶答器的可靠性,增加了安裝的難度,甚至影響了現場人員的走動。第二,電路復雜。因為單片機只完成號碼處理、計時、數據運算等功能,其它功能如選手號碼的識別、譯碼、計分顯示等仍只能通過數字集成電路完成。采用單片機掃描技術識別選手搶按號碼時,電路的延遲時間較大。第三,選手搶按成功,但出現沒有搶答被記錄的問題。

  • 搶答器的系統概述
2.1        系統的主要功能

本系統是借用單片機采用模塊化設計的八路搶答器,包括8路搶答按紐、計時顯示、提示功能等(根據需要可另設或多設相關功能)、開始與結束控制按鈕、時限設定、各種相關顯示調控功能等(根據需要也可另設或多設相關功能)。

參賽者系統,除享有搶答按紐的權利功能外,還有人性化的提示功能和時間提示功能,也可設定由主控控制在參賽者終端表現的趣味性功能等;主控系統的控制按鈕做開始與結束控制,根據活動參賽者的層次,對提前掄答者的行為設定為非法或阻隔,若設有非法搶答控制功能時,在主控處帶有公示性顯示的非法掄答者的臺位號,對搶答限時及回答問題限時設為倒計時,并有顯示提示。

系統的主要功能模塊方框圖如圖1所示。

圖1 系統主要功能模塊

本系統采用模塊化設計的八路搶答器,在搶答比賽中廣泛應用,各組分別有一個搶答按鈕。一共有8個按鍵輸入,分別對應8路選手的搶答按鍵。

主持人有開始和結束鍵。在后臺主持人可以修改,搶答時間和選手回答問題的時間設置,原始狀態下搶答時間為20s,回答問題時間為30s。通過加鍵和減鍵修改上述時間,改完后結束鍵確定。新時間開始有效,主持人按鍵開始后,選手開始搶答為有效,數碼顯示屏顯示搶答時間倒計時和選手號,在最后五秒揚聲器發生提示。如果主持人沒有按下開始鍵而選手就搶答視為犯規,數碼顯示屏顯示犯規者的代號,揚聲器持續發生。主持人可按鍵結束,新一輪搶答開始。

單片機是整個搶答器的核心,內部電路設計用匯編語言編寫。它完成了時間參數的設定,搶按號碼的譯碼,保存;顯示;輸出,搶按及答題倒計時功能等。

本設計中,有一個共陰的數碼管組,四個數碼管。其中兩個顯示時間,一個空位,一個顯示搶答號碼。主持人依次按下復位鍵(RESET),開始鍵后開始搶答。可以搶按:超時數碼管顯示“FFF”,當搶按超過規定時間或答題超過規定時間后數碼管顯示“FFF”。若有選手在規定時間內搶按成功,則可以答題,數碼管顯示搶答時間的同時也顯示選手號碼。若在按開始鍵前搶答表示違規,數碼管顯示“FF”并顯示選手號碼。

2.2         系統需求分析

1、在搶答中,只有開始后搶答才有效,如果在開始搶答前搶答為無效。

2、搶答限定時間和回答問題的時間可以在1~99s設定。

3、可以顯示是哪位選手有效搶答和無效搶答,正確按鍵后有音樂提示。

4、搶答時間和回答問題時間倒記時顯示,時間完后系統自動復位。

5、搶答限定時間內使用錦囊回答時間將加到60s。

6、按鍵鎖定,在有效狀態下,按鍵無效非法。

2.3        搶答器的工作流程

搶答器的基本工作原理[4]:在搶答競賽或呼叫時,有多個信號同時或不同時送入主電路中,搶答器內部的寄存器工作,并識別、記錄第一個號碼,同時內部的定時器開始工作,記錄有關時間并產生超時信號。在整個搶答器工作過程中,顯示電路、聲音電路等還要根據現場的實際情況向外電路輸出相應信號。搶答器的工作流程分為:系統復位、正常流程、違例流程等幾部分,如圖2所示,下面分別予以介紹。

圖2 搶答器工作流程

2.4        搶答器的工作過程

1、如果想調節搶答時間或答題時間,按“加一”鍵或“減一”鍵進入調節狀態,此時會顯示現在設定的搶答時間或回答時間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下“減1s”鍵,時間LED上會顯示改變后的時間,調整范圍為0~99s, 0s時再減1s會跳到99,99s時再加1s會變到0s。

2、主持人按"搶答開始"鍵,會有提示音,并立刻進入搶答倒計時(預設20s搶答時間),如有選手搶答,會有提示音,并會顯示其號數并立刻進入回答倒計時(預設30s搶答時間),不進行搶答查詢,所以只有第一個按搶答的選手有效。倒數時間到小于5s會每秒響一下提示音。

3、如倒計時期間,主持人想停止倒計時可以隨時按“停止”按鍵,系統會自動進入準備狀態,等待主持人按“搶答開始”進入下次搶答計時。

4、如果主持人未按“搶答開始”鍵,而有人按了搶答按鍵,犯規搶答,LED上不斷閃爍FF和犯規號數并響個不停,直到按下“停止” 鍵為止。

總而言之,本課題利用AT89C51單片機及外圍接口實現的搶答系統設計了搶答器,該搶答器增加了新功能、提高了系統的可靠性、簡化了電路結構、節約了成本,是一個實用的工程設計。

2.5         器件選型方案及詳細清單

微控制器選用ATMAL公司生產的AT89C51,該芯片貨源充足,并且價格也比較便宜。如表1所示。

表1 器件選型方案的詳細清單

器件名稱
規格型號
數量
微處理器
AT86C51
1
芯片
74LS04
1
74HC30
1
電阻
3WTT10K
8
電容
20PF
3
晶振
12MHZ
1
按鈕


11
7段數碼管
7SEG-MPX4-CA
4
揚聲器


1

2.7        AT89C51的功能及簡介

圖3  AT89C51單片機的內部結構圖


為了提高數據處理和位操作功能,片內增加了一個通用寄存器B和一些專用寄存器,還增加了位處理邏輯電路的功能。其內部結構如圖3所示。

AT89C51的主要性能包括:AT89C51與MCS—51控制器系列產品兼容,片內有4K可在線重復編程閃速電擦除存儲器(Flash  Memory),存儲器可循環寫入/擦除1000次;存儲器數據保存時間可達10年;工作電壓范圍寬:Vcc可由2.7V到6V;全靜態工作可由0Hz到16MHz;程序存儲器具有3級鎖存保護;128*8位內部RAM;32條可編程I/O線;兩個16位定時器/計數器;中斷結構具有5個中斷源和2個中斷優先級;可編程全雙工串行通信;空閑狀態維持低功耗和掉電狀態保存存儲內容。

2.8         搶答器的優點及組成

在知識比賽中,特別是做搶答題目的時候,在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設計一個系統來完成這個任務。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統來設計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優先答題。本文主要介紹了單片機搶答器設計及工作原理,以及它的實際用途。系統工作原理本系統采用AT89C51單片機作為核心。控制系統的四個模塊分別為:存儲模塊、顯示模塊、聲音模塊、搶答開關模塊。該搶答器系統通過八個個按鍵輸入搶答信號;利用存儲程序來完成軟件的設計;利用一個4位七段共陰數碼管來完成顯示功能。工作時,用按鍵通過開關電路輸入各路的搶答信號,經單片機的處理,輸出控制信號,控制4位七段共陰數碼管和喇叭工作。在數碼管上顯示哪一組先答題,從而實現整個搶答過程。

2.9        本章小結

本章主要講述了搶答器的工作原理和本設計系統的工作流程。在說明工作原理的過程中,突出了電路的組成單元以及這些單元如何實現搶答功能;在說明系統的流程時,結合本設計的內容,指出了參數設置的方法和意義。搶答正常流程與違例流程的實現,以及如何進行搶答控制。同時也說明了搶答器的優點和AT89C51的功能及簡介。

  • 系統總體方案的設計
3.1         硬件電路的設計

本設計分為硬件設計和軟件設計,這兩者相互結合,不可分離;從時間上看,硬件設計的絕大部分工作量是在最初階段,到后期往往還要做一些修改。只要技術準備充分,硬件設計的大返工是比較少的,軟件設計的任務貫徹始終,到中后期基本上都是軟件設計任務,隨著集成電路技術的飛速發展,各種功能很強的芯片不斷出現,使硬件電路的集成度越來越高,硬件設計的工作量在整個項目中的所占的比重逐漸下降。為使硬件電路設計盡可能合理,應注意以下幾方面[7]:

(1) 盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替若干普通芯片,隨著生產工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總和高。

(2) 留有設計余地。在設計硬件電路時,要考慮到將來修改擴展的方便。因為很少有一錘定音的電路設計,如果現在不留余地,將來可能要為一點小小的修改或擴展而被迫進行全面返工。

(3) 程序空間,選用片內程序空間足夠大的單片機,本設計采用AT89C51單片機。

(4)  RAM空間,AT89C51內部RAM不多,當要增強軟件數據處理功能時,往往覺得不足。如果系統配置了外部RAM,則建議多留一些空間。如選用8155作I/O接口,就可以增強256字節RAM。如果有大批數據需要處理,則應配置足夠的RAM,如6264,62256等。隨著軟件設計水平的提高,往往只要改變或增加軟件中的數據處理算法,就可以使系統功能提高很多,而系統的硬件不必做任何更換就使系統升級換代。只要在硬件電路設計初期考慮到這一點,就應該為系統將來升級留足夠的RAM空間,哪怕多設計一個RAM的插座,暫不插芯片也好。

(5) I/O端口:在樣機研制出來后進行現場試用時,往往會發現一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設計就預留出一些I/O端口,雖然當時空著沒用,那么用的時候就派上用場了。

3.2         總體原理圖

圖4 系統原理圖

圖中U1為單片機AT89C51,U2為芯片74HC30,U3為芯片74LS04。K1~K8分別為8路搶答按鍵,分別接到單片機的P1.0~P1.7中。開始按鍵與結束按鍵分別接到單片機的10、11腳,由于單片機的10、11腳既有串行接口RXD、TXD功能,又有P3.0、P3.1的IO端口功能,此處按鍵用到單片機10、11腳的IO端口功能。搶答時間調整按鍵和回答時間調整按鍵分別接到單片機的13、14管腳,加一按鍵和減一按鍵分別接到單片機的15、16管腳。4位七段數碼管段選P0口。4位七段數碼管的位選接P2口低3位,蜂鳴器輸出為P3.7口[8]。

3.3         時鐘頻率電路的設計

單片機必須在時鐘的驅動下才能工作。在單片機內部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產生一定的時鐘信號送到單片機內部的各個單元,決定單片機的工作速度。時鐘電路如圖5所示。

圖5 外部振蕩源電路

一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調。C1,C2的典型值為20PF。

單片機在工作時,由內部振蕩器產生或由外直接輸入的送至內部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數,常用fosc表示。圖中時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12µs。

3.4         復位電路的設計

單片機的第9腳RST為硬件復位端,只要將該端持續4個機器周期的高電平即可實現復位,復位后單片機的各狀態都恢復到初始化狀態,其電路圖如圖6所示:

圖6 復位電路


圖6中由按鍵RESET1以及電解電容C3、電阻R2構成按鍵及上電復位電路。由于單片機是高電平復位,所以當按鍵RESET1按下時候,單片機的9腳RESET管腳處于高電平,此時單片機處于復位狀態。當上電后,由于電容的緩慢充電,單片機的9腳電壓逐步由高向低轉化,經過一段時間后,單片機的9腳處于穩定的低電平狀態,此時單片機上電復位完畢,系統程序從0000H開始執行。

值得注意的是,在設計當中使用到了硬件復位和軟件復位兩種功能,由上面的硬件復位后的各狀態可知寄存器及存儲器的值都恢復到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現的前提條件就是不能對單片機進行硬件復位,所以設定了軟復位功能。軟復位實際上就是當程序執行完畢之后,將程序指針通過一條跳轉指令讓它跳轉到程序執行的起始地址。

3.5         顯示電路的設計

顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。

在這里我們使用的是七段數碼管顯示,通常在顯示上我們采用的方法一般包括兩種:一種是靜態顯示,一種是動態顯示。其中靜態顯示的特點是顯示穩定不閃爍,程序編寫簡單,但占用端口資源多;動態顯示的特點是顯示穩定性沒靜態好,程序編寫復雜,但是相對靜態顯示而言占用端口資源少。在本設計中根據實際情況采用的是動態顯示方法。

通過查表法,將其在數碼管上顯示出來,其中P0口為字型碼輸入端,P2口低3位為字選段輸入端。在這里我們通過查表將字型碼送給7段數碼管顯示的數字,數碼管顯示原理如下:

        MOV A,R3

        MOVC A,@A+DPTR

        MOV P2,#0feH

        MOV P0,A

        ACALL DELAY

        MOV DPTR,#DAT2

        MOV A,R5

        MOVC A,@A+DPTR

        MOV P2,#0fdH

        MOV P0,A

        ACALL DELAY

        MOV A,R4

        MOVC A,@A+DPTR

        MOV P2,#0fbH

        MOV P0,A

        ACALL DELAY

        RET

4位七段數碼管顯示電路如圖7所示。

圖7 共陰極數碼管

圖7中數碼管采用的是4位七段共陰數碼管,其中A~H段分別接到單片機的P0口,由單片機輸出的P0口數據來決定段碼值,位選碼COM1、COM3、COM4分別接到單片機的P2.0、P2.1、P2.2,由單片機來決定當前該顯示的是哪一位。在圖中還有八個1K的電阻,連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數據輸出時候處于高電平狀態。

3.6         鍵盤掃描電路的設計

鍵盤是人與單片機打交道的主要設備。關于鍵盤硬件電路的設計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應的鍵盤掃描程序。站在系統監控軟件設計的立場上來看,僅僅完成鍵盤掃描,讀取當前時刻的鍵盤狀態是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現象。在單片機應用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。

它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設計上也不復雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區別,首先在硬件電路上它要比獨立鍵盤復雜得多,而且在程序算法上比它要煩瑣,但它在節省端口資源上有優勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產生的“毛刺”現象。這里采用最常用的方法,即延時重復掃描法,延時法的原理為:因為“毛刺”脈沖一般持續時間短,約為幾ms,而我們按鍵的時間一般遠遠大于這個時間,所以當單片機檢測到有按鍵動靜后再延時一段時間(這里我們取10ms)后再判斷此電平是否保持原狀態,如果是則為有效按鍵,否則無效。

在本文設計中采用了獨立鍵盤的方式,本設計中有8個搶答按鍵輸入,一個開始按鍵、一個結束按鍵,此外還有搶答時間調整鍵、回答時間調整鍵,加一按鍵、減一按鍵各一個。如圖8所示。

圖8 搶答按鍵及調整按鍵

在圖8中8個搶答按鍵分別接入單片機的P1.0~P1.7端口,單片機通過讀取P1.0~P1.7的值來判斷當前輸入的是8個搶答按鍵中的哪一個。搶答時間調整和回答時間調整接到單片機的P3.3和P3.4接口,加一及減一按鍵接到單片機的P3.5和P3.6接口。

圖9 開始、結束按鍵

在圖9中,開始及結束按鍵接到單片機的10、11腳,這里用到了單片機10、11腳復合功能中的IO端口功能,單片機通過讀取10、11腳的P3.0、P3.1的IO端口值來判斷當前是否處于搶答開始狀態或搶答結束狀態。

按鍵的觸點在閉合和斷開時均會產生抖動,這時觸點的邏輯電平是不穩定的,如不妥善處理,將會引起按鍵命令的錯誤執行或重復執行。現在一般均用軟件延時的方法來避開抖動階段,這一延時過程一般大于5ms,例如取10-20ms。如果監控程序中的讀鍵操作安排在主程序(后臺程序)或鍵盤中斷(外部中斷)子程序中,則該延時子程序便可直接插入讀鍵過程中。如果讀鍵過程安排在定時中斷子程序中,就可省去專門的延時子程序,利用兩次定時中斷的時間間隔來完成抖動處理。

K1~K8八個按鍵的輸入電平靠74HC30輸入與非門和74LS04反向器組成的電路改變輸入電平。圖10中電路就是由一個74HC30輸入與非門和74LS04反向器組成的去抖電路。

圖10 去抖電路

3.7         發聲電路

我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產生一定頻率的矩形波,接上喇叭就能發出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續時間,就能改變輸出頻率,從而改變音調,使喇叭發出不同的聲音。

本文設計如圖11所示。圖中單片機的14腳輸出具有復合功能,此處用到了單片機17腳的IO端口功能,單片機通過內部定時器的操作實現交替變換的波形輸出驅動揚聲器發聲。

圖11 發聲電路

3.8         系統復位

使CPU進入初始狀態,從0000H地址開始執行程序的過程叫系統復位。從實現系統復位的方法來看,系統復位可分為硬件復位和軟件復位。硬件復位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時間的高電位才能實現。上電復位,人工按鈕復位和硬件看門狗復位均為硬件復位。硬件復位后,各專用寄存器的狀態均被初始化,且對片內通用寄存器的內容沒有影響。但是,硬件復位還能自動清除中斷激活標志,使中斷系統能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復位就是用一系列指令來模擬硬件復位功能,最后通過轉移指令使程序從0000H地址開始執行。對各專用寄存器的復位操作是容易的,也沒有必要完全模擬,可根據實際需要去主程序初始化過程中完成。而對中斷激活標志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用020000(LJMP0000H)作為軟件陷阱,認為直接轉向0000H地址就完成了軟件復位,就是這類錯誤的典型代表。軟件復位是使用軟件陷阱和軟件看門狗后必須進行的工作,這時程序出錯完全有可能發生在中斷子程序中,中斷激活標志已置位,它將阻止同級中斷響應。由于軟件看門是高級中斷,它將阻止說要中斷響應,由此可見清除中斷激活標志的重要性。

在所有的指令中,只有RETI指令能夠清除中斷激活標志。出錯處理程序ERR主要完成這一功能,其他的善后工作交由復位后的系統去完成。

程序一般先關中斷,以便后續處理能順利進行,然后用兩個RETI指令代替兩個LJMP指令,從而清除了兩級中斷激活標志。有相應軟件陷阱捕捉來的程序可能沒有全部激活兩個標志,這也無妨。

有復位時系統的歷史狀況,可將復位分為“冷啟動”和“熱啟動”。 “冷啟動”時,系統的狀態全部無效,進行徹底的初始化操作;而“熱啟動”時,對系統的當前狀態進行修復和有選擇的初始化。系統初次上電投入運行時,必須是“冷啟動”,以后由抗干擾措施引起的復位操作一般均為“熱啟動”初次上電投入運行時,必須是“冷啟動”,以后由抗干擾措施引起的復位操作一般均為“熱啟動”。為了使系統能正確決定采用何種啟動方式,常用上電標志來區分,如圖12所示。

圖12 系統復位策略圖


3.9           本章小結

本章詳細講述了以AT89C51為核心元件的搶答器的硬件電路具體設計過程,分析了具體電路。在設計過程中,實現搶答功能的是通過編寫程序的方法集成在AT89C51內部。接著將程序下載到硬件電路中,配合周邊的時鐘電路,復位電路等,制作出符合設計要求的搶答器。

  • 軟件設計
4.1         主程序系統結構圖

圖13軟件系統結構圖

4.2        軟件任務分析

軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完成,在硬件電路設計基本定型后,也就基本上決定下來了[9]。

軟件任務分析環節是為軟件設計做一個總體規劃。從軟件的功能來看可分為兩大類:一類是執行軟件,它能完成各種實質性的功能,如測量,計算,顯示,打印,輸出控制和通信等,另一類是監控軟件,它是專門用來協調各執行模塊和操作者的關系,在系統軟件中充當組織調度角色的軟件。這兩類軟件的設計方法各有特色,執行軟件的設計偏重算法效率,與硬件關系密切,千變萬化。

軟件任務分析時,應將各執行模塊一一列出,并為每一個執行模塊進行功能定義和接口定義(輸入輸出定義)。在各執行模塊進行定義時,將要牽扯到的數據結構和數據類型問題也一并規劃好。

各執行模塊規劃好后,就可以監控程序了。首先根據系統功能和鍵盤設置選擇一種最適合的監控程序結構。相對來講,執行模塊任務明確單純,比較容易編程,而監控程序較易出問題。這如同當一名操作工人比較容易,而當一個廠長就比較難了。

軟件任務分析的另一個內容是如何安排監控軟件和各執行模塊。整個系統軟件可分為后臺程序(背景程序)和前臺程序。后臺程序指主程序及其調用的子程序,這類程序對實時性要求不是太高,延誤幾十ms甚至幾百ms也沒關系,故通常將監控程序(鍵盤解釋程序),顯示程序和打印程序等與操作者打交道的程序放在后臺程序中執行;而前臺程序安排一些實時性要求較高的內容,如定時系統和外部中斷(如掉電中斷)。也可以將全部程序均安排在前臺,后臺程序為“使系統進入睡眠狀態”,以利于系統節電和抗干擾。

4.3         程序流程圖

在本設計中包括了以下主要的程序:主程序,查詢程序,非法搶答程序,搶答時間調整程序,回答時間調整程序,倒計時程序,正常搶答處理程序,犯規處理程序,顯示及發聲程序。主流程圖如14所示:

圖14 程序設計流程圖

4.4        主要程序分析

主程序:

4.5         本章小結

本章是搶答器的軟件設計,實現搶答功能主要是通過編寫程序的方法集成在AT89C51內部。將程序下載到硬件電路中,實現搶答功能。

  • Proteus仿真系列組
5.1         復位圖

圖15 復位顯示三個FFF


該圖顯示當單片機復位后,在4位七段數碼管上顯示的初始狀態“F FF”字符。

5.2         設置計時時間

圖16 計時時間為17秒


該圖顯示通過加一按鍵操作后在4位數碼管上顯示的計時時間為17秒。

5.3         非法搶答并顯示座號

圖17  三號選手非法搶答


該圖顯示的是若三號選手非法搶答時候,第一位字符顯示單片機判定的非法選手“3”號選手,在4位數碼管上的后兩位顯示非法搶答字符“FF”。

5.4         搶答成功并顯示倒計時

圖18 六號選手搶答

圖中顯示的是若6號選手搶答成功的時候,4位數碼管的第一顯示是“6”號選手搶答成功,最后兩位顯示選手答題倒計時時間還有25秒。

5.5         本章小結

本章是搶答器的系統仿真部分,并對搶答器的各個流程做出了具體仿真結果。從仿真圖上可以進一步得出結論:利用單片機設計的搶答器工作性能穩定,延遲時間小,電路結構簡單,是一個實用、創新性的電路設計。

  • 總結與展望
6.1         總結

本文研究與設計的八路多功能搶答器采用了通用的電子元器件,利用AT89C51單片機及外圍接口實現搶答系統,利用單片機的定時器/計數器定時和記數的原理,將軟、硬件有機地結合起來。理論聯系實踐,體現出大學生動手能力。通過查資料和搜集有關的文獻,培養了自學能力和動手能力。并且由原先的被動的接受知識轉換為主動的尋求知識,這可以說是學習方法上的一個很大的突破。在以往的傳統的學習模式下,我們可能會記住很多的書本知識,但是通過畢業論文,我們學會了如何將學到的知識轉化為自己的東西,學會了怎么更好的處理知識和實踐相結合的問題。把握重點、攻克難關,學到用到、活學活用。在設計過程中由于時間倉促有很多地方難免存在不足之處,硬件設計已經完成,在軟件設計中有些功能還尚未開發出來。但在以后的工作中,我們會嚴格要求自己,追求完美。

整個設計通過了軟件和硬件上的調試、仿真。我想這對于自己以后的學習和工作都會有很大的幫助的。在這次設計中遇到了很多實際性的問題,在實際設計中才發現,書本上理論性的東西與在實際運用中的還是有一定的出入的,所以有些問題不但要深入地理解,而且要不斷地更正以前的錯誤思維。對于單片機設計,其硬件電路是比較簡單的,主要是解決程序設計中的問題。而程序設計是一個很靈活的東西,它反映了你解決問題的邏輯思維和創新能力。它才是一個設計的靈魂所在。因此在整個設計過程中大部分時間是用在程序上面的。很多子程序是可以借鑒書本上的,但怎樣銜接各個子程序才是關鍵的問題所在,這需要對單片機的結構很熟悉。因此可以說單片機的設計是軟件和硬件的結合,二者是密不可分的。

但是,通過這次設計我也發現自己的很多不足之處。在設計過程中我發現自己考慮問題很不全面,自己的專業知識掌握的很不牢固,所掌握的計算機應用軟件還不夠多,我希望自己的這些不足之處能在今后的工作和學習中得到改善。而且,通過這次設計,我懂得了學習的重要性,學會了堅持和努力,這將為以后的學習做出了最好的榜樣!

6.2         展望

回頭再看看該設計,還可以將設計的擴展功能增強:1、可以設計聲控裝置,在主持人說開始時,系統自動完成清零并開始計時的功能。2、增加記分模塊,可以設定初始積分,并記錄每次搶答完成后的積分。3、將搶答按鍵用無線實現,如紅外線,使搶答者可以遠距離進行搶答,并簡化按鍵模塊的線路布置。如果提供相應的器材及時間上的寬限,一定可以完成上述擴展功能,進一步完善作品。

參 考 文 獻

[1] 程相波,衛安軍.基于MCS-51單片機的八路搶答器設計方法研究[J].北京工業職業技術學院學報,2007,(2).

[2]林凌,李剛,丁茹,李小霞.新型單片機接口器件與技術[M].西安:西安電子科技大學出版社,2005年.

[3]李增生.對《搶答器》的改進[J].電子制作,2000,(12).

[4]馬軻瀛.八路數字搶答器系統[J].華商,2007,(23).

[5]高偉.AT89單片機原理及應用[M].北京:國防工業出版社,2008年.

[6]蔡朝陽.單片機控制實習與專題制作[M].北京:北京航空航天大學出版社,2006年.

[7]楊凌霄.微型計算機原理及應用[M].江蘇:中國礦業大學出版社,2004年.

[8]丁建偉.搶答器電路設計[J].蘭州工業高等專科學校學報,2008,(04).

[9] 胡學海.單片機原理及應用系統設計[M].北京:北京電子工業出版社,2005年.


Abstract

Eight-way first answer device based on AT89C51

Lincheng Deng

(College of Computer Science and Engineering, Zhongkai University of Agriculture and Engineering,Guangzhou 510225,China)

Abstract: As a tool, the first answer device has been widely used in all kinds of intelligence and knowledge contests occasions. However, it is not used so frequently due to its production complexity, lacking of reliability and reducing interest. Although a unit can afford it, it is rarely used yearly. Meanwhile, because of the long-term storage, its electronic devices are easy to be damaged. Some activities are likely to be affected because it is quiet trouble to repurchase these spare parts and time-wasting. This First Answer Device is designed to solve these problems.

And this design is based on the principle of eight-way first answer. Considering the requirement and the limited time to answer, while using AT89C51 single-chip and external interface of the Answer System, the use of single-chip timer / counter timing and number of the principles in mind, the software and hardware combination, makes the system time correctly, while the digital control to display time correctly. Switch the keyboard to do with output, speaker prompted occurred. At the same time, the system can be realized: In the competitive answering game, only after the answer that will be valid, if at the beginning of pre-answer that will be invalid; Competitive answer to the question and the end of the question can be set in 1-99s; it can show who's effective and whose answer’s invalid, the correct button will prompt after the music; count down to the competitive and finished time, when it’s full time the system will be automatic reset and the master will also be forced reset ;keys locked in the effective state, while the key is invalid illegal.



單片機源程序如下:

  1. <font style="font-size: 12pt">        OK EQU 20H                       ;搶答開始標志位
  2.         RING EQU 22H                     ;響鈴標志位
  3.               DATA0 EQU 36H                    ;搶答按鍵口數據存放地址
  4.               ORG 0000H
  5.         AJMP MAIN
  6.         ORG 0003H
  7.         AJMP INTT0
  8.         ORG 000BH
  9.         AJMP T0INT
  10.         ORG 001BH
  11.         AJMP T1INT
  12.         ORG 0040H
  13. MAIN:   MOV R1,#20                       ;初設搶答時間為20s
  14.         MOV R2,#30                       ;初設答題時間為30s
  15.         mov 38h,#60                      ;啟用錦囊時間從60s倒計時
  16.         MOV TMOD,#11H                    ;設置未定時器/模式1
  17.         MOV TH0,#0F0H
  18.         MOV TL0,#0FFH                    ;越高發聲頻率越高,越尖
  19.         MOV TH1,#3CH
  20.         MOV TL1,#0B0H                    ;50ms為一次溢出中斷
  21.         SETB EA
  22.         SETB ET0
  23.         SETB ET1                         ;允許二個中斷,T0/T1
  24.         CLR OK
  25.         CLR RING
  26.          SETB TR1
  27.          SETB TR0                        ;一開始就運行定時器,以開始顯示FFF.如果想重新計數,重置TH1/TL1就可以了

  28. 查詢程序:
  29. START:   MOV DATA0,#0FFH                 ;初始化
  30.          MOV R5,#0BH
  31.          MOV R4,#0BH
  32.          MOV R3,#0BH
  33.          ACALL DISPLAY                   ;未開始搶答時候顯示FFF
  34.               JNB P3.3,SELSUB0
  35.               JNB P3.4,TZ3                    ;倒計時調整
  36.               JB P3.0,NEXT
  37.          ACALL DELAY
  38.          JB P3.0,NEXT                    ;去抖動,如果“開始鍵”按下就向下執行,否者跳到非法搶答查詢
  39.          SETB EX0                        ;開放INT0
  40.               ACALL BARK                      ;按鍵發聲
  41.          MOV A,R1
  42.         MOV R6,A                   ;送R1->R6,因為R1中保存了搶答時間
  43.          SETB OK                         ;搶答標志位,在使用錦囊時用作判斷是搶答倒計時還是回答倒計時
  44.          MOV R3,#0AH                     ;搶答只顯示計時,滅號數
  45.          AJMP COUNT                      ;進入倒計時程序,“查詢有效搶答的程序”在COUNT里面
  46. NEXT:    JNB P1.0,FALSE1
  47.          JNB P1.1,FALSE2
  48.          JNB P1.2,FALSE3
  49.          JNB P1.3,FALSE4
  50.          JNB P1.4,FALSE5
  51.          JNB P1.5,FALSE6
  52.          JNB P1.6,TZ1
  53.          JNB P1.7,TZ2
  54.          AJMP START
  55. TZ1:     AJMP FALSE7
  56. TZ2:     AJMP FALSE8
  57. TZ3:     AJMP SELSUB1

  58. 非法搶答處理程序:
  59. FALSE1: MOV R3,#01H
  60.         AJMP ERROR
  61. FALSE2: MOV R3,#02H
  62.         AJMP ERROR
  63. FALSE3: MOV R3,#03H
  64.         AJMP ERROR
  65. FALSE4: MOV R3,#04H
  66.         AJMP ERROR
  67. FALSE5: MOV R3,#05H
  68.         AJMP ERROR
  69. FALSE6: MOV R3,#06H
  70.         AJMP ERROR
  71. FALSE7: MOV R3,#07H
  72.         AJMP ERROR
  73. FALSE8: MOV R3,#08H
  74.         AJMP ERROR

  75. SELSUB0(搶答時間R1調整程序):
  76. SELSUB0: MOV A,R1
  77.         MOV B,#0AH
  78.          DIV AB
  79.          MOV R5,A
  80.          MOV R4,B
  81.          MOV R3,#0AH
  82.          ACALL DISPLAY                   ;先在兩個時間LED上顯示R1
  83.          JNB P3.5,INC0                   ;P3.5為+1s鍵,如按下跳到INCO
  84.          JNB P3.6,DEC0                   ;P3.6為-1s鍵,如按下跳到DECO
  85.          JNB P3.1,BACK0                  ;P3.1為確定鍵,如按下跳到BACKO
  86.          AJMP SELSUB0
  87. INC0:   MOV A,R1
  88.         CJNE A,#63H,ADD0                 ;如果不是99,R2加1,如果加到99,R1就置0,重新加起。
  89.         MOV R1,#00H
  90.         ACALL DELAY1
  91.         AJMP SELSUB0
  92. ADD0:   INC R1
  93.         ACALL DELAY1
  94.         AJMP SELSUB0
  95. DEC0:   MOV A,R1
  96.         JZ SETR1                         ;如果R1為0, R1就置99,
  97.         DEC R1
  98.         ACALL DELAY1
  99.         AJMP SELSUB0
  100. SETR1:  MOV R1,#63H
  101.         ACALL DELAY1
  102.         AJMP SELSUB0
  103. BACK0:  AJMP START

  104. SELSUB1(回答時間R2調整程序):
  105. SELSUB1: MOV A,R2
  106.         MOV B,#0AH
  107.         DIV AB
  108.        MOV R5,A
  109.        MOV R4,B
  110.        MOV R3,#0AH
  111.        ACALL DISPLAY
  112.     JNB P3.5,INC1
  113.     JNB P3.6,DEC1
  114.     JNB P3.1,BACK1
  115.     AJMP SELSUB1
  116. INC1:   MOV A,R2
  117.        CJNE A,#63H,ADD1
  118.         MOV R2,#00H
  119.         ACALL DELAY1
  120. AJMP SELSUB1
  121. ADD1:   INC R2
  122.         ACALL DELAY1
  123.         AJMP SELSUB1
  124. DEC1:   MOV A,R2
  125.     JZ SETR2
  126.    DEC R2
  127.     ACALL DELAY1
  128.     AJMP SELSUB1
  129. SETR2:  MOV R2,#63H
  130.         ACALL DELAY1
  131.         AJMP SELSUB1
  132. BACK1: AJMP START

  133. 啟用錦囊程序:
  134. REPEAT:MOV A,38h                        ;使用錦囊時重新計時
  135.        MOV R6,A
  136.        CLR RING        ;當倒計時進入最后5秒的時候,啟用錦囊能消除蜂鳴

  137. 倒計時程序(搶答倒計時和回答倒計時都跳到改程序):
  138. COUNT:  MOV R0,#00H                    ;重置定時器中斷次數
  139.         MOV TH1,#3CH
  140.         MOV TL1,#0B0H                  ;重置定時器
  141. RECOUNT:MOV A,R6                       ;R6保存了倒計時的時間,之前先將搶答時間或回答時間給R6
  142.         MOV B,#0AH
  143.     DIV AB                             ;除十分出個位/十位
  144.     MOV 30H,A                          ;十位存于(30H)
  145.     MOV 31H,B                          ;個位存于(31H)
  146.     MOV R5,30H                         ;取十位
  147.     MOV R4,31H                         ;取個位
  148.     MOV A,R6
  149.     SUBB A,#07H
  150.     JNC LARGER                   ;大于5s跳到LARGER,小于等于5s會提醒
  151.     MOV A,R0
  152.         CJNE A,#0AH,FULL               ;1s中0.5s向下運行
  153.     CLR RING
  154.     AJMP CHECK
  155. FULL: CJNE A,#14H,CHECK              ;下面是1s的情況,響并顯示號數并清R0,重新計
  156.       SETB RING
  157.       MOV A,R6
  158.     JZ QUIT                            ;計時完畢
  159.     MOV R0,#00H
  160.     DEC R6                           ;一秒標志減1
  161.      AJMP CHECK
  162. LARGER: MOV A,R0
  163.        CJNE A,#14H,CHECK          ;如果1s向下運行,否者跳到“停/顯示”
  164.        DEC R6                          ;計時一秒R6自動減1
  165.        MOV R0,#00H
  166. CHECK: JNB P3.1,QUIT         ;如按下停止鍵退出
  167.       JNB OK,CHECKK      ;只在回答倒計時才有效
  168.       AJMP NEXTT
  169. CHECKK:JNB P3.0,REPEAT    ;判斷是否使用錦囊
  170. NEXTT: ACALL DISPLAY
  171.    JB OK,ACCOUT;如果是搶答倒計時,如是則查詢搶答,否者跳過查詢繼續倒數(這里起到鎖搶答作用)
  172.       AJMP RECOUNT
  173. ACCOUT:MOV A,DATA0
  174.        JNB ACC.0,TRUE1
  175.        JNB ACC.1,TRUE2
  176.        JNB ACC.2,TRUE3
  177.        JNB ACC.3,TRUE4
  178.        JNB ACC.4,TRUE5
  179.        JNB ACC.5,TRUE6
  180.        JNB ACC.6,TZ7
  181.       JNB ACC.7,TZ8
  182.       AJMP RECOUNT
  183. TZ7: AJMP TRUE7
  184. TZ8: AJMP TRUE8  
  185. QUIT:  CLR OK                         ;如果按下了“停止鍵”執行的程序
  186.    CLR RING
  187.    AJMP START

  188. 正常搶答處理程序:
  189. TRUE1: ACALL BARK
  190.        MOV A,R2
  191.       MOV R6,A              ;搶答時間R2送R6
  192.        MOV R3,#01H
  193.        CLR OK               ;因為答題的計時不再查詢搶答,所以就鎖了搶答
  194.        AJMP COUNT
  195. TRUE2:ACALL BARK
  196.       MOV A,R2
  197.       MOV R6,A
  198.       MOV R3,#02H
  199.       CLR OK
  200.       AJMP COUNT
  201. TRUE3:ACALL BARK
  202.       MOV A,R2
  203.       MOV R6,A
  204.       MOV R3,#03H
  205.       CLR OK
  206.       AJMP COUNT
  207. TRUE4:ACALL BARK
  208.       MOV A,R2
  209.       MOV R6,A
  210.       MOV R3,#04H
  211.       CLR OK
  212.       AJMP COUNT
  213. TRUE5: ACALL BARK
  214.         MOV A,R2
  215.         MOV R6,A
  216.         MOV R3,#05H
  217.         CLR OK
  218.         AJMP COUNT
  219. TRUE6:  ACALL BARK
  220.         MOV A,R2
  221.         MOV R6,A
  222.         MOV R3,#06H
  223.         CLR OK
  224.         AJMP COUNT
  225. TRUE7:  ACALL BARK
  226.         MOV A,R2
  227.         MOV R6,A
  228.         MOV R3,#07H
  229.         CLR OK
  230.         AJMP COUNT
  231. TRUE8:  ACALL BARK
  232.         MOV A,R2
  233.         MOV R6,A
  234.         MOV R3,#08H
  235.         CLR OK
  236.               AJMP COUNT

  237. 犯規搶答程序:
  238. ERROR:  MOV R0,#00H
  239.         MOV TH1,#3CH
  240.         MOV TL1,#0B0H
  241.         MOV 34H,R3                ;犯規號數暫存與(34H)
  242. HERE:   MOV A,R0
  243.         CJNE A,#06H,FLASH         ;0.3s向下運行->滅并停響
  244.         CLR RING
  245.         MOV R3,#0AH
  246.         MOV R4,#0AH
  247.         MOV R5,#0AH               ;三燈全滅
  248.         AJMP CHECK1
  249. FLASH:  CJNE A,#0CH,CHECK1        ;下面是0.8s的情況,響并顯示號數并清R0,重新計
  250.         SETB RING
  251.         MOV R0,#00H
  252.         MOV R3,34H                ;取回號數
  253.         MOV R5,#0BH
  254.         MOV R4,#0BH               ;顯示FF和號數
  255.         AJMP CHECK1
  256. CHECK1: JNB P3.1,QUIT1
  257.         ACALL DISPLAY
  258.         AJMP HERE
  259. QUIT1:  CLR RING
  260.         CLR OK
  261.         AJMP START

  262. 顯示程序:
  263. DISPLAY:MOV DPTR,#DAT1           ;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出
  264.         MOV A,R3
  265.         MOVC A,@A+DPTR
  266.         MOV P2,#0feH
  267.         MOV P0,A
  268.         ACALL DELAY
  269.         MOV DPTR,#DAT2
  270.         MOV A,R5
  271.         MOVC A,@A+DPTR
  272.         MOV P2,#0fdH
  273.         MOV P0,A
  274.         ACALL DELAY
  275.         MOV A,R4
  276.         MOVC A,@A+DPTR
  277.         MOV P2,#0fbH
  278.         MOV P0,A
  279.         ACALL DELAY
  280.         RET
  281. DAT1:DB 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
  282. ;"滅","1","2","3","4","5","6","7","8","9","滅","F"
  283. DAT2:DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00H,71H
  284. ;第一個為零,其他與上相同,因為十位如果為零顯示熄滅

  285. 加減時間延時(起到不會按下就加N個數):
  286. DELAY1: MOV 35H,#08H
  287. ……………………

  288. …………限于本文篇幅 余下代碼請從51黑下載附件…………
  289. </font>
復制代碼

所有資料51hei提供下載:

基于51單片機搶答器畢業設計.doc (887 KB, 下載次數: 256)





分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:73710 發表于 2019-10-22 10:54 | 只看該作者
謝謝樓主的分享!這個絕對要頂!!!
回復

使用道具 舉報

板凳
ID:73710 發表于 2019-10-22 10:55 | 只看該作者
很好、很強大,這個一定得支持!!!!!!!!!!!!!!
回復

使用道具 舉報

地板
ID:581979 發表于 2019-10-22 16:22 | 只看該作者
八路搶答器也可以作為畢業設計嗎
回復

使用道具 舉報

5#
ID:629977 發表于 2019-10-25 12:57 來自手機 | 只看該作者
Corrys 發表于 2019-10-22 16:22
八路搶答器也可以作為畢業設計嗎

是可以做畢業設計的,小哥哥
回復

使用道具 舉報

6#
ID:672798 發表于 2019-12-24 22:35 來自手機 | 只看該作者
有沒有人可以發一個仿真文件啊,感謝大佬
回復

使用道具 舉報

7#
ID:650455 發表于 2020-3-26 16:45 | 只看該作者
樓主你樓了個4.4的主程序分析,這個源程序也用不了,有錯誤,復制不了
回復

使用道具 舉報

8#
ID:1034601 發表于 2023-2-2 15:14 | 只看該作者
可以當模板 十分感謝
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 成人在线观看中文字幕 | 亚洲电影一区二区三区 | 99视频在线免费观看 | 欧美成视频 | 99久久精品视频免费 | 亚洲欧美中文日韩在线v日本 | 在线成人 | 日韩av在线免费 | 国产高清在线精品一区二区三区 | 色吧综合| 亚洲一区二区三区免费 | 国产一二三视频在线观看 | 免费黄色在线观看 | 午夜电影在线播放 | 午夜精品一区二区三区在线观看 | 国产一级片久久久 | 欧美一区二区另类 | 99精品国产一区二区三区 | 成人在线精品视频 | 亚洲精品久久久久久宅男 | 亚洲成人毛片 | 二区高清| 久久久久国产一区二区三区 | 国产精品自拍视频网站 | 超级黄色一级片 | 九九热在线视频观看这里只有精品 | 久久久久久久一区二区三区 | 国产99久久精品一区二区永久免费 | 亚洲毛片在线观看 | 欧美99| 九九免费| 久久久久国产一区二区 | 欧美日韩一区二区在线播放 | 一级a爱片性色毛片免费 | 天堂在线免费视频 | 欧美日韩在线一区二区 | 欧美一级二级视频 | 久久久一区二区三区四区 | 亚洲精品1区 | 中文字幕在线观看一区二区 | 老司机精品福利视频 |