基于單片機(jī)控制的智力競(jìng)賽搶答器_第1頁(yè)
基于單片機(jī)控制的智力競(jìng)賽搶答器_第2頁(yè)
基于單片機(jī)控制的智力競(jìng)賽搶答器_第3頁(yè)
基于單片機(jī)控制的智力競(jìng)賽搶答器_第4頁(yè)
基于單片機(jī)控制的智力競(jìng)賽搶答器_第5頁(yè)
已閱讀5頁(yè),還剩19頁(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、. . . . 理工大學(xué)單片機(jī)課程設(shè)計(jì)報(bào)告基于單片機(jī)控制的智力競(jìng)賽搶答器姓名:學(xué)號(hào):專業(yè)班級(jí):指導(dǎo)老師:所在學(xué)院:2008年9月18日摘要本設(shè)計(jì)是在學(xué)習(xí)過(guò)單片機(jī)原理與應(yīng)用技術(shù)這門課程后,利用所學(xué)過(guò)的課堂知識(shí),發(fā)揮自己的創(chuàng)新能力,并結(jié)合動(dòng)手動(dòng)腦能力,來(lái)設(shè)計(jì)一個(gè)由單片機(jī)控制的智力競(jìng)賽搶答器,并完成系統(tǒng)的軟硬件設(shè)計(jì)與調(diào)試。它的基本要:能容許26組搶答;能顯示搶答組號(hào);各組計(jì)分,并能計(jì)分顯示;比賽結(jié)束時(shí),能發(fā)出報(bào)警聲。本設(shè)計(jì)中的控制系統(tǒng)核心是單片機(jī)AT89C51,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕與揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、 電阻RP1與

2、7SEG-MPX4-CC-BLUE。設(shè)計(jì)容為:P1.0和P1.7由裁判控制,分別是搶答開(kāi)始和停止鍵。P1.1P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實(shí)現(xiàn)的對(duì)個(gè)隊(duì)進(jìn)行加減記分,外部中斷1,P3.3實(shí)現(xiàn)了答題時(shí)間調(diào)整.P3.4P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一.P3.6為蜂鳴器的控制口。外部中斷和部中斷并存,單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位。外部還接有蜂鳴器用來(lái)發(fā)出報(bào)警音。采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點(diǎn)亮。系統(tǒng)仿真用到了偉福軟件和PROTUCE軟件,通過(guò)仿真可

3、以完全顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有很大的幫助。目錄1 概述3 1.1 單片機(jī)的應(yīng)用與課程設(shè)計(jì)的意義3 1.2 設(shè)計(jì)任務(wù)與要求3 1.3 設(shè)計(jì)思路32 系統(tǒng)總體方案與硬件設(shè)計(jì)4 2.1 控制系統(tǒng)組成4 2.2 硬件組成與所需原件42.3 實(shí)驗(yàn)原理83軟件設(shè)計(jì)104 Proteus軟件仿真115課程設(shè)計(jì)體會(huì)12參考文獻(xiàn)13附1:源程序代碼14附2:系統(tǒng)原理圖221 概述1.1 單片機(jī)的應(yīng)用與課程設(shè)計(jì)的意義 單片機(jī)使一種特殊的計(jì)算機(jī),它是在一塊半導(dǎo)體芯片上集成了CPU、存儲(chǔ)器RAM、ROM以與輸入與輸出接口電路的芯片。由于單片機(jī)的集成度高、功能強(qiáng)、通用性好,特別是它具有體積小、重量輕、

4、能耗低、價(jià)格便宜、可靠性高、抗干擾能力強(qiáng)和使用方便等獨(dú)特優(yōu)點(diǎn),使單片機(jī)迅速得到了推廣應(yīng)用。單片機(jī)原理與應(yīng)用技術(shù)是電氣專業(yè)的主要專業(yè)與特色課程之一。在學(xué)完本課程之后,通過(guò)課程設(shè)計(jì)再次鞏固了所學(xué)的單片機(jī)基本原理,培養(yǎng)了我們運(yùn)用所學(xué)知識(shí)和技能去分析和解決技術(shù)問(wèn)題的能力,建立正確的設(shè)計(jì)思想,掌握設(shè)計(jì)的一般程序和方法。在設(shè)計(jì)中,鍛煉自己的抽象思維和編寫程序的能力。加深了對(duì)單片機(jī)課程的理解和熟練應(yīng)用。1.2 設(shè)計(jì)任務(wù)與要求設(shè)計(jì)一個(gè)用于智力競(jìng)賽的搶答器,其功能的實(shí)現(xiàn)是由單片機(jī)控制的,滿足(1)能容許2-6組進(jìn)行搶答。(2)能顯示搶答組號(hào)。(3)各組記分,并能記分顯示。(4)比賽結(jié)束時(shí),能發(fā)出報(bào)警聲。1.3

5、設(shè)計(jì)思路AT89C51單片機(jī)的P1.0和P1.7由裁判控制,分別是搶答開(kāi)始和停止鍵。P1.1-P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實(shí)現(xiàn)的對(duì)個(gè)隊(duì)進(jìn)行加減記分,外部中斷1,P3.3實(shí)現(xiàn)了答題時(shí)間調(diào)整.P3.4 P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一.P3.6為蜂鳴器的控制口。外部中斷和部中斷并存,單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位。外部還接有蜂鳴器用來(lái)發(fā)出報(bào)警音。采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點(diǎn)亮。軟件設(shè)計(jì)部分由匯編語(yǔ)言編寫。系統(tǒng)仿真用到了偉福軟件和PROTUCE

6、軟件,通過(guò)仿真可以完全顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有很大的幫助。2系統(tǒng)總體方案與硬件設(shè)計(jì)2.1 控制系統(tǒng)組成控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲(chǔ)器接口電路、顯示接口電路組成。其中單片機(jī)AT89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作。2.2 硬件組成與所需原件該系統(tǒng)的核心器件是AT89C51。AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)

7、準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。下面介紹一下AT89C51:主要特性:·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲(chǔ)器 ·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級(jí)程序存儲(chǔ)器鎖定·128*8位部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·

8、;5個(gè)中斷源 ·可編程串行通道·低功耗的閑置和掉電模式·片振蕩器和時(shí)鐘電路管腳說(shuō)明:VCC:供電電壓。GND:接地。P0口:P0口為一個(gè)8位漏級(jí)開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),

9、將輸出電流,這是由于部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。P3口:P3口管腳是8個(gè)帶部上

10、拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5 T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。RST:復(fù)位輸入。當(dāng)

11、振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。/PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外

12、部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入與部時(shí)鐘工作電路的輸入。XTAL2:來(lái)自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片振蕩器。石晶振蕩和瓷振蕩均可采用。如采用

13、外部時(shí)鐘源驅(qū)動(dòng)器件,XTAL2應(yīng)不接。有余輸入至部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。芯片擦除:整個(gè)PEROM陣列和三個(gè)鎖定位的電擦除可通過(guò)正確的控制信號(hào)組合,并保持ALE管腳處于低電平10ms 來(lái)完成。在芯片擦操作中,代碼陣列全被寫“1”且在任何非空存儲(chǔ)字節(jié)被重復(fù)編程以前,該操作必須被執(zhí)行。此外,AT89C51設(shè)有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下靜態(tài)邏輯,支持兩種軟件可選的掉電模式。在閑置模式下,CPU停止工作。但RAM,定時(shí)器,計(jì)數(shù)器,串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存RAM的容并且凍結(jié)振蕩器,禁止所用其他芯片功

14、能,直到下一個(gè)硬件復(fù)位為止。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕與揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、 電阻RP1、P1.0和P1.7由裁判控制,分別是搶答開(kāi)始和停止鍵。P1.1-P1.6是6組搶答的輸入口,P0口為數(shù)碼管的段選口,位選口用的是P2口的低4位,外部中斷0,P3.2為搶答記口,實(shí)現(xiàn)的對(duì)個(gè)隊(duì)進(jìn)行加減記分,外部中斷1,P3.3實(shí)現(xiàn)了答題時(shí)間調(diào)整.P3.4 P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一.P3.6為蜂鳴器的控制口。2.3 實(shí)驗(yàn)原理 智力競(jìng)賽搶答器用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成, 采用單片機(jī)AT89C51,它是低功耗、高性能的CMO

15、S型8位單片機(jī)。片帶有4KB的Flash存儲(chǔ)器,且允許在系統(tǒng)改寫或用編程器編程。該智力競(jìng)賽搶答器的準(zhǔn)確度很高,其誤差主要由晶振自身的誤差所造成。AT89C51單片機(jī)由微處理器,存儲(chǔ)器,I/O口以與特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片程序存儲(chǔ)器的容量為4KB,片數(shù)據(jù)存儲(chǔ)器為128個(gè)字節(jié)。89C51單片機(jī)有4個(gè)8位的并行I/O口:P0口,P1口,P2口和P3口。各個(gè)接口均由接口鎖存器,輸出驅(qū)動(dòng)器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數(shù)據(jù)輸入/輸出口。P3口是雙功能口除了具有數(shù)據(jù)輸入/輸出功能外,每條接口還具有不同的第二功

16、能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器擴(kuò)展時(shí),P0可作為分時(shí)復(fù)用的低8位地址/數(shù)據(jù)總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。外部振蕩電路單片機(jī)必須在AT89C51的驅(qū)動(dòng)下才能工作.在單片機(jī)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)部的各個(gè)單元。外部振蕩電路見(jiàn)圖一(圖一)外部中斷和部中斷并存,單片機(jī)有硬件復(fù)位端,只要輸入持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位。硬件復(fù)位后的各狀態(tài)可知寄存器與存儲(chǔ)器的值都恢復(fù)到了初始值,應(yīng)為本設(shè)計(jì)功能中有倒

17、計(jì)時(shí)時(shí)間的記憶功能,所以不能對(duì)單片機(jī)進(jìn)行硬件復(fù)位。只能用軟復(fù)位。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程。復(fù)位電路采用圖二所示:(圖二)外部還接有蜂鳴器用來(lái)發(fā)出報(bào)警音。其圖形如下:采用7SEG-MPX4-CC-BLUE顯示,它是共陰極的由高電平點(diǎn)亮。圖形如下:3軟件設(shè)計(jì)智力競(jìng)賽搶答器要求有計(jì)時(shí)記憶功能,一次時(shí)間設(shè)置完, 復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定,通過(guò)鍵盤掃描輸出按鍵信息,再通過(guò)單片機(jī)將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼.當(dāng)搶答完畢時(shí),會(huì)在數(shù)碼管上顯示搶答者數(shù)字提示以表示搶答成功.同時(shí)顯示其分?jǐn)?shù),分?jǐn)?shù)的加減可由裁判手動(dòng)進(jìn)行. 采用獨(dú)立式鍵盤,可實(shí)現(xiàn)6路搶答.

18、在顯示時(shí)使用的是數(shù)碼管顯示在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法. 并通過(guò)查表將字型碼送給數(shù)碼管顯示的數(shù)字。軟件去抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到開(kāi)始。采用倒計(jì)時(shí)程序,使其具有倒計(jì)時(shí)功能。回答倒計(jì)時(shí)20秒。搶答時(shí)間15秒。采用發(fā)聲警報(bào),起到報(bào)警作用。系統(tǒng)流程圖:開(kāi)始查詢倒計(jì)時(shí)開(kāi)始搶答查詢有效搶答顯示,回答倒計(jì)時(shí)裁判打分加分重新開(kāi)始查詢抖動(dòng)違規(guī)搶答非法搶答處理違規(guī)者顯示減分4Proteus軟件仿真用到了偉福軟件,集成調(diào)試環(huán)境,集成了編緝器、編譯器、調(diào)試器,支持軟件模擬,支持項(xiàng)目管理功能強(qiáng)大的觀察窗口,支持所有的數(shù)據(jù)類型。樹狀結(jié)構(gòu)顯示,一目了然,支持ASM(匯編

19、)、C語(yǔ)言,多語(yǔ)言多模塊源程序混合調(diào)試,在線直接修改、編譯、調(diào)試源程序,錯(cuò)誤指令定位。功能很強(qiáng)大。 系統(tǒng)仿真還用到了PROTUCE軟件,可通過(guò)仿真可以完全顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有很大的幫助。系統(tǒng)仿真時(shí)首先要在使用偉福編譯器,把所寫的程序進(jìn)行編譯,同時(shí)在仿真器里設(shè)置生成HEX文件,編譯無(wú)錯(cuò)誤時(shí)進(jìn)行PROTUCE仿真。首先要新建一個(gè)文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個(gè)器件放到合適的位置都要放到藍(lán)色框。然后根據(jù)自己的設(shè)計(jì)要求連線。等所有的元件都連接完成后可以把,偉福編譯生成的無(wú)錯(cuò)誤文件加載到AT89C51中,方法是,右鍵點(diǎn)中器件然后在用左鍵點(diǎn)擊,出來(lái)一個(gè)對(duì)話

20、框在program file后選擇要添加文件,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,看與自己設(shè)置的符合否,如果不相符在查找錯(cuò)誤進(jìn)行修改,一般的錯(cuò)誤都是程序中的,所以要認(rèn)真的讀取程序的每一個(gè)部分??傮w的PROTUCE圖:5課程設(shè)計(jì)體會(huì)通過(guò)本次為期一周的設(shè)計(jì)使我的專業(yè)知識(shí)方面的水平得到了很大的提高,尤其在WAVE和PROTUES這兩個(gè)專業(yè)軟件的使用上有了很大的進(jìn)步,使我懂得了以前不知道的和根本不會(huì)的東西,并且在編程方面也有了很大的進(jìn)步。設(shè)計(jì)中要想把知識(shí)很好地運(yùn)用到一個(gè)系統(tǒng)當(dāng)中去并不是一件容易的事,在剛接觸到proteus時(shí)甚至不知道怎樣去尋找元器件,這多虧了熱心的同學(xué)們,他們不厭其煩

21、地解答我的問(wèn)題,當(dāng)大家都不懂時(shí)我們就一起上網(wǎng)、去圖書館、請(qǐng)教老師,直到把問(wèn)題搞清楚為止。最終我掌握了畫圖地技巧,但這只是最開(kāi)始地一小步,真正的困難還在后面。之前單片機(jī)在我的腦海中就如霧里看花一樣,迷迷糊糊的不知所云,對(duì)很多知識(shí)僅僅一知半解,不能系統(tǒng)地聯(lián)系起來(lái),甚至連一些最基本的語(yǔ)句都搞不懂。而這些缺點(diǎn)通過(guò)這次設(shè)計(jì)全部給暴露出來(lái)了。然而剛開(kāi)始的時(shí)候很是沮喪,當(dāng)困難總是要面對(duì)的,人不可能總是逃避。后來(lái)通過(guò)老師、同學(xué)以與上網(wǎng)查資料努力去克服種種困難,在不斷的學(xué)習(xí)中摸索,把以前學(xué)過(guò)的和沒(méi)有學(xué)到的一起重新學(xué)習(xí),經(jīng)過(guò)一個(gè)星期的努力,我的設(shè)計(jì)終于做出來(lái)了,這其中參考了不少的資料也得到了老師同學(xué)們的幫助,在此

22、向幫助過(guò)我的老師和同學(xué)表示感。整體來(lái)說(shuō),這次設(shè)計(jì)對(duì)我個(gè)人的啟發(fā)還是很大的,我覺(jué)得自己知識(shí)近一步的增長(zhǎng)了!雖然很多方面還都非常欠缺,但是我在設(shè)計(jì)過(guò)程中學(xué)到了很多以前沒(méi)有學(xué)到的方法,在很大程度上提高了我的分析問(wèn)題,解決問(wèn)題的能力,增強(qiáng)了綜合實(shí)踐能力與自身的專業(yè)素質(zhì)。參考文獻(xiàn)1 余發(fā)山編著.單片機(jī)原理機(jī)機(jī)與應(yīng)用技術(shù).:中國(guó)礦業(yè)大學(xué)2 淑清 婁萬(wàn)錄等主編.單片微機(jī)計(jì)算機(jī)接口技術(shù)與其應(yīng)用.科學(xué)3廣第主編.單片機(jī)基礎(chǔ).航空航天大學(xué)3凌霄主編.微型計(jì)算機(jī)原理與應(yīng)用.中國(guó)礦業(yè)大學(xué)附1 源程序代碼OK EQU 20H RING EQU 22H ORG 0000H AJMP MAIN ORG 000BH AJMP

23、 T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#0FH MOV R2,#01EH 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 EX1;允許3個(gè)中斷,T0/T1/INT0/INT1 CLR OK CLR RING SETB TR1 SETB TR0;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始

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

25、進(jìn)入倒計(jì)時(shí)程序,"查詢有效搶答的程序"在COUNT里面NEXT:JNB P1.1,FALSE1 JNB 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 AJMP ERRORFALSE4: ACAL

26、L BARK MOV R3,#04H AJMP ERRORFALSE5: ACALL BARK MOV R3,#05H AJMP ERRORFALSE6: ACALL BARK MOV R3,#06H AJMP ERROR;=INT1(答題對(duì)錯(cuò)加減分?jǐn)?shù)程序)=INT1SUB:MOV R4,#0AH MOV R5,#0AH JNB P3.4,INC1 JNB P3.5,DEC1 JNB P1.7,BACK1 ACALL DISPLAY AJMP INT1SUB MOV A,R3 SUBB A,#01H JZ XXY1 SUBB A,#02H JZ XXY2 SUBB A,#03H JZ XXY3

27、 SUBB A,#04H JZ XXY4 SUBB A,#05H JZ XXY5 SUBB A,#06H JZ XXY6 XXY1:MOV R7,41H XXY2:MOV R7,42H XXY3:MOV R7,43H XXY4:MOV R7,44H XXY5:MOV R7,45H XXY6:MOV R7,46H INC1:INC R7 CJNE R3,#01H,L1 MOV 51H,R7 L1:CJNE R3,#02H,L2 MOV 52H,R7 L2:CJNE R3,#03H,L3 MOV 53H,R7 L3:CJNE R3,#04H,L4 MOV 54H,R7 L4:CJNE R3,#05

28、H,L5 MOV 55H,R7 L5:CJNE R3,#06H,LL MOV 56H,R7 LL:ACALL DELAY1 AJMP INT1SUB DEC1:DEC R7 ACALL DELAY1 AJMP INT1SUB BACK1: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;十位存于

29、(30H) MOV 31H,B;個(gè)位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取個(gè)位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會(huì)提醒 MOV A,R0 CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行 CLR RING AJMP CHECK FULL:CJNE A,#14H,CHECK;下面系1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì) SETB RING MOV A,R6 JZ QUIT;計(jì)時(shí)完畢 MOV R0,#00H DEC R6;一秒標(biāo)志減1 AJMP CHECKLARGER: MOV A,R0

30、 CJNE A,#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示" DEC R6;計(jì)時(shí)一秒R6自動(dòng)減1 MOV R0,#00H CHECK: JNB P1.7,QUIT;如按下停止鍵退出 ACALL DISPLAY OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過(guò)查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNT ACCOUT: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 RECOUNT QUIT

31、:CLR OK;如果按下了"停止鍵"執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK;按鍵發(fā)聲 MOV A,R2 MOV R6,A;搶答時(shí)間R2送R6 MOV R3,#01H MOV R7,41H CLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答 AJMP COUNTTRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H MOV R7,42H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H

32、 MOV R7,43H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#04H MOV R7,44H CLR OK AJMP COUNTTRUE5:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H MOV R7,45H CLR OK AJMP COUNTTRUE6:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H MOV R7,46H CLR OK AJMP COUNT;=犯規(guī)搶答程序=ERROR:MOV R0,#00H MOV TH1,#3CH MOV

33、 TL1,#0B0H MOV 34H,R3;犯規(guī)號(hào)數(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的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì) SETB RING MOV R0,#00H MOV R3,34H;取回號(hào)數(shù) MOV R5,#0BH MOV R4,#0BH;顯示FF和號(hào)數(shù) AJMP CHECK1CHECK1:JNB P1.7,QUIT1 ACALL DISPLAY AJMP HEREQUIT1: CLR RING CLR OK AJMP START;=顯示程序=DISPLAY

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論