八位競(jìng)賽搶答器的設(shè)計(jì)_第1頁(yè)
八位競(jìng)賽搶答器的設(shè)計(jì)_第2頁(yè)
八位競(jìng)賽搶答器的設(shè)計(jì)_第3頁(yè)
八位競(jìng)賽搶答器的設(shè)計(jì)_第4頁(yè)
八位競(jìng)賽搶答器的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、課程設(shè)計(jì)論文(設(shè)計(jì))題目:八位競(jìng)賽搶答器的設(shè)計(jì) 學(xué) 院:貴州大學(xué)明德學(xué)院 專(zhuān) 業(yè):通 信 工 程班 級(jí):通信082班 學(xué) 號(hào):082003111350,082003111336 082003111342,08200311361 學(xué)生姓名:倪家醒,鄧麗娟 李林林,余韜指導(dǎo)教師:王 許2011年 7 月 14 日目 錄摘 要4abstract5第一章概述6第二章 搶答器的硬件系統(tǒng)設(shè)計(jì)72.1 方案對(duì)比72.1.1 控制器模塊對(duì)比72.1.2 電源方案的選擇72.1.3 搶答器鍵盤(pán)的選擇82.2 系統(tǒng)整體方案設(shè)計(jì)82.3 系統(tǒng)硬件組成9第三章 最小系統(tǒng)與主控模塊的設(shè)計(jì)與實(shí)現(xiàn)93.1 at89c51簡(jiǎn)

2、介93.2 單片機(jī)最小硬件系統(tǒng)的組成簡(jiǎn)述133.2.1 電源電路143.2.2 時(shí)鐘電路143.2.3 復(fù)位電路153.3 主流程圖16第四章 模塊的設(shè)計(jì)與實(shí)現(xiàn)174.1 搶答電路的設(shè)計(jì)174.2 鎖存器74hc573174.3 主持人控制電路與揚(yáng)聲器的設(shè)計(jì)184.4 顯示電路的設(shè)計(jì)19第五章 軟件的設(shè)計(jì)205.1語(yǔ)言選擇205.2軟件總體設(shè)計(jì)205.3系統(tǒng)程序21總 結(jié)34參考文獻(xiàn)36附 錄37附錄1 主程序37附錄2 元件清單38八位競(jìng)賽搶答器的設(shè)計(jì)摘 要隨著單子技術(shù)的飛速發(fā)展,基于單片機(jī)的控制系統(tǒng)已廣泛應(yīng)用與工業(yè)、農(nóng)業(yè)、電力、電子、智能樓宇等行業(yè),微型計(jì)算機(jī)作為嵌入式控制系統(tǒng)的主體與核心

3、,代替了傳統(tǒng)的控制系統(tǒng)的常規(guī)電子線(xiàn)路。本設(shè)計(jì)是以八路搶答為基本理念。考慮到需設(shè)定限時(shí)回答的功能呢個(gè),利用at89c51單片機(jī)及外圍接口實(shí)現(xiàn)的搶答系統(tǒng),利用單片機(jī)的定時(shí)器/計(jì)數(shù)器定時(shí)和記數(shù)的原理,將軟、硬件有機(jī)地結(jié)合起來(lái),使得系統(tǒng)能夠正確地進(jìn)行計(jì)時(shí),同時(shí)使數(shù)碼管能夠正確地顯示時(shí)間和搶答的號(hào)碼。用開(kāi)關(guān)做鍵盤(pán)輸出,揚(yáng)聲器發(fā)生提示,并且有警告燈顯示,正常工作時(shí)為綠燈,報(bào)警或搶答等違規(guī)信號(hào)時(shí)則出現(xiàn)紅燈。關(guān)鍵詞:at89c51,搶答器,計(jì)數(shù)器the design of eight contest responderabstract along with the list of the rapid deve

4、lopment of technology, the control system based on scm has been widely used in industry, agriculture, electricity, electronics, intelligent building and other industries, the microcomputer embedded control system as the main and core, instead of the traditional control system of conventional electro

5、nic circuits. this design is eight way contest as the basic concept. taking into account the need to set the time response function, using at89c51 mcu and peripheral interface of the answering system, the use of single-chip timer / counter timing and counting principle, the software and hardware com

6、bination, so that the system can correctly time, while the digital tube able to correctly display the time and answer in the number. by switching the keyboard output, speaker prompted occurred, and a warning light display, normal working hours for lights, alarm or other illegal signal when the answe

7、r appears red.key words: at89c51,responder,counter第一章 概述數(shù)字技術(shù)是當(dāng)前發(fā)展最快的學(xué)科之一,數(shù)字邏輯器件已從20世紀(jì)60年代的小規(guī)模集成電路集成電路 集成電路是采用半導(dǎo)體制作工藝,在一塊較小的單晶硅片上制作上許多晶體管及電阻器、電容器等元器件,并按照多層布線(xiàn)或遂道布線(xiàn)的方法將元器件組合成完整的電子電路。它在電路中用字母ic(也有用文字符號(hào)n等)表示。 全文(ssi)發(fā)展到目前的中、大規(guī)模集成電路(msi,lsi)及超大規(guī)模集成電(vlsi)。相應(yīng)地,數(shù)字邏輯電路邏輯電路 邏輯電路是包含邏輯關(guān)系的數(shù)字電路, 以二進(jìn)制為原理、實(shí)現(xiàn)數(shù)字離散信號(hào)的

8、傳遞,邏輯運(yùn)算和操作的電路。最基本的邏輯電路是常見(jiàn)的門(mén)電路,而最簡(jiǎn)單的門(mén)電路為與電路、或電路和非電路。 全文的設(shè)計(jì)方法在不斷的演變和發(fā)展,由原來(lái)單一的硬件邏輯設(shè)計(jì)發(fā)展成三個(gè)分支,即硬件邏輯設(shè)計(jì)(中、小規(guī)模集成器件)、軟件邏輯設(shè)計(jì)(軟件組裝的lsi和vsi,如微處理器、單片機(jī)單片機(jī) 單片機(jī)是單片微型計(jì)算機(jī)(single-chip microcomputer)的簡(jiǎn)稱(chēng),是一種將中央處理器cpu隨機(jī)存儲(chǔ)器ram、只讀存儲(chǔ)器rom、多種i/o口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)采用超大規(guī)模集成電路技術(shù)集成到一塊硅片上構(gòu)成的微型計(jì)算

9、機(jī)系統(tǒng)。 全文等)及兼有二者優(yōu)點(diǎn)的專(zhuān)用集成電路(asic)設(shè)計(jì)。目前數(shù)字電子技術(shù)已經(jīng)廣泛地應(yīng)用于計(jì)算機(jī)、自動(dòng)控制、電子測(cè)量?jī)x表、電視、雷達(dá)、通信等各個(gè)領(lǐng)域。例如在現(xiàn)代測(cè)量技術(shù)中,數(shù)字測(cè)量?jī)x表不僅比模擬測(cè)量?jī)x表精度高,功能高,而且容易實(shí)現(xiàn)測(cè)量的自動(dòng)化和智能化。隨著集成技術(shù)的發(fā)展,尤其是中,大規(guī)模和超大規(guī)模集成電路的發(fā)展,數(shù)字電子技術(shù)的應(yīng)用范圍將會(huì)更廣泛地滲透到國(guó)民經(jīng)濟(jì)的各個(gè)部門(mén),并將產(chǎn)生越來(lái)越深刻的影響。隨著科學(xué)技術(shù)的發(fā)展和普及,各種各樣的競(jìng)賽越來(lái)越多,其中搶答器的作用也就顯而易見(jiàn)。目前很多搶答器基本上采用小規(guī)模數(shù)字集成電路設(shè)計(jì),使用起來(lái)不夠理想。因此設(shè)計(jì)一更易于使用和區(qū)分度高的搶答器成了非常迫

10、切的任務(wù)。現(xiàn)在單片機(jī)已進(jìn)入各個(gè)領(lǐng)域,以其功耗小、智能化而著稱(chēng),所以若利用單片機(jī)來(lái)設(shè)計(jì)搶答器,便使以上問(wèn)題得以解決。針對(duì)以上情況,本文設(shè)計(jì)出以at89c51單片機(jī)為核心的八路搶答器。它能根據(jù)不同的搶答輸入信號(hào),經(jīng)過(guò)單片機(jī)的控制并產(chǎn)生不同的與輸入信號(hào)相對(duì)應(yīng)的輸出信號(hào),最后通過(guò)led數(shù)碼管顯示相應(yīng)的路數(shù),即使兩組的搶答時(shí)間相差及微妙,也可分辨出是哪組優(yōu)先按下的按鍵。搶答器主要用于選手做搶答題時(shí),選手進(jìn)行搶答,搶到題的選手來(lái)回答問(wèn)題。搶答器不僅考驗(yàn)選手的反應(yīng)速度同時(shí)也要求選手具備足夠的知識(shí)面和一定的勇氣。選手們都站在同一個(gè)起跑線(xiàn)上,體現(xiàn)了公平公正的原則。傳統(tǒng)普通搶答器主要存在一下缺陷:1.在一次搶答過(guò)

11、程中,當(dāng)出現(xiàn)超前違規(guī)搶答時(shí),只能處理違規(guī)搶答信號(hào),而對(duì)沒(méi)有違規(guī)的有效搶答信號(hào)不能進(jìn)行處理,因而使該次搶答過(guò)程變成無(wú)效。2.當(dāng)有多個(gè)違規(guī)搶答時(shí),普通搶答器或采用優(yōu)先編碼電路選擇其中一個(gè),或利用搶答電路電子元件的“競(jìng)爭(zhēng)”選擇其中一個(gè)。對(duì)于或者由于搶答電路制作完畢后電子元件被固定。各路搶答信號(hào)的“競(jìng)爭(zhēng)”能力也被固定,因而本質(zhì)上也有優(yōu)先權(quán)。普通搶答器存在不公平性。3.當(dāng)有多個(gè)違規(guī)搶答時(shí),普通搶答器只能“抓住”其中一個(gè)而出現(xiàn)“漏洞”。第二章 搶答器的硬件系統(tǒng)設(shè)計(jì)2.1 方案對(duì)比總的方案來(lái)說(shuō),可以利用集成芯片電路來(lái)控制選手搶答,但有更為精準(zhǔn)、公平的控制電路,即51單片來(lái)控制電路,給各個(gè)選手一個(gè)公平競(jìng)爭(zhēng)的機(jī)

12、會(huì)。一、用集成芯片通過(guò)電路直接控制選手搶答器的按鈕,用ct74ls175觸發(fā)器來(lái)連接電路,電路中還包括三個(gè)與非門(mén)。在這個(gè)電路中就需要有很多的配合,比如說(shuō)選手搶答的限定時(shí)間,選手按鈕的清零等等,顯得比較麻煩。二、用at89c51單片機(jī)來(lái)控制電路,簡(jiǎn)單、方便。最重要的就是寫(xiě)程序,如何通過(guò)程序來(lái)達(dá)到搶答器的作用,利用51單片機(jī)來(lái)說(shuō)補(bǔ)充了集成電路中所缺的遺漏,更是在集成電路上更加精準(zhǔn),對(duì)選手更加的公平,讓選手都站在同一的戰(zhàn)線(xiàn)上。故選用此方案。2.1.1 控制器模塊對(duì)比控制器主要用于個(gè)模塊控制對(duì)顯示、搶答、計(jì)時(shí)等??刂破鞯倪x擇有以下兩種方案:方案一:采用fpga(現(xiàn)場(chǎng)可編程門(mén)列陣)作為系統(tǒng)的控制器。fp

13、ga可以實(shí)現(xiàn)各種復(fù)制的邏輯功能,規(guī)模大,密度高,它將所有期間集成在一塊芯片上,減小了體積,提高了穩(wěn)定性,并且可以應(yīng)用eda軟件仿真、調(diào)試,易于進(jìn)行功能擴(kuò)展。fpga采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)模實(shí)時(shí)系統(tǒng)的控制核心。但由于本設(shè)計(jì)對(duì)數(shù)據(jù)處理的速度要求不高,fpga的高速處理的優(yōu)勢(shì)得不到充分體現(xiàn),并且由于其集成度高,使其成本偏高,同時(shí)由于芯片的引腳較多,實(shí)物硬件電路板布線(xiàn)復(fù)雜,加重了電路設(shè)計(jì)和實(shí)際焊接的工作。方案二:采用atmel公司的at89c51作為系統(tǒng)控制器的cpu方案。單片機(jī)算術(shù)運(yùn)算功能強(qiáng),軟件編程靈活、自由度大,可以用軟件編程實(shí)現(xiàn)各種算法和邏輯控制,并且由于其

14、功耗低、體積小、技術(shù)成熟和成本低等優(yōu)點(diǎn),使其在各個(gè)領(lǐng)域應(yīng)用廣泛?;谝陨戏治鰯M定方案二。2.1.2 電源方案的選擇系統(tǒng)需要多個(gè)電源,at89c51使用5v穩(wěn)壓電源:方案一:采用升壓型穩(wěn)壓電路。用兩片mc34063芯片分別將3v的電池電壓進(jìn)行直流嶄波調(diào)壓,得到5v的穩(wěn)壓輸出。只需使用兩節(jié)電池,既節(jié)約了電池,又減少系統(tǒng)體積重量但該電路供電電流小,供電時(shí)間短,無(wú)法使相對(duì)龐大的系統(tǒng)穩(wěn)定運(yùn)作。方案二:采用三端穩(wěn)壓集成78l05得到5v的穩(wěn)定電壓。利用該方法方便簡(jiǎn)單,工作穩(wěn)定可靠。綜上所述,選擇方案二,采用三端穩(wěn)壓器電路。2.1.3 搶答器鍵盤(pán)的選擇鍵盤(pán)是單片機(jī)不可缺少的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對(duì)話(huà)的紐帶。鍵

15、盤(pán)按結(jié)構(gòu)形式可以分為非編碼鍵盤(pán)和編碼鍵盤(pán),前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來(lái)產(chǎn)生鍵碼。在單片機(jī)中使用的都是非編碼鍵盤(pán),因?yàn)榉蔷幋a鍵盤(pán)結(jié)構(gòu)簡(jiǎn)單,承建低廉,非編碼鍵盤(pán)的類(lèi)型很多,常用的有獨(dú)立式鍵盤(pán),行列式鍵盤(pán)等。方案一:獨(dú)立式鍵盤(pán)鍵盤(pán)接口中使用多少根i/o口,鍵盤(pán)中就有幾個(gè)按鍵,鍵盤(pán)接口使用了8根i/o口線(xiàn),該鍵盤(pán)就有8個(gè)按鍵,這種類(lèi)型的鍵盤(pán),其按鍵比較少,且鍵盤(pán)中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤(pán)中的按鍵靈活的編碼。方案二:行列式鍵盤(pán)是用n條i/o線(xiàn)作為行線(xiàn),m條i/o線(xiàn)作為列線(xiàn)組成的鍵盤(pán),在行線(xiàn)和列線(xiàn)的每個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵中按鍵的個(gè)數(shù)是m*n個(gè),這種形式的鍵盤(pán)結(jié)構(gòu)

16、,能夠有效的提高單片機(jī)系統(tǒng)中i/o的利用率,行列使用與按鍵輸入多的情況。綜上所述,使用方案一。2.2 系統(tǒng)整體方案設(shè)計(jì)本文以at89c51單片機(jī)為核心設(shè)計(jì)的八路搶答器方案是:l 搶答器同時(shí)供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕s0 s7表示。l 設(shè)置一個(gè)系統(tǒng)清除和搶答控制開(kāi)關(guān)s,該開(kāi)關(guān)由主持人控制。l 搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號(hào),并在優(yōu)先搶答選手的編號(hào)一直保持到主持人將系統(tǒng)清除為止。l 搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如30秒)。當(dāng)主持人啟動(dòng)開(kāi)始鍵后,定時(shí)器進(jìn)行減計(jì)時(shí),同時(shí)揚(yáng)聲器發(fā)出短暫的聲響,聲響持續(xù)的時(shí)間0.5秒左右。l 參賽選手在設(shè)

17、定的時(shí)間內(nèi)進(jìn)行搶答,搶答有效,定時(shí)器停止工作,顯示器上顯示選手的編號(hào)和搶答的時(shí)間,并保持到主持人將系統(tǒng)清除為止。l 如果定時(shí)時(shí)間已到,無(wú)人搶答,本次搶答無(wú)效,系統(tǒng)報(bào)警并禁止搶答,定時(shí)顯示器上顯示00。 2.3 系統(tǒng)硬件組成搶答器同時(shí)提供8名選手或8個(gè)代表隊(duì)比賽,分別用8個(gè)按鈕s1-s8表示。設(shè)置一個(gè)系統(tǒng)清除和搶答控制按鈕,該按鈕由主持人控制,搶答器具有所存與顯示功能呢個(gè)。其工作原理為:接通電源后,主持人將開(kāi)關(guān)撥到“清除”狀態(tài),搶答器處于禁止?fàn)顟B(tài),編號(hào)顯示器滅燈,定時(shí)器顯示設(shè)定時(shí)間;主持人將開(kāi)關(guān)置“開(kāi)始”狀態(tài),宣布開(kāi)始搶答器工作。定時(shí)器倒計(jì)時(shí),揚(yáng)聲器給出聲響提示。選手在定時(shí)時(shí)間內(nèi)搶答時(shí),搶答器完

18、成:優(yōu)先判斷、編號(hào)鎖存、編號(hào)顯示、揚(yáng)聲器提示。當(dāng)一輪搶答之后,定時(shí)器停止、禁止二次搶答、定時(shí)器顯示剩余時(shí)間。如果再次搶答必須由主持人再次操作“清除”和“開(kāi)始”狀態(tài)開(kāi)關(guān)。其框圖如圖2.1所示: at89c51搶答信號(hào)輸入主持人控制信號(hào)輸入led顯示揚(yáng)聲器發(fā)音圖2.1 系統(tǒng)框圖第三章 最小系統(tǒng)與主控模塊的設(shè)計(jì)與實(shí)現(xiàn)3.1 at89c51簡(jiǎn)介at89c51是美國(guó)atmel公司生產(chǎn)的低電壓,高性能cmos8位單片機(jī),片內(nèi)含4k bytes的可反復(fù)擦寫(xiě)的只讀程序存儲(chǔ)器(perom)和128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(ram),器件采用atmel公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)mcs-5

19、1指令系統(tǒng),片內(nèi)置通用8位中央處理器(cpu)和flash存儲(chǔ)單元,功能強(qiáng)大at89c51單片機(jī)(圖3-1)可為您提供許多高性?xún)r(jià)比的應(yīng)用場(chǎng)合,可靈活應(yīng)用于各種控制領(lǐng)域。主要性能參數(shù):與mcs-51產(chǎn)品指令系統(tǒng)完全兼容4k字節(jié)可重擦寫(xiě)flash閃速存儲(chǔ)器1000次擦寫(xiě)周期全靜態(tài)操作:0hz24mhz 三級(jí)加密程序存儲(chǔ)器1288字節(jié)內(nèi)部ram32個(gè)可編程i/o口線(xiàn)2個(gè)16位定時(shí)/計(jì)數(shù)器6個(gè)中斷源可編程串行uart通道低功耗空閑和掉電模式 圖3-1 at89c51單片機(jī)功能特性概述: at89c51 提供以下標(biāo)準(zhǔn)功能:4k 字節(jié)flash 閃速存儲(chǔ)器,128字節(jié)內(nèi)部ram,32 個(gè)i/o 口線(xiàn),兩個(gè)

20、16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。同時(shí),at89c51可降至0hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止cpu的工作,但允許ram,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存ram中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個(gè)硬件復(fù)位。引腳功能說(shuō)明vcc:電源電壓gnd:地p0 口:p0 口是一組8 位漏極開(kāi)路型雙向i/o 口,也即地址/數(shù)據(jù)總線(xiàn)復(fù)用口。作為輸出口用時(shí),每位能吸收電流的方式驅(qū)動(dòng)8個(gè)ttl邏輯門(mén)電路,對(duì)端口寫(xiě)“1”可作為高阻抗輸入端用。在訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口

21、線(xiàn)分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線(xiàn)復(fù)用,在訪(fǎng)問(wèn)期間激活內(nèi)部上拉電阻。在fiash編程時(shí),p0口接收指令字節(jié),而在程序校驗(yàn)時(shí),輸出指令字節(jié),校驗(yàn)時(shí),要求外接上拉電阻。p1口:p1是一個(gè)帶內(nèi)部上拉電阻的8位雙向i/o口,p1的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門(mén)電路。對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。fiash編程和程序校驗(yàn)期間,p1接收低8位地址。p2口:p2是一個(gè)帶有內(nèi)部上拉電阻的8位雙向i/o口,p2的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)ttl邏輯門(mén)電路。

22、對(duì)端口寫(xiě)“1”,通過(guò)內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(iil)。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行movxdptr指令)時(shí),p2口送出高8位地址數(shù)據(jù)。在訪(fǎng)問(wèn)8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行movxri 指令)時(shí),p2 口線(xiàn)上的內(nèi)容(也即特殊功能寄存器(sfr)區(qū)中r2寄存器的內(nèi)容),在整個(gè)訪(fǎng)問(wèn)期間不改變。flash編程或校驗(yàn)時(shí),p2亦接收高位地址和其它控制信號(hào)。p3口:p3口是一組帶有內(nèi)部上拉電阻的8 位雙向i/o 口。p3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)ttl邏輯

23、門(mén)電路。對(duì)p3 口寫(xiě)入“1”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時(shí),被外部拉低的p3 口將用上拉電阻輸出電流(iil)。p3口除了作為一般的i/o口線(xiàn)外,更重要的用途是它的第二功能,如下表3-1所示:表 3-1 p3口的第二功能端口引腳第二功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 (外中斷0)p3.3 (外中斷1)p3.4 t0(定時(shí)/計(jì)數(shù)器0外部輸入)p3.5 t1(定時(shí)/計(jì)數(shù)器1外部輸入)p3.6 (外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通)p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通)p3口還接收一些用于flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。rst:復(fù)位輸入。當(dāng)振

24、蕩器工作時(shí),rst引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。ale/: 當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪(fǎng)問(wèn)外部存儲(chǔ)器,ale 仍以時(shí)鐘振蕩頻率的l6 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ale脈沖。對(duì)flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖()。如有必要,可通過(guò)對(duì)特殊功能寄存器(sfr)區(qū)中的8eh單元的do 位置位,可禁止ale 操作。該位置位后,只有一條movx和movc指令ale才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)

25、設(shè)置ale無(wú)效。:程序儲(chǔ)存允許()輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)at89c51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次有效,即輸出兩個(gè)脈沖。在此期間,當(dāng)訪(fǎng)問(wèn)外部數(shù)據(jù)存儲(chǔ)器,這兩次有效的信號(hào)不出現(xiàn)。ea/vpp:外部訪(fǎng)問(wèn)允許。欲使cpu僅訪(fǎng)問(wèn)外部程序存儲(chǔ)器(地址為0000hffffh),ea端必須保持低電平(接地)。需注意的是:如果加密位lb1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存ea端狀態(tài)。如ea端為高電平(接vcc端),cpu則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。flash存儲(chǔ)器編程時(shí),該引腳加上+12v的編程允許電源vpp,當(dāng)然這必須是該器件是使用12v編程電壓vpp。xtal1:振蕩器反相

26、放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。xtal2:振蕩器反相放大器的輸出端。由于外部時(shí)鐘信號(hào)是通過(guò)一個(gè)2分頻觸發(fā)器后作為內(nèi)部時(shí)鐘信號(hào)的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有特殊要求,但最小高電平持續(xù)時(shí)間和最大的低電平持續(xù)時(shí)間應(yīng)符合產(chǎn)品技術(shù)條件的要求。3.2 單片機(jī)最小硬件系統(tǒng)的組成簡(jiǎn)述要使單片機(jī)工作起來(lái),最基本的電路構(gòu)成為:1.電源電路:向單片機(jī)供電;2.時(shí)鐘電路:?jiǎn)纹瑱C(jī)工作的時(shí)間基準(zhǔn),決定單片機(jī)的工作速度;3.復(fù)位電路:確定單片及工作的起始狀態(tài),完成單片機(jī)的啟動(dòng)過(guò)程。連接方式如圖3-2所示:圖 3-2 最小系統(tǒng)的設(shè)計(jì)圖3.2.1 電源電路在設(shè)計(jì)電源電路前,因?yàn)閱纹瑱C(jī)所工作的范圍在4.0-5.5v,所以

27、需要對(duì)交流電壓220v對(duì)其進(jìn)行轉(zhuǎn)變,下圖3-3是最常用的220v輸入5v輸出的直流穩(wěn)壓電源電路,穩(wěn)壓芯片用通用78l05。圖3-3 220v轉(zhuǎn)5v電路圖at89c51單片機(jī)的工作電壓范圍:4.0-5.5v,所以通常給單片機(jī)外接5v直流電源。連接方式為如圖3-4所示;圖 3-4 電源電路gnd(20腳):接電源地端;vcc(40腳):接電源+5v端。3.2.2 時(shí)鐘電路本設(shè)計(jì)所采用的時(shí)鐘信號(hào)為c51中的內(nèi)部形式,內(nèi)部方式實(shí)現(xiàn)單片機(jī)的時(shí)鐘電路,利用單片機(jī)芯片上提供的反相放大器電路,在xtal1和xtal2引腳之間外接振蕩器(晶體振蕩器或陶瓷振蕩器,crystal or ceramic resona

28、tor)構(gòu)成一個(gè)自激振蕩器,自激振蕩器與單片機(jī)內(nèi)部的始終發(fā)生器(clock generator)構(gòu)成單片機(jī)的時(shí)鐘電路。如圖中,由osc和電容c1和c2構(gòu)成了并聯(lián)諧振回路作為定時(shí)元件,振蕩源osc可選用晶體振蕩器或陶瓷振蕩器,頻率為1.212mhz,電容c1、c2為530pf,起頻率微調(diào)作用。如圖3-5所示:圖 3-5 時(shí)鐘電路3.2.3 復(fù)位電路在單片機(jī)工作過(guò)程中,由于某種原因使單片機(jī)陷入“死機(jī)”狀態(tài),或根據(jù)需要采用強(qiáng)制手段使程序重新開(kāi)始執(zhí)行等等,需要采用按鈕開(kāi)關(guān)復(fù)位方式。當(dāng)按鈕開(kāi)關(guān)s按下時(shí),+5v電源通過(guò)s接入電阻構(gòu)成的電路網(wǎng)絡(luò),設(shè)計(jì)時(shí)使電阻上的分壓達(dá)到高電平的閥值,就可以使單片機(jī)復(fù)位。因?yàn)?/p>

29、我們按動(dòng)按鈕開(kāi)關(guān)使其閉合的時(shí)間遠(yuǎn)遠(yuǎn)大于單片機(jī)復(fù)位所用的時(shí)間。通常把上電自動(dòng)復(fù)位電路和按鈕開(kāi)關(guān)復(fù)位電路綜合在一起,這樣既可以在每一次電源接通時(shí)系統(tǒng)復(fù)位,也可以滿(mǎn)足強(qiáng)制復(fù)位的要求。如圖3-6所示:圖 3-6 復(fù)位電路3.3 主流程圖一個(gè)硬件系統(tǒng)的設(shè)計(jì)都伴隨著軟件的設(shè)計(jì),本設(shè)計(jì)具有倒計(jì)時(shí)功能。首先設(shè)置其倒計(jì)時(shí)時(shí)間,在主持人沒(méi)按鍵時(shí),顯示器顯示時(shí)間為00,號(hào)數(shù)為0。當(dāng)主持人按鍵開(kāi)始后,時(shí)間開(kāi)始倒計(jì)時(shí),同時(shí)八位選手開(kāi)始搶答,如果哪位選手搶答到后,顯示器上將顯示這位選手的號(hào)數(shù),如果在倒計(jì)時(shí)完成后都沒(méi)人搶答,則重新開(kāi)始,如果有選手搶答到,則燈亮揚(yáng)聲器響并回答問(wèn)題。如圖3-7所示:ynynnyyy開(kāi)始讀取倒計(jì)

30、時(shí)時(shí)間設(shè)置開(kāi)始搶答主持人按鍵開(kāi)始?有鍵按下?按鍵處理結(jié)束本輪回答?倒計(jì)時(shí)時(shí)間到?超時(shí)處理等待圖3-7 主流程圖第四章 模塊的設(shè)計(jì)與實(shí)現(xiàn)4.1 搶答電路的設(shè)計(jì)最簡(jiǎn)單的編碼方式就是根據(jù)i/o輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進(jìn)行編碼,稱(chēng)直接狀態(tài)嗎,對(duì)于這樣的編碼的獨(dú)立式鍵盤(pán),cpu可以通過(guò)直接讀取i/o口的狀態(tài)來(lái)獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個(gè)值直接進(jìn)行按鍵識(shí)別,這樣形式的鍵盤(pán)結(jié)構(gòu)簡(jiǎn)單,按鍵識(shí)別容易。獨(dú)立式鍵盤(pán)的缺點(diǎn)是需要占用比較多的i/o口線(xiàn),當(dāng)單片機(jī)應(yīng)用系統(tǒng)鍵盤(pán)中需要的按鍵比較少或i/o口線(xiàn)比較富余時(shí),可以采用這樣類(lèi)型的按鍵。鍵盤(pán)接口中使用多少根i/o線(xiàn),鍵盤(pán)中就有幾個(gè)按鍵,本設(shè)計(jì)鍵盤(pán)接

31、口使用了8根i/o口線(xiàn),該鍵盤(pán)就有8個(gè)按鍵,這種類(lèi)型的鍵盤(pán),其按鍵比較少,且按鍵比較少,鍵盤(pán)中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對(duì)鍵盤(pán)中的按鍵靈活的編碼。如圖4.1:圖4.1 搶答電路的設(shè)計(jì)4.2 鎖存器74hc57374hc573 跟 ls/al573 的管腳一樣。器件的輸入是和標(biāo)準(zhǔn) cmos 輸出兼容的;加上拉電阻,他們能和 ls/alsttl 輸出兼容。當(dāng)鎖存使能端le為高時(shí),這些器件的鎖存對(duì)于數(shù)據(jù)是透明的(也就是說(shuō)輸出同步)。當(dāng)鎖存使能變低時(shí),符合建立時(shí)間和保持時(shí)間的數(shù)據(jù)會(huì)被鎖存。1腳是輸出使能;11腳是鎖存使能; d是輸入; q是輸出; 是高電平,l是低; /oe是1腳 le

32、是11腳; /oe 接低電平,使芯片內(nèi)部數(shù)據(jù)保持器輸出端與芯片8位輸出端之間連通; le 端的作用是通過(guò)高低電平控制8位輸入與內(nèi)部數(shù)據(jù)保持器輸入端的連通與斷開(kāi); 當(dāng) le = 0 時(shí),p0端口的8位數(shù)據(jù)線(xiàn)與74hc573內(nèi)部數(shù)據(jù)保持器的輸入端斷開(kāi); 當(dāng) le = 1 時(shí),p0端口的8位數(shù)據(jù)線(xiàn)與74hc573內(nèi)部數(shù)據(jù)保持器的輸入端連通。圖4.2 鎖存器與單片機(jī)的連接4.3 主持人控制電路與揚(yáng)聲器的設(shè)計(jì)當(dāng)有信號(hào)源從p2.7口輸入時(shí),揚(yáng)聲器發(fā)出聲響,可根據(jù)定時(shí)器設(shè)計(jì)發(fā)聲時(shí)間的長(zhǎng)短,此信號(hào)源可以為搶答開(kāi)始、搶答時(shí)間到、選手正常搶答、選手非法搶答、答題時(shí)間到都會(huì)同過(guò)此揚(yáng)聲器發(fā)出一定時(shí)間的聲響,并且設(shè)計(jì)了

33、一個(gè)led顯示來(lái)提示是否為報(bào)警信號(hào),當(dāng)正常信號(hào)源來(lái)的時(shí)候,此燈為綠燈,發(fā)出聲響,但是如果為報(bào)警信號(hào)來(lái)時(shí),此燈為紅燈,并發(fā)出聲響。同時(shí)主持人通過(guò)s按鍵輸入信號(hào),提示答題時(shí)間開(kāi)始、清除,揚(yáng)聲器同時(shí)發(fā)出聲響,發(fā)出聲響的時(shí)候優(yōu)先判斷是哪位搶答到答題的機(jī)會(huì),并在led上顯示出來(lái),同時(shí)顯示開(kāi)始后的時(shí)間,此電路設(shè)計(jì)答題時(shí)間為30秒,揚(yáng)聲器響的時(shí)間為0.5秒。當(dāng)主持人清除系統(tǒng)信號(hào)的時(shí)候,顯示器上顯示時(shí)間為00,選手號(hào)數(shù)也為0。設(shè)計(jì)電路如圖4.3所示:圖4.3主持人控制電路與揚(yáng)聲器的設(shè)計(jì)4.4 顯示電路的設(shè)計(jì) 本設(shè)計(jì)采用led數(shù)碼管顯示,利用軟件設(shè)計(jì)其倒計(jì)時(shí)功能,當(dāng)主持人未按鍵開(kāi)始搶答時(shí),時(shí)間顯示數(shù)碼管顯示為0

34、0,當(dāng)開(kāi)始搶答后,顯示為30并開(kāi)始倒計(jì)時(shí),如果在此期間有人按鍵搶答,則在第三個(gè)數(shù)碼管上顯示響應(yīng)的號(hào)數(shù),當(dāng)然如果出現(xiàn)違規(guī)的選手則不能參與本次回答,因?yàn)檫`規(guī)的時(shí)候會(huì)出來(lái)二極管led顯示紅燈,同時(shí)揚(yáng)聲器發(fā)出聲響,時(shí)間大約為0.5秒,如果有人正常按鍵搶答,則出現(xiàn)綠燈,揚(yáng)聲器也發(fā)出聲響時(shí)間也為0.5秒左右。具體的硬件設(shè)計(jì)如圖4-4所示:圖4-4 顯示電路硬件圖第五章 軟件的設(shè)計(jì)5.1語(yǔ)言選擇在目前單片機(jī)的發(fā)展中,其編程語(yǔ)言主要有c語(yǔ)言和匯編語(yǔ)言。c語(yǔ)言是高級(jí)語(yǔ)言,編寫(xiě)起來(lái)比較簡(jiǎn)單易維護(hù),匯編語(yǔ)言介于機(jī)器語(yǔ)言和高級(jí)語(yǔ)言之間,更接近于硬件,但編寫(xiě)起來(lái)比較冗長(zhǎng)。但介于本次程序不是太復(fù)雜,所以我們這一組選擇的程

35、序采用匯編語(yǔ)言來(lái)編寫(xiě)。5.2軟件總體設(shè)計(jì)本程序采用子程序設(shè)計(jì),在主程序中調(diào)用子程序來(lái)完成特定的功能,這樣程序會(huì)通俗易懂,同時(shí)也有利于程序的調(diào)試和修改。本程序的程序流程如下:初始化顯示fff開(kāi)始鍵按下?加一鍵按下?減一鍵按下?正常搶答非法搶答處理顯示犯規(guī)顯示搶答號(hào)并倒計(jì)時(shí)調(diào)整搶答時(shí)間回答時(shí)間程序流程圖5.3系統(tǒng)程序p1.0為開(kāi)始搶答,p1.7為停止,p1.1-p1.6為六路搶答輸入,數(shù)碼管段選p0口,位選p2口,蜂鳴器輸出為p3.6口。ok equ 20h; 搶答開(kāi)始標(biāo)志位ring equ 22h; 響鈴標(biāo)志位org 0000hajmp mainorg 0003h ;外部中斷0ajmp int0

36、suborg 000bh ;t0中斷ajmp tointorg 0013h ;外部中斷1ajmp int1suborg 001bh ;t1中斷ajmp t1intorg 0040hmain: mov r1, #0fh; 初始欠打時(shí)間為15smov r2,#0ah; 初始答題時(shí)間為10smov tmod,#11h; 設(shè)置為定時(shí)器t0,t1/模式1mov th0,#0f0hmov tl0, #0ffh; 越高發(fā)聲頻率越高,越尖mov th1,#3chmov tl1,#0b0h; 50ms為一次溢出中斷setb easetb et0setb et1setb ex0setb ex1; 允許四個(gè)中斷,t

37、0/t1/int0/int1clr okclr ringsetb tr1setb tr0; 一開(kāi)始就運(yùn)行定時(shí)器,一開(kāi)始顯示fff,如果想 重新計(jì)數(shù),重置th1/tl1就可以了查詢(xún)程序start: mov r5,#0bhmov r4,#0bhmov r3, #0bhacall display; 未開(kāi)始搶答時(shí)候顯示fffjb p3.1, nextacall delayjb p3.1, next; 去抖動(dòng),如果“開(kāi)始鍵”按下就向下執(zhí)行, 否則跳到非法搶答查詢(xún)acall bark; 按鍵發(fā)聲mov a,r1mov r6,a; 送r1到r6,因?yàn)閞1中保存了搶答時(shí)間setb ok;搶答標(biāo)志位,用于cou

38、nt子程序中判斷是否查詢(xún)搶答mov r3,0ah;搶答只顯示時(shí),滅號(hào)數(shù)almp count; 進(jìn)入倒計(jì)時(shí)程序,“查詢(xún)有效搶答的程序”在 count里面next: jnb p1.0,false1jnb p1.1,false2jnb p1.2,false3jnb p1.3,false4jnb p1.4,false5jnb p1.5,false6jnb p1.6,false7jnb p1.7,false8非法搶答處理程序:false1:acall bark; 按鍵發(fā)聲mov r3,#01halmp errorfalse2:acall barkmov r3,#02halmp errorfalse3:a

39、call barkmov r3,#03halmp errorfalse4:acall barkmov r3,#04halmp errorfalse5:acall barkmov r3,#05halmp errorfalse6:acall barkmov r3,#06halmp errorfalse7:acall barkmov r3,#07halmp errorfalse8:acall barkmov r3,#08halmp errorint0(搶答時(shí)間r1調(diào)整程序):int0sub: mov a,r1mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahaca

40、ll display; 先在兩個(gè)時(shí)間led上顯示r1jnb p3.2,inc0; p3.2為+1s鍵,如按下跳到inc0jnb p3.3,dec0; p3.3為-1s鍵,如按下跳到dec0jnb p3.0,back0; p3.0為+1s鍵,如按下跳到back0ajmp int0subinc0: mov a,r1cjne a,#63h,add0; 如果不是99,r2加1,如果加到99了, r1就置0,重新加起mov r1,#00hacall delay1ajmp int0sybadd0: inc r1acall delay1ajmp int0subdec0: mov a,r1jz setr1;

41、如果r1 為0,r1就置99dec r1acall delay1ajmp int0subsetr1: mov r1,#63hacall delay1ajmp int0subback0: retiint1(回答時(shí)間r2調(diào)整程序):int0sub:mov a,r2mov b,#0ahdiv abmov r5,amov r4,bmov r3,#0ahacall display; 先在兩個(gè)時(shí)間led上顯示r1jnb p3.2,inc1; p3.2為+1s鍵,如按下跳到inc0jnb p3.3,dec1; p3.3為-1s鍵,如按下跳到dec0jnb p3.0,back1; p3.0為+1s鍵,如按下跳

42、到back0ajmp int1subinc1: mov a,r2cjne a,#63h,add1; 如果不是99,r2加1,如果加到99了, r1就置0,重新加起mov r2,#00hacall delay1ajmp int1sybadd1: inc r2acall delay1ajmp int1subdec1: mov a,r2jz setr2; 如果r2 為0,r2就置99dec r2acall delay1ajmp int1subsetr2: mov r2,#63hacall delay1ajmp int1subback1: reti倒計(jì)時(shí)程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到該程序):co

43、unt: mov r0,#00h; 重置定時(shí)器中斷次數(shù)mov th1,#3chmov tl1,#0b0h; 重置定時(shí)器recount:mov a,r6; r6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回 答時(shí)間給r6mov,b,#0ahdiv ab; 除十分出個(gè)位/十位mov 30h,a; 十位存于(30h)mov 31h,b; 個(gè)位存于(31h)mov r5,30h; 取十位mov r4,31h; 取個(gè)位mov a,r6subb a,#07hjnc larger; 大于5s跳到larger,小于等于5s會(huì)提醒mov a,r0cjne a,#0ah,full; 1s中0.5s向下運(yùn)行clr rin

44、gajmp checkfull: cjne a,#14h,check; 下面系1s的情況,響并顯示號(hào)數(shù)清r0, 重新計(jì)時(shí)setb ringmov a,r6jz quit; 計(jì)時(shí)完畢mov r0, #00hdec r6; 一秒標(biāo)志減1ajmp checklarger:mov a,r0cjne a,#14h,check; 如果1s向下運(yùn)行,否則跳到查“停/xx 顯示”dec r6; 計(jì)時(shí)一秒r6自動(dòng)減1mov r0,#00hcheck: jnb p3.0,quit; 如按下停止鍵退出acall displayjb ok,accout; 如果是搶答倒計(jì)時(shí),如是則查詢(xún)搶答,否則跳過(guò)查詢(xún)繼續(xù)倒數(shù)(這里起

45、到鎖搶答作用)ajmp recountaccout:jnb p1.0, true1jnb p1.1, true2jnb p1.2, true3jnb p1.3, true4jnb p1.4, true5jnb p1.5, true6jnb p1.6, true7jnb p1.7, true8ajmp recountquit: clr ok; 如果按下了“停止鍵”執(zhí)行的程序clr ringajmp start正常搶答處理程序:true1:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#01hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖

46、了搶答ajmp countture2:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#02hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajmp countture3:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#03hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajmp countture4:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#04hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答

47、ajmp countture5:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#05hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajmp countture6:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#06hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajmp countture7:acall bark; 按鍵發(fā)聲mov a,r2mov r7,a; 搶答時(shí)間r2送r6mov r3,#02hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajm

48、p countture8:acall bark; 按鍵發(fā)聲mov a,r2mov r6,a; 搶答時(shí)間r2送r6mov r3,#08hclr ok; 因?yàn)榇痤}的計(jì)時(shí)不再查詢(xún)搶答,所以就鎖了搶答ajmp countmov a,r2mov r6,amov r3,#03#clr okajmp counttrue4:acall bark;mov a,r2 mov r6,amov r3,#04hclr okajmp counttrue5:acall bank;mov a,r2mov r6,amov r3,#05hclr okajmp counttrue6:acall bank;mov a,r2mov r

49、6,amov r3,#06hclr okajmp counttrue7:acall bank;mov a,r2mov r6,amov r3,#07hclr okajmp counttrue8:acall bank;mov a,r2mov r6,amov r3,#08hclr okajmp count;犯規(guī)搶答程序;error:mov r0,#00hmov th1,#3chmov tl1,#0b0hmov 34h,r3; 犯規(guī)號(hào)數(shù)暫存與(34h)here: mov a,r0cjne a,#0ah,flash; 0.5s向下運(yùn)行-滅并停響clr ringmov r3,#0ahmov r4,#0ah

50、mov r5,#0ah; 三燈全滅ajmp check1flash: cjne a,#14h,check1; 下面系1s的情況,響并顯示號(hào)數(shù)并清r0,重新計(jì)setb ringmov r0,#00hmov r3,34 h; 取回號(hào)數(shù)mov r5,#0bhmov r4,#0bh; 顯示ff和號(hào)數(shù)ajmp check1check1:jnb p3.0.quit1acall displayajmp herequit1:clr ringclr okajmp start顯示程序:display:mov dptr,#dat1; 查表顯示程序,利用p0口做段選碼口輸出/p2低三位做位選碼輸出mov a,r5mo

51、vc a,a+dptrmov p2,#01hmov p0,aacall delaymov dptr,#dat2mov a,r4movc a,a+dptrmov p2,#02hmov p0,aacall delaymov a,r3movc a,a+dptrmov p2,#04hmov p0,aacall delayretdat1:db 00h,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71h; “滅”,“1”,“2”,“3”,“4”,“5”,“6”,“7”,“8”,“9”,“滅”,“f”dat2:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,00h,71hdelay1:mov 35h,#08hloopo: acall displaydjnz 35h,looporet;延時(shí)(顯示和去抖動(dòng)用到);delay: mov 32h,#12hloop: mov 33h,#0afhloop1:djnz 33h,loop1djnz 32h,loopret發(fā)聲程序:bark: setb rin

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論