led顯示及動態(tài)顯示原理_第1頁
led顯示及動態(tài)顯示原理_第2頁
led顯示及動態(tài)顯示原理_第3頁
led顯示及動態(tài)顯示原理_第4頁
led顯示及動態(tài)顯示原理_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、4位7段LED顯示在單片機應(yīng)用系統(tǒng)中經(jīng)常使用發(fā)光二極管來顯示,發(fā)光二極管簡稱LED(Light Emitting Diode )。LED的價格便宜,而且配置比較靈活,與單片機的 接口也比較方便。在這里將講解如何使用中穎的單片機進行 4位7段LED顯示的方法。1. 7段LE啲結(jié)構(gòu)原理單片機中經(jīng)常使用7段LED來顯示數(shù)字,也就是用7個LED構(gòu)成字型“8”, 并另外用一個圓點LED來顯示小數(shù)點,也就是說一共有 8個LED構(gòu)成了“8. ” 的字型。7段LED分共陰級和共陽極兩種,共陰級7段LED的原理圖和管腳配置圖如 圖1-1所示,共陽級7段LED的原理圖和管腳配置圖如圖1-2所示。實際中,各 個型號

2、的7段LED的管腳配置可能不會是一樣的,在實際應(yīng)用中要先測試一下各 個管腳的配置,再進行電路原理圖的設(shè)計。圖1-1共陰極7段LEDVV該段LED即被點亮;不加 ”,則需要在VCC上加上 !能顯示出來。屮上外加限流電阻保護。(以dp為最高位,a為最7段LED而 共陰極7段LED是指發(fā)光二極管的陰極連接在一起為公共端的7段LED 個7段LED由8個發(fā)光二極管組成,其中7個發(fā)光二極管構(gòu)成字型“8”的各個筆劃 (ag),另一個發(fā)光二極管為小數(shù)點(dp)。 I當(dāng)在某一段發(fā)光二極管上施加一定的正向電壓時, 電壓則為暗。以共陽極7段LED為例,若是要顯示“5 電壓,向dp、g、f、e、a送出00010010

3、的信號, 為了保護各段LED不因電流過大而損壞,需在各個 共陽極7段LED顯示0F的編碼表如表1-1所示低位)。表1-1! 1 顯示字符dpgfedcbpa s段選碼r011000000111111001F9H210100100 11A4H310110000 'B0H41001100199H51001001092H61000001082H711111000F8H81000000080H91001000090HA1000100088HB1000001183HC11000110C6HD10100001A1HE1000011086HF100011108EH2. 7段LED態(tài)顯示原理LED的靜

4、態(tài)顯示雖然有編程容易、管理簡單等優(yōu)點,但是靜態(tài)顯示所要占的 I/O 口資源很多,所以在顯示的LED點較多的情況下,一般都采用動態(tài)顯示方式。在多位7段LED顯示中,為了簡化電路,降低成本,則將所有位的段選線并 聯(lián)在一起,剛好由8個I/O 口來控制8個段。而公共端(共陽極/共陰極)則分 別由相應(yīng)的I/O 口控制,以實現(xiàn)各個位的分時選通。原理圖如圖1-3所示。由于所有的段選線并聯(lián)到同一個I/O,由這個I/O 口來控制,因此,若是所 有的4位7段LED都選通的話,4位7段LED將會顯示相同的字符。要使各個位 的7段LED顯示不同的字符,就必須采用動態(tài)掃描方法來輪流點亮每一位7段LED即在每一瞬間只選通

5、一位 7段LED進行顯示單獨的字符。在此段點亮?xí)r間 內(nèi),段選控制I/O 口輸出要顯示的相應(yīng)字符的段選碼, 而位選控制I/O 口則輸出 位選信號,向要顯示的位送出選通電平(共陰極則送出低電平,共陽極則送出高 電平),使得該位顯示相應(yīng)字符。這樣將四位 7段LED輪流去點亮,使得每位分 時顯示該位應(yīng)顯示的字符。由于人眼的視覺暫留時間為 0.1秒,當(dāng)每位顯示的間 隔未超過33ms時,并在顯示時保持直到下一位顯示,則由于人眼的視覺暫留效 果眼睛看上去就像是4位7段LED都在點亮。設(shè)計時,要注意每位顯示的間隔時 間,由于一位7段LED的熄滅時間不能超過100ms也就是說點亮其它位所用的 時間不能超過100

6、ms這樣當(dāng)有N位的7段LED用來顯示時,每一位間隔的時間 t就必須符合下面的式子:t 三 100ms/(N-1)比如,現(xiàn)在使用4位,也就是N=4,則由式子可以算出t三33ms就是每一 位的間隔時間不能超過 33ms當(dāng)然時間可以也設(shè)得短一些,比如 5ms或1ms也 可以。位選圖1-37段LED動態(tài)顯示原理圖3. 7段LEDf中穎單片機的接口及應(yīng)用程序電路原理圖以SH69P43空制芯片為例,4位7段LED動態(tài)顯示的電路原理圖如圖4所示。 使用4MHzft振作為主振蕩器,PE 口和PF 口控制4位7段LED的段選,PB 口控 制4位7段LED的位選。將4個共陽極的7段LED的段選線并聯(lián)起來接到 PE

7、口 和PF 口,dp、g、f和e段選線接到PF4PF0 上, d、c、b和a段選線接到PEA PE0上;將4個公共端VCC分別接到PB 口上。由于SH69P43的I/O 口電流較小,所以在位選端要使用三極管來進行7段LED的推動,向7段LED提供足夠大的電流來點亮LED在中穎單片機中,有些 芯片的I/O 口是可以提供至少200mA的反向電流,比如 SH69P26和SH69P5, SH69P26有 6 個大電流 I/O 口(PORTA和 PORTD1PORTD0, SH69P55也是有 6 個大電流I/O 口(PORTDffi PORTEAPORTE0。當(dāng)使用這些有大驅(qū)動電流的 I/O 口的芯片

8、來做7段LED顯示時,當(dāng)顯示電路的位數(shù)不超過芯片所帶有的大驅(qū)動電 流I/O數(shù)時,比如在SH69P26和 SH69P55+做6位以內(nèi)的7段LED顯示時,就無 需使用三極管,而可以直接去驅(qū)動LED了。要注意的是,由于這些I/O 口是提供 大的反向電流,也就是說,電流是流向I/O的,所以只能使用共陰極的7段LED 而不能使用共陽極的7段LEDCS4PF112HIJSIkiMPHP.WAKO PAI AFC1MJ AN、4 PEI POLDD 3H59T43圖1-4 4位7段LED顯示電路原理圖程序如圖1-4的電路原理圖,現(xiàn)以程序來舉個例子。以SH69P43為控制芯片,4M 晶振為主振蕩器,以動態(tài)掃描

9、方式驅(qū)動 4位7段LED 1ms掃描一個位,4位循 環(huán)掃描。程序中有個加載數(shù)據(jù)的地方只是為了測試顯示設(shè)定的,實際應(yīng)用中可在那里更新所要顯示的數(shù)據(jù)。當(dāng)全速運行程序時,就能從4位7段LED中看到所要 顯示的字符。例1-1 4 位7段LED顯示LIST P=69P43ROMSIZE=3072*>系統(tǒng)寄存器*IEEQU00H;中斷使能標(biāo)志IRQEQU01H;中斷請求標(biāo)志TM0EQU02H;Timer0模式寄存器TL0EQU04H;Timer0裝入/記數(shù)寄存器低四位TH0EQU05H;Timer0裝入/記數(shù)寄存器高四位TBREQU0EH;查表寄存器PORTBEQU09H;Port B 數(shù)據(jù)寄存器P

10、ORTEEQU0CH;Port E 數(shù)據(jù)寄存器PORTFEQU0DH;Port F 數(shù)據(jù)寄存器INXEQU0FH;間接尋址偽索引寄存器DPLEQU10H;INX 數(shù)據(jù)指針低四位DPMEQU11H;INX 數(shù)據(jù)指針中三位DPHEQU12H;INX 數(shù)據(jù)指針高三位PBCREQU19H;PortB 輸入/輸出控制寄存器PECREQU1CH;PortE 輸入/輸出控制寄存器PFCREQU1DH;PortF 輸入/輸出控制寄存器.*; 用戶定義寄存器.*AC_BAKEQU30HPB_BAKEQU32HPE_BAKEQU35HPF_BAKEQU36HJ;用于TIMER定時T1MS_CTEQU37HJF_T

11、IMEREQU39HFLAG1EQU3AHJ; Used for displayDISP_R1EQU3BHDISP_R2EQU3CHDISP_R3EQU3DHDISP_R4EQU3EHDISP_PTEQU3FH;AC值備份寄存器;PortB 數(shù)據(jù)備份寄存器;PortE 數(shù)據(jù)備份寄存器;PortF 數(shù)據(jù)備份寄存器;計數(shù)值=04H定時 1ms;bit0=1, 1ms 到;bit0=1, 按鍵未松開;第一位7段LED顯示的字符;第二位7段LED顯示的字符;第三位7段LED顯示的字符;第四位7段LED顯示的字符;位選指針.*程序.*ORG0000HJMPRESETRTNIJMPTIMER0_ISP;T

12、IMER0中斷程序入口地址RTNIRTNI.*J; TIMER0 中斷服務(wù)程序.*;備份AC值;清TIMER0中斷請求標(biāo)志;未到 1ms, 跳轉(zhuǎn);重置1ms計數(shù)器;設(shè)置 "1ms 到"標(biāo)志;打開TIMER0中斷;取出AC值TIMER0_ISP:STAANDIMJ1MS:SBIMBNZLDIORIMTIMER0_ISP_END:LDILDARTNIAC_BAK,00HIRQ,1011BT1MS_CT,01HTIMER0_ISP_ENDT1MS_CT,04HF_TIMER,0001BIE,0100BAC_BAK,00H.*J; 主程序.*JRESET:NOP;清用戶寄存器POW

13、ER_RESET:LDILDILDIPOWER_RESET_1:LDIADIMLDIADCMBA3JMPPOWER_RESET_2:ADIMDPL,00HDPM,02HDPH,00HINX,00HDPL,01HTBR,00HDPM,00HPOWER_RESET_2POWER_RESET_3DPH,01HPOWER_RESET_3:SBIBNZSBIBNZDPH,01HPOWER_RESET_1DPM,04HPOWER_RESET_1;初始化系統(tǒng)寄存器SYSTEM_INITIAL:MAIN:;TIMERO初始化LDITMO,O7H;設(shè)置TIMERO預(yù)分頻為/1LDITLO,O6HLDITHO,O

14、OH;設(shè)置中斷時間為 25OusLDIT1MS_CT,O4H;定時1ms;I/O口初始化LDIPORTB,OOHLDIPBCR,OFH;設(shè)置PortB作為輸出口LDIPORTE,OFHLDIPECR,OFH;設(shè)置PortE作為輸出口LDIPORTF,OFHLDIPFCR,OFH;設(shè)置PortF作為輸出口LDIIRQ,OOHLDIIE,O1OOB;打開TimerO 中斷ADIF_TIMER,OOO1BBAOHALTMODE;未到1ms,跳轉(zhuǎn)MAIN_PRE:;清 "1ms 到"標(biāo)志ANDIMF_TIMER,1110B;加載顯示數(shù)據(jù)(用于測試 7段LED顯示模塊)LDIDISP

15、_R1,O3HLDIDISP_R2,O7HLDIDISP_R3,O9HLDIDISP_R4,OFH*模塊:4位7段LED顯示模塊* 輸入變量:DISP_R1,DISP_R2,DISP_R3,DISP_R4* 使用變量:DISP_PT,TBR,PB_BAK,PE_BAK,PF_BAK* 輸出變量:PORTB,PORTE,PORTF.*JDISPLAY:DISP_1:ADIMDISP_PT,01H;指針加一SBIDISP_PT,01HBAZDISP_11;顯示位1 數(shù)碼管,跳轉(zhuǎn)SBIDISP_PT,02HBAZDISP_12;顯示位2 數(shù)碼管,跳轉(zhuǎn)SBIDISP_PT,03HBAZDISP_13;

16、顯示位3 數(shù)碼管,跳轉(zhuǎn);顯示位 4 數(shù)碼管DISP_14:LDI LDI LDI LDA CALL STA LDA STA JMPDISP_PT,00HPB_BAK,0001BTBR,0FHDISP_R4,00H07EFHPE_BAK,00HTBR,00HPF_BAK,00HDISPLAY_END;指針清零;預(yù)設(shè)位選碼;由字符查表得預(yù)設(shè)段選碼的值;顯示位 3 數(shù)碼管DISP_13:LDIPB_BAK,0010B;預(yù)設(shè)位選碼LDITBR,0FHLDADISP_R3,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得預(yù)設(shè)段選碼的值JMPD

17、ISPLAY_END;顯示位 2 數(shù)碼管DISP_12:LDIPB_BAK,0100B;預(yù)設(shè)位選碼LDITBR,0FHLDADISP_R2,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得預(yù)設(shè)段選碼的值JMPDISPLAY_END;顯示位 1 數(shù)碼管DISP_11:LDIPB_BAK,1000B;預(yù)設(shè)位選碼LDITBR,0FHLDADISP_R1,00HCALL07EFHSTAPE_BAK,00HLDATBR,00HSTAPF_BAK,00H;由字符查表得預(yù)設(shè)段選碼的值JMPDISPLAY_ENDDISPLAY_END:LDIPORTB,00H;關(guān)閉顯示LDAPE_BAK,00HSTAPORTE,00HLDAPF_BAK,00HSTAPORTF,00H;送出預(yù)設(shè)的段選碼到 I/O 口LDAPB_BAK,00HSTAPORTB,00H;送出預(yù)設(shè)的位選碼到 I/O 口,顯示該位.*HALTMODE:NOPHALTNOPNOPNOPJMP MAIN.*JORG 07EFHTJMP;顯示段選碼數(shù)據(jù)表(共陽極)ORG 07F0H;dp g f e, d c

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論