版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機搶答器設計與實現摘 要 此次設計提出了用AT89C51單片機為核心控制元件,設計一個簡易的搶答器, 本方案以AT89C51單片機作為主控核心,與MAX232、發(fā)光二極管、數碼管、蜂鳴器等構成硬件操作,再利用C語言編程,來控制搶答器的功能實現。本設計的系統實用性強、判斷精確、操作簡單、擴展功能強。其實在以往企業(yè)或學校等舉行自己搞的知識競賽中,都是主持人讀題,觀眾選手得安靜仔細聽題目,有條件的花上萬元買個電子搶答器,算是給知識競賽賽場添彩了。大多依靠主持人發(fā)揮水平,選手和觀眾渴望的類似電視臺的節(jié)目效果難以實現。與電視播放的那些競賽場面對照選手坐在顯示器前答題,觀眾看著大屏幕顯示題目和答案,大
2、屏幕有搶答顯示計分排行等,絢麗的畫面有節(jié)奏的音樂差距很大,但這些都不是電視臺的專利,利用競賽軟件,運用互動式多媒體技術,將競賽題目制作成演示程序。通過投影儀大屏幕或電視墻在現場播放,給觀眾強烈的視聽感受,凝聚競賽現場氣氛。通過選手面前的顯示器,為參賽隊員提供最直接的看題效果,保證隊員對題目的正確理解。而我們設計的搶答器節(jié)省的不小的開支,還能直觀公正的看清哪位選手先搶答到題并有主持人來往下讀題目。它的功能實現是有主持人按鍵來控制總開關,主持人按下開關那么選手開始搶答,此時數碼管開始060計數,并且選手們必須在規(guī)定的時間內進行搶答,若過了60秒還沒搶答那么搶答失效,選手們若有一個在規(guī)定的時間內搶答
3、成功則其余的選手不可以再搶答,在數碼管上會顯示哪位選手搶答到題目及其所用的時間。關鍵字:STC89C52單片機、動態(tài)顯示、中斷目 錄第一章 緒論 11.1 單片機搶答器的背景 11.2 單片機搶答器的意義 11.3 搶答器的應用 1第二章 整體設計方案 22.1 單片機的選擇 22.2 單片機的基本結構 42.3 單片機的存儲器配置 6第三章 硬件設計 83.1 最小系統的設計 83.2 數碼管顯示電路 83.3按鍵控制電路 9第四章 軟件設計 114.1 搶答器系統軟件設計的流程圖 114.2 主程序 124.3 中斷程序 15第五章 系統的仿真185.1 protenus軟件的介紹及使用
4、185.2 搶答器protenus軟件的仿真 22第六章 調試功能說明236.1 系統的調試 236.2 軟件調試問題及解決 236.3 焊接的問題及解決 246.4 單片機的通信 25結論 27工作展望 28參考文獻 29致謝30單片機搶答器設計與實現第一章 緒論1.1 單片機搶答器的背景二十世紀跨越了三個“電”的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎么熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡
5、單運算和控制。因為它體積小,通常都藏在被控機械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了?,F在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞“智能型”,如智能型洗衣機等?,F在有些工廠的技術人員或其它業(yè)余電子開發(fā)者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產品未使用單片機或其它可編程邏輯器件上。在知識競賽中,特別是做搶答題時,在搶答過程中,為了更確切的知道哪一組或哪一位選手先搶答到題,必須要有一個
6、系統來完成這個任務。若在搶答中,只靠人的視覺(或者是聽覺)是很難判斷出哪一組(或哪一個選手)先搶答到題的。利用單片機編程來設計搶答器,可以使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也能輕松的分辨出哪一組(或哪個選手)先搶答到題的。本文主要介紹了搶答器的工作原理及設計,以及它的實際用途。1.2 單片機搶答器的意義本系統采用單片機作為整個控制核心??刂葡到y的四個模塊為:顯示模塊、存儲模塊、語音模塊、搶答開關模塊。該系統通過開關電路四個按鍵輸入搶答信號;利用一個數碼管來完成顯示功能;用按鍵來讓選手進行搶答,在數碼管上顯示哪一組先答題的,從而實現整個搶答過程。在知識比賽中, 特別是做搶答題目的
7、時候, 在搶答過程中,為了知道哪一組或哪一位選手先答題,必須要設計一個系統來完成這個任務。如果在搶答中,靠視覺是很難判斷出哪組先答題。利用單片機系統來設計搶答器,使以上問題得以解決,即使兩組的搶答時間相差幾微秒,也可分辨出哪組優(yōu)先答題。本文主要介紹了單片機搶答器設計及工作原理,以及它的實際用途。系統工作原理本系統采用89c52單片機作為核心??刂葡到y的四個模塊分別為:存儲模塊、顯示模塊、語音模塊、搶答開關模塊。該搶答器系統通過開關電路四個按鍵輸入搶答信號; 利用一個數碼管來完成顯示功能。工作時,用按鍵通過開關電路輸入各路的搶答信號,經單片機的處理, 輸出控制信號,單片機控制的智能搶答器設計。1
8、.3 搶答器的應用隨著我國經濟和文化事業(yè)的發(fā)展,在很多公開競爭場合要求有公正的競爭裁決,諸如證券、股票交易及各種智力競賽等,因此出現了搶答器。搶答器一般是由很多電路組成的,線路復雜,可靠性不高,功能也比較簡單,特別是當搶答路數很多時,實現起來就更為困難。因此我們設計了以單片機為核心的新型智能的搶答器,在保留了原始搶答器的基本功能的同時又增加一系列的實用功能并簡化其電路結構。搶答器又稱為第一信號鑒別器,其主要應用于各種知識競賽、文藝活動等場合。傳統普通搶答器主要存在以下缺陷:(一)、在一次搶答過程中,當出現超前違規(guī)搶答時,只能處理違規(guī)搶答信號,而對沒有違規(guī)的有效搶答信號不能進行處理,因而使該次搶
9、答過程變?yōu)闊o效。 (二)、當有多個違規(guī)搶答時,普通搶答器或采用優(yōu)先編碼電路選擇其中一個,或利用搶答電路電子元件的“競爭”選擇其中一個。對于后者由于搶答電路制作完畢后電子元件被固定。各路搶答信號的“競爭”能力也被固定,因而本質上也有優(yōu)先權。普通搶答器存在不公平性。 (三)、當有多個違規(guī)搶答時,普通搶答器只能“抓住”其中一個而出現“漏洞”。第二章 整體設計方案2.1 單片機的選擇 2.1.1 什么是單片機單片機是指一個集成在一塊芯片上的完整計算機系統。盡管它的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統。單片機是將中央處理器,隨機存儲器
10、。只讀存儲器,定時器芯片和I/O接口電路集成于一個芯片上的微控制器。單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業(yè)控制領域。單片機由芯片內僅有CPU的專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統。基于這一系統的單
11、片機系統直到現在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產品大發(fā)展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系
12、統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。單片機是靠程序的,并且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發(fā)的74系列,或者60年代的CD4000系列這些純硬件來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性! 目前單片機滲透到我們生活的各個領域,
13、幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網絡通訊與數據傳輸,工業(yè)自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程控玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫(yī)療器械了。因此,單片機的學習、開發(fā)與應用將造就一批計算機應用與智能化控制的科學家、工程師。 2.1.2 單片機的應用單片機廣泛應用于儀器儀表、家用電器、醫(yī)用設備、航空航天、專用設備的智能化管理及過程控制等領域,大致可分如下幾個范疇:1.在智能儀器儀表上的應用單片機具有體積小、功耗
14、低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應用于儀器儀表中,結合不同類型的傳感器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起采用電子或數字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。2.在工業(yè)控制中的應用用單片機可以構成形式多樣的控制系統、數據采集系統。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。3.在家用電器中的應用可以這樣說,現在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調
15、機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。4.在計算機網絡和通信領域中的應用現代的單片機普遍具備通信接口,可以很方便地與計算機進行數據通信,為在計算機網絡和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。5.單片機在醫(yī)用設備領域中的應用單片機在醫(yī)用設備中的用途亦相當廣泛,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設備及病床呼叫系統等等。此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛
16、的用途。2.1.3 如何選擇單片機 ATMEL公司的89C52單片機,是增強型RISC內載Flash的單片機,芯片上的Flash存儲器附在用戶的產品中,可隨時編程,再編程,使用戶的產品設計容易,更新換代方便。89C52單片機采用增強的RISC結構,使其具有高速處理能力,在一個時鐘周期內可執(zhí)行復雜的指令,每MHz可實現1MIPS的處理能力。89C52單片機工作電壓為2.76.0V,可以實現耗電最優(yōu)化。89C52的單片機廣泛應用于計算機外部設備,工業(yè)實時控制,儀器儀表,通訊設備,家用電器,宇航設備等各個領域.由于單片機的種類很多,在選擇單片機時要依據實際設計要求選擇合適的單片機。例如
17、當設計僅僅需要一個單片機定時器那么選擇89C1051或89C2051即可,而不選擇89C52,因為后者的價格較高一些。當然若程序和數據區(qū)的要求較高那么選擇的單片機還要滿足程序空間的要求。下面我們來比較89C51和89C52:數據存儲器程序存儲器定時器中斷51系列128B4KB2552系列256B8KB38表2-1-1 51和52的比較在本課題中,我們選用現在較為流行的52系列單片機,即選用ATMEL公司的STC89C52。2.2 單片機的基本結構2.2.1 單片機的引腳分布及功能MCS-52的引腳說明:MCS-52系列單片機中的8032、8052及8752均采用40Pin封裝的雙列直接DIP結
18、構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用?,F在我們對這些引腳的功能加以說明: 圖2-2-1 STC89C52的引腳圖Pin9:RESET/Vpd復位信號復用腳,當8052通電,時鐘電路開始工作,在RESET引腳上出現24個時鐘周期以上的高電平,系統即初始復位。初始化后,程序計數器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統即從0000H地址開始執(zhí)行程序。然而,初始復位不改變RAM(包括工作寄存器R0-R7)的狀態(tài)
19、,8052的初始態(tài)。8052的復位方式可以是自動復位,也可以是手動復位,見下圖4。此外,RESET/Vpd還是一復用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內部RAM的數據不丟失。 圖2-2-2復位電路和晶振電路圖1、8位微處理器和控制器2、內部含有4KB的程序ROM。3、2個16位的計數/定時器。4、內部時鐘振蕩器5、全雙工方式的串行接口(UART)種尋址方式。6、最高時鐘振蕩頻率可達12MHZ,大部分指令執(zhí)行時間為1µs,乘、除指令為4µs。2.2 信號引腳介紹:1.輸入/輸出口線2.ALE地址鎖存控制信號3.在系統擴展時,ALE用于控制把 口輸出
20、的底8位地址送入鎖存器鎖存起來,以實現低位地址和數據的分時傳送。此外由于ALE是以十二分之一晶振頻率的固定頻率輸出的正脈沖,因此可作為外部時鐘或外部定時脈沖使用。4.外部程序存儲器讀選通信號5.在讀外部ROM時 有效(低電平),以實現外部ROM單元的讀操作6.訪問程序存儲器控制信號7.當信號為低電平時,對ROM的讀操作限定在外部程序存儲器;而當 信號為高電平時,則對ROM的讀操作是從內部程序存儲器開始,并可延續(xù)至外部程序存儲8.RST 復位信號 當輸入的復位信號延續(xù)2個機器周期以上高電平時即為有效,用以完成單片機的復位操作。9.XTAL1和XTAL2外接晶體引線端當使用芯片內部時鐘時
21、,此二引線端用于外接石英晶體和微調電容;當使用外部時鐘時,用于接外部時鐘脈沖信號。10.VSS地線11.VCC+5V 電源2.3 單片機的存儲器配置 (b)圖2-3-1 單片機的內部存儲器配置從用戶的角度存儲器分3個邏輯地址空間:1. 片內外統一編址的64KB程序存儲器地址空間0000HFFFFH即(a)圖;2. 256B的片內數據存儲器地址空間00HFFH(包括低128B的內部RAM地址00H7FH和高128B的特殊功能寄存器地址空間)即(b)圖;3. 64KB的外部數據存儲器或擴展I/O接口地址空間0000HFFFFH如(c)圖。4. 畫出RAM的組成RAM共有256個單元,按功能分為兩部
22、分低128單元(單元地址00H7FH)和高128單元(單元地址80HFFH)。其中高128單元是供給專用寄存器使用,因這些寄存器的功能已作為專門規(guī)定故此稱之為特殊功能寄存器SFR11個SFR有位尋址作用,而且要說明低128單元是單片機的真正RAM存儲器。30H7FH通用RAM區(qū)20H2FH位尋址區(qū)(00H7FH)18H1FH工作寄存器3區(qū)(R7R0)10H17H工作寄存器2區(qū)(R7R0)08H0FH工作寄存器1區(qū)(R7R0)00H07H工作寄存器0區(qū) (R7R0)圖2-3-2 RAM的組成圖低128單元是單片機的真正RAM存儲器,按其用途劃分為三個區(qū)域:通用寄存器區(qū) 通用寄存器為CPU提供了就
23、近數據存儲的便利,有利于提高單片機的運算速度。此外,使用通用存儲器還能提高程序編制的靈活性,因此在單片機的應用編程中應充分利用這些寄存器,以簡化程序設計,提高程序運行速度。位尋址區(qū)內部RAM的20H2FH單元,即可作為一般RAM單元使用,進行字節(jié)操作,也可以對單元中每一位進行位操作,因此把該區(qū)稱之為位尋址區(qū)。工作寄存區(qū) 用戶存儲數據的。第三章 硬件設計3.1 單片機的最小系統52單片機的最小系統電路圖: 圖3-1-1 單片機的最小系統圖說明: 復位電路:由電容串聯電阻構成,由圖并結合"電容電壓不能突變"的性質,可以知道,當系統一上電,RST腳將會出現高電平,并且,這個高電平
24、持續(xù)的時間由電路的RC值來決定.典型的51單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原則就要讓RC組合可以在RST腳上產生不少于2個機周期的高電平;復位輸入高電平有效,當振蕩器工作是,RST引腳出現兩個機器周期以上的高電平,使單片機復位。此電路除具有上電復位功能外,若要復位只需按“RST”鍵,此電源Vcc經電阻分壓,在RST端產生一個復位高電平;晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(
25、產生精確的方波便于12分頻,方便定時操作); 單片機:一片AT89S51/52或其他51系列兼容單片機; 注意:對于31腳(EA/Vpp),當接高電平時,單片機在復位后從內部ROM的0000H開始執(zhí)行;當接低電平時,復位后直接從外部ROM的0000H開始執(zhí)行; 電源部分:接+5伏特的電壓。 3.2 數碼管顯示電路LED顯示器,實現七段數碼管的顯示三位十六進制數。來進行倒計時,即來限制搶答的時間。其中數碼管的顯示可以分為兩種:靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示的段選位和位選位均單獨連接,因此占用的I/O接口多,無法擴展多個數碼管,在這種采用這種方式,必須要給LED恒定的電壓,要求電壓一直保持,所以一般
26、在LED和單片機之間加鎖存器,這種顯示方式亮度高,編程較簡單,結構清晰,管理也較簡單,占用的CPU時間少。 動態(tài)顯示驅動:數碼管動態(tài)顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態(tài)驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共端COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流
27、控制各個數碼管的COM端,就使各個數碼管輪流受控顯示,這就是動態(tài)驅動。在輪流顯示過程中,每位數碼管的點亮時間為12ms,由于人的視覺暫留現象及發(fā)光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數據,不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。從電路上,按數碼管的接法不同又分為共陰和共陽兩種。圖1-1 是共陰和共陽極數碼管的內部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。其數碼管的外形如下圖所示: 圖3-2 數碼管的共陰和共陽極接法第四章 軟件設計4.1 搶答器流程圖流程圖是使用圖
28、形表示算法的思路是一種極好的方法,不論采用何種程序設計方法,程序總體結構確定后,一般以程序流程圖的形式對其進行描述??傮w框圖中的各個子模塊或各個子任務也應該結合具體的教學模型和算法畫出較詳細的程序流程圖,供后面編寫具體程序和閱讀程序使用。流程圖是由一些圖框和流程線組成的,其中圖框表示各種操作的類型,圖框中的文字和符號表示操作的內容,流程線表示操作的先后次序。流程圖的基本結構為順序結構,分支結構(又稱選擇結構),循環(huán)結構。為便于識別,繪制流程圖的習慣做法是:方框表示:要執(zhí)行的處理(Process)平行四邊型表示:代表資料輸入(Input) 不規(guī)則圖形代表資料輸出(Output)或報表輸出(Pri
29、nt) 菱形表示:決策或判斷(例如:If.Then.Else) 初始化部分Kz= =0啟動中斷,數碼管開始計時若有選手搶答中斷停止,數碼管顯示選手的標號及所用的時間結束開始NYYN圖4-1-1搶答器主程序流程圖 定時器0中斷1秒時間到?中斷返回N秒加1數碼管顯示秒值Y圖4-1-2 搶答器定時器中斷流程圖外部中斷0中斷K0鍵按下K1鍵按下K3鍵按下K2鍵按下中斷返回與K0鍵對應的發(fā)光二極管亮及數碼管顯示與K1鍵對應的發(fā)光二極管亮及數碼管顯示與K3鍵對應的發(fā)光二極管亮及數碼管顯示與K2鍵對應的發(fā)光二極管亮及數碼管顯示YYYYNNNN圖4-1-3 外部中斷程序圖4.2 主程序我們組所設計的搶答器的程
30、序采用的是C程序設計,C語言的顯著特點是用二進制來編寫程序,程序的各個部分除了必要的信息交流外彼此之間相互獨立。這種結構化方式可使程序層次清晰, 便于使用、維護以及調試。C語言是以函數形式提供給用戶的,這些函數可方便的調用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結構化。雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。本次設計的主程序中包括時鐘設計程序,定時器中斷子程序,LED顯示程序以及按鍵控制子程序,程序設計如下: #include<reg52.h>sbit k0=P10;sbit k1=P11;sbit k2=P12;sbit k3=P
31、13;sbit d0=P14;sbit d1=P15;sbit d2=P16;sbit d3=P17;sbit B0=P37;sbit l0=P20;sbit l1=P22;sbit l2=P23;sbit l3=P24;sbit kz=P30;unsigned char qiangdanum=0x3f;unsigned char code table=0x3f,0xxx,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char ge=0,shi=0;unsigned int num=0,time=0;void display(); /*顯示函
32、數*/void delay(unsigned int);main()TMOD=0X01; /*采用方式一,即十六位計數器*/TH0=(65536-50000)/256; /*設置初始值*/TL0=(65536-50000)%256;IT0=0;EA=1;ET0=1; /*開啟總中斷源*/EX0=1; /*啟動外部中斷0*/while(1)display(); if(kz=0) TR0=1; /*開啟定時器0中斷*/ if(num=20) num=0; time+; if(time=60) /*60秒的計時*/ time=0; void exter0() interrupt 0 /*外部中斷程序
33、*/EA=0;l0=0; if(k0=0) /*開關0按下*/d0=0;qiangdanum=1;B0=1; /* 1號選手搶答成功,數碼管顯示1,蜂鳴器響,第1個二極管亮*/if(k1=0) /*開關1按下*/ d1=0;qiangdanum=2;B0=1; /* 2號選手搶答成功,數碼管顯示2,蜂鳴器響,第2個二極管亮*/if(k2=0) /*開關2按下*/ d2=0;qiangdanum=3;B0=1; /* 3號選手搶答成功,數碼管顯示3,蜂鳴器響,第3個二極管亮*/if(k3=0) /*開關3按下*/ d3=0;qiangdanum=4;B0=1; /* 4號選手搶答成功,數碼管顯示
34、4,蜂鳴器響,第4個二極管亮*/void time0() interrupt 1num+;TH0=(65536-50000)/256;TL0=(65536-50000)%256; /*1秒定時函數*/void delay(unsigned int z)unsigned int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-); /*延遲函數*/void display(void) shi=time/10;ge=time%10;P2=0xef;P0=tablege;delay(5);P2=0xf7;P0=tableshi;delay(5);P2=0xFE;
35、P0=tableqiangdanum;delay(5); /*顯示函數:來顯示0-60的計數*/4.3 中斷程序4.3.1 什么是中斷中斷是指由于某種隨機事件的發(fā)生,計算機暫停現行的程序的運行,轉去執(zhí)行另一個程序,以處理發(fā)生的事件,處理完畢后又自動返回原來的程序繼續(xù)運行。有五種中斷源:外部中斷0、外部中斷1、定時器中斷0、定時器中斷1、串行中斷。它們的描述如下圖所示:中斷源符號名稱終端引起的原因中斷矢量地址INT0外部中斷0由P3.2低電平或下降沿信號0003HT0定時器中斷0定時/計數器0回零溢出P3.40013HINT1外部中斷1由P3.3低電平或下降沿信號000BHT1定時器中斷1定時/
36、計數器1回零溢出P3.5001BHTI/RI串行中斷串行口接收或發(fā)送完幀數據引起的中斷0023H表4-3-1 五種中斷源的表示4.3.2 中斷所用到的寄存器介紹定時器/計數器中所介紹的寄存器:(1)、定時器/計數器控制寄存器TCONTCON的作用是控制定時器的啟動停止,標志定時器的溢出和中斷情況;(2)、中斷允許控制寄存器IE對中斷源的開放或屏蔽是由中斷寄存器IE控制的,地址為0A8H,即可以按字節(jié)尋址,也可以按位尋址。當單片機復位時,IE被清零。(3)、串行控制寄存器SCON定時/計數器的控制方法:在啟動定時/計數器工作之前CPU必須將一些命令(稱為控制字)寫入定時/計數器中,這個過程稱為定
37、時/計數的初始化。(定時/計數器的初始化通過定時/計數器的方式寄存器TMOD和控制寄存器TCON來完成。定時/計數器方式寄存器TMODGATEC/TM1M0GATEC/TM1M0定時器1 定時器0M1M0工作方式功能說明00方式013位計數器01方式116位計數器10方式2自動再裝入8位計數器11方式3定時器0:分成兩個8位計數器;定時器1:停止計數表4-3-2 選擇定時方式表中斷程序的編寫的步驟:(1)、根據要求設置IE(中斷允許寄存器)的對應位EA(EA總中斷允許位 EA=1開放所有的中斷;EA=0禁止所有的中斷),某個中斷源還有相應的中斷允許位、當=1時:允許相應中斷源的中斷;、當=0時
38、:禁止相應中斷源的中斷;(2)、INT0、INT1設定觸發(fā)方式IT0(外部中斷觸發(fā)方式控制位)當為0時:低電平觸發(fā);當為1時:下降沿觸發(fā);(3)、返回值是Void中斷函數名() interrupt()4.3.2 為什么采用中斷控制方式CPU與外部設備的數據傳送方式:(1)、無條件傳送方式CPU總認為外設處于準備好的狀態(tài),外設比較簡單(2)、程序查詢傳送方式外設有一個狀態(tài)(狀態(tài)存儲在寄存器內)缺點:CPU工作效率低,CPU處于等待的狀態(tài),為解決此缺點便出現了第三種傳送方式(3)、中斷傳送方式中斷是指由于某種隨機事件的發(fā)生,計算機暫?,F行的程序,轉去執(zhí)行另一程序以處理發(fā)生的 事件,處理完畢后又自動
39、返回原來的程序繼續(xù)運行。優(yōu)點:(1)、實現分時操作CPU分為多個I/O設備服務,提高計算機的利用率(提前安排好的函數而中斷不同);(2)、實時響應CPU能夠及時處理應用系統的隨機事件,系統的實時性大大增強;(3)、可靠性高CPU具有處理設備故障及掉電等突發(fā)性事件的能力,從而使系統的可靠性提高。定時器的初始化(1)確定工作方式-對TMOD賦值;(2)設置初始值-直接將初值寫入THO,TLO;(3)開啟定時器的中斷-ETO=1 EA=1;(4) 啟動定時器-將TR0或TRI置“1”。第五章 系統的仿真5.1 proteus軟件的介紹及使用5.1.1 什么是Proteus軟件Proteus軟件是La
40、bcenter Electronics公司的一款電路設計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARES模塊主要用來完成PCB的設計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術,它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。5.1.2 怎樣操作Proteus仿真軟件
41、60;在進行下面的操作前,我先說明一點:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你發(fā)現在鼠標操作上會略有不同。這主要表現在6.9以前的版本鼠標左右鍵的作用與一般軟件剛好相反,而7.0以后已經完全改過。首先我們把壓縮文件解壓到D盤,然后找到ISIS Manage找到Find key 然后再安裝即可使用,雙擊打開桌面是上的那個軟件即可使用。下面我們首先來熟悉一下Proteus的界面。Proteus是一個標準的Windows窗口程序,和大多數程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:圖5-1-1 proteus 啟動界面圖如圖中所示,區(qū)域為菜單及工具欄,區(qū)域為預覽區(qū),
42、區(qū)域為元器件瀏覽區(qū),區(qū)域為編輯窗口,區(qū)域為對象拾取區(qū),區(qū)域為元器件調整工具欄,區(qū)域為運行工具條。下面我們就以建立一個和我們在Keil簡介中所講的工程項目相配套的Proteus工程為例來詳細講述Proteus的操作方法以及注意事項。首先點擊啟動界面區(qū)域中的“P”按鈕(Pick Devices,拾取元器件)來打開“Pick Devices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:圖5-1-2 用proteus軟件查找元器件在對話框中的“Keywords”里面輸入我們要檢索的元器件的關鍵詞,比如我們要選擇項目中使用的AT89C51,就可以直接輸入。輸入以后我們能夠在中間的“
43、Results”結果欄里面看到我們搜索的元器件的結果。在對話框的右側,我們還能夠看到我們選擇的元器件的仿真模型、引腳以及PCB參數。搜索到所需的元器件以后,我們可以雙擊元器件名來將相應的元器件加入到我們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當我們已經將所需的元器件全部加入到文檔中時,我們可以點擊“OK”按鈕來完成元器件的添加。添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,如果其方向不符合你的要求,你可以通過點擊元器件調整工具欄中
44、的工具來任意進行調整,調整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上Proteus的自動布線功能是如此的完美以至于我們在做布線時從來都不會覺得這是一項任務,而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉彎的地方單擊一下,按照你所需走線的方向移動鼠標到線的終點單擊即可。本例我們布線的結果如下圖所示(仿真我們在上面的Keil操作介紹中的簡單例子)。圖5-1-3 發(fā)光二極管發(fā)光原理圖因為該工程十分簡單,我們沒有必要加上復位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現,單片機系統沒有晶振,這
45、一點你需注意。事實上在Proteus中單片機的晶振可以省略,系統默認為12MHz,而且很多時候,當然也為了方便,我們只需要取默認值就可以了。Proteus中單片機芯片默認已經添加電源與地,所以我們可以省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域的對象拾取區(qū),在這里只說明本文中可能會用得到的以及比較重要的工具。l:(Selection Mode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。l :(Component Mode)。組件模式,點擊該按鈕,能夠顯示出區(qū)域中的元器件,以便我們選擇。l :(Wire Label Mode
46、)。線路標簽模式,選中它并單擊文檔區(qū)電路連線能夠為連線添加標簽。經常與總線配合使用。l :(Text Script Mode)。文本模式,選中它能夠為文檔添加文本。l :(Buses Mode)??偩€模式,選中它能夠在電路中畫總線。關于總線畫法的詳細步驟與注意事項我們在下面會進行專門講解。l :(Terminals Mode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。l :(Virtual Instruments Mode)。虛擬儀器模式,選中它我們能夠在區(qū)域中看到很多虛擬儀器,比如示波器、電壓表、電流表
47、等等。關于它們的用法我們會在后面的相應章節(jié)中詳細講述。添加電源:首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊POWER(電源)來選中電源,通過區(qū)域中的元器件調整工具進行適當的調整,然后就可以在文檔區(qū)中單擊放置電源了。連接好電路圖以后我們還需要做一些修改,由上5-1-3圖我們可以看出,圖中的R1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管D1亮度很低或者根本就不亮,影響我們的仿真結果。故要進行修改,修改方法:首先我們雙擊電阻圖標,這時軟件將彈出“Edit Component”對話框(見下圖所示的對話框),對話框中的“Component Referer”是組件標簽之意,可以隨便
48、填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標簽相同;“Resistance”就是電阻值了,我們可以在其后的框中根據需要填入相應的電阻值。填寫時需注意其格式,如果直接填寫數字,則單位默認為;如果在數字后面加上K或者k,則表示k之意。這里我們填入220,表示220。修改好各組件屬性以后就要將程序(HEX文件)載入單片機了。首先雙擊單片機圖標,系統同樣會彈出“Edit Component”對話框,如下圖。在這個對話框中我們點擊“Program files”框右側的,來打開選擇程序代碼窗口,選中相應的HEX文件后返回,這時,按鈕左側的框中就填入了相應的HEX文件,我們點擊對話框的“OK”按
49、鈕,回到文檔,程序文件就添加完畢了。圖5-1-4裝載程序裝載好程序,我們就可以進行仿真了。首先來熟悉一下上面第一個圖中區(qū)域的運行工具條。因為比較簡單,我們只作一下介紹。工具條從左到右依次是“Play”、“Step”、“Pause”、“Stop”按鈕,即運行、步進、暫停、停止。下面我們點擊“Play”按鈕來仿真運行,效果如下圖所示,可以看到系統按照我們的程序在運行著,而且我們還能看到其高低電平的實時變化。如果我們已經觀察到了結果就可以點擊“Stop”來停止運行。5.2 搶答器protenus軟件的仿真繪制搶答器的軟件仿真圖步驟分一下四步:(1)、查找所需要的元器件;(2)、根據電路圖進行連線;(
50、3)、l 是用來寫線所對應的坐標,即下圖所示的P1.1等坐標;(4)、下載所寫完的C程序即可以仿真。通過以上步驟,來實現搶答器設計的仿真實現,仿真如下圖所示:圖5-2-1 搶答器的proteus仿真圖第六章 調試功能說明6.1 系統的調試系統調試包括硬件調試和軟件調試,而且兩者是密不可分的。我們設計好的硬件電路和軟件程序,只有經過聯合調試,才能驗證其正確性;軟硬件的配人情況以及是否達到設計任務的要求,也只有經過調試,才能發(fā)現問題并加以解決、完善,最終開發(fā)成實用產品。硬件調試分單元電路調試和聯機調試,單元電路試驗在硬件電路設計時已經進行,這里的調試只是將其制成印
51、刷電路板后試驗電路是否正確,并排除一些加工工藝性錯誤(如錯線、開路、短路等)。這種調試可單獨模擬進行,也可通過開發(fā)裝置由軟件配合進行。硬件聯機調試則必須在系統軟件的配合下進行。軟件調試一般包括分塊調試和聯機調試兩個階段。程序的分塊調試一般在單片機開發(fā)裝置上進行,可根據所調程序功能塊的入口參量初值編制一個特殊的程序段,并連同被調程序功能塊一起在開發(fā)裝置上運行;也可配合對應硬件電路單獨運行某程序功能塊,然后檢查是否正確,如果執(zhí)行結果與預想的不一致,可以通過單步運行或設置斷點的方法,查出原因并加以改正,直到運行結果正確為止。這時該 程序功能塊已調試完畢,可去掉附加程序段。其它程序功能塊可按此法進行調
52、試。程序聯機調試就是將已調試好的各程序功能塊按總體結構聯成一個完整程序,在所研制的硬件電路上運行。從而試驗程序整體運行的完整性、正確性和與硬件電路的配合情況。在聯調中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應的輸入參數,這時,調試人員應創(chuàng)造條件進行模擬調試。在聯調中如發(fā)現硬件問題也應及時修正,直到單片機系統的軟件、硬件全部調試成功為止。系統調試完成后,還要進行一段時間的試運行,從而檢驗系統的穩(wěn)定性和抗干擾能力,驗證系統功能是否達到設計要求,是否達到預期的效果。6.2 軟件調試問題及解決首先對所用軟件及使用方法介紹如下:1、Keil是德國開發(fā)的一個51單片機開發(fā)軟件平臺,最開始只是一個支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力以及版本的不斷升級,使它已經成為了一個重要的單片機開發(fā)平臺,不過KEIL的界面并不是非常復雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在KEIL的平臺上編寫出來的。可以說它是一個比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠遠超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關的書看看,到相關的單片機技術論壇問問,很快就可以掌握它的基本使用了。2、 總調,即應用軟件的鏈接調試,程序固化,軟、硬件結合的應用系統 軟硬件聯合仿真系統由一個硬件執(zhí)行環(huán)境
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年玉林北流市公安局招聘警務輔助人員考試真題
- 2024年安陽市殷都區(qū)城市管理局選聘協管人員筆試真題
- 惠州市2025屆高三第三次調研考試語文試卷(含答案)
- 《突然胃痛怎么緩解》課件
- 光纖干涉?zhèn)鞲衅骷夹g研討
- 【大學課件】網絡市場與網絡消費者
- 曲率傳感技術新進展:七芯光纖研究
- 大型圖書館圖書運輸合同
- 石英光纖熱損傷機理解析
- 水下低頻噪聲治理:法向能流控制策略解析
- 計算機基礎知識整理課件
- 高一數學必修2《事件的關系和運算》課件
- 四年級道德與法治試卷分析范文(通用5篇)
- 封條模板A4直接打印版
- 電解銅箔制造工藝簡介
- 埋針治療評分標準
- 運維服務目錄
- 山東省腫瘤醫(yī)院放療危及器官劑量限值
- T∕CGCC 8-2017 自熱方便菜肴制品
- 軟膠囊研制手冊
- 成骨細胞骨形成機制
評論
0/150
提交評論