單片機(jī)電子搶答器報(bào)告_第1頁(yè)
單片機(jī)電子搶答器報(bào)告_第2頁(yè)
單片機(jī)電子搶答器報(bào)告_第3頁(yè)
單片機(jī)電子搶答器報(bào)告_第4頁(yè)
單片機(jī)電子搶答器報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、本科生課程論文(設(shè)計(jì))智能搶答器設(shè)計(jì)專業(yè)一電氣工程及其自動(dòng)化班級(jí)10本科電氣一班學(xué)生姓名聯(lián)系方式2013 年 6 月課程設(shè)計(jì)任務(wù)書題目:智能搶答器設(shè)計(jì)一. 設(shè)計(jì)要求(1) 設(shè)計(jì)一個(gè)智力競(jìng)賽搶答器,可同時(shí)供8名選手獲8個(gè)代表隊(duì)參加比賽,分別 使用一個(gè)按鈕,編號(hào)從07。(2) 設(shè)置一個(gè)控制開關(guān),用來(lái)控制系統(tǒng)的清零和搶答開始。(3) 搶答器具有數(shù)據(jù)鎖存功能、顯示功能和聲音提示功能。搶答開始后,有選手 按動(dòng)搶答按鈕,鎖存對(duì)應(yīng)編號(hào),并在led數(shù)碼管上顯示選手的編號(hào),同時(shí)燈亮r伴隨聲 音提示。同時(shí)鎖存電路,禁止其他選手搶答,顯示編號(hào)一直保持到系統(tǒng)清零。二. 主要功能模塊智能搶答器系統(tǒng)主耍功能模塊包括主控模

2、塊、復(fù)位電路、電源電路、選手按鍵、 控制開關(guān)按鈕,聲音提示和數(shù)碼顯示等部分組成。根據(jù)具體情況選擇合適型號(hào)的單片機(jī), 蜂鳴器、數(shù)碼管等硬件設(shè)備進(jìn)行設(shè)計(jì)。三. 課程設(shè)計(jì)的要求1、課程設(shè)計(jì)的組織形式:將班級(jí)分成若干組,每組35人,口行分工完成一個(gè)題 日。2、課程設(shè)計(jì)流程:(1) 審題、查閱相關(guān)資料,確定系統(tǒng)總體方案;(2) 完成硬件設(shè)計(jì),畫出駛件設(shè)計(jì)原理圖(包括設(shè)備模塊選擇、搭接線路、計(jì)算 參數(shù)等)四、時(shí)間安排:2012. 3.262012.4. 8收集資料,確定設(shè)計(jì)方案2012. 4. 92012. 5. 27系統(tǒng)設(shè)計(jì)2012. 5. 282012. 6. 10 撰寫課程設(shè)計(jì)論文及提交指導(dǎo)教師簽名

3、:年 月 日綜合課程設(shè)計(jì)設(shè)計(jì)報(bào)告課程設(shè)計(jì)電子搶答器年級(jí)專業(yè)學(xué)號(hào)姓名成績(jī)?cè)u(píng)語(yǔ):完成口期:2013年5刀27 u1原理分析定時(shí)搶答器的總體框圖如下圖所示,它出單片機(jī)和外圍電路兩部分組成。顯示模塊(四位八段共陰數(shù)碼管)單片機(jī)(主控制器)r圖卜1:定時(shí)搶答器的總體框圖主要完成基本的搶答功能,即開始搶答后,當(dāng)選手按動(dòng)搶答鍵時(shí),能顯示選手的編 號(hào),同時(shí)能封鎖輸入電路,禁止其他選手搶答。擴(kuò)展功能為定時(shí)搶答的功能。定時(shí)搶答器的工作過(guò)程是:1、接通電源時(shí),搶答器處于復(fù)位狀態(tài),此時(shí)搶答器禁止工作,等待主持人按下開 始按鈕。2、當(dāng)主持人按下開始按鈕后,開始10 (時(shí)間可以調(diào)整)秒準(zhǔn)備倒計(jì)時(shí),數(shù)碼管顯 示倒計(jì)時(shí)時(shí)間。

4、此時(shí)有選手搶答則為犯規(guī),系統(tǒng)報(bào)警并顯示犯規(guī)選手的編號(hào)。需耍主持 人按下復(fù)位鍵重新開始。而且每個(gè)選手都有一個(gè)使用錦囊的機(jī)會(huì),錦囊是有60秒的求 助時(shí)間。3、準(zhǔn)備倒計(jì)時(shí)結(jié)束后會(huì)進(jìn)入10 (時(shí)間可以調(diào)整)秒搶答倒計(jì)吋階段,此時(shí)選手可 以搶答,定時(shí)器倒計(jì)時(shí),數(shù)碼管顯示倒計(jì)時(shí)時(shí)間,倒計(jì)時(shí)最后5秒會(huì)響鈴提示。當(dāng)?shù)褂?jì) 時(shí)結(jié)朿,卻沒有選手搶答時(shí),系統(tǒng)報(bào)警,并封鎖輸入電路,禁止選手超時(shí)后搶答。當(dāng)選手在搶答時(shí)間內(nèi)按動(dòng)搶答鍵時(shí),搶答器要完成以下四項(xiàng)工作:第一位選手 按卜搶答鍵后單片機(jī)立即分辨出搶答者的編號(hào),然后由顯示屯路顯示編號(hào);關(guān)閉鍵盤 掃面使其他選手的按鍵無(wú)效,避免其他選手再次進(jìn)行搶答;使定時(shí)器停止t作,時(shí)間

5、顯示器上清空。當(dāng)選手將問(wèn)題冋答完畢,主持人操作控制開關(guān),使系統(tǒng)復(fù)位以便進(jìn)行下 一輪搶答。2方案選擇(撰寫人)2.1芯片方案選擇限于目前已有芯片,選at89c51 o at89c51有40個(gè)引腳,如圖2-1所示。2345678910111213141516171819201p1.0vccp1.1p0.0p1.2p0.1p1.3p0.2p1.4p0.3p1.5p0.4p1.6p0.5p1.7p0.6rstp0.7rxd/p3.0ea-txd/p3.1aleint0/p3.21 psen-int1/p3.31p2.7t0/p3.4p2.6t1/p3.5p2.5wr-/p3.6p2.4rd-/p3.7

6、p2.3xtal2p2.2xtal1 .p2.1gndp2.0at89c513938373635343332313029282726252423222140圖2-1: at89c51引腳圖主要功能特性如下:與mcs-51兼容 4k字節(jié)可編程flash存儲(chǔ)器壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間:10年全靜態(tài)工作:0hz-24mhz三級(jí)程序存儲(chǔ)器鎖定 128x8位內(nèi)部ram 32可編程i/o線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源可編程串行通道低功耗的閑置和掉屯模式片內(nèi)振蕩器和時(shí)鐘電路2. 2搶答器顯示模塊數(shù)碼管顯示是采用bcd編碼顯示數(shù)字,程序編譯容易,資源占用較少。采用8位共 陰數(shù)碼管顯示。它是共

7、陰極的由髙電平點(diǎn)亮,如圖2-2所示。圖2-2:共陰極數(shù)碼管引腳圖2.3電源方案的選擇系統(tǒng)需要5v電源來(lái)驅(qū)動(dòng)單片機(jī)at89c51o利用電腦的usb接口可以提供5v電壓來(lái) 驅(qū)動(dòng)單片機(jī)。2.4搶答器鍵盤的選擇在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,鍵盤和顯示是系統(tǒng)中并不可少的輸入輸出設(shè)備,是控制 系統(tǒng)與操作人員對(duì)話的窗口。常用的有獨(dú)立式鍵盤,行列式鍵盤等。因?yàn)楸緦?shí)驗(yàn)簡(jiǎn)單用到的口少,為鞋程序簡(jiǎn)單,所以選用獨(dú)立鍵盤。2.5外部振蕩電路外部振蕩屯路單片機(jī)必須在at89c51的驅(qū)動(dòng)下才能工作.在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘 振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單 元,外部振蕩電路見圖5所示。11

8、m 1-24mc222pcl22p圖2-4:外部振蕩電路圖一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在xtal2 引腳產(chǎn)生幅度為3v左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。 電路中兩個(gè)電容cl, c2的作用有兩個(gè):一是幫助振蕩器起振;二是對(duì)振蕩器的頻率進(jìn) 行微調(diào)。cl, c2的典型值為22pf。2.6復(fù)位電路外部屮斷和內(nèi)部屮斷并存,單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個(gè)機(jī)器周期的髙 電平即可實(shí)現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)可知寄存器及存儲(chǔ)器的值都恢復(fù)到了初始值, 應(yīng)為本設(shè)計(jì)功能屮有倒計(jì)時(shí)時(shí)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行便件復(fù)位。只能用 軟復(fù)位。軟復(fù)位實(shí)際

9、上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳 轉(zhuǎn)到程序初始位置。復(fù)位電路采用圖2-5所示。° s11< 11koc31ott圖2-5:復(fù)位電路圖復(fù)位電路主要由電解電容c3、電阻r1、按鍵s1組成。由于單片機(jī)是高電平復(fù)位,所以當(dāng)復(fù)位鍵按下時(shí)候,單片機(jī)的9腳reset管腳處于高電平,此時(shí)單片機(jī)處于復(fù)位狀態(tài)。當(dāng)上電后,由于電容的緩慢充電,單片機(jī)的9腳電壓逐步由高向低轉(zhuǎn)化,經(jīng)過(guò)一段時(shí)間后,單片機(jī)的9腳處于穩(wěn)定的低電平狀態(tài),此時(shí)單片機(jī)上屯復(fù)位完畢,系統(tǒng)程序從0000h開始執(zhí)行。2.7發(fā)聲電路喇叭是眾多電子產(chǎn)品屮作為發(fā)蘆器件,其圖形如圖2-6所示。lst n:zu sound

10、er <text>'圖2-6:蜂鳴器電路圖3電路原理圖繪制及仿真(撰寫人:)3. 1 電路原理圖(proteus、protei )m*th.7c1hfczsks wli's aitg rt0-.£ dcwru pmaid rlwd 二金 2 叫 rzd -53 5-.£ iwfd 8szk dhif-m nhirw hw-m wvknix 0.q g木mlbf丿mfr*4圖3t:電路原理圖(proteus) 所用元件型號(hào)如下: 51 芯片:at89c51喇叭:sounder按鍵:button數(shù)碼管:7seg-mpx4-cc晶振:crystal電阻

11、:res普通電容:cap電解電容:cao-elecprotrus仿真圖如圖3-2。ar:?=ds*代匸圖3-2:電路仿真圖(protel)3. 2 仿真(proteus)雙擊仿真圖中的單片機(jī)at89c51,將會(huì)出現(xiàn)如圖3-3所示的單片機(jī)對(duì)話框窗口: 在program file中裝載由ke1l生成的后綴名為.hex的文件,點(diǎn)擊仿真按鈕即可進(jìn)行仿真。圖3-3:仿真裝載文件圖 主持人未按開始鍵8位選手搶答沒任何反應(yīng)。f ff圖3-4:未開始屏幕顯示圖 主持人按開始后。搶答還沒開始,5s內(nèi)不能搶答,若搶答視為犯規(guī)。ib圖3-5: 5s思考時(shí)間屏幕顯不圖 2號(hào)在搶答未開始搶答,屏幕顯示出222表示犯規(guī)。

12、圖3-6: 2號(hào)犯規(guī)屏幕顯示圖 己有選手搶答犯規(guī),其他選手搶答無(wú)反應(yīng)。 搶答開始,有15秒的搶答時(shí)間 6號(hào)搶答成功,屏幕上顯示出3號(hào)。i i圖3-8: 3號(hào)搶答成功屏幕顯示圖 己有選手搶答成功,其他選手搶答無(wú)反應(yīng)。 6號(hào)選手使用錦囊的顯示。4.1軟件調(diào)試4綜合調(diào)試(撰寫人:)各模塊流程圖:是蘭只開/密除扌定時(shí)器o中斷< 、圖5-2:定時(shí)器中斷流程圖開始返回對(duì)應(yīng)值圖5-3:按鍵掃描流程圖開始選中選手編號(hào)位顯示編號(hào)鎖存結(jié)束圖4-4:倒計(jì)時(shí)顯示、選手編號(hào)顯示模塊流程源程序:見附錄我們?cè)谡{(diào)試過(guò)程中遇到的問(wèn)題和對(duì)策:根據(jù)設(shè)計(jì)好的硬件電路,編寫匯編語(yǔ)言程序,使之符合我們的設(shè)計(jì)要求。我們使用 keil

13、軟件中輸入源程序并編譯程序,最終排除所有錯(cuò)誤后創(chuàng)建目標(biāo)文件生成hex文件。 在源程序的編寫過(guò)程屮我們遇到以下的一些問(wèn)題: 倒計(jì)時(shí)不準(zhǔn)的問(wèn)題。由于本系統(tǒng)中采用的倒計(jì)時(shí)均使用單片機(jī)內(nèi)部的定時(shí)器來(lái)實(shí)現(xiàn),由于單片機(jī)的內(nèi)部 寄存器溢出速度很快,想耍運(yùn)時(shí)1s就需耍多次調(diào)用泄時(shí)器中斷服務(wù)程序??紤]到中斷 服務(wù)程序中的其他代碼運(yùn)行所需要的時(shí)間,最終的定時(shí)時(shí)間可能會(huì)有些誤差??梢詫?duì)程 序屮的參數(shù)做一些調(diào)整使之更趨近于準(zhǔn)確。對(duì)時(shí)間要求不嚴(yán)格也可以忽略。 硬件資源分配的問(wèn)題。我們的系統(tǒng)是建立在一塊單片機(jī)的開發(fā)板上的,所以對(duì)于單片機(jī)的引腳分配我們不 能自行調(diào)配。但是因?yàn)槟緦?shí)驗(yàn)的引腳使用較少,所以我們就沒有用到1|0擴(kuò)

14、展。 數(shù)碼顯示的問(wèn)題。在顯示模塊屮鎖存黠會(huì)對(duì)顯示的內(nèi)容進(jìn)行鎖存,但是對(duì)于多位數(shù)的顯示就要用掃描 的方式來(lái)顯示倒計(jì)時(shí)的十位與個(gè)位。這就會(huì)使得倒計(jì)時(shí)的顯示時(shí)長(zhǎng)難以控制,并冃在掃 描的過(guò)程中會(huì)占用cpu。為了解決這些矛盾我們?cè)趻呙璧倪^(guò)程中同時(shí)進(jìn)行安檢掃描來(lái)時(shí) 得有按鍵按下時(shí)打斷時(shí)間的顯示,轉(zhuǎn)去顯示按鍵按下后的結(jié)果。這樣避免了顯示時(shí)間的 時(shí)候安檢無(wú)效的問(wèn)題,確保了安鍵的靈敏行。 搶答成功后的屏蔽問(wèn)題。為了確保在搶答的時(shí)候第一位選手搶答成功后,后續(xù)選手的搶答無(wú)效。就要的第一 位同學(xué)搶答成功后,立即跳出循環(huán)不在進(jìn)行鍵盤掃描程序的調(diào)用,然后顯示選手編號(hào)。 計(jì)時(shí)出錯(cuò)的問(wèn)題。在倒計(jì)時(shí)的過(guò)程屮有事侯會(huì)得不到我們預(yù)

15、期的結(jié)果,顯示錯(cuò)誤的信息。我們?cè)诘褂?jì) 時(shí)歸零時(shí)要關(guān)閉定時(shí)器以及將time定義為無(wú)符號(hào)型以避免程序出錯(cuò),提高程序的穩(wěn)定 性。對(duì)于其他的變量也要注意數(shù)據(jù)類型以及初始化方面的問(wèn)題。由于本設(shè)計(jì)直接在仿真軟件中上運(yùn)行,所以磧件調(diào)試基本不用進(jìn)行。若采用自己焊接的板子,硬件調(diào)試過(guò)程屮應(yīng)該有以下步驟: 檢查電路在通電調(diào)試之前,必須認(rèn)真檢查電路連線是否有錯(cuò)誤。對(duì)照電路圖,按一定的順序 逐級(jí)對(duì)應(yīng)檢查。特別要注意檢查電源是否接錯(cuò),電源與地是否有短路,二極管方向和電解電容的極 性是否接反,集成電路和晶體管的引腳是否接錯(cuò),輕輕拔一拔元器件,觀察焊點(diǎn)是否牢 固,等等。 通電觀察一定要調(diào)試好所需要的電源電壓數(shù)值,并確泄電路

16、板電源端無(wú)短路現(xiàn)象后,才能給 電路接通電源。電源一經(jīng)接通,不要急于用儀器觀測(cè)波形和數(shù)據(jù),而是要觀察是否有異 ?,F(xiàn)象,如冒煙、異常氣味、放電的聲光、元黠件發(fā)燙等。如果有,不要驚慌失措,而 應(yīng)立即關(guān)斷電源,待排除故障后方可重新接通電源。然后,再測(cè)量每個(gè)集成塊的電源引 腳電壓是否正常,以確信集成電路是否己通電工作。 靜態(tài)調(diào)試先不加輸入信號(hào),測(cè)量各級(jí)直流工作電壓和電流是否正常。直流電壓的測(cè)試非常方 便,可直接測(cè)量。而電流的測(cè)量就不太方便,通常采用兩種方法來(lái)測(cè)量。若電路在卬制電路板上留有測(cè)試用的屮斷點(diǎn),可串入屯流表直接測(cè)量出電流的數(shù)值,然后再用焊錫連 接好。若沒有測(cè)試孔,則可測(cè)量直流電壓,再根據(jù)電阻值大

17、小計(jì)算出直流電流。一般對(duì) 晶體管和集成電路進(jìn)行靜態(tài)工作點(diǎn)調(diào)試。 動(dòng)態(tài)調(diào)試加上輸入信號(hào),觀測(cè)電路輸出信號(hào)是否符合要求。也就是調(diào)整電路的交流通路元件, 如電容、電感等,使電路相關(guān)點(diǎn)的交流信號(hào)的波形、幅度、頻率等參數(shù)達(dá)到設(shè)計(jì)要求。 若輸入信號(hào)為周期性的變化信號(hào),可用示波器觀測(cè)輸出信號(hào)。當(dāng)采用分塊調(diào)試時(shí),除輸 入級(jí)采用外加輸入信號(hào)外,其他各級(jí)的輸入信號(hào)應(yīng)采用前輸出信號(hào)。對(duì)于模擬電路,觀 測(cè)輸出波形是否符合要求。對(duì)丁數(shù)字電路,觀測(cè)輸出信號(hào)波形、幅值、脈沖寬度、相位 及動(dòng)態(tài)邏輯關(guān)系是否符合要求。在數(shù)字電路調(diào)試中,常常希望讓電路狀態(tài)發(fā)生一次性變 化,而不是周期性的變化。因此,輸入信號(hào)應(yīng)為單階躍信號(hào)(又稱開關(guān)

18、信號(hào)),用以觀察 電路狀態(tài)變化的邏輯關(guān)系。 指標(biāo)測(cè)試電子電路經(jīng)靜態(tài)和動(dòng)態(tài)調(diào)試正常之后,便可對(duì)課題要求的技術(shù)指標(biāo)進(jìn)行測(cè)量。測(cè)試 并記錄測(cè)試數(shù)據(jù),對(duì)測(cè)試數(shù)據(jù)進(jìn)行分析,最后作出測(cè)試結(jié)論,以確定電路的技術(shù)指標(biāo)是 否符合設(shè)計(jì)要求。如有不符,則應(yīng)仔細(xì)檢查問(wèn)題所在,一般是對(duì)某些元件參數(shù)加以調(diào)整 和改變。若仍達(dá)不到要求,則應(yīng)對(duì)某部分電路進(jìn)行修改,甚至要對(duì)整個(gè)電路重新加以修 改。因此,要求在設(shè)計(jì)的全過(guò)程中,要認(rèn)真、細(xì)致,考慮問(wèn)題要更周全。盡管如此,出 現(xiàn)局部返工也是難免的。5總結(jié)(撰寫人:)在4周的課程設(shè)計(jì)后,在小組6名成員的共同努力下,最終完成了這次課程設(shè)計(jì)。 合作上,任務(wù)的分配較為合理。首先6名成員共同探討

19、設(shè)計(jì)的大致流程,搶答器要實(shí)現(xiàn) 哪些主要功能等。接著就是分工,4名成員負(fù)責(zé)程序的編寫與調(diào)試,2名成員負(fù)責(zé)原理 圖仿真。但是i辦作上進(jìn)行得不是很順利,比如程序的編寫過(guò)程沒有i辦調(diào)好,基本上都是 各編各自的程序,沒有把程序齊個(gè)功能模塊進(jìn)行分配,提髙編寫程序的效率與進(jìn)程。在電子搶答器的功能上,其基本功能:實(shí)現(xiàn)多路搶答,顯示最終搶得答題機(jī)會(huì)的機(jī) 號(hào),主持人能對(duì)搶答器進(jìn)行控制啟停,都一一實(shí)現(xiàn)。但是功能還有待完善以及進(jìn)一步的 豐富,比如思考準(zhǔn)備時(shí)間,搶答時(shí)間的控制和設(shè)定,答題時(shí)間的控制及實(shí)現(xiàn)等功能都有 待完善。在犯規(guī)信息的顯示上做的也不夠完美,這也是需要改進(jìn)的地方通過(guò)此次的課程設(shè)計(jì),讓我們更進(jìn)i步的鞏固了單

20、片機(jī)的各種知識(shí)。我們的項(xiàng)口在 硬件部是基于開發(fā)板的無(wú)序過(guò)多調(diào)試,主耍的調(diào)試過(guò)程在與程序的調(diào)試部分。在編寫調(diào) 試程序的過(guò)程中遇到了諸多的困難,首先在編寫程序之前要對(duì)整個(gè)項(xiàng)目的程序在整體上 有所把握,要分清楚條理和模塊,對(duì)模塊的劃分耍適度不可過(guò)細(xì)也不可太粗略。在程序 調(diào)試過(guò)程屮出現(xiàn)的bug要結(jié)合實(shí)際運(yùn)行的現(xiàn)象對(duì)其進(jìn)行分析,找出原因所在,逐步修改 程序直到問(wèn)題解決為止。在總體上,程序的主要架構(gòu)非常重要,從我們的這個(gè)僅有二三 百行的小程序中就可見一斑,可見在人型程序中就更要對(duì)程序的總體結(jié)構(gòu)仔細(xì)斟酌。總之,通過(guò)這一次的課程設(shè)計(jì),我們學(xué)到了很多知識(shí),也對(duì)過(guò)去的所學(xué)有了跟深的 認(rèn)識(shí)與理解,樹立了對(duì)自己工作能

21、力的信心,對(duì)我們以后的學(xué)習(xí)和丁作打下了良好地基 礎(chǔ)。附錄:;搶答開始標(biāo)志位;響鈴標(biāo)志位;搶答按鍵口數(shù)據(jù)存放地址源程序(撰寫人:)ok equ 20hring equ 22hdatao equ 36horg 0000hajmp mainorg 0003hajmp inttoorg ooobhajmp tointorg oo1bhajmp hintorg 0040hmain:mov rl,#20mov r2, #30mov 38h, #60mov tmod,#11hmov tho, #ofoh;初設(shè)搶答時(shí)間為20s;初設(shè)答題時(shí)間為30s;啟用錦囊時(shí)間從60s倒計(jì)時(shí);設(shè)置未定時(shí)器/模式1mov tl

22、o, #offh;越高發(fā)聲頻率越高,越尖mov th1, #3chmov tl1, #oboh;50ms為一次溢出中斷setb ea;允許二個(gè)中斷,t0/t1setb etosetb et1clr 0kclr ringsetb trisetb tro開始就運(yùn)行定時(shí)器,以開始顯示fff.如果想重新計(jì)數(shù),重置th1/tl1就可以了start:mov datao, ttoffhmov r5, #0bhmov r4, #obhmov r3, #obhacall displayjnb p3. 3, selsubojnb p3. 4, tz3jb p3. 0, nextacall delayjb p3.

23、0, next否者跳到非法搶答查詢setb exoacall barkmov a, r1mov r6,asetb ok搶答倒計(jì)時(shí)還是回答倒計(jì)時(shí)mov r3, #oahajmp count序"在count里面;初始化;未開始搶答時(shí)候顯示fff;倒計(jì)時(shí)調(diào)整;去抖動(dòng),如果開始鍵按下就向下執(zhí)行,;開放into;按鍵發(fā)聲;送r1->r6,因?yàn)閞1中保存了搶答時(shí)間;搶答標(biāo)志位,在使用錦囊時(shí)用作判斷是;搶答只顯示計(jì)時(shí),滅號(hào)數(shù);進(jìn)入倒計(jì)時(shí)程序查詢有效搶答的程next:jnbjnbjnbjnbjnbjnbpl. 0, false 1pl. 1, false2pl. 2, false3pl. 3,

24、 false4pl. 4, false5pl. 5, false6ajmp starttz1:ajmp false7tz2:ajmp false8tz3:ajmp selsub1false1:mov r3, #01hajmp errorfalse2:mov r3, #02hajmp errorfalse3:mov r3, #03hajmp errorfalse4:mov r3, #04hajmp errorfalse5:mov r3, #05hajmp errorfalse6:mov r3,#06hajmp errorfalse7:mov r3, #07hajmp errorfalse8:mo

25、v r3, #08hajmp errorselsubo: mov a, r1mov b, #oahdiv abmov r5, amov r4,bmov r3, #oahacall display;先在兩個(gè)時(shí)間led上顯示r1;p3. 5為+ls鍵,如按下跳到inco;p3. 6為-is鍵,如按下跳到deco;p3. 1為確定鍵,如按下跳到backo;如果不是99, r2加1,如果加到99, r1;如果r1為0, r1就置99,jnb p3. 1, backoajmp selsuboinco:mov a,r1cjne a, #63h, addo 就置0,重新加起。mov rl, #00hacal

26、l delay1ajmp selsuboaddo:inc r1acall delay1ajmp selsubodeco:mov a,r1jz setr1dec r1acall delay1ajmp selsubosetr1: mov r1,#63hacall delay1ajmp selsubobacko: ajmp startselsub1: mov a, r2mov b,#oahdiv abmov r5,amov r4,bmov r3,#0ahacall displayjnb p3. 1, back1ajmp selsub1inc1:mov a, r2cjne a, #63h, add1m

27、ov r2, #00hacall delay1ajmp selsub1add1:inc r2acall delay1ajmp selsub1deci:mov a, r2jzsetr2dec r2acall delay1ajmp selsub1setr2:mov r2, #63hacall delay1ajmp selsub1back1: ajmp startrepeat:mov 扎 38hmov r6,aclr ringcount:mov ro, #oohmov th1, #3chmov tl1, #obohrecount:mov a, r6時(shí)間或回答時(shí)間給r6mov b, #oah;使用錦囊

28、時(shí)重新計(jì)時(shí);當(dāng)?shù)褂?jì)時(shí)進(jìn)入最后5秒的時(shí)候,啟用錦囊能消除蜂鳴;重置定時(shí)器中斷次數(shù);重置定時(shí)器;r6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答div abmov 30h,amov 31h,bmov r5, 30hmov r4, 31hmov a, r6;除十分出個(gè)位/十位;十位存于(30h);個(gè)位存于(31h);取十位;取個(gè)位subb a, #07hjnc largermov a, rocjne a, #oah, fullclr ringajmp checkfull: cjne a, #14h, check 重新計(jì)setb ringmov a, r6jz quitmov ro, #00hdec r6ajmp

29、 checklarger: mov a, rocjne a, #14h, checkdec r6mov ro, #00hcheck: jnb p3. 1,quit;如按下停止鍵退出;大于5s跳到larger,小于等于5s會(huì)提醒;is中0. 5s向下運(yùn)行;下面是is的情況,響并顯示號(hào)數(shù)并清ro,;計(jì)時(shí)完畢;一秒標(biāo)志減1;如果is向下運(yùn)行,否者跳到“停/顯示;計(jì)時(shí)一秒r6自動(dòng)減1jnb ok, checkk;只在回答倒計(jì)時(shí)才有效;判斷是否使用錦囊ajmp nexttcheckk:jnb p3. 0, repeatjb ok,accout;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里

30、 起到鎖搶答作用)ajmp recountaccout:mov a, dataojnb acc. 0, true1jnb acc. 1, true2jnb acc. 2, true3jnb acc. 3, true4jnb acc. 4, true5jnb acc. 5, true6jnb acc. 6, tz7jnb acc. 7, tz8ajmp recounttz7: ajmp true7tz8: ajmp true8quit: clr ok;如果按下了"停止鍵執(zhí)行的程序clr ringajmp starttrue1: acall barkmov a, r2mov r6, a;

31、搶答時(shí)間r2送r6mov r3,#01hclr ok;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答ajmp counttrue2:acall barkmov a, r2mov r6, aclr okajmp counttrue3:acall barkmov a, r2mov r6, amov r3, #03hclr okajmp counttrue4:acall barkmov a, r2mov r6, amov r3, #04hclr okajmp counttrue5: acall barkmov a, r2mov r6,amov r3, #05hclr okajmp counttrue6: acall barkmov a, r2mov r6, amov r3, #06hclr okajmp counttrue7: acall barkmov a, r2mov r6, amov r3, #07hclr oktrue8:acall barkmov a, r2mov r6, amov r3, #08hclr okajmp counterror:mov ro, #00hhere:mov th1, #3chmov tl1, #obohmov 34h,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論