版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
煙臺(tái)大學(xué)單片機(jī)課程設(shè)計(jì)說(shuō)明書(shū)課題:八路搶答器學(xué)生姓名: 學(xué)號(hào): 院系: 機(jī)電汽車(chē)工程學(xué)院專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化指導(dǎo)老師: 同組成員: 組長(zhǎng): 20年06月07日目錄TOC\o"1-5"\h\z1概述 2\o"CurrentDocument"2設(shè)計(jì)任務(wù) 2\o"CurrentDocument"3系統(tǒng)總體方案 34硬件設(shè)計(jì) 44.1控制系統(tǒng)所需硬件 4硬件原理介紹 45軟件設(shè)計(jì) 7\o"CurrentDocument"5.1軟件總體設(shè)計(jì) 7程序流程圖 86Proteus軟件仿真 12Keil軟件 12在Proteus軟件 12\o"CurrentDocument"7小結(jié) 14\o"CurrentDocument"8心得體會(huì) 15\o"CurrentDocument"附1:源程序代碼 16\o"CurrentDocument"附2:參考文獻(xiàn) 21.概述8路智能搶答器的設(shè)計(jì)現(xiàn)如今,各種智力知識(shí)競(jìng)賽已經(jīng)成為人們的一種娛樂(lè)形式,人們?cè)诖痤}的過(guò)程中不僅可以享受到樂(lè)趣,還可以學(xué)到一些科學(xué)知識(shí)和生活常識(shí)。然而在搶答過(guò)程中,單靠視覺(jué)是很難判斷出哪組最先完成搶答操作。為了辨別哪一組或哪一位選手獲得答題權(quán),必須要設(shè)計(jì)一個(gè)智能搶答控制系統(tǒng)——智能搶答器。搶答器作為一種電子產(chǎn)品,已被人們所熟知并廣泛應(yīng)用于各種智力知識(shí)競(jìng)賽場(chǎng)合。搶答器在競(jìng)賽中有很大用處,通過(guò)搶答器的指示燈顯示,數(shù)碼管顯示和警示蜂鳴等手段,能準(zhǔn)確,公正,直觀地判斷出第1搶答者并協(xié)助比賽的順利進(jìn)行。但是,目前使用的搶答器大多數(shù)都采用了邏輯電路進(jìn)行設(shè)計(jì),分立元件較多,造成搶答器的成本較高。此外一般搶答器由模擬電路,數(shù)字電路或二者結(jié)合組成,其智能化程度低,故障率高,顯示簡(jiǎn)單?,F(xiàn)代電子技術(shù)的發(fā)展要求電子電路朝數(shù)字化,集成化方向發(fā)展,因此設(shè)計(jì)出全集成電路的多路搶答器是現(xiàn)代電子技術(shù)發(fā)展的要求。2.設(shè)計(jì)任務(wù)本設(shè)計(jì)要求學(xué)生結(jié)合現(xiàn)有的實(shí)際條件,以單片機(jī)為控制核心,設(shè)計(jì)一個(gè)8路智能搶答器。要求實(shí)現(xiàn)的功能如下:1) 搶答器可同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鍵S1?S8進(jìn)行搶答。2) 主持人可以通過(guò)智能搶答器的按鍵設(shè)定每道題的搶答時(shí)間和回答時(shí)間。3) 具有清零和非法搶答控制功能,并由主持人操縱,避免選手在主持人說(shuō)“開(kāi)始”前提前搶答,違反規(guī)則。4) 當(dāng)主持人啟動(dòng)“開(kāi)始搶答鍵”后,定時(shí)器進(jìn)行減計(jì)時(shí),在10s內(nèi)無(wú)人搶答表示所有參賽選手或參賽隊(duì)對(duì)本題棄權(quán),搶答時(shí)間耗盡后禁止搶答。5) 倒計(jì)時(shí)5s時(shí),如果仍無(wú)人搶答,則系統(tǒng)每1s報(bào)警一次,用以提示參賽選手。6) 搶答器具有鎖存與顯示功能。即選手按下按鍵,鎖存相應(yīng)選手的參賽號(hào)碼,并在LED數(shù)碼管上顯示,同時(shí)揚(yáng)聲器發(fā)出報(bào)警聲響提示。選手搶答實(shí)行優(yōu)先鎖存,其他按鍵者將不能響應(yīng),以便公平地選擇第一個(gè)搶答者。7) 參賽選手在設(shè)定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,顯示器上顯示選手的編號(hào)同時(shí)進(jìn)入回答問(wèn)題的30s倒計(jì)時(shí)。8) 倒計(jì)時(shí)期間,如果主持人想終止倒計(jì)時(shí),可以按下“停止”按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài)。主要硬件設(shè)備:AT89C51單片機(jī),8輸入3態(tài)緩沖器/線驅(qū)動(dòng)器74LS244,六反相驅(qū)動(dòng)器7404,共陽(yáng)極LED數(shù)碼管等,12MHZ晶振,74LS04反相器,手動(dòng)開(kāi)關(guān),按鍵若干,報(bào)警喇叭。系統(tǒng)總體方案設(shè)計(jì)3.1整體方案設(shè)計(jì)該智能搶答器以AT89C51單片機(jī)為控制核心,控制精度較高,操作誤差主要來(lái)自晶振自身所造成的誤差。其他外圍電路包括復(fù)位電路,時(shí)鐘電路,報(bào)警電路,LED顯示電路,搶答按鍵,功能設(shè)置鍵等。該智能搶答器具有計(jì)時(shí)記憶功能,一次時(shí)間設(shè)置完,復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定;通過(guò)按鍵掃描輸出按鍵信息,并通過(guò)單片機(jī)將它轉(zhuǎn)化為在七段數(shù)碼管上顯示的字符型。單片機(jī)的P1口為8組搶答按鍵的輸入口,P0.0?P0.6為數(shù)碼管的段選口,P2.0?P2,2為數(shù)碼管的片選口。外部中斷INT0和INT1分別為搶答時(shí)間和回答時(shí)間的調(diào)整口,P3.4和P3.5分別實(shí)現(xiàn)時(shí)間調(diào)整的加1和減1功能:P3.6為報(bào)警電路的控制口。智能搶答器的整體方案設(shè)計(jì)圖如下所示。智能搶答器的整體方案設(shè)計(jì)圖硬件系統(tǒng)設(shè)計(jì)1) 控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲(chǔ)器接口電路、顯示接口電路組成。其中單片機(jī)AT89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作.2) 硬件組成及所需元件:該系統(tǒng)的核心器件是AT89C51。在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振X1、電容C1、C2、C3、電阻RP1。P3.0和P3.1由裁判控制,分別是搶答停止和開(kāi)始鍵。P1.0-P1.7是8組搶答的輸入口,P2.0--P2.3口為數(shù)碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.4,P3.5為搶答記時(shí)調(diào)整口,實(shí)現(xiàn)對(duì)各個(gè)隊(duì)進(jìn)行計(jì)時(shí),并且加減調(diào)整,外部中斷0,1實(shí)現(xiàn)了答題時(shí)間調(diào)整.P3.4P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一.P3.6為蜂鳴器的控制口。硬件接線圖如圖所示:4rixiv■-rl_ItH31? 忡I'SiTi'ScT10kmFJRCft-4rixiv■-rl_ItH31? 忡I'SiTi'ScT10kmFJRCft-I'ScTl>3c|MllkT倔IXVl―\溶i臥]1出i *午F *,1Hj京%£——f *7SEG-MPX4-CCLED顯示內(nèi)部結(jié)構(gòu)如上圖所示:4.1控制系統(tǒng)及所需元件控制系統(tǒng)主要由單片機(jī)應(yīng)用電路、存儲(chǔ)器接口電路、顯示接口電路組成。其中單片機(jī)AT89C51是系統(tǒng)工作的核心,它主要負(fù)責(zé)控制各個(gè)部分協(xié)調(diào)工作.所需元件:該系統(tǒng)的核心器件是AT89C51o在其外圍接上復(fù)位電路、上拉電阻、數(shù)碼管、按鈕及揚(yáng)聲器。元件為:晶振XI、電容C1、C2、C3、電阻8、P3.0和P3.1由裁判控制,分別是搶答停止和開(kāi)始鍵。P1.0-P1.7是8組搶答的輸入口,P2.0--P2.3口為數(shù)碼管的段選口,位選口用的是P0.0--P0.6口輸出,外部中斷0、1和P3.4,P3.5為搶答記時(shí)調(diào)整口,實(shí)現(xiàn)的對(duì)個(gè)隊(duì)進(jìn)行計(jì)時(shí),并且加減調(diào)整,P3.4P3.5分別實(shí)現(xiàn)了時(shí)間的加一和減一.P3.6為蜂鳴器的控制口。4.2原理介紹智力競(jìng)賽搶答器用單片機(jī)來(lái)設(shè)計(jì)制作完成,由于其功能的實(shí)現(xiàn)主要通過(guò)軟件編程來(lái)完成,采用單片機(jī)AT89C51,它是低功耗、高性能的CMOS型8位單片機(jī)。片內(nèi)帶有4KB的Flash存儲(chǔ)器,且允許在系統(tǒng)內(nèi)改寫(xiě)或用編程器編程。該智力競(jìng)賽搶答器的準(zhǔn)確度很高,其誤差主要由晶振自身的誤差所造成。AT89C51單片機(jī)由微處理器,存儲(chǔ)器,I/O口以及特殊功能寄存器SFR等部分構(gòu)成。其存儲(chǔ)器在物理上設(shè)計(jì)成程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器兩個(gè)獨(dú)立的空間,片內(nèi)程序存儲(chǔ)器的容量為4KB,片內(nèi)數(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ù)輸入/輸出功能外,每條接口還具有不同的第二功能,如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)。AT89C51的管腳圖:
>XTAL1P0.0/AD0P0.1/AD1P0.2/AD2XTAL2P0.3/AD3PEL時(shí)EiQP0.5JAD5P0.6/AD6RSIFO.7JAD7P2.QW8P2.1ZA9P2.2/A10PSENP2.3/A11ALEP2.d/Al2EAPQ5/A13P27/M5PI0P3IVRXDP11P3.1/TXDP1.2P3.2/1NTDP1.3P3.3ANT1P1.4P3.4T0P1.5P3.5/T1P1.6P3.6/WR-PI.7P:7/RCrAT89C51967-6^543212345-6」7BD■3339od333-22222222-16_1,!..-h-h-7OM-93外部振蕩電路單片機(jī)必須在AT89C51的驅(qū)動(dòng)下才能工作.在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號(hào)送到單片機(jī)內(nèi)部的各個(gè)單元。外部振蕩電路見(jiàn)圖一復(fù)位電路采用圖二所示:圖二外部振蕩電路見(jiàn)圖一復(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í)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過(guò)一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程。
外部還接有蜂鳴器用來(lái)發(fā)出報(bào)警音,其圖形如下:采用七段碼7SEG-MPX4-CC顯示,它是共陽(yáng)極的由低電平點(diǎn)亮。圖形如下:采用八個(gè)BUTTON按鈕作為搶答的選擇按鍵如圖所示:軟件系統(tǒng)設(shè)計(jì)5.1軟件總體設(shè)計(jì)智力競(jìng)賽搶答器要求有計(jì)時(shí)記憶功能,一次時(shí)間設(shè)置完,復(fù)位后不需重新進(jìn)行時(shí)間設(shè)定,通過(guò)鍵盤(pán)掃描輸出按鍵信息,再通過(guò)單片機(jī)將它轉(zhuǎn)換成能在七段數(shù)碼管上顯示字型碼.當(dāng)搶答完畢時(shí),會(huì)在數(shù)碼管上顯示搶答者數(shù)字號(hào)碼提示以表示搶答成功.同時(shí)顯示其分?jǐn)?shù),分?jǐn)?shù)的加減可由裁判手動(dòng)進(jìn)行.采用獨(dú)立式鍵盤(pán),可實(shí)現(xiàn)8路搶答.在顯示時(shí)使用的是七段數(shù)碼管顯示在本設(shè)計(jì)中根據(jù)實(shí)際情況采用的是動(dòng)態(tài)顯示方法.并通過(guò)查表法將其在數(shù)碼管上顯示出來(lái),其中P1口為字型碼輸入端,P2口低3位為字選段輸入端.通過(guò)查表將字型碼送給7段數(shù)碼管顯示的數(shù)字。軟件去抖動(dòng),如果"開(kāi)始鍵"按下就向下執(zhí)行,否者跳到開(kāi)始。采用倒計(jì)時(shí)程序,使其具有倒計(jì)時(shí)功能?;卮鸬褂?jì)時(shí)30秒。搶答時(shí)間10秒。采用發(fā)聲警報(bào),起到報(bào)警作用。1、 如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會(huì)顯示現(xiàn)在設(shè)定的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下”T+”鍵,如果想減一秒按一下”T-"鍵,時(shí)間LED上會(huì)顯示改變后的時(shí)間,調(diào)整范圍為0s?99s,0s時(shí)再減1s會(huì)跳到99,99s時(shí)再加1s會(huì)變到0s。2、 主持人按"搶答開(kāi)始"鍵,會(huì)有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)10s搶答時(shí)間),如有選手搶答,會(huì)有提示音,并會(huì)顯示其號(hào)數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)30s搶答時(shí)間),不進(jìn)行搶答查詢(xún),所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會(huì)每秒響一下提示音。3、 如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按"停止"按鍵,系統(tǒng)會(huì)自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開(kāi)始"進(jìn)入下次搶答計(jì)時(shí)。4、 如果主持人未按"搶答開(kāi)始”鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號(hào)數(shù)并響個(gè)不停,直到按下”停止”鍵為止。5、 P3.0為開(kāi)始搶答,P3.1為停止,p1.0-p1.7為八路搶答輸入數(shù)碼管段選P0口,位選P2口低3位,蜂鳴器輸出為P3.6口。P3.2搶答時(shí)間調(diào)整結(jié),P3.3回答時(shí)間調(diào)整,P3.4為時(shí)間加1調(diào)整,P3.5為時(shí)間減1調(diào)整。5.2流程圖5.2.1主程序流程圖智能搶答器在正常工作的情況下,首先對(duì)控制系統(tǒng)進(jìn)行初始化,然后進(jìn)行鍵盤(pán)掃描,判斷主持人是否按下了“開(kāi)始搶答”按鍵按下則執(zhí)行倒計(jì)時(shí)子程序和顯示子程序。其中倒計(jì)時(shí)程序包括搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)。主程序流程圖如下圖所示:初始化子程序非法搶答處理子程序倒計(jì)時(shí)子程序顯示子程序正常搶答處理子程序L 結(jié)束1, 」5.2.2初始化子程序流程圖任何控制系統(tǒng)開(kāi)始正常工作前都必須要進(jìn)行初始化,該智能搶答器的初始化子程序主要是兩個(gè)定時(shí)器和兩個(gè)外部中斷初始化。初始化子程序流程圖如上圖所示1開(kāi)始1開(kāi)始 J5.2.4非法搶答查詢(xún)子程序流程圖在主持人未按下“搶答開(kāi)始鍵”時(shí),為防止參賽選手發(fā)生搶答,專(zhuān)門(mén)設(shè)計(jì)了非法搶答查詢(xún)子程序。當(dāng)有選手發(fā)生搶答時(shí),系統(tǒng)會(huì)將選手的號(hào)碼保存,下來(lái),并送到LED顯示裝置進(jìn)行顯示,同時(shí)調(diào)用犯規(guī)搶答子程序。非法搶答查詢(xún)子程序流程圖如圖:5.2.4搶答時(shí)間調(diào)整子程序流程圖該智能搶答器的搶答時(shí)間是可以根據(jù)實(shí)際需要進(jìn)行調(diào)整的。如果想調(diào)節(jié)搶答時(shí)間,按下“搶答時(shí)間調(diào)整鍵”此時(shí)LED顯示裝置會(huì)顯示當(dāng)前搶答時(shí)間的設(shè)定值,如果想加1S,按一下“T+”鍵;如果想減1S,按一下“T-”鍵。LED顯示裝置會(huì)自動(dòng)顯示修改后的搶答時(shí)間。搶答時(shí)間的設(shè)定范圍是0?99S,0S再減1S會(huì)變成99S,同理99S再加1S會(huì)變成0S。回答時(shí)間的調(diào)整與此類(lèi)似。搶答時(shí)間調(diào)整子程序流程圖如圖所示:6.1:Keil軟件用該軟件進(jìn)行程序的檢查調(diào)試,調(diào)試完成后在仿真器里設(shè)置生成***.HEX文件。6.2:Protus軟件系統(tǒng)仿真還用到了Protus軟件,可通過(guò)仿真可以完全顯示出所設(shè)計(jì)系統(tǒng)的功能,對(duì)于程序的調(diào)試等有彳艮大的幫助.系統(tǒng)仿真時(shí)首先要在使用Keil編譯器,把所寫(xiě)的程序進(jìn)行編譯,同時(shí)在仿真器里設(shè)置生成HEX文件,編譯無(wú)錯(cuò)誤時(shí)進(jìn)行Protus仿真。首先要新建一個(gè)文檔是DNS型的找出需要的器件,可以使用搜索功能。接著把各個(gè)器件放到合適的位置都要放到藍(lán)色框內(nèi)。然后根據(jù)自己的設(shè)計(jì)要求連線。等所有的元件都連接完成后可以把,偉福編譯生成的無(wú)錯(cuò)誤文件加載到AT89C51中,方法是,右鍵點(diǎn)中器件然后在用左鍵點(diǎn)擊,出來(lái)一個(gè)對(duì)話框在programfile后選擇要添加文件,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,看與自己設(shè)置的符合否,
如果不相符在查找錯(cuò)誤進(jìn)行修改,一般的錯(cuò)誤都是程序中的,所以要認(rèn)真的讀取程序的每一個(gè)部分作好的Protus圖:屯一E崛方啊制閘排屯一E崛方啊制閘排娜eE*海玄 gwDcbuj]I■虹m &y^EHdp竹■鼻甲國(guó) 帝吸R%伺9?ZAII %M/ ggligAT99CS1BUnDHCtf1CFi^TALFHFFESSWJfR|舌EGK杜AAHNAFr-ILittlllliijStHj?ffubwdMAT99CS1BUnDHCtf1CFi^TALFHFFESSWJfR|舌EGK杜AAHNAFr-ILittlllliijStHj?ffubwdM:^六號(hào)搶答到時(shí)時(shí)的顯示圖:減法調(diào)整圖:倒計(jì)時(shí)到30秒時(shí)的顯示圖:蜂鳴器會(huì)發(fā)出一聲警報(bào)倒計(jì)時(shí)還有5秒時(shí)的報(bào)警顯示圖:蜂鳴器會(huì)開(kāi)始發(fā)出警報(bào)7.小結(jié)該設(shè)計(jì)的硬件部分較簡(jiǎn)單,主要包括復(fù)位電路,時(shí)鐘電路、報(bào)警電路、LED顯示電路、功能鍵設(shè)置電路和搶答鍵電路。其中,LED顯示電路中的數(shù)碼管采用動(dòng)態(tài)顯示方式和共陽(yáng)極的連接方式,該電路的驅(qū)動(dòng)器件采用74LS244、7404和上拉電阻,以此來(lái)增加顯示裝置的驅(qū)動(dòng)電流,提高數(shù)碼管的顯示亮度。按鍵電路的設(shè)計(jì)是本設(shè)計(jì)任務(wù)的一個(gè)難點(diǎn),一點(diǎn)要注意考慮按鍵的“抖動(dòng)”效應(yīng)。根據(jù)實(shí)際情況,選用獨(dú)立式鍵盤(pán)并采用“軟件”的方式來(lái)消除按鍵的“抖動(dòng)”效應(yīng)。利用Proteus仿真軟件對(duì)控制系統(tǒng)進(jìn)行實(shí)物仿真是本設(shè)計(jì)的一大亮點(diǎn),通過(guò)Proteus仿真軟件既可以對(duì)源程序進(jìn)行調(diào)試,又可以對(duì)控制系統(tǒng)的設(shè)計(jì)原理進(jìn)行檢測(cè),從而有效地縮短系統(tǒng)的開(kāi)發(fā)周期。另外,該設(shè)計(jì)在“去抖”方面需要進(jìn)一步改善,“去抖”效果不是很好,硬件復(fù)位電路沒(méi)有起到應(yīng)有的作用,這是我們這次設(shè)計(jì)的不足之處。8.心得體會(huì)這次的單片機(jī)課程設(shè)計(jì)真的讓我學(xué)到了很多知識(shí),通過(guò)查閱大量的書(shū)籍,使我對(duì)單片機(jī)應(yīng)用系統(tǒng)有了更深的理解。拿到題目之后我們按照題目要求查資料,找參考,編程序,查到相關(guān)的資料之后,我們便開(kāi)始畫(huà)圖,進(jìn)行仿真,在硬件接線圖和程序都正確的情況下,我們沒(méi)有仿真出預(yù)定的效果,后來(lái)我從資料和網(wǎng)上查到那個(gè)溫度傳感器在Proteus中無(wú)法仿真,又嘗試了幾次之后,我們決定放棄這個(gè)題目,重新開(kāi)始一個(gè)課題,當(dāng)別人已經(jīng)確定下來(lái)并且進(jìn)行的差不多了時(shí),我有點(diǎn)著急,可是沒(méi)辦法,又重新開(kāi)始查資料,找題目,最終我們確定了一個(gè)新的課題——八路搶答器。因?yàn)檫@個(gè)題目可查到直接相關(guān)的資料,所以這就大大減少了我們的工作量,程序基本上是現(xiàn)成的,只需要我們稍做完善,所以我們分工畫(huà)圖,完善程序,這些工作做完之后,便開(kāi)始做仿真,這次的仿真比較順利,一次便成功了,這樣我們便有大量的時(shí)間整理說(shuō)明書(shū),二十多頁(yè)的說(shuō)明書(shū)對(duì)我來(lái)說(shuō)也是個(gè)不小的工作量,我們分工合作,每人負(fù)責(zé)一部分文字的編輯整理,最后是我們組一起把整個(gè)設(shè)計(jì)流程理解了一遍,把程序進(jìn)一步理解完善,組員一起討論總結(jié)這次設(shè)計(jì)的不足之處。通過(guò)這次課程設(shè)計(jì),我學(xué)到了很多,首先學(xué)會(huì)了用PROTEUS這款軟件,然后對(duì)匯編語(yǔ)言編程進(jìn)一步的熟悉練習(xí),在編程方面有了很大提高,作為我們小組的組長(zhǎng),是我充分意識(shí)到分工的重要性,每個(gè)人有自己的特長(zhǎng),每個(gè)人都有自己擅長(zhǎng)的方面,要善于發(fā)現(xiàn)組員所擅長(zhǎng)的方面,合理的進(jìn)行分工,團(tuán)結(jié)協(xié)作才能提高效率。通過(guò)這次課程設(shè)計(jì),我的最大的感觸是理論與實(shí)踐相結(jié)合是學(xué)習(xí)知識(shí)最有效的方法。任何理論都要經(jīng)得起實(shí)踐的檢驗(yàn),真理都是在不斷地完善,不斷的修改,不斷的學(xué)習(xí),不斷地實(shí)踐中產(chǎn)生的。今后的學(xué)習(xí)中我們要繼續(xù)發(fā)揚(yáng)理論與實(shí)踐相結(jié)合的學(xué)習(xí)方法,將知識(shí)學(xué)扎實(shí),抓住問(wèn)題的本質(zhì)。附1:源程序代碼OKEQU20H;搶答開(kāi)始標(biāo)志位RINGEQU22H;響鈴標(biāo)志位ORG0000H;主程序入口地址AJMPMAIN;跳轉(zhuǎn)到主程序ORG0003H;外部中斷0服務(wù)程序入口地址AJMPINT0SUB;跳轉(zhuǎn)到中斷服務(wù)子程序ORG000BH;定時(shí)器0服務(wù)程序入口地址AJMPT0INT;跳轉(zhuǎn)到定時(shí)器0服務(wù)子程序ORG0013H;外部中斷1服務(wù)程序入口地址AJMPINT1SUB;跳轉(zhuǎn)到外部中斷1服務(wù)子程序ORG001BH;定時(shí)器1服務(wù)程序入口地址AJMPT1INT;跳轉(zhuǎn)到定時(shí)器1服務(wù)子程序ORG0040H;主程序起始地址MAIN:MOVR1,#0AH;初設(shè)搶答時(shí)間為10sMOVR2,#1EH;初設(shè)答題時(shí)間為30sMOVTMOD,#11H;設(shè)置T0,T1定時(shí)器/計(jì)數(shù)器均工作在1模式MOVTH0,#0F0H;設(shè)置T0計(jì)數(shù)初值MOVTL0,#0FFH;越高發(fā)聲頻率越高,越尖MOVTH1,#3CH;設(shè)置T1計(jì)數(shù)初值MOVTL1,#0B0H;50ms為一次溢出中斷SETBEA;開(kāi)總中斷SETBET0;開(kāi)T0中斷SETBET1;開(kāi)T1中斷SETBEX0;開(kāi)外部中斷0SETBEX1;開(kāi)外部中斷1CLROK;清搶答開(kāi)始標(biāo)志位CLRRING;清響鈴標(biāo)志位SETBTR1;T1開(kāi)始計(jì)數(shù)SETBTR0;一開(kāi)始就運(yùn)行定時(shí)器,以開(kāi)始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;======查詢(xún)程序======START:MOVR5,#0BH;R3,R4,R5賦值在DISPLAY中顯示FFFMOVR4,#0BHMOVR3,#0BHACALLDISPLAY;未開(kāi)始搶答時(shí)候顯示FFFJBP3.0,NEXT;去抖動(dòng),如果”開(kāi)始鍵”按下就向下執(zhí)行,否者跳到非法搶答查詢(xún)ACALLDELAYJBP3.0,NEXT ;判斷開(kāi)始搶答鍵是否按下,否則執(zhí)行進(jìn)入非法程序查詢(xún)ACALLBARK;按鍵發(fā)聲MOVA,R1MOVR6,A;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間SETBOK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢(xún)搶答MOVR7,#01H;讀搶答鍵數(shù)據(jù)信號(hào)標(biāo)志,這里表示只讀一次有用信號(hào)MOVR3,#0AH ;搶答只顯示計(jì)時(shí),滅號(hào)數(shù)AJMPCOUNT ;進(jìn)入倒計(jì)時(shí)程序,其中包括查詢(xún)有效搶答的查詢(xún);=======-非法搶答查詢(xún)程序======NEXT:JNBP1.0,FALSE1;判斷1號(hào)選手是否按鍵JNBP1.1,FALSE2;判斷2號(hào)選手是否按鍵JNBP1.2,FALSE3;判斷3號(hào)選手是否按鍵JNBP1.3,FALSE4;判斷4號(hào)選手是否按鍵JNBP1.4,FALSE5;判斷5號(hào)選手是否按鍵JNBP1.5,FALSE6;判斷6號(hào)選手是否按鍵JNBP1.6,FALSE7;判斷7號(hào)選手是否按鍵JNBP1.7,FALSE8;判斷8號(hào)選手是否按鍵AJMPSTART;跳轉(zhuǎn)到查詢(xún)程序FALSE1:MOVR3,#01H;R3中保存“1”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE2:MOVR3,#02H;R3中保存“2”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE3:MOVR3,#03H;R3中保存“3”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR非法搶答子程序FALSE4:MOVR3,#04H;R3中保存“4”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE5:MOVR3,#05H;R3中保存“5”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE6:MOVR3,#06H;R3中保存“6”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE7:MOVR3,#07H;R3中保存“7”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序FALSE8:MOVR3,#08H;R3中保存“8”號(hào)數(shù)AJMPERROR;跳轉(zhuǎn)到ERROR犯規(guī)搶答子程序;======犯規(guī)搶答程序======ERROR:MOVR0,#00HMOVTH1,#3CH;重置T1初值MOVTL1,#0B0HMOV34H,R3 ;犯規(guī)號(hào)數(shù)暫存與34H指示燈閃爍處理程序 HERE:MOVA,R0CJNEA,#06H,FLASH;0.3s向下運(yùn)行->滅并停響CLRRINGMOVR3,#0AHMOVR4,#0AHMOVR5,#0AH ;三個(gè)燈全滅AJMPCHECK1FLASH:CJNEA,#0CH,CHECK1;下面是0.8s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)數(shù)SETBRING;響鈴MOVR0,#00HMOVR3,#34H;取回號(hào)數(shù)MOVR4,#0BHMOVR5,#0BH ;顯示FF和號(hào)數(shù)AJMPCHECK1CHECK1:JNBP3.1,QUIT1;判斷復(fù)位鍵是否按下MOVR3,34H;號(hào)數(shù)給R3ACALLDISPLAY;顯示號(hào)數(shù)AJMPHEREQUIT1:CLRRING;停止響鈴CLROK;禁止搶答AJMPSTART;跳轉(zhuǎn)到查詢(xún)程序;======顯示子程序========DISPLAY:MOVDPTR,#DAT1;查表顯示程序,利用P0口做段選碼口輸出/P2低三位做位選碼輸出,MOVA,R3MOVCA,@A+DPTR;查第一個(gè)顯示字形碼MOVP2,#0FBH;段選MOVP0,A;字形碼送到P0口ACALLDELAY2;調(diào)用延時(shí)子程序MOVDPTR,#DAT2;MOVA,R5;MOVCA,@A+DPTR;查第二個(gè)顯示字形碼MOVP2,#0FEH;段選MOVP0,A;字形碼送到P0口ACALLDELAY2;調(diào)用延時(shí)子程序MOVA,R4MOVCA,@A+DPTR;查第三個(gè)顯示字形碼MOVP2,#0FDH;段選MOVP0,A;字形碼送到P0口ACALLDELAY2;調(diào)用延時(shí)子程序RETDAT1:DB0FFH,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,0FFH,8EH;”滅”,”1”,”2”,”3”,”4”,”5”,”6”,”7”,”8”,”9”,”滅”,”F”DAT2:DB0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,090H,0FFH,8EH;第一個(gè)為零,其他與上才相同,因?yàn)槭蝗绻麨榱泔@示熄滅;======倒計(jì)時(shí)程序======REPEAT:MOVA,R2;使用重新計(jì)數(shù)時(shí)MOVR6,ACOUNT:MOVR0,#00H;重置定時(shí)器的中斷次數(shù)MOVTH1,#3CHMOVTL1,#0B0H;重置定時(shí)器RECOUNT:MOVA,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6MOVB,#0AHDIVAB;除十分出個(gè)位/十位MOV30H,A;十位存于(30H)MOV31H,B;個(gè)位存于(31H)MOVR5,30H;取十位MOVR4,31H;取個(gè)位MOVA,R6SUBBA,#07HJNCLARGER;大于5s跳到LARGER,小于等于5s會(huì)提醒MOVA,R0CJNEA,#0AH,FULL;1s中0.5s向下運(yùn)行CLRRINGAJMPCHECKFULL:CJNEA,#14H,CHECK;下面是1s的情況,響并顯示號(hào)數(shù)并清R0,重新計(jì)數(shù)SETBRINGMOVA,R6JZQUITMOVR0,#00HDECR6;—秒標(biāo)志減1AJMPCHECKLARGER:MOVA,R0CJNEA,#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示"DECR6 ;計(jì)時(shí)一秒R6自動(dòng)減1MOVR0,#00HCHECK:JNBP3.1,QUIT;如按下停止鍵退出JNBOK,CHECKK;只在回答倒計(jì)時(shí)才有效AJMPNEXTTCHECKK:JNBP3.0,REPEAT ;判斷是否使用重新計(jì)數(shù)NEXTT:ACALLDISPLAYJBOK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢(xún)搶答,否者跳過(guò)查詢(xún)繼續(xù)倒數(shù)(這里起到鎖搶答作用)AJMPRECOUNTACCOUT:MOVA,36HJNBACC.0,TRUE1JNBACC.1,TRUE2JNBACC.2,TRUE3JNBACC.3,TRUE4JNBACC.4,TRUE5JNBACC.5,TRUE6JNBACC.6,TRUE7JNBACC.7,TRUE8AJMPRECOUNTQUIT:CLROK ;如果按下了"停止鍵"執(zhí)行的程序CLRRINGAJMPSTART;======正常搶答處理程序======TRUE1:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2MOVR6,A;搶答時(shí)間R2送R6MOVR3,#01HCLROK;因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答AJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE2:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#02HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE3:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#03HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE4:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#04HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE5:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#05HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE6:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#06HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE7:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#07HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序TRUE8:ACALLBARK;調(diào)用發(fā)聲程序MOVA,R2;搶答時(shí)間R2送R6MOVR6,AMOVR3,#08HCLROKAJMPCOUNT;調(diào)用倒計(jì)時(shí)子程序;======INT0(搶答時(shí)間日1調(diào)整程序)======INT0SUB:MOVA,R1;將搶答時(shí)間給AMOVB,#0AHDIVAB;作除法運(yùn)算MOVR5,A;十位給R5MOVR4,B;個(gè)位給R4MOVR3,#0AH;ACALLDISPLAY;調(diào)用延時(shí)子程序JNBP3.4,INC0;加一鍵是否按下JNBP3.5,DEC0;減一鍵是否按下JNBP3.1,BACK0AJMPINT0SUBINC0:MOVA,R1CJNEA,#63H,ADD0MOVR1,#00HACALLDELAY1;調(diào)用延時(shí)子程序AJMPINT0SUBADD0:INCR1;加一ACALLDELAY1;調(diào)用延時(shí)子程序AJMPINT0SUBDEC0:MOVA,R1JZSETR1DECR1;減一ACALLDELAY1;調(diào)用延時(shí)子程序AJMPINT0SUBSETR1:MOVR1,#63HACALLDELAY1;調(diào)用延時(shí)子程序AJMPDELAY1;調(diào)用延時(shí)子程序AJMPINT0SUBBACK0:RETI======INT1(回答時(shí)間R2調(diào)整程序)=====INT1SUB:MOVA,R2MOVB,#0AHDIVABMOVR5,AMOVR4,BMOVR3,#0AHACALLDISPLAYJNBP3.4,INC1J
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年代理商品產(chǎn)品維修協(xié)議
- 2025年分期付款服裝鞋包購(gòu)買(mǎi)合同
- 2025年專(zhuān)業(yè)的人才篩選與匹配協(xié)議書(shū)
- 2025年水土保持監(jiān)測(cè)技術(shù)咨詢(xún)與植被恢復(fù)合同3篇
- 二零二五年插畫(huà)師兼職聘用合同樣本3篇
- 二零二五年度數(shù)字經(jīng)濟(jì)投資合伙人協(xié)議書(shū)4篇
- 二零二五版茶葉品牌授權(quán)合作協(xié)議范本(市場(chǎng)拓展)3篇
- 二零二五年度風(fēng)力發(fā)電機(jī)組安裝工程風(fēng)力保險(xiǎn)合同3篇
- 二零二五年鋼結(jié)構(gòu)建筑裝修工程合同規(guī)范6篇
- 二零二五年集裝箱房租賃合同糾紛調(diào)解及仲裁協(xié)議3篇
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)《電與磁》單元測(cè)試卷(原卷版)
- 江蘇單招英語(yǔ)考綱詞匯
- 礦山隱蔽致災(zāi)普查治理報(bào)告
- 2024年事業(yè)單位財(cái)務(wù)工作計(jì)劃例文(6篇)
- PDCA循環(huán)提高護(hù)士培訓(xùn)率
- 2024年工程咨詢(xún)服務(wù)承諾書(shū)
- 青桔單車(chē)保險(xiǎn)合同條例
- 車(chē)輛使用不過(guò)戶(hù)免責(zé)協(xié)議書(shū)范文范本
- 《獅子王》電影賞析
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
- DB13-T 5673-2023 公路自愈合瀝青混合料薄層超薄層罩面施工技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論