【正文】
hese interrupt sources can be individually enabled or disabled by setting or clearing a bit in Special Function Register IE. IE also contains a global disable bit, EA, which disables all interrupts at once.中文部分:AT89S51概述1. 一般概述 該AT89S51是一個低功耗,高性能CMOS 8位微控制器,可在4K字節(jié)的系統(tǒng)內(nèi)編程的閃存存儲器。另外,感謝在畢業(yè)設(shè)計過程中幫助我的同學(xué),感謝多年來傳授我知識的老師們,更要感謝那些對我學(xué)習(xí)上支持和鼓勵的人。在此首先感謝我的指導(dǎo)老師程欽老師在我大學(xué)的最后學(xué)習(xí)階段畢業(yè)設(shè)計階段給自己的指導(dǎo),從最初的定題,到資料收集,到寫作、修改,到論文定稿,您給了我耐心的指導(dǎo)和無私的幫助,使我對整個畢業(yè)設(shè)計的思路有了總體的把握,并耐心的幫我解決了許多實際問題,使我有了很大的收獲。通過這次畢業(yè)設(shè)計,對我自身來說得到了很大的鍛煉,我在設(shè)計過程中熟練掌握51單片機的原理,了解搶答器組成原理,掌握了搶答器的調(diào)整與測試方法,提高了動手能力與排除故障的能力。用戶系統(tǒng)調(diào)試完后,將用戶程序固化帶用戶系統(tǒng)的程序存儲器中,再借用仿真器CPU是用戶系統(tǒng)運行。系統(tǒng)聯(lián)調(diào)方法:①采用單步,斷電,連續(xù)運行方式調(diào)試與硬件相關(guān)的各程序段既可以檢驗這些用戶程序段的正確性,又可以在各功能獨立的情況下,檢驗軟、硬件的配合情況。各個任務(wù)調(diào)試好以后,再使各個任務(wù)同時運行。 單步運行只能驗證程序正確與否,而不能確定定時精度,CPU的使用響應(yīng)等問題,所以單步和斷點調(diào)試后,還應(yīng)進行連續(xù)調(diào)試。通過檢測,可以發(fā)現(xiàn)程序中的死循環(huán)錯誤,機器代碼錯誤和轉(zhuǎn)移地址錯誤,同時也可以發(fā)現(xiàn)用戶系統(tǒng)中的硬件故障,軟件算法和硬件設(shè)計錯誤,在調(diào)試過程中不斷調(diào)整用戶系統(tǒng)的軟件和硬件,完成每個程序模塊的調(diào)試。檢查后才知識發(fā)光二極管損壞導(dǎo)致未亮起,最后更換了發(fā)光二極管功能得以實現(xiàn)。通電后,執(zhí)行讀寫指令,對用戶樣機的存儲器,I/O端口進行讀寫和邏輯檢查等操作,用示波器等設(shè)備觀察波形(如輸出波形,讀/寫控制信號,地址數(shù)據(jù)波形和有關(guān)控制電平),通過對哦性的觀察分析,發(fā)現(xiàn)和排除故障。樣機所用的電源,事先必須單獨調(diào)試后才能加到系統(tǒng)中。軟件調(diào)試時利用開發(fā)工具進行在線仿真調(diào)試,除發(fā)現(xiàn)和解決程序錯誤外,也可以發(fā)現(xiàn)硬件故障。T0、T1的數(shù)據(jù)寄存器都是讀/寫寄存器,任何時候都可以對它們進行讀/寫操作。IE0=1外部中斷0向CPU請求中斷,當(dāng)CPU響應(yīng)外部中斷時,由硬件清“0”IE0(邊沿觸發(fā)方式)。IE1=1,外部中斷向CPU請求中斷,當(dāng)CPU響應(yīng)該中斷時由硬件清“0”IE1(邊沿觸發(fā)方式)。TF0:T0溢出中斷標(biāo)志。與中斷源有關(guān)的位如表43 所示。C/\T=1時,選擇計數(shù)功能;C/\T=0時,選擇定時功能。GATE=1時,由外部中斷/INT0、/INT1和TR0、TR1來啟動定時器。TMOD用于控制和確定各定時器/計數(shù)器的功能和工作模式。AT89S51單片機有2個16位的定時器/計數(shù)器:定時器/計數(shù)器0(T0)和定時器/計數(shù)器1(T1)。 P2=0X0F。j4。}}void disp_all(void) //送數(shù)碼管顯示{ uchar i,j。} delay(3)。i++) { CLK_164=0。圖42 74LS164時序圖顯示子程序如下: ************************************************************************void write_164(uchar lx) //向164寫入段碼{ uchar i,j。通過輪流控制各個數(shù)碼管的選通端使數(shù)碼管輪流顯示。靜態(tài)顯示驅(qū)動:靜態(tài)驅(qū)動也稱直流驅(qū)動,在靜態(tài)顯示驅(qū)動方式下,數(shù)碼管的共陰極或共陽極共同接地或接電源,每個數(shù)碼管的段選線與8位的單片機并口連接。本設(shè)計中選用軟件延時的方法去按鍵抖動。本設(shè)計采用查詢方式來處理讀取按鍵值程序。經(jīng)過送顯示程序,在送顯示程序中調(diào)用寫入程序(向164寫入數(shù)據(jù)),通過74LS164控制數(shù)碼管顯示?;旧喜挥眯薷木湍苡糜诟鞣N型號的計算機和各種操作系統(tǒng)。因此,C既具有高級語言的功能,又具有低級語言的許多功能,可用來寫系統(tǒng)軟件。數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu),能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運算。C語言有以下特點:語言簡潔、緊湊、使用方便、靈活。仿真芯片的31腳(/EA)已接至高電平,所以仿真時只能使用片內(nèi)ROM,不能使用片外ROM;但仿真器外引插針中的31腳并不與仿真芯片的31腳相連,故該仿真器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標(biāo)系統(tǒng)中使用。目標(biāo)文件可由LIB51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)L51連接定位生成絕對目標(biāo)文件(.ABS)。下面詳細(xì)介紹Keil C51開發(fā)系統(tǒng)各部分功能和使用。Keil C51是美國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。硬件電路分為輸入按鍵電路、單片機控制電路(時鐘電路、復(fù)位電路、控制電路)、數(shù)碼管顯示電路、LED發(fā)光二極管顯示電路、穩(wěn)壓電源這幾個部分。本設(shè)計還采用了三端穩(wěn)壓電路如圖310所示,采用LM7805器件與C1,C2以及一節(jié)9V電池組成三端穩(wěn)壓電路,通過端口1輸入9V電壓經(jīng)過LM7805后,穩(wěn)定輸出5V的電壓。圖38 顯示電路 LED燈提示電路設(shè)計 為了讓系統(tǒng)功能更加完善,本設(shè)計為每位選手增加了2路雙色燈來提示搶答成功或犯規(guī)。軟件設(shè)計中數(shù)碼管采用循環(huán)送顯的方式,單片機通過控制9012來選擇要送顯的數(shù)碼管。若將單片機的I/O口與數(shù)碼管的ag和h相連,高電平(對應(yīng)共陰極數(shù)碼管)或低電平(對應(yīng)共陽極數(shù)碼管)的位對應(yīng)的發(fā)光二極管就會亮,這樣,I/O口輸出不同的代碼就可以控制數(shù)碼管顯示不同的字符。圖37 74LS164引腳圖表32 74LS164真值表InputsOutputs/MRClockA BQ0 Q1 …. Q7 L H H H HXL↑↑↑ X X X X H H L X X L L L …. L QA0 QB0 …. QH0 H QAn …. QGn L QAn .... QGn L QAn …. QGnH——高電平,L——低電平,X——任意電平,↑——低到高電平跳變,QA0、QB0、QH0——規(guī)定的穩(wěn)態(tài)條件建立前的電平,Qan、QGn——時鐘最近的↑前的電平。當(dāng)MR為低電平時,輸出端(Q0Q7)均為低電平。如圖35所示。如果有串行通信,需要選擇振蕩頻率除以串行通信頻率可以整除的晶振。本設(shè)計選用內(nèi)部時鐘方式,電路如圖34所示。使用芯片內(nèi)部時鐘時,這2個引腳用于外接晶振和微調(diào)電容;使用外部時鐘時,外接時鐘脈沖信號。:片外程序存儲器選通信號,低電平有效。P3口還有第二功能定義,如表31所示:表31 P3口第二功能定義引腳定義功能引腳定義功能串行輸入口串行輸出口外部中斷0外部中斷1計時器0外部輸入計時器1外部輸入外部數(shù)據(jù)存儲器寫選通外部數(shù)據(jù)存儲器讀選通RST:復(fù)位輸入。它是地址總線的高8位復(fù)用,可驅(qū)動4個TTL負(fù)載。一般作為擴展時地址/數(shù)據(jù)總線口使用。AT89S51由CPU內(nèi)核、程序存儲器、數(shù)據(jù)存儲器、I\O口、復(fù)位與時鐘、定時器與計數(shù)器、中斷系統(tǒng)、串行通訊接口、看門狗和ISP在線編程接口組成。串行I/O口:串行I/O口的數(shù)據(jù)每個位是按照順序傳輸?shù)模涮攸c就是需要一對傳輸線,且成本低,但是速度比較慢,效率低,適合于靜態(tài)顯示的應(yīng)用。圖32 單片機內(nèi)部結(jié)構(gòu)圖各部分功能介紹:CPU:中央處理器,是單片機最核心的部分,主要功能是完成運算和控制功能。嵌入式系統(tǒng):單片機是嵌入式系統(tǒng)的獨立發(fā)展之路,向MCU階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機的發(fā)展自然形成了SoC化趨勢。SCM即單片微型計算機階段:主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術(shù)得到了巨大提高。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。圖31 按鍵電路 單片機的發(fā)展單片機是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能集成到一塊硅片上構(gòu)成的一個小而完善的計算機系統(tǒng)。輸入按鍵電路還需要注意到是兩個主要問題是判斷是否有按鍵按下和消除按鍵抖動的影響。 輸入按鍵電路設(shè)計 按鍵電路如圖31所示。電路圖布線利用Protel所提供的各種工具、命令進行畫圖工作,將事先放置好的元器件用具有電氣意義的導(dǎo)線、網(wǎng)絡(luò)標(biāo)號等連接起來,布線結(jié)束后,一張完整的電路原理圖基本完成。電路原理圖設(shè)計得好壞將直接影響到后面的工作。綜上所述,搶答器顯示上要求顯示選手的編號和定時時間,所以,本設(shè)計選用數(shù)碼管作為顯示器件。綜上所述,本設(shè)計選用單片機作為系統(tǒng)控制器。采用CPLD器件設(shè)計起來結(jié)構(gòu)清晰,各個模塊從硬件上設(shè)計起來相對簡單,控制與顯示模塊間的連接也會比較方便,但是考慮到本設(shè)計的特點,CPLD在功能擴展上比較受限制,而且CPLD占用的資源也相對多一些,從成本上來講,用可編程邏輯器件來設(shè)計沒有什么優(yōu)勢。比較以上兩種方案,第一種方案除了電路結(jié)構(gòu)復(fù)雜外,對于按鍵的屏蔽也很難做到,而第二種方案通過軟件程序很輕松就可以實現(xiàn)按鍵屏蔽、編號顯示等功能。利用這種方法設(shè)計的搶答器電路結(jié)構(gòu)復(fù)雜,所用的芯片比較多,顯的比較龐大,也不利于硬件制作,功能單一,修改與擴展比較繁瑣。以AT89S51單片機為控制器,單片機通過查詢的方式判斷哪一路按鍵按下,并將搶答選手的編號送至數(shù)碼管顯示電路進行顯示,某一位選手搶答成功時,其他選手的搶答按鍵將被屏蔽,同時數(shù)碼管顯示回答問題的定時時間。電子搶答器有語音和非語音之分,非語音搶答器只有一個主機和一個搶答器按鈕,沒有記分牌顯示屏;語音搶答器由主機和顯示屏組成,可以記錄選手的分?jǐn)?shù)。設(shè)計的最終成果是:能通過搶答顯示搶答者組號;限時搶答;答題具有倒計時功能;違規(guī)搶答用不同指示信號。由于現(xiàn)在社會上普遍使用的搶答器一般都是老式的模擬、數(shù)字混合電路設(shè)計的電子搶答器,雖然這種設(shè)計技術(shù)已經(jīng)非常成熟,但是功能單一,電路結(jié)構(gòu)非常復(fù)雜龐大,成本相當(dāng)高,不易于修改、升級和功能的擴展。進入21世紀(jì)以來,開發(fā)推出單片機的公司很多,各種高性能單片機芯片市場也異常活躍,新技術(shù)的不斷采用,更加使單片機的種類、性能以及應(yīng)用領(lǐng)域不斷擴大和提高。在選手回答問題時,其他選手的搶答按鍵將被屏蔽。本文介紹了一種基于單片機的搶答器的設(shè)計方法,以單片機為控制核心,通過檢測按鍵的方式來判斷搶答的選手,并將選手的編號以數(shù)字的方式在數(shù)碼管上顯示出來。關(guān)鍵字:搶答器、單片機、數(shù)碼管,74LS164The Design of The Responder Based On MicrocontrollerAbstract:With the petition between talents is more and more fierce. As a result, to select and reward the staff, some of enterprise and public institutions take a way of mind quiz or knowledge petition, and responder bees one of the necessary equipments. In this paper, the author introduces a design procedure of the responder based on Microcontroller, with the cybernetics core of Microcontroller, and through the way of testing the keys’ pressing to judge which petitor races to be the first to answer and to show the number of the petitor digitally on the digital tube. Also, when the petitor presses the key, the buzzer will be singing at the same time and the signals of others’ answer keys will be shielded. The system also sets double colour Light emitting diode for differentr responder, which can dedicate the success or foul of petitors. Generally speaking, the design procedure introduced is easy to understand and convenient to operate.Keywor