數碼管動態顯示模塊設計_第1頁
數碼管動態顯示模塊設計_第2頁
數碼管動態顯示模塊設計_第3頁
數碼管動態顯示模塊設計_第4頁
數碼管動態顯示模塊設計_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數碼管動態顯示模塊設計實驗目的1、理解數碼管動態顯示原理2、理解數碼管動態顯示電路的設計方法3、掌握數碼管動態顯示程序的設計方法4、掌握單片機定時器與中斷系統的使用方法實驗儀器單片機開發板、萬利仿真機、穩壓電源、計算機實驗原理1、數碼管動態顯示原理幾乎所有的單片機應用系統都要用到數碼顯示。數碼顯示是一個占用IO資源較多、程序設計較復雜的模塊。在設計時,應從IO占用與軟件復雜程度兩方面考慮。這里以8位數碼管動態顯示電路以例說明工作原理。電路如圖4-4所示。vacLEtlQ5Q553012DSOCid-LEEMLEEMLEE2色宀一訂二.宀LEtlQ5Q553012DSOCid-LEEMLEEML

2、EE2色宀一訂二.宀冷rLnuTJ圖4-48位數據碼動態顯示電路數碼管顯示器的8個筆劃段a-hp同名端連在一起,而每一位數碼管顯示器的公共端(1,2,3,4)各自獨立地受三極管控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于數碼管的公共端,而這一端是由74LS164控制的,所以我們只要控制164的輸出數據就可以決定何時顯示哪一位了。而所謂動態掃描就是指我們采用分時的方法,輪流控制各個顯示器的公共端,使各個顯示器輪流點亮。在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1ms),但由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各

3、位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感。圖中100歐電阻起限流作用,保護發光二極管。電阻值越小,發光二極管越亮。2K電阻是位選端限流電阻,保護位選三極管。由上圖可知,這里的數碼管是共陽極型。數碼管上顯示一些符號,必須給數碼管的筆形口接低電平信號,給要顯示的位公共端送高電平,相應位的數碼管就可以顯示所要的符號。2、數碼管動態顯示程序設計數碼管動態顯示程序包含顯示數字、部分字母符號、小數點、數碼管閃爍、數碼管消隱等。其它程序輸出到顯示程序的數據既可以是BCD碼、二進制碼、ASCII碼、自定義顯示碼等。假設顯示的符號與數據的對應關系如下:顯示符號

4、0123456789數據00H01H02H03H04H05H06H07H08H09H顯示符號ABCDEFH全亮全暗-數據OAH0BH0CH0DH0EH0FH10H11H12H13H由硬件電路工作原理可知,為了顯示穩定的數據,每秒必須顯示數據50次以上,才能達到預期目的。首先設計一個能顯示一位數的程序,然后重復執行這段程序,并改變所顯示的內容。由上一實驗內容可知,可把位選數據的輸出用兩種方法實現:位選數據每顯示一位送一字節;位選數據每顯示一位送一位二進制數。程序流程圖如4-5所示。輸出位選數據-1第一位顯示數據?0寫入74LS1641上一實驗內容可知,可把位選數據的輸出用兩種方法實現:位選數據每

5、顯示一位送一字節;位選數據每顯示一位送一位二進制數。程序流程圖如4-5所示。輸出位選數據-1第一位顯示數據?0寫入74LS1641寫入74LS1641P返回輸出位選數據-2DIN=O,CLK=O,位選數據設定為左邊第1位顯示位選數據左移一位,移出的位送到DIN,CLK產生正脈沖輸出數據位數減1返回圖4-5數碼管動態顯示程序流程圖3、小數點顯示原理在顯示數據時,顯示小數是一個必要功能。但在前面的分析中,并沒有包含顯示小數點的內容。小數點的顯示方式有:(1)固定式:小數點的顯示位置不能改變,程序設計較簡單。(2)特征位式:每位二進制數控制一個小數點的亮暗情況,一個字節同時控制8個。(3)計數式:用

6、數字控制第N位的小數點亮。如:5表示第5位小數點亮,其它暗。(4)ASCII碼式:送到顯示緩沖區的數是ASCII碼數據,在包含“.“時,相應位的小數點亮。這里以第(2)種為例說明,其它方式由讀者自行設計。假定小數點控制數據dispdot的各位情況如下所示。D7D6D5D4D3D2D1D0第1位小數點開關第2位小數點開關第3位小數點開關第4位小數點開關第5位小數點開關第6位小數點開關第7位小數點開關第8位小數點開關當對應位為1時,小數點亮;當對應位為0時,小數點暗。小數點顯示的信息可以在顯示碼輸出之前,也可以在掃描一幀結束后單獨顯示小點數。原理說明:當顯示第一位數據時,判斷dispdot的D7是

7、否為1,如果為1點亮第一位小數點,為0熄滅第一位小數點。流程圖如圖4-6所示。圖4-6小數點控制程序流程圖4、單片機定時器的工原理MCS-51單片機內部有兩個16位可編程的定時器/計數器T0和T1。它們即可用作定時器方式,又可用作計數器方式。其中T0由TH0和TL0計數器構成;T1由TH1和TL1計數器構成。工作于定時器方式時,通過對機器周期(新型51單片機可以對振蕩周期計數)的計數,即每一個機器周期定時器加1,來實現定時。故系統晶振頻率直接影響定時時間。如果晶振頻率為12MHZ,則定時器每隔(1/12MHZ)X12=1us力加1。工作于計數器方式時,對P3.4或P3.5管腳的負跳變(1-0)

8、計數。它在每個機器周期的S5P2時采樣外部輸入,當采樣值在這個機器周期為高,在下一個機器周期為低時,計數器加1。因此需要兩個機器周期來識別一個有效跳變,故最高計數頻率為晶振頻率的1/24。特殊功能寄存器TMOD用于定時器/計數器的方式控制。高4位用于設置T1,低4位用于設置T0。如圖4-7所示。D7D6D5D4D3D2DIDOTM0DGATEC/IMlM0GATECTMlMOnT1方式控制亠TO方式控制圖4-7定時器模式控制字格式TCON寄存器用于定時器的計數控制和中斷標志。如圖4-8所示。D7D6D5D4D3D2D1TCONTF1TRITFOTROIE1IT1IE0用于外部中制位置1;(2)

9、根據需要設置工作方式,即對TMOD設置;(3)然后啟動計數,即對TR0或TR1置1。(4)如使用中斷,則計數溢出后硬件會自動轉入中斷入口地址;如使用查詢,則必須對溢出中斷標志位TF0或TF1進行判斷。5、用定時器編寫一個秒計時器假設系統使用的晶振頻率為12MHZ,即每個機器周期為1us。如使用方式1,則定時時間最長是216X1us=65536us=65.536ms,小于1s。故必須設置一個軟件計數單元,即假設定時器定時中斷時間為50ms,則必須定時中斷20次才達到1s并對秒計時單元加1,20即為軟件計數次數。最后再把秒計時單元的值轉成顯示數碼送顯示緩沖區。圖4-9定時器應用程序流程圖6、單片機

10、中斷系統結構及工作原理標準51單片機的中斷系統有五個中斷源。分別為:中斷源入口地址優先級別(同級)外部中斷00003H最高定時器0溢出000BH外部中斷10013H定時器1溢出001BH串行口中斷0023H最低使用中斷之前,必須對中斷允許寄存器IE進行設置,將中斷允許標志EA和對應中斷圖4-10MSC51圖4-10MSC51中斷結構圖位置1,CPU中斷的過程為:當有中斷源發生中斷信號時,首先對IE中對應的中斷位判斷;如打開,則進行EA判斷;如EA=1,將根據中斷優先級IP的設置情況進行優先級判別;如該中斷優先級較高,在硬件控制下,先將程序計數器PC的內容壓入堆棧,同時把被響應的中斷服務程序的入

11、口地址裝入PC中,以執行中斷服務程序。中斷服務程序的最后一條指令必須是中斷返回指令RETIoCPU執行完這條指令后,將從堆棧中彈出兩個字節內容(斷點地址)裝入PC中,從而執行被中斷的程序。實驗內容1、在數碼管上顯示學號的后8位程序如下include/*動態數碼管顯示,共陽極*/#defineuintunsignedint#defineucharunsignedchar#includesbitCLK=P3A4;sbitDIN=P2A3;uinti;ucharcodeduan=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49,0 x41,0 x1f,0 x01,0 x09;/

12、小數點不亮,段碼0-9voiddelay(uintxms)uinti,j;for(i=xms;i0;-i)for(j=110;j0;-j);voidmach()DIN=1;CLK=0;_nop_();CLK=1;_nop_();voidmain()while(1)for(i=0;i8;i+)mach();DIN=0;CLK=0;_nop_();CLK=1;_nop_();P0=0 xff;P0=duan2;顯示第一個數碼管delay(2);mach();P0=0 xff;P0=duan2;顯示第二個數碼管delay(2);mach();P0=0 xff;PO=duanO;顯示第三個數碼管del

13、ay(2);mach();P0=0 xff;P0=duan2;顯示第四個數碼管delay(2);mach();P0=0 xff;P0=duan8;顯示第五個數碼管delay(2);mach();P0=0 xff;PO=duanO;顯示第六個數碼管delay(2);mach();P0=0 xff;P0=duan4;顯示第七個數碼管delay(2);mach();P0=0 xff;P0=duan9;顯示第八個數碼管delay(2);2、設計一個以學號后兩位加10秒的倒計時程序程序如下#include#include#defineucharunsignedchar#defineuintunsigne

14、dintucharcodenumber=0 x03,0 x9f,0 x25,0 x0d,0 x99,0 x49,0 x41,0 x1f,0 x01,0 x09;uchara8;uintcounter=0;sbitCLK=P3人4;sbitDIN=P2A3;voidDelay(uchart)uchari;while(t-)for(i=120;i0;i-);voidrefresh_led()staticucharj=0;switch(j)_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_

15、nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();CLK=0;j+;P0=numbera0;Delay(2);/break;case1:DIN=1;CLK=0;CLK=0;j+;P0=numbera1;Delay(2);/break;case2:DIN=1;CLK=0;CLK=0;j+;P0=numbera2;Delay(2);/break;case3:DIN=1;CLK=0;CLK=0;j+;P0=numbera3;Delay(2);/break;case4:DIN=1;CLK=0;CLK=0;j

16、+;P0=numbera4;Delay(2);/break;_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();_nop_();CLK=1;_nop_();case6:DIN=1;CLK=0;CLK=0;j+;P0=numbera6;Delay(2);/break;case7:DIN=1;CLK=0;CLK=0;j=0;P0=numbera7;Delay(2);break;default:break;voidmain()TMOD|=0 x10;TH1=0 xfc;TL1=

17、0 x67;TR1=1;ET1=1;EA=1;while(1);voidtimer1()interrupt3staticucharsec=32;uchari;TH1=0 xb1;TL1=0 xe0;counter+;if(counter=50)counter=0;a0=sec%10;a1=sec/10%10;a2=sec/100%10;a3=0;a4=0;a5=0;a6=0;a7=0;sec-;for(i=0;i8;i+)DIN=1;CLK=0;_nop_();CLK=1;_nop_();refresh_led();思考題1、運行上面的程序,計算顯示程序每秒運行的次數?2、請說明數碼管的消隱(數據不顯示,內

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論