




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、沈陽航空航天大學(xué)課程設(shè)計(jì)論文基于單片機(jī)的四路搶答器的設(shè)計(jì)2序言電子技術(shù)和微型計(jì)算機(jī)的迅速發(fā)展,促進(jìn)微型計(jì)算機(jī)測量和控制技術(shù)的迅速發(fā)展和廣泛應(yīng)用,單片機(jī)(單片微型計(jì)算機(jī))的應(yīng)用已經(jīng)滲透到國民經(jīng)濟(jì)的各個(gè)部門和領(lǐng)域,它起到了越來越重要的作用。單片微型計(jì)算機(jī)就是將中央處理單元、存儲器、定時(shí)/計(jì)數(shù)器和多種接口都集成到一塊集成電路芯片上的微型計(jì)算機(jī)。因此一塊芯片就構(gòu)成了一臺計(jì)算機(jī)。它已成為工業(yè)控制領(lǐng)域、智能儀器儀表、尖端武器、日常生活中最廣泛使用的計(jì)算機(jī)。 隨著我國經(jīng)濟(jì)和文化事業(yè)的發(fā)展,在很多公開競爭場合要求有公正的競爭裁決,諸如證券、股票交易及各種智力競賽等,因此出現(xiàn)了搶答器。搶答器一般是由很多電路組成
2、的,線路復(fù)雜,可靠性不高,功能也比較簡單,特別是當(dāng)搶答路數(shù)很多時(shí),實(shí)現(xiàn)起來就更為困難。因此我們設(shè)計(jì)了以單片機(jī)為核心的新型智能的搶答器,在保留了原始搶答器的基本功能的同時(shí)又增加一系列的實(shí)用功能。并簡化其電路結(jié)構(gòu)。控制系統(tǒng)的三個(gè)模塊為:顯示模塊、存儲模塊、搶答開關(guān)模塊。該系統(tǒng)通過開關(guān)電路四個(gè)按鍵輸入搶答信號,利用1602液晶屏來完成顯示功能,用按鍵來讓選手進(jìn)行搶答,在液晶屏上顯示搶答最快的號碼及時(shí)間,從而實(shí)現(xiàn)整個(gè)搶答過程。本文主要介紹了單片機(jī)搶答器設(shè)計(jì)及工作原理,以及它的實(shí)際用途。系統(tǒng)工作原理本系統(tǒng)采用AT89C52單片機(jī)作為核心。工作時(shí),用按鍵通過開關(guān)電路輸入各路的搶答信號,經(jīng)單片機(jī)的處理, 輸
3、出控制信號,單片機(jī)控制的智能搶答器設(shè),計(jì),二十世紀(jì)跨越了三個(gè)“電”的時(shí)代,即電氣時(shí)代、電子時(shí)代和現(xiàn)已進(jìn)入的電腦時(shí)代。不過,這種電腦,通常是指個(gè)人計(jì)算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計(jì)算機(jī),大多數(shù)人卻不怎么熟悉。這種計(jì)算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)(亦稱微控制器)。顧名思義,這種計(jì)算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個(gè)裝置中,起著有如人類頭腦的作用,它出了毛病,整個(gè)裝置就癱瘓了。現(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時(shí)工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就
4、能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞“智能型”,如智能型洗衣機(jī)等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機(jī)或其它可編程邏輯器件上。在知識競賽中,特別是做搶答題時(shí),在搶答過程中,為了更確切的知道哪一組或哪一位選手先搶答到題,必須要有一個(gè)系統(tǒng)來完成這個(gè)任務(wù)。若在搶答中,只靠人的視覺(或者是聽覺)是很難判斷出哪一組(或哪一個(gè)選手)先搶答到題的。利用單片機(jī)編程來設(shè)計(jì)搶答器,可以使以上問題得以解決,即使兩組的搶答時(shí)間相差幾微秒,也能輕松的分辨出哪一組(或哪個(gè)選手)先搶答到題的。本文主要介紹
5、了搶答器的工作原理及設(shè)計(jì),以及它的實(shí)際用途。目 錄0.摘要31. 四路搶答器的基本理論32.方案設(shè)計(jì)43. 硬件電路的工作原理54. 軟件編程145. 系統(tǒng)調(diào)試和結(jié)果分析216. 結(jié)論及進(jìn)一步設(shè)想24參考文獻(xiàn)25附錄1 元件清單26課設(shè)體會28摘要:搶答器可以在競賽、文體娛樂活動(dòng)(搶答活動(dòng))中,能準(zhǔn)確、公正、直觀地判斷出搶答成功者。通過搶答者的指示燈、液晶屏顯示和聲音顯示等手段指示出第一搶答者。一般搶答器由單片機(jī)以及外圍電路組成,分為四路、八路等不同,四路和八路的差別是,搶答器背面的接口有幾組,和外形沒有關(guān)系。通過自主的設(shè)計(jì)、編程和調(diào)試出一個(gè)簡單的四路搶答并在液晶屏顯示搶答成功者號碼;熟悉C語
6、言編程;了解單片機(jī)仿真系統(tǒng)的使用方法,達(dá)到提高綜合運(yùn)用相關(guān)知識的能力;進(jìn)一步熟悉和掌握Proteus7的使用方法;掌握單片機(jī)系統(tǒng)設(shè)計(jì)全部過程的目的。關(guān)鍵字: 搶答 單片機(jī) 液晶屏顯示Abstract: responder can be in competition, sports entertainment ( answer activity ), accurate, impartial, visually judged successful answer. The responder indicating lamp, liquid crystal display screen and sou
7、nd display means is indicative of a first responder. The general answer is controlled by single chip microcomputer and the peripheral circuit, divided into four road, eight road, four road and eight road difference is, responder on the back of the interface has several groups, and the shape of it do
8、esn't matter.Through the independent design, programming and debugging a simple four way contest and in the liquid crystal display screen successful answer number; familiar with C programming language; understand the MCU simulation system the use of methods, to improve the comprehensive use of k
9、nowledge related to ability; further familiar with and master the use of Proteus7 method; the master MCU system design whole process objective.Keywords : Vie for answering ,the MCU LCD ,screen display。1. 四路搶答器的基本理論本設(shè)計(jì)是采用單片機(jī)設(shè)計(jì)的四人比賽用搶答器系統(tǒng)。它具有電路簡單、功能齊全、制作成本低、性價(jià)比高等特點(diǎn),是一種經(jīng)濟(jì)、實(shí)用的比賽用搶答器。硬件部分主要由單片機(jī)AT89c52、74
10、HC573鎖存器、1602液晶屏、主持人操作鍵盤和其它基本外圍電子電路組成。2.方案設(shè)計(jì)搶答器的設(shè)計(jì)方案要實(shí)現(xiàn)以下功能:(1)搶答器同時(shí)供4名選手或4個(gè)代表隊(duì)比賽,分別用4個(gè)按鈕S0 S3表示。(2)設(shè)置一個(gè)系統(tǒng)清除S1和搶答控制開關(guān)S2,該開關(guān)由主持人控制。(3)搶答器具有鎖存與顯示功能。即選手按動(dòng)按鈕,鎖存相應(yīng)的編號,并在1602液晶屏上顯示,同時(shí)蜂鳴器發(fā)出報(bào)警聲響提示。選手搶答實(shí)行優(yōu)先鎖存,優(yōu)先搶答選手的編號一直保持到主持人將系統(tǒng)清除為止。(4)搶答器具有定時(shí)搶答功能,且一次搶答的時(shí)間由主持人設(shè)定(如10秒)。當(dāng)主持人啟動(dòng)"開始"鍵后,定時(shí)器進(jìn)行減計(jì)時(shí) (5)如果定時(shí)
11、時(shí)間已到,無人搶答,本次搶答無效,系統(tǒng)禁止搶答,定時(shí)顯示器上顯示01s。該設(shè)計(jì)采用AT89C52單片機(jī)作為控制系統(tǒng)核心。該系統(tǒng)可以完成信號識別,運(yùn)算控制以及顯示功能。搶答器的工作原理是采用單片機(jī)最小系統(tǒng),用查詢式鍵盤進(jìn)行搶答。通過搶答按鍵模塊,連接按鍵進(jìn)行搶答。此電路完成的功能如圖1所示,當(dāng)主持人宣布搶答開始的時(shí)候,按下開始按鈕,此時(shí)電路進(jìn)入搶答狀態(tài),選手的輸入采用了掃描式的輸入,之后把相應(yīng)的信息送往單片機(jī),再由單片機(jī)輸出到顯示輸出電路中。此時(shí)有人第一按下相應(yīng)的搶答按鈕,經(jīng)過單片機(jī)的控制選擇,在液晶屏上顯示相應(yīng)的號碼,并鎖存,同時(shí)禁止其他按鈕的輸入。系統(tǒng)是采用模塊化設(shè)計(jì)的智能搶答器,主控與參賽
12、者設(shè)為終端分系統(tǒng)。主控分系統(tǒng)有:開始與結(jié)束控制按鈕、時(shí)限設(shè)定、各種相關(guān)顯示調(diào)控功能等。參賽者分系統(tǒng)設(shè)有:搶答按紐、計(jì)時(shí)顯示、提示功能等。圖1 搶答器原理圖3. 硬件電路的工作原理3.1搶答器的電路圖如圖(2)所示為電路圖,其工作原理為:接通電源后主持人將開關(guān)撥到“清零”狀態(tài),搶答器處于禁止?fàn)顟B(tài),定時(shí)器設(shè)定時(shí)間,主持人將開關(guān)置“開始”,宣布搶答開始時(shí),選手要在規(guī)定時(shí)間內(nèi)完成搶答;定時(shí)器倒計(jì)時(shí)優(yōu)先判斷,編號鎖存,揚(yáng)聲器提示。 圖2 搶答器仿真電路圖若按了清零鍵后,仿真圖為如下所示:硬件電路應(yīng)能完成以下功能:參加競賽者對主持人提出的問題要在最短的時(shí)間內(nèi)作出判斷,并按下?lián)尨鸢存I回答問題。當(dāng)?shù)谝粋€(gè)人按下
13、按鍵后,則在顯示器上顯示此競賽者的號碼并進(jìn)行聲音提示,同時(shí)電路將其他搶答按鍵封鎖,使其不起作用。若有人在可以搶答之前按鍵,應(yīng)該有違規(guī)提示。電路應(yīng)該具有倒計(jì)時(shí)功能,倒計(jì)時(shí)時(shí)間可以設(shè)置并顯示,在規(guī)定時(shí)間內(nèi)沒有人搶答則本題作廢?;卮鹜昊虺瑫r(shí)后,由主持人將所有按鍵恢復(fù),重新開始下一輪。完成上述功能的電路包括時(shí)間設(shè)定開關(guān)、聲光顯示、按鍵控制以及按鍵鎖存等部分,如圖13.6所示。各電路模塊的功能如下。· 單片機(jī)部分:通過讀取P3.7P3.3的狀態(tài)決定倒計(jì)時(shí)時(shí)間;通過讀取P1.3P1.0的狀態(tài)讀取按鍵情況;通過P2.4P2.2控制顯示模塊以顯示按鍵者的號碼和倒計(jì)時(shí)所剩時(shí)間;通過P0.1
14、控制蜂鳴器。· 時(shí)間設(shè)定模塊:以撥碼開關(guān)U3作為倒計(jì)時(shí)時(shí)間的選擇信號。若P3.7通過U3接地,倒計(jì)時(shí)時(shí)間為10s;若P3.6通過U3接地,倒計(jì)時(shí)時(shí)間為8s,若P3.5通過U3接地,倒計(jì)時(shí)時(shí)間為6s,若P3.4通過U3接地,倒計(jì)時(shí)時(shí)間為4s。判斷時(shí)P3.7優(yōu)先級最高,P3.4優(yōu)先級最低。· 按鍵模塊:KEY1KEY4的信息可以直接傳輸?shù)絇1.3P1.0。單片機(jī)一旦檢測到有按鍵按下,立即將P1.4置為低電平,將按鍵信息鎖存,以免后來的按鍵對其產(chǎn)生影響。KEY1KEY4為搶答按鍵,KEY5為主持人控制按鍵。· 數(shù)碼管顯示模塊:數(shù)碼管顯
15、示模塊由一片MAX7219和3個(gè)數(shù)碼管組成。其中U5用來顯示按鍵者的編號,U6、U7在倒計(jì)時(shí)時(shí)顯示還有多長時(shí)間,如果有人犯規(guī)搶答,U6U7顯示“FF”。· 蜂鳴器模塊:蜂鳴器在主持人發(fā)出可以搶答信號、有人按下?lián)尨鸢存I和倒計(jì)時(shí)時(shí)間到等3種情況下發(fā)出蜂鳴聲。3.2 單片機(jī)的最小系統(tǒng)52單片機(jī)的最小系統(tǒng)電路圖: 圖3-1-1 單片機(jī)的最小系統(tǒng)圖說明: 復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來決定.典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個(gè)機(jī)器
16、周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位.一般教科書推薦C 取10u,R取8.2K.當(dāng)然也有其他取法的,原則就要讓RC組合可以在RST腳上產(chǎn)生不少于2個(gè)機(jī)周期的高電平;復(fù)位輸入高電平有效,當(dāng)振蕩器工作是,RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,使單片機(jī)復(fù)位。此電路除具有上電復(fù)位功能外,若要復(fù)位只需按“RST”鍵,此電源Vcc經(jīng)電阻分壓,在RST端產(chǎn)生一個(gè)復(fù)位高電平;晶振電路:典型的晶振取11.0592MHz(因?yàn)榭梢詼?zhǔn)確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生精確的方波便于12分頻,方便定時(shí)操作); 單片機(jī):一片AT89S51/52
17、或其他51系列兼容單片機(jī); 注意:對于31腳(EA/Vpp),當(dāng)接高電平時(shí),單片機(jī)在復(fù)位后從內(nèi)部ROM的0000H開始執(zhí)行;當(dāng)接低電平時(shí),復(fù)位后直接從外部ROM的0000H開始執(zhí)行; 電源部分:接+5伏特的電壓。3.3 時(shí)鐘頻率電路的設(shè)計(jì)單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作.在單片機(jī)內(nèi)部有一個(gè)時(shí)鐘振蕩電路,只需要外接一個(gè)振蕩源就能產(chǎn)生一定的時(shí)鐘信號送到單片機(jī)內(nèi)部的各個(gè)單元,決定單片機(jī)的工作速度。圖3-2 外部振蕩源電路一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個(gè)電容 C1,C2的
18、作用有兩個(gè):一是幫助振蕩器起振;二是對振蕩器的頻率進(jìn)行微調(diào)。C1,C2的典型值為30PF。單片機(jī)在工作時(shí),由內(nèi)部振蕩器產(chǎn)生或由外直接輸入的送至內(nèi)部控制邏輯單元的時(shí)鐘信號的周期稱為時(shí)鐘周期。其大小是時(shí)鐘信號頻率的倒數(shù),常用fosc表示。如時(shí)鐘頻率為12MHz,即fosc=12MHz,則時(shí)鐘周期為1/12µs。3.4復(fù)位電路的設(shè)計(jì)單片機(jī)的第9腳RST為硬件復(fù)位端,只要將該端持續(xù)4個(gè)機(jī)器周期的高電平即可實(shí)現(xiàn)復(fù)位,復(fù)位后單片機(jī)的各狀態(tài)都恢復(fù)到初始化狀態(tài),其電路圖如圖4所示:值得注意的是,在設(shè)計(jì)當(dāng)中使用到了硬件復(fù)位和軟件復(fù)位兩種功能,由上面的硬件復(fù)位后的各狀態(tài)可知寄存器及存儲器的值都恢復(fù)到了初
19、始值,而前面的功能介紹中提到了倒計(jì)時(shí)時(shí)間的記憶功能,該功能的實(shí)現(xiàn)的前提條件就是不能對單片機(jī)進(jìn)行硬件復(fù)位,所以設(shè)定了軟復(fù)位功能。軟復(fù)位實(shí)際上就是當(dāng)程序執(zhí)行完畢之后,將程序指針通過一條跳轉(zhuǎn)指令讓它跳轉(zhuǎn)到程序執(zhí)行的起始地址。3.5系統(tǒng)復(fù)位使CPU進(jìn)入初始狀態(tài),從0000H地址開始執(zhí)行程序的過程叫系統(tǒng)復(fù)位。從實(shí)現(xiàn)系統(tǒng)復(fù)位的方法來看,系統(tǒng)復(fù)位可分為硬件復(fù)位和軟件復(fù)位。硬件復(fù)位必須通過CPU外部的硬件電路給CPU的RESET端加上足夠時(shí)間的高電位才能實(shí)現(xiàn)。上電復(fù)位,人工按鈕復(fù)位和硬件看門狗復(fù)位均為硬件復(fù)位。硬件復(fù)位后,各專用寄存器的狀態(tài)均被初始化,且對片內(nèi)通用寄存器的內(nèi)容沒有影響。但是,硬件復(fù)位還能自動(dòng)清
20、除中斷激活標(biāo)志,使中斷系統(tǒng)能夠正常工作,這樣一個(gè)事實(shí)卻容易為不少編碼人員所忽視。軟件復(fù)位就是用一系列指令來模擬硬件復(fù)位功能,最后通過轉(zhuǎn)移指令使程序從0000H地址開始執(zhí)行。對各專用寄存器的復(fù)位操作是容易的,也沒有必要完全模擬,可根據(jù)實(shí)際需要去主程序初始化過程中完成。而對中斷激活標(biāo)志的清除工作常被遺忘,因?yàn)樗鼪]有明確的位地址可供編程。有的編程人員用020000(LJMP 0000H)作為軟件陷阱,認(rèn)為直接轉(zhuǎn)向0000H地址就完成了軟件復(fù)位,就是這類錯(cuò)誤的典型代表。軟件復(fù)位是使用軟件陷阱和軟件看門狗后必須進(jìn)行的工作,這時(shí)程序出錯(cuò)完全有可能發(fā)生在中斷子程序中,中斷激活標(biāo)志已置位,它將阻止同級中斷響應(yīng)
21、。由于軟件看門是高級中斷,它將阻止說要中斷響應(yīng),由此可見清除中斷激活標(biāo)志的重要性。在所有的指令中,只有RETI指令能夠清除中斷激活標(biāo)志。前文各處提案到的出錯(cuò)處理程序ERR主要完成這一功能,其他的善后工作交由復(fù)位后的系統(tǒng)去完成。這部分程序如下:POWER DATA 67H ;上電標(biāo)志存放單元 ERR: CLR EA ;關(guān)中斷 MOV DPTR,#ERR1 ;準(zhǔn)備返回地址PUSH DPLPUSH DPHRETI ;清除高級中斷激活標(biāo)志ERR1: MOV POWER,#0AAH;重建上電標(biāo)志 CLR A ;準(zhǔn)備復(fù)位地址 PUSH ACC ;壓入復(fù)位地址0000HPUSH ACCRETI ;清除低級中
22、斷激活標(biāo)志,從程序0000H開始執(zhí)行。這段程序先關(guān)中斷,以便后續(xù)處理能順利進(jìn)行,然后用兩個(gè)RETI指令代替兩個(gè)LJMP指令,從而清除了兩級中斷激活標(biāo)志。有相應(yīng)軟件陷阱捕捉來的程序可能沒有全部激活兩個(gè)標(biāo)志,這也無妨。3.6 數(shù)碼管顯示電路LED顯示器,實(shí)現(xiàn)七段數(shù)碼管的顯示三位十六進(jìn)制數(shù)。來進(jìn)行倒計(jì)時(shí),即來限制搶答的時(shí)間。其中數(shù)碼管的顯示可以分為兩種:靜態(tài)顯示和動(dòng)態(tài)顯示。靜態(tài)顯示的段選位和位選位均單獨(dú)連接,因此占用的I/O接口多,無法擴(kuò)展多個(gè)數(shù)碼管,在這種采用這種方式,必須要給LED恒定的電壓,要求電壓一直保持,所以一般在LED和單片機(jī)之間加鎖存器,這種顯示方式亮度高,編程較簡單,結(jié)構(gòu)清晰,管理也
23、較簡單,占用的CPU時(shí)間少。 動(dòng)態(tài)顯示驅(qū)動(dòng):數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共端COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯
24、示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為12ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。從電路上,按數(shù)碼管的接法不同又分為共陰和共陽兩種。圖1-1 是共陰和共陽極數(shù)碼管的內(nèi)部電路,它們的發(fā)光原理是一樣的,只是它們的電源極性不同而已。其數(shù)碼管的外形如下圖所示: 圖3-2 數(shù)碼管的共陰和共陽極接法3.7液晶屏顯示電路使用液晶屏顯示搶答成功者號碼、時(shí)間。液晶顯示屏(LCD)具有輕薄短小、低耗電量、無輻射危險(xiǎn),平面直角顯示以及
25、影像穩(wěn)定不閃爍等優(yōu)勢,可視面積大,畫面效果好,分辨率高,抗干擾能力強(qiáng)的特點(diǎn)。1602LCD的特性+3.3V電壓,對比度可調(diào) 內(nèi)含復(fù)位電路 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能 有80字節(jié)顯示數(shù)據(jù)存儲器DDRAM 內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM 8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM 1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點(diǎn)陣型液晶模塊。它由若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位都可以顯示一個(gè)字符,每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因?yàn)槿?/p>
26、此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個(gè)字符液晶模塊(顯示字符和數(shù)字)。 目前市面上字符液晶絕大多數(shù)是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780寫的控制程序可以很方便地應(yīng)用于市面上大部分的字符型液晶。 管腳功能 LCD1602引腳圖1602采用標(biāo)準(zhǔn)的16腳接口,其中: 第1腳:VSS為電源地 第2腳:VCC接5V電源正極 第3腳:V0為液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會 產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對
27、比度)。 第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。 第6腳:E(或EN)端為使能(enable)端。 第714腳:D0D7為8位雙向數(shù)據(jù)端。 第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。1602LCD特征及應(yīng)用微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧,常用在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中。 操作控制注:關(guān)于E=H脈沖開始時(shí)初始化E為0,然后置E為1。 1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英
28、文字母的大小寫、常用的符號、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。 因?yàn)?602識別的是ASCII碼,試驗(yàn)可以用ASCII碼直接賦值,在單片機(jī)編程中還可以用字符型常量或變量賦值,如'A。 以下是1602的16進(jìn)制ASCII碼表地址: 讀的時(shí)候,先讀左邊那列,再讀上面那行,如:感嘆號!的ASCII為0x21,字母B的ASCII為0x42(前面加0x表示十六進(jìn)制) 指令集1602通過D0D7的8位數(shù)據(jù)端傳輸數(shù)據(jù)和指令。 顯示模式設(shè)置: (初始化) 00
29、11 1000 0x38 設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口; 顯示開關(guān)及光標(biāo)設(shè)置: (初始化) 0000 1DCB D顯示(1有效)、C光標(biāo)顯示(1有效)、B光標(biāo)閃爍(1有效) 0000 01NS N=1(讀或?qū)懸粋€(gè)字符后地址指針加1 &光標(biāo)加1), N=0(讀或?qū)懸粋€(gè)字符后地址指針減1 &光標(biāo)減1), S=1 且 N=1 (當(dāng)寫一個(gè)字符后,整屏顯示左移) s=0 當(dāng)寫一個(gè)字符后,整屏顯示不移動(dòng) 數(shù)據(jù)指針設(shè)置: 數(shù)據(jù)首地址為80H,所以數(shù)據(jù)地址為80H+地址碼(0-27H,40-67H) 其他設(shè)置: 01H(顯示清屏,數(shù)據(jù)指針=0,所有顯示=0);
30、02H(顯示回車,數(shù)據(jù)指針=0)。按鍵控制電路鍵盤是單片機(jī)不可缺少的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對話的紐帶。鍵盤按結(jié)構(gòu)形式可以分為非編碼鍵盤和編碼鍵盤,前者用軟件方法產(chǎn)生鍵碼,而后者則用硬件方法來產(chǎn)生鍵碼。在單片機(jī)中使用的都是非編碼鍵盤,因?yàn)榉蔷幋a鍵盤結(jié)構(gòu)簡單,成本低廉,非編碼鍵盤的類型很多,常用的有獨(dú)立式鍵盤,行列式鍵盤等。獨(dú)立式鍵盤,鍵盤接口中使用多少根I/O線,鍵盤中就有幾個(gè)按鍵,鍵盤接口使用了8根I/O口線,該鍵盤就有8個(gè)按鍵,這種類型的鍵盤,其按鍵比較少,且鍵盤中各按鍵的工作互不干擾。因此可以根據(jù)實(shí)際需要對鍵盤中的按鍵靈活的編碼。如圖3所示。圖3 獨(dú)立式鍵盤原理圖最簡單的編碼方式就是根據(jù)I/
31、O輸入口所直接反映的相應(yīng)按鍵,按下的狀態(tài)進(jìn)行編碼,稱按鍵直接狀態(tài)碼,對于這樣編碼的獨(dú)立式鍵盤,CPU可以通過直接讀取I/O口的狀態(tài)來獲取按鍵的直接狀態(tài)編碼值,根據(jù)這個(gè)值直接進(jìn)行按鍵識別,這樣形式的鍵盤結(jié)構(gòu)簡單,按鍵識別容易。獨(dú)立式鍵盤的缺點(diǎn)是需要占用比較多的I/O口線,當(dāng)單片機(jī)應(yīng)用系統(tǒng)鍵盤中需要的按鍵比較少或I/O口線比較富余時(shí),可以采用這樣類型的鍵盤。4. 軟件編程本設(shè)計(jì)的搶答器的程序采用的是C程序設(shè)計(jì),C語言的顯著特點(diǎn)是用二進(jìn)制來編寫程序,程序的各個(gè)部分除了必要的信息交流外彼此之間相互獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦? 便于使用、維護(hù)以及調(diào)試。C語言是以函數(shù)形式提供給用戶的,這些函數(shù)可
32、方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化。雖然C語言也是強(qiáng)類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。本次設(shè)計(jì)的主程序中包括時(shí)鐘設(shè)計(jì)程序,定時(shí)器中斷子程序,數(shù)碼管顯示程序以及按鍵控制子程序。搶答器主流程圖如圖4所示:圖4 搶答器主程序流程圖搶答器定時(shí)中斷流程圖如圖5:圖5 搶答器定時(shí)器中斷流程圖源程序設(shè)計(jì):#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar num;/定義中斷變量,num計(jì)滿20表示1秒時(shí)間到uchar num1;/十秒倒計(jì)
33、時(shí)顯示初始值uchar flag1,flag2;/清零鍵及開始鍵按下標(biāo)志位uchar flag3,flag4=0;/定義鍵盤按下標(biāo)志位#define LCDPORT P0sbit LCD1602_RS = P20;sbit LCD1602_EN = P21;sbit sp=P22;/定義蜂鳴器端口sbit clear=P10;/定義清零鍵sbit start=P11;/開始鍵sbit key1=P12;sbit key2=P13;sbit key3=P14;sbit key4=P15;/key2到key5為選手按鍵void delay(uint z)/延時(shí)函數(shù)uint i,j;for(i=z;
34、i>0;i-)for(j=110;j>0;j-);void WriteCmd_1602(unsigned char cmd)LCD1602_RS = 0;LCDPORT = cmd;delay(1);LCD1602_EN = 1;delay(1);LCD1602_EN = 0;void WriteByte_1602(unsigned char date)LCD1602_RS = 1;LCDPORT = date;delay(1);LCD1602_EN = 1;delay(1);LCD1602_EN = 0;void Init_1602()LCD1602_EN = 0;WriteCm
35、d_1602(0x38);WriteCmd_1602(0x0c); /光標(biāo)不顯示地址 WriteCmd_1602(0x06);WriteCmd_1602(0x01);void beep()/定義蜂鳴器函數(shù)sp=0;delay(500);sp=1;/delay(500);void dis(uchar * p)while(*p != '0')WriteByte_1602(*p+);void display_init()WriteCmd_1602(0x80);dis("Serial Number:");WriteCmd_1602(0x80 + 0x40);dis(
36、"Surplus Time:");WriteCmd_1602(0x80 + 0x40 + 13);dis("00s");void display_num(uchar a) /選手編號顯示函數(shù) WriteCmd_1602(0x80 + 15);WriteByte_1602(a);void clr()/清零函數(shù)(主持人按下清零鍵后數(shù)碼管顯示0) WriteCmd_1602(0x80 + 15);WriteByte_1602('0');void dis10s()/十秒倒計(jì)時(shí)顯示函數(shù)uchar shi,ge;shi=num1/10;ge=num1
37、%10;WriteCmd_1602(0x80 + 0x40 + 13);WriteByte_1602(shi + 0x30);WriteCmd_1602(0x80 + 0x40 + 14);WriteByte_1602(ge + 0x30); void player()/選手按鍵檢測函數(shù)if(key1=0&&flag4=0)delay(10);if(key1=0&&flag4=0)display_num('1');TR0=0;flag1=flag2=0;flag4=1;beep();while(!key1);if(key2=0&&
38、flag4=0)delay(10);if(key2=0&&flag4=0)display_num('2');TR0=0;flag1=flag2=0;flag4=1;beep();while(!key2);if(key3=0&&flag4=0)delay(10);if(key3=0&&flag4=0)display_num('3');TR0=0;flag1=flag2=0;flag4=1;beep();while(!key3);if(key4=0&&flag4=0)delay(10);if(key4=
39、0&&flag4=0)display_num('4');TR0=0;flag1=flag2=0;flag4=1;beep();while(!key4);void keyscan()/檢測按鍵if(clear=0&&flag2!=1)/判斷清零鍵,判斷語句的作用是按下開始鍵清零鍵失效delay(10);if(clear=0&&flag2!=1)while(!clear);/等待按鍵釋放flag1=0;flag2=0;flag3=0;flag4=0;num=0;num1=10;clr();/清零flag1=1;/按下清零鍵標(biāo)志位if(
40、flag1=1)/如果按下清零鍵if(start=0&&flag3=0)/判斷開始鍵,判斷語句的作用是按下開始鍵后開始鍵失效delay(10);if(start=0&&flag3=0)flag2=1;flag3=1;while(!start);if(flag2=1)/按下開始鍵TR0=1; /啟動(dòng)定時(shí)器0dis10s();player();void main()TMOD=0x01;/設(shè)置定時(shí)器0工作方式1TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/開總中斷ET0=1; /開定時(shí)器0中斷Init_1602()
41、;display_init();while(1)/一直檢測按鍵keyscan();void T0_ser() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;num+;if(num=20)num=0;num1-;if(num1=0)TR0=0; flag1=0;flag2=0;num=0;num1=10;clr();beep();5. 系統(tǒng)調(diào)試和結(jié)果分析系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們設(shè)計(jì)好的硬件電路和軟件程序,只有經(jīng)過聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的配人情況以及是否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過調(diào)試,
42、才能發(fā)現(xiàn)問題并加以解決、完善,最終開發(fā)成實(shí)用產(chǎn)品。硬件調(diào)試分單元電路調(diào)試和聯(lián)機(jī)調(diào)試,單元電路試驗(yàn)在硬件電路設(shè)計(jì)時(shí)已經(jīng)進(jìn)行,這里的調(diào)試只是將其制成印刷電路板后試驗(yàn)電路是否正確,并排除一些加工工藝性錯(cuò)誤(如錯(cuò)線、開路、短路等)。這種調(diào)試可單獨(dú)模擬進(jìn)行,也可通過開發(fā)裝置由軟件配合進(jìn)行。硬件聯(lián)機(jī)調(diào)試則必須在系統(tǒng)軟件的配合下進(jìn)行。軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在單片機(jī)開發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開發(fā)裝置上運(yùn)行;也可配合對應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通
43、過單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并加以改正,直到運(yùn)行結(jié)果正確為止。這時(shí)該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行的完整性、正確性和與硬件電路的配合情況。在聯(lián)調(diào)中可能會有某些支路上的程序、功能塊因受條件制約而得不到相應(yīng)的輸入?yún)?shù),這時(shí),調(diào)試人員應(yīng)創(chuàng)造條件進(jìn)行模擬調(diào)試。在聯(lián)調(diào)中如發(fā)現(xiàn)硬件問題也應(yīng)及時(shí)修正,直到單片機(jī)系統(tǒng)的軟件、硬件全部調(diào)試成功為止。系統(tǒng)調(diào)試完成后,還要進(jìn)行一段時(shí)間的試運(yùn)行,從而檢驗(yàn)系統(tǒng)的穩(wěn)定性和抗干擾能力,驗(yàn)證系統(tǒng)功能是否達(dá)到設(shè)計(jì)要
44、求,是否達(dá)到預(yù)期的效果。具有清零裝置和搶答控制,可由主持人操縱。具有定時(shí)功能,在10S內(nèi)無人搶答表示所有參賽選手對本題棄權(quán)。10S時(shí)仍無人搶答其報(bào)警電路工作表示搶答時(shí)間耗盡并禁止搶答。電路中的六個(gè)按鍵從上到下分別是清零鍵、開始鍵和四組選手的按鍵。仿真現(xiàn)象及調(diào)試結(jié)果如圖6、圖7、圖8所示。1)圖6為主持人按下清零鍵后的截圖,此時(shí)液晶屏兩項(xiàng)均顯示0.5.1軟件調(diào)試問題及解決首先對所用軟件及使用方法介紹如下:1、Keil是德國開發(fā)的一個(gè)51單片機(jī)開發(fā)軟件平臺,最開始只是一個(gè)支持C語言和匯編語言的編譯器軟件。后來隨著開發(fā)人員的不斷努力以及版本的不斷升級,使它已經(jīng)成為了一個(gè)重要的單片機(jī)開發(fā)平臺,不過KE
45、IL的界面并不是非常復(fù)雜,操作也不是非常困難,很多工程師的開發(fā)的優(yōu)秀程序都是在KEIL的平臺上編寫出來的??梢哉f它是一個(gè)比較重要的軟件,熟悉他的人很多很多,用戶群極為龐大,要遠(yuǎn)遠(yuǎn)超過偉福等廠家軟件用戶群,操作有不懂的地方只要找相關(guān)的書看看,到相關(guān)的單片機(jī)技術(shù)論壇問問,很快就可以掌握它的基本使用了。2、 總調(diào),即應(yīng)用軟件的鏈接調(diào)試,程序固化,軟、硬件結(jié)合的應(yīng)用系統(tǒng) 軟硬件聯(lián)合仿真系統(tǒng)由一個(gè)硬件執(zhí)行環(huán)境和一個(gè)軟件執(zhí)行環(huán)境組成,通常軟件環(huán)境和硬件環(huán)境都有自己的除錯(cuò)和控制界面,Keil與Proteus的整合調(diào)試可以實(shí)現(xiàn)系統(tǒng)的總調(diào),在該系統(tǒng)中,Keil作為軟件調(diào)試界面,Proteus作為硬件仿真和調(diào)試界
46、面,下面說一下如何在keil中調(diào)用proteus進(jìn)行MCU外圍器件的仿真。(1)、安裝keil 與 proteus。(2)、把安裝proteus MODELS目錄下 VDM51.dll文件復(fù)制到Keil安裝目錄的 C51BIN目錄中。(3)、修改keil安裝目錄下 Tools.ini文件,在C51字段加入TDRV5=BINVDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存。(注意:不一定要用TDRV5,根據(jù)原來字段選用一個(gè)不重復(fù)的數(shù)值就可以了。引號內(nèi)的名字隨意)3、打開proteus,畫出相應(yīng)電路,在proteus的debug菜單中
47、選中use remote debug monitor4、在keil中編寫C語言程序5、進(jìn)入KEIL的project菜單option for target '工程名'。在DEBUG選項(xiàng)中右欄上部的下拉菜單選中 Proteus VSM Monitor-51 Driver。6、在keil中進(jìn)行debug吧,同時(shí)在proteus中查看直觀的結(jié)果(如LCD顯示)這樣就可以像使用仿真器一樣調(diào)。問題:有時(shí)候在自己創(chuàng)建的元器件的管腳上無法實(shí)現(xiàn)連線?;卮穑簯?yīng)該是管腳的間距太小了。因?yàn)樵贗SIS中,每個(gè)元器件的管腳都要占據(jù)一塊區(qū)域(就像自己的保護(hù)區(qū)一樣,不容別人隨意侵犯),該區(qū)域會排斥外部的走線。
48、解決問題的方法是在走線的同時(shí)按住 “CTRL”鍵,直到走線繞過狹窄的保護(hù)區(qū)。當(dāng)然最根本的辦法是重新編輯元器件,把其管腳間距調(diào)大一些。主持人按鍵來控制總開關(guān),主持人按下開關(guān)那么選手開始搶答,此時(shí)數(shù)碼管開始060計(jì)數(shù),并且選手們必須在規(guī)定的時(shí)間內(nèi)進(jìn)行搶答,若過了60秒還沒搶答那么搶答失效,選手們?nèi)粲幸粋€(gè)在規(guī)定的時(shí)間內(nèi)搶答成功則其余的選手不可以再搶答,即該選手搶答成功。圖62)主持人按下啟動(dòng)鍵后的截圖,液晶屏顯示從10秒開始倒計(jì)時(shí)。如圖7:圖73)選手按下時(shí)的截圖,顯示對應(yīng)的選手編號,例如2號選手,如圖8所示:圖86. 結(jié)論及進(jìn)一步設(shè)想本設(shè)計(jì)可以實(shí)現(xiàn)四路搶答并在液晶屏顯示搶答成功者號碼及時(shí)間,可用于娛樂節(jié)目等活動(dòng)當(dāng)中。但是這只是個(gè)簡易的四路搶答器,還可以加入蜂鳴,報(bào)警等功能,更可實(shí)現(xiàn)多路搶答的功能。我們知道,聲音的頻譜范圍約在幾十到幾千赫茲,若能利用程序來控制單片機(jī)某個(gè)口線的“高”電平或低電平,則在該口線上就能產(chǎn)生一定頻率的矩形波,接上喇叭就能發(fā)出一定頻率的聲音,若再利用延時(shí)程序控制“高”“低”電平的持續(xù)時(shí)間,就能改變輸出頻率,從而改變音調(diào),使喇叭發(fā)出不同的聲音。參考文獻(xiàn)1 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)M.北京:北京航
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出版行業(yè)數(shù)字化內(nèi)容管理系統(tǒng)設(shè)計(jì)
- 高效辦公實(shí)踐教程
- 通訊設(shè)備業(yè)5G基站建設(shè)與維護(hù)管理方案
- 農(nóng)業(yè)科技精準(zhǔn)種植與養(yǎng)殖技術(shù)推廣方案
- 不同行業(yè)運(yùn)營成本分析比較表
- 建筑安全施工指南
- 化學(xué)人教版2024版九年級上冊3.1分子和原子教案02
- 包裝盒覆膜印刷色彩管理
- 關(guān)于大同大學(xué)餐飲服務(wù)質(zhì)量滿意程度調(diào)查
- 商場促銷活動(dòng)效果優(yōu)化手冊
- 2024-2030年中國油用牡丹行業(yè)需求狀況及產(chǎn)銷規(guī)模預(yù)測報(bào)告
- 無機(jī)化學(xué)實(shí)驗(yàn)(下)知到智慧樹章節(jié)測試課后答案2024年秋陜西師范大學(xué)
- 高等教育自學(xué)考試自考《英語二》試題及答案指導(dǎo)(2025年)
- 2024年皖北衛(wèi)生職業(yè)學(xué)院單招職業(yè)技能測試題庫
- 軍工產(chǎn)品保密協(xié)議
- 商務(wù)數(shù)據(jù)分析理論試題題庫及答案
- 2025屆高考英語一輪復(fù)習(xí)應(yīng)用文之申請信課件
- 人教版九年級上冊音樂 1.5中國人民解放軍軍歌 教案
- DB34-T 4859-2024 農(nóng)村河道清淤規(guī)范
- 【課件】秦統(tǒng)一中國+課件-2024-2025學(xué)年統(tǒng)編版七年級歷史上冊
- 《單片機(jī)項(xiàng)目化教程(C語言版)(第2版)》全套教學(xué)課件
評論
0/150
提交評論