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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15、范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。2.4 系統(tǒng)復(fù)位使CPU進(jìn)入初始狀態(tài),從0000H地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實(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)容

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

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

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

19、、回答時(shí)間調(diào)整程序、倒計(jì)時(shí)程序、正常搶答處理程序、犯規(guī)處理程序、顯示及發(fā)聲程序。主流程圖如3-2所示:開始鍵按下?加一鍵按下?減一鍵按下?正常搶 答回答時(shí) 間非法搶答處理調(diào)整搶答時(shí)間顯示犯 規(guī)顯示搶答號并倒計(jì)時(shí)顯示FFF初始化YY圖3-2 程序設(shè)計(jì)流程圖3.3 系統(tǒng)程序P1.0為開始搶答,P1.7為停止,p1.1-p1.6為六路搶答輸入數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.6口。程序代碼如下:OK EQU 20H ;搶答開始標(biāo)志位 RING EQU 22H ;響鈴標(biāo)志位 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 ;初設(shè)搶答時(shí)間為15s MOV R2,#0AH ;初設(shè)答題時(shí)間為10s MOV TMOD,#11H ;設(shè)置未定時(shí)器/模式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 ;允許四個(gè)中斷T0/T1/INT0/INT1 CLR OK CLR R

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

22、R3,0AH ;搶答只顯示計(jì)時(shí),滅號數(shù) AJMP COUNT ;進(jìn)入倒計(jì)時(shí)程序,查詢有效搶答的程序;在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(搶答時(shí)間R1調(diào)整程序):INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY ;先在兩個(gè)時(shí)間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(回答時(shí)間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倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到該程序):COUNT: MOV R0,#00H ;重置定時(shí)器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H ;重置定時(shí)器RECOUNT: MOV A,R6 ;R6保存了倒計(jì)時(shí)的時(shí)間之前;先將搶答時(shí)間或回答時(shí)間給R6 MOV B,#0AH DIV AB ;除十分出個(gè)位/十位 MOV 30H,A ;十位存于(30H) MOV 31H,B ;個(gè)位存于(31H) MOV R5,30H ;取十位 MOV R4,31H ;取個(gè)位 MOV A,R6 SUBB A,#07H JNC LARGER ;

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

28、LL DISPLAYJB OK,ACCOUNT ;如果是搶答倒計(jì)時(shí),如是則查詢;搶答,否者跳過查詢繼續(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 ;搶答時(shí)間R2送R6 MOV R3,#01H CLR

29、 OK ;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答;所以就鎖了搶答 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向下運(yùn)行-滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH ;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1 ;下面系1s的情況,響并顯示號數(shù);并清R0

31、,重新計(jì)算 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;第一個(gè)為零,其

33、他與上相同,因?yàn)槭蝗绻麨榱泔@示熄滅加減時(shí)間延時(shí)(起到不會按下就加N個(gè)數(shù)):DELAY1: MOV 35H,#08HLOOP0: ACALL DISPLAY DJNZ 35H,LOOP0 RET延時(shí)(顯示和去抖動(dòng)用到):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標(biāo)志位為1時(shí)候P3.6口不短;取反使喇叭發(fā)出一定頻率的聲音OUT: RETIT1溢出中斷(計(jì)時(shí)程序):T1INT: MOV TH1,#3CH MOV TL1,#0B0H INC R0 RETI END第4節(jié) 調(diào)試及性能分析 (1)具有清零裝置和搶答控制,可由主持人操縱避免有人在主持人說“開始”前提前搶答違反規(guī)則。(2)具有定時(shí)功能,在30秒內(nèi)無人搶答表示所有參賽選手獲參賽隊(duì)對本題棄權(quán)。(3)30秒時(shí)仍無人搶答其報(bào)警電路工作表示搶答時(shí)間耗盡并禁止搶答。(4)如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按搶

溫馨提示

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

最新文檔

評論

0/150

提交評論