基于單片機的六路搶答器設計(共23頁)_第1頁
基于單片機的六路搶答器設計(共23頁)_第2頁
基于單片機的六路搶答器設計(共23頁)_第3頁
基于單片機的六路搶答器設計(共23頁)_第4頁
基于單片機的六路搶答器設計(共23頁)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上課程設計(論文)題 目 名 稱 基于單片機的六路搶答器設計 課 程 名 稱 單片機原理及應在電氣測控學科中的應用 學 生 姓 名 學 號 系 、專 業(yè) 電氣工程系 指 導 教 師 年 月 日邵陽學院課程設計(論文)評閱表學生姓名 學 號 系 電氣工程系 專業(yè)班級 題目名稱 基于單片機的六路搶答器課程設計 課程名稱 單片機原理及應用在電氣測控學科中的應用 一、學生自我總結 學生簽名: 年 月 日二、指導教師評定評分項目平時成績論文答辯綜合成績權 重304030老師填寫等級:優(yōu)、良、中、及格、不及格單項成績指導教師評語: 指導教師(簽名): 年 月 日注:1、本表是學生課

2、程設計(論文)成績評定的依據(jù),裝訂在設計說明書(或論文)的“任務書”頁后面;2、表中的“評分項目”及“權重”根據(jù)各系的考核細則和評分標準確定?!菊繑?shù)字電路在日常生活中的應用很多,隨著它的發(fā)展,其應用將來會越來越廣泛。工廠、學校和電視臺等單位常舉辦各種智力比賽,搶答器是必要設備。搶答器是一名公正的裁判員,它有主體電路與擴展電路組成,其基本原理是主持人按開始按鈕是以開始,利用一個優(yōu)先編碼器,譯出最先搶到答題權的選手編號,并經(jīng)LED顯示器顯示出來,同時還要封鎖電路以防其他選手再搶答。本文所介紹了一種六路搶答器的設計與制作?!娟P鍵詞】搶答 鎖存 計時 顯示目 錄1.1 數(shù)字搶答器的概述.2 1.2

3、設計任務與要求. 21.3系統(tǒng)主要功能. 352.1 單片機控制系統(tǒng)原理圖6667778810101011202122基于單片機的六路搶答器數(shù)理與信息工程學院 計本072 倪曉靜指導教師:余水寶第1節(jié) 引言單片機把我們帶入了智能化的電子領域,許多繁瑣的系統(tǒng)若由單片機進行設計,便能收到電路更簡單、功能更齊全的良好效果。若把經(jīng)典的電子系統(tǒng)當作一個僵死的電子系統(tǒng),那么智能化的現(xiàn)代電子系統(tǒng)則是一個具有“生命”的電子系統(tǒng)。而隨著技術的進步,單片機與串口通信的結合更多地應用到各個電子系統(tǒng)中已成一種趨勢。本設計就是基于單片機設計搶答系統(tǒng),通過串口通信動態(tài)傳輸數(shù)據(jù),使搶答系統(tǒng)有了更多更完善的功能。單片機系統(tǒng)的

4、硬件結構給予了搶答系統(tǒng)“身軀”,而單片機的應用程序賦予了其新的“生命”,使其在傳統(tǒng)的搶答器面前具有電路簡單、成本低、運行可靠等特色。對于搶答器我們大家都知道那是用于選手做搶答題時用的,選手進行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則。1.1 數(shù)字搶答器的概述對于搶答器我們大家都知道那是用于選手做搶答題時用的,選手進行搶答,搶到題的選手來回答問題。搶答器不僅考驗選手的反應速度同時也要求選手具備足夠的知識面和一定的勇氣。選手們都站在同一個起跑線上,體現(xiàn)了公平公正的原則。 本實驗設計的數(shù)字搶

5、答器由主體電路與擴展電路組成。優(yōu)先編碼電路、鎖存器、譯碼電路將參賽隊的輸入信號在顯示器上輸出;用控制電路和主持人開關啟動報警電路,以上兩部分組成主體電路。通過定時電路和譯碼電路將秒脈沖產(chǎn)生的信號在顯示器上輸出實現(xiàn)計時功能,構成擴展電路。經(jīng)過布線、焊接、調(diào)試等工作后數(shù)字搶答器成形。更具有實用性。1.2 設計任務與要求任務:設計一款數(shù)字搶答器1.基本要求(1)搶答器同時供6名選手或6個代表隊比賽,分別用6個按鈕S0 S5表示。(2)設置一個系統(tǒng)清除和搶答控制開關S,該開關由主持人控制。(3)搶答器具有鎖存與顯示功能。即選手按動按鈕,鎖存相應的編號,并在LED數(shù)碼管上顯示,同時揚聲器發(fā)出報警聲響提示

6、。選手搶答實行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。(4)搶答器具有定時搶答功能,且一次搶答的時間由主持人設定(如30秒)。當主持人啟動開始鍵后,定時器進行減計時,同時揚聲器發(fā)出短暫的聲響,聲響持續(xù)的時間0.5秒左右。(5)參賽選手在設定的時間內(nèi)進行搶答,搶答有效,定時器停止工作,顯示器上顯示選手的編號和搶答的時間,并保持到主持人將系統(tǒng)清除為止。(6)如果定時時間已到,無人搶答,本次搶答無效,系統(tǒng)報警并禁止搶答,定時顯示器上顯示00。優(yōu)點:與普通搶答器相比,本作品有以下幾方面優(yōu)勢具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規(guī)則。具有定時功

7、能,在30秒內(nèi)無人搶答表示所有參賽選手獲參賽隊對本題棄權。30秒時仍無人搶答其報警電路工作表示搶答時間耗盡并禁止搶答。1.3 系統(tǒng)主要功能搶答器原理:該搶答器供不多于四個的搶答比賽使用。每個選手的座位前安裝一只搶答按鈕開關和一只信號燈。主持人的座位前安裝一只復原按鈕開關、一只蜂鳴器和一只搶答器工作狀態(tài)指示燈。每當主持人口頭發(fā)出允許搶答的號令之后,哪個隊先按下座位上的按鈕開關,該座位的信號燈就先被點亮,同時封鎖其他按鈕開關的活動。并且熄滅主持人座位上的狀態(tài)指示燈和發(fā)出 3 聲類似于電話振鈴的提示聲,以“聲明”此次搶答動作已經(jīng)完成。在主持人確認后,按下復原按鈕,狀態(tài)指示燈重新點亮,并且同時發(fā)出“笛

8、笛”聲,為下一次的搶答作好準備。電路中的蜂鳴器 FM 是一只帶有助音腔的壓電陶瓷蜂鳴器,用于模擬發(fā)出報警聲的功率放大器和喇叭。在 FM 發(fā)聲的同時,燈 D6 也在發(fā)光。FM 可以看作是一個電容性負載,本身不能流過直流電流。發(fā)聲的原理是,作用在兩個電極極板的電位在發(fā)生變化時,陶瓷材料就發(fā)生彎曲,從而振動空氣發(fā)出聲音。FM和 4 只按鈕開關 SWaSWd 以及 4 只電阻 RaRd 都是在演示板的基礎上額外添加的。由于RB端口內(nèi)部具有上拉電阻,只要用軟件設置其有效,即可省略在4 只端口引腳上外接上拉電阻。按鈕開關和指示燈與座位的對應關系如表1.1所示:表1.1 按鈕開關和指示燈與座位的對應關系座位

9、主持人席座位1座位2座位3座位4座位5座位6按鈕開關SW1 SWaSWbSWcSWdSWeSWf指示燈D7 D0D1D2D3D4D5蜂鳴器有無無無無無無第2節(jié) 系統(tǒng)主要硬件電路設計為使硬件電路設計盡可能合理,應注意以下幾方面:(1) 盡可能采用功能強的芯片,以簡化電路,功能強的芯片可以代替若干普通芯片,隨著生產(chǎn)工藝的提高,新型芯片的的價格不斷下降,并不一定比若干普通芯片價格的總和高。(2) 留有設計余地。在設計硬件電路時,要考慮到將來修改擴展的方便。因為很少有一錘定音的電路設計,如果現(xiàn)在不留余地,將來可能要為一點小小的修改或擴展而被迫進行全面返工。(3) 程序空間,選用片內(nèi)程序空間足夠大的單片

10、機,本設計采用AT89C51單片機。(4) I/O端口,在樣機研制出來后進行現(xiàn)場試用時,往往會發(fā)現(xiàn)一些被忽視的問題,而這些問題不是靠單純的軟件措施來解決的。如有些新的信號需要采集,就必須增加輸入檢測端;有些物理量需要控制,就必須增加輸出端。如果在硬件電路設計就預留出一些I/O端口,雖然當時空著沒用,那么用的時候就派上用場了。2.1 單片機控制系統(tǒng)原理圖如圖2-1,P1.0為開始搶答,P1.7為停止,P1.1-P1.6為六路搶答輸入,數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2為時間加1調(diào)整,P3.3為時間減1調(diào)整。圖2-1 系統(tǒng)原理圖2.2 單片機主機系統(tǒng)電路該六路搶答

11、器的設計細分為時鐘頻率電路的設計,復位電路的設計,顯示電路的設計和鍵盤掃描電路的設計等。2.2.1 時鐘頻率電路的設計單片機必須在時鐘的驅(qū)動下才能工作.在單片機內(nèi)部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產(chǎn)生一定的時鐘信號送到單片機內(nèi)部的各個單元,決定單片機的工作速度。圖2-2 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容 C1,C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調(diào)。C1,C2的典型值為30PF。單片機在工作時,由內(nèi)部振蕩器產(chǎn)

12、生或由外直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號的周期稱為時鐘周期。其大小是時鐘信號頻率的倒數(shù),常用fosc表示。如時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期為1/12s。2.2.2 復位電路的設計單片機的第9腳RST為硬件復位端,只要將該端持續(xù)4個機器周期的高電平即可實現(xiàn)復位,復位后單片機的各狀態(tài)都恢復到初始化狀態(tài),其電路圖如圖2-3所示:圖2-3 復位電路值得注意的是,在設計當中使用到了硬件復位和軟件復位兩種功能,由上面的硬件復位后的各狀態(tài)可知寄存器及存儲器的值都恢復到了初始值,而前面的功能介紹中提到了倒計時時間的記憶功能,該功能的實現(xiàn)的前提條件就是不能對單片機進行硬件復位,

13、所以設定了軟復位功能。軟復位實際上就是當程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。2.2.3 顯示電路的設計顯示功能與硬件關系極大,當硬件固定后,如何在不引起操作者誤解的前提下提供盡可能豐富的信息,全靠軟件來解決。2.2.4 鍵盤掃描電路的設計鍵盤是人與微機系統(tǒng)打交道的主要設備。關于鍵盤硬件電路的設計方法也可以在文獻和書籍中找到,配合各種不同的硬件電路,這些書籍中一般也提供了相應的鍵盤掃描程序。站在系統(tǒng)監(jiān)控軟件設計的立場上來看,僅僅完成鍵盤掃描,讀取當前時刻的鍵盤狀態(tài)是不夠的,還有不少問題需要妥善解決,否則,人們在操作鍵盤就容易引起誤操作和操作失控現(xiàn)象。在單片機

14、應用中鍵盤用得最多的形式是獨立鍵盤及矩陣鍵盤。圖2-4 獨立鍵盤它們各有自己的特點,其中獨立鍵盤硬件電路簡單,而且在程序設計上也不復雜,一般用在對硬件電路要求不高的簡單電路中;矩陣鍵盤與獨立鍵盤有很大區(qū)別,首先在硬件電路上它要比獨立鍵盤復雜得多,而且在程序算法上比它要煩瑣,但它在節(jié)省端口資源上有優(yōu)勢得多,因此它更適合于多按鍵電路。其次就是消除在按鍵過程中產(chǎn)生的“毛刺” 現(xiàn)象。這里采用最常用的方法,即延時重復掃描法,延時法的原理為:因為“毛刺”.0片機檢測到有按鍵動靜后再延時一段時間(這里我們?nèi)?0ms)后再判斷此電平是否保持原狀態(tài),如果是則為有效按鍵,否則無效。2.3 發(fā)聲我們知道,聲音的頻譜

15、范圍約在幾十到幾千赫茲,若能利用程序來控制單片機某個口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時程序控制“高”“低”電平的持續(xù)時間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。2.4 系統(tǒng)復位使CPU進入初始狀態(tài),從0000H地址開始執(zhí)行程序的過程叫系統(tǒng)復位。從實現(xiàn)系統(tǒng)復位的方法來看,系統(tǒng)復位可分為硬件復位和軟件復位。硬件復位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時間的高電位才能實現(xiàn)。上電復位,人工按鈕復位和硬件看門狗復位均為硬件復位。硬件復位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容

16、沒有影響。但是,硬件復位還能自動清除中斷激活標志,使中斷系統(tǒng)能夠正常工作,這樣一個事實卻容易為不少編碼人員所忽視。軟件復位就是用一系列指令來模擬硬件復位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復位操作是容易的,也沒有必要完全模擬,可根據(jù)實際需要去主程序初始化過程中完成。而對中斷激活標志的清除工作常被遺忘,因為它沒有明確的位地址可供編程。有的編程人員用(LJMP 0000H)作為軟件陷阱,認為直接轉(zhuǎn)向0000H地址就完成了軟件復位,就是這類錯誤的典型代表。軟件復位是使用軟件陷阱和軟件看門狗后必須進行的工作,這時程序出錯完全有可能發(fā)生在中斷子程序中,中斷激活標志已置位

17、,它將阻止同級中斷響應。由于軟件看門是高級中斷,它將阻止說要中斷響應,由此可見清除中斷激活標志的重要性。在所有的指令中,只有RETI指令能夠清除中斷激活標志。前文各處提案到的出錯處理程序ERR主要完成這一功能,其他的善后工作交由復位后的系統(tǒng)去完成。這部分程序如下:POWER DATA 67H ;上電標志存放單元 ERR: CLR EA ;關中斷 MOV DPTR,#ERR1 ;準備返回地址PUSH DPLPUSH DPHRETI ;清除高級中斷激活標志ERR1: MOV POWER,#0AAH ;重建上電標志 CLR A ;準備復位地址 PUSH ACC ;壓入復位地址0000HPUSH AC

18、CRETI ;清除低級中斷激活標志,從程序0000H開始執(zhí)行這段程序先關中斷,以便后續(xù)處理能順利進行,然后用兩個RETI指令代替兩個LJMP指令,從而清除了兩級中斷激活標志。有相應軟件陷阱捕捉來的程序可能沒有全部激活兩個標志,這也無妨。第3節(jié) 系統(tǒng)軟件設計軟件任務分析和硬件電路設計結合進行,哪些功能由硬件完成,哪些任務由軟件完成,在硬件電路設計基本定型后,也就基本上決定下來了。3.1 主程序系統(tǒng)結構圖系統(tǒng)初始化模塊按鍵模塊調(diào)整回答時間調(diào)整搶答時間正確搶答模塊非法搶答模塊數(shù)碼顯示模塊圖3-1 軟件系統(tǒng)結構圖3.2 程序流程圖在本設計中包括了以下八個主要的程序:主程序、非法搶答序、搶答時間調(diào)整程序

19、、回答時間調(diào)整程序、倒計時程序、正常搶答處理程序、犯規(guī)處理程序、顯示及發(fā)聲程序。主流程圖如3-2所示:開始鍵按下?加一鍵按下?減一鍵按下?正常搶 答回答時 間非法搶答處理調(diào)整搶答時間顯示犯 規(guī)顯示搶答號并倒計時顯示FFF初始化YY圖3-2 程序設計流程圖3.3 系統(tǒng)程序P1.0為開始搶答,P1.7為停止,p1.1-p1.6為六路搶答輸入數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。程序代碼如下:OK EQU 20H ;搶答開始標志位 RING EQU 22H ;響鈴標志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP

20、 T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#0FH ;初設搶答時間為15s MOV R2,#0AH ;初設答題時間為10s MOV TMOD,#11H ;設置未定時器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH ;越高發(fā)聲頻率越高,越尖 MOV TH1,#3CH MOV TL1,#0B0H ;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1 ;允許四個中斷T0/T1/INT0/INT1 CLR OK CLR R

21、ING SETB TR1 SETB TR0 ;一開始就運行定時器,以開始顯示FFF;果想重新計數(shù)重置TH1/TL1就可以了查詢程序:START: MOV R5,#0BH MOV R4,#0BH MOV R3,#0BH ACALL DISPLAY ;未開始搶答時候顯示FFF JB P1.0,NEXT ACALL DELAY JB P1.0,NEXT ;去抖動,如果開始鍵按下就向下執(zhí)行;否者跳到非法搶答查詢 ACALL BARK ;按鍵發(fā)聲 MOV A,R1 MOV R6,A ;送R1-R6,因為R1中保存了搶答時間 SETB OK ;搶答標志位,用于COUNT只程序中判斷;是否查詢搶答 MOV

22、R3,0AH ;搶答只顯示計時,滅號數(shù) AJMP COUNT ;進入倒計時程序,查詢有效搶答的程序;在COUNT里面NEXT: JNB P1.1,FALSE1JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START非法搶答處理程序:FALSE1: ACALL BARK ;按鍵發(fā)聲 MOV R3,#01H AJMP ERRORFALSE2: ACALL BARK MOV R3,#02H AJMP ERRORFALSE3: ACALL BARK MOV R3,#03H AJM

23、P ERRORFALSE4: ACALL BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERRORINT0(搶答時間R1調(diào)整程序):INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在兩個時間LED上顯示R1 JNB P3.2,INC0 JNB P3.3,DEC0 JNB P1.7,BACK0 AJMP INT0SUBINC

24、0: MOV A,R1 CJNE A,#63H,ADD0 ;如果不是99,R2加1,如果加到99了;R1就置0新加起 MOV R1,#00H ACALL DELAY1 AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1 ;如果R1為0,R1就置99 DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1AJMP INT0SUBBACK0: RETIINT1(回答時間R2調(diào)整程序):INT1SUB:MOV A,R2 MOV B,#

25、0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.2,INC1 JNB P3.3,DEC1 JNB P1.7,BACK1 AJMP INT1SUBINC1: MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1 AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DE

26、LAY1 AJMP INT1SUBBACK1: RETI倒計時程序(搶答倒計時和回答倒計時都跳到該程序):COUNT: MOV R0,#00H ;重置定時器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H ;重置定時器RECOUNT: MOV A,R6 ;R6保存了倒計時的時間之前;先將搶答時間或回答時間給R6 MOV B,#0AH DIV AB ;除十分出個位/十位 MOV 30H,A ;十位存于(30H) MOV 31H,B ;個位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取個位 MOV A,R6 SUBB A,#07H JNC LARGER ;

27、大于5s跳到LARGER;小于等于5s會提醒 MOV A,R0 CJNE A,#0AH,FULL ;1s中0.5s向下運行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK ;下面系1s的情況,響并顯示號數(shù);并清R0,重新計時SETB RING MOV A,R6 JZ QUIT ;計時完畢 MOV R0,#00H DEC R6 ;一秒標志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK DEC R6 ;計時一秒R6自動減1 MOV R0,#00HCHECK: JNB P1.7,QUIT ;如按下停止鍵退出 ACA

28、LL DISPLAYJB OK,ACCOUNT ;如果是搶答倒計時,如是則查詢;搶答,否者跳過查詢繼續(xù)倒數(shù) AJMP RECOUNTACCOUT: JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE6 AJMP RECOUNTQUIT: CLR OK ;如果按下了停止鍵執(zhí)行的程序 CLR RING AJMP START正常搶答處理程序:TRUE1: ACALL BARK ;按鍵發(fā)聲 MOV A,R2 MOV R6,A ;搶答時間R2送R6 MOV R3,#01H CLR

29、 OK ;因為答題的計時不再查詢搶答;所以就鎖了搶答 AJMP COUNTTRUE2: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2MOV R6,A MOV R3,#05H CLR OK AJMP COUNT

30、TRUE6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNT犯規(guī)搶答程序:ERROR: MOV R0,#00H MOV TH1,#3CH MOV TL1,#0B0H MOV 34H,R3 ;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH ;0.5s向下運行-滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1 ;下面系1s的情況,響并顯示號數(shù);并清R0

31、,重新計算 SETB RING MOV R0,#00H MOV R3,34H ;取回號數(shù) MOV R5,#0BH MOV R4,#0BH ;顯示FF和號數(shù) AJMP CHECK1CHECK1: JNB P1.7,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START顯示程序:入口參數(shù):R5,R4,R3存入的分別為第一,二,三為數(shù)碼所顯示的位碼出口參數(shù):無DISPLAY: MOV DPTR,#DAT1 ;查表顯示程序,利用P0口做段選碼口;輸出/P2低三位做位選碼輸出 MOV A,R5 MOVC A,A+DPTR MOV P2

32、,#01H MOV P0,A ACALL DELAY MOV DPTR,#DAT2 MOV A,R4 MOVC A,A+DPTR MOV P2,#02H MOV P0,AACALL DELAY MOV A,R3 MOVC A,A+DPTR MOV P2,#04H MOV P0,A ACALL DELAY RETDAT1: DB 00H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;滅,1,2,3,4,5,6,7,8,9,滅,FDAT2: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H,71H;第一個為零,其

33、他與上相同,因為十位如果為零顯示熄滅加減時間延時(起到不會按下就加N個數(shù)):DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET延時(顯示和去抖動用到):DELAY: MOV 32H,#12HLOOP: MOV 33H,#0AFHLOOP1: DJNZ 33H,LOOP1 DJNZ 32H,LOOP RET發(fā)聲程序:BARK: SETB RING ACALL DELAY1 ACALL DELAY1 CLR RING ;按鍵發(fā)聲 RETTO溢出中斷(響鈴程序):T0INT: MOV TH0,#0ECH MOV TL0,#0FFH JNB RING,OUT CPL P3.6 ;RING標志位為1時候P3.6口不短;取反使喇叭發(fā)出一定頻率的聲音OUT: RETIT1溢出中斷(計時程序):T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END第4節(jié) 調(diào)試及性能分析 (1)具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規(guī)則。(2)具有定時功能,在30秒內(nèi)無人搶答表示所有參賽選手獲參賽隊對本題棄權。(3)30秒時仍無人搶答其報警電路工作表示搶答時間耗盡并禁止搶答。(4)如果想調(diào)節(jié)搶答時間或答題時間,按搶

溫馨提示

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

評論

0/150

提交評論