第2講LED顯示ppt課件_第1頁
第2講LED顯示ppt課件_第2頁
第2講LED顯示ppt課件_第3頁
第2講LED顯示ppt課件_第4頁
第2講LED顯示ppt課件_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、主講人:施保華主講人:施保華AVR單片機C程序設(shè)計電子設(shè)計與創(chuàng)新實驗室電子設(shè)計與創(chuàng)新實驗室32學(xué)時)學(xué)時)LED 數(shù)碼顯示器的應(yīng)用LED LED 數(shù)碼顯示器是單片機嵌入式系統(tǒng)中經(jīng)常使數(shù)碼顯示器是單片機嵌入式系統(tǒng)中經(jīng)常使用的顯示器件。一個用的顯示器件。一個“8 8字型的顯示模塊用字型的顯示模塊用“a a、b b、c c、d d、e e、f f、g g、h h” 8 8 個發(fā)光二極管個發(fā)光二極管組合而成,如圖組合而成,如圖6-12a 6-12a 所示。每個發(fā)光二極所示。每個發(fā)光二極管稱為一字段。管稱為一字段。LED LED 數(shù)碼顯示器有共陽極和數(shù)碼顯示器有共陽極和共陰極兩種結(jié)構(gòu)形式,電路設(shè)計時不要

2、混淆。共陰極兩種結(jié)構(gòu)形式,電路設(shè)計時不要混淆。例6.4 單個LED 數(shù)碼管字符顯示控制我們以共陰極的數(shù)碼管為例,先介紹如何控制一個8 段數(shù)碼管顯示“0”“F16 個十六進制的數(shù)字。 1) 硬件電路設(shè)計:很明顯,用AVR 的一個I/O 口控制共陰極數(shù)碼管的8 個段位,分別置“1或“0”,讓某些段的LED 發(fā)光,其它的熄滅,就可以顯示不同的字符和圖符號,硬件電路如圖6-13。在單片機嵌入式系統(tǒng)軟件設(shè)計中,經(jīng)常要考慮在單片機嵌入式系統(tǒng)軟件設(shè)計中,經(jīng)常要考慮二進制、十六進制、十進制、二進制、十六進制、十進制、BCD BCD 碼、壓縮碼、壓縮BCD BCD 碼、八段碼、碼、八段碼、ASCII ASCII

3、 碼之間的相互轉(zhuǎn)換碼之間的相互轉(zhuǎn)換問題。人們計數(shù)習(xí)慣采用十進制,而單片機問題。人們計數(shù)習(xí)慣采用十進制,而單片機的計算、存儲則為二進制形式最方便。此外的計算、存儲則為二進制形式最方便。此外傳送字符用傳送字符用ASCIIASCII碼,碼,LED LED 數(shù)碼顯示要轉(zhuǎn)化成數(shù)碼顯示要轉(zhuǎn)化成相應(yīng)的相應(yīng)的7 7 段碼等等。因此對與各種不同數(shù)制段碼等等。因此對與各種不同數(shù)制的使用和相互轉(zhuǎn)換在軟件設(shè)計中尤其重要,的使用和相互轉(zhuǎn)換在軟件設(shè)計中尤其重要,設(shè)計使用得當(dāng),可以簡化程序設(shè)計和優(yōu)化程設(shè)計使用得當(dāng),可以簡化程序設(shè)計和優(yōu)化程序代碼。序代碼。#include #include flash char led_71

4、6=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F,0 x77,0 x7C,0 x39,0 x5E,0 x79,0 x71;bit point_on = 0;void main(void)char i = 0;PORTA=0 xFF;DDRA=0 xFF;while (1)for (i=0;i=15;i+)PORTA = led_7i;if (point_on) PORTA |= 0 x80;delay_ms(1000);point_on = point_on;多位LED 數(shù)碼管的顯示多位多位LED LED 數(shù)碼管顯示電路

5、按驅(qū)動方式可分為靜數(shù)碼管顯示電路按驅(qū)動方式可分為靜態(tài)顯示和動態(tài)顯示兩種方法。態(tài)顯示和動態(tài)顯示兩種方法。一個數(shù)碼管要使用一個數(shù)碼管要使用AVR AVR 的的8 8 個個I/O I/O 口線輸出段口線輸出段碼共公端接碼共公端接GNDGND)。當(dāng)使用多個數(shù)碼管時,)。當(dāng)使用多個數(shù)碼管時,顯然采用這樣的控制方式有些問題,因為顯然采用這樣的控制方式有些問題,因為AVR AVR 是不能提供太多的是不能提供太多的I/O I/O 控制引腳的。控制引腳的。圖圖6-14 6-14 是一個采用串行傳送數(shù)據(jù)的是一個采用串行傳送數(shù)據(jù)的8 8 位數(shù)碼管位數(shù)碼管靜態(tài)顯示接口。設(shè)計中將靜態(tài)顯示接口。設(shè)計中將8 8 片八位串行

6、輸入片八位串行輸入/ /并行輸出移位寄存器并行輸出移位寄存器74HC164 74HC164 串接,數(shù)碼管串接,數(shù)碼管為共陽極型。為共陽極型。MCU MCU 將將8 8 個要顯示字符的段碼個要顯示字符的段碼字準(zhǔn)備好,通過字準(zhǔn)備好,通過Data Out Data Out 引腳,在引腳,在Clk Out Clk Out 引腳產(chǎn)生的引腳產(chǎn)生的cp cp 移位脈沖的作用下,一位一位移位脈沖的作用下,一位一位地移入地移入74HC164 74HC164 的的QAQAQH QH 端串行輸入)。端串行輸入)。QAQAQH QH 的輸出并行輸出直接作為數(shù)碼管的輸出并行輸出直接作為數(shù)碼管的的段位控制。由于左邊段位控

7、制。由于左邊74HC164 74HC164 芯片的芯片的QHQH最低最低位和右邊位和右邊74HC164 74HC164 芯片的數(shù)據(jù)串入端連,芯片的數(shù)據(jù)串入端連,經(jīng)過經(jīng)過Clk Out Clk Out 時鐘線時鐘線64 64 個個cp cp 脈沖后,要顯示脈沖后,要顯示的的8 8 個字符將會在個字符將會在8 8 個數(shù)碼管上顯示,最先個數(shù)碼管上顯示,最先發(fā)送的顯示字符段碼將顯示在最右邊。發(fā)送的顯示字符段碼將顯示在最右邊。例6.5 六位LED 數(shù)碼管動態(tài)掃描控制顯示設(shè)計一)1) 硬件設(shè)計電路:圖6-15 給出硬件接口電路圖。圖中僅采用了6 個共陰極的LED 數(shù)碼管。所有數(shù)碼管段位a 的引腳并接,由P

8、A0 控制;段b 并接,由PA1 控制;因此類推。既仍然用ATmega16 的PA 口作為段碼輸出。ATmega16 的PC0PC5 分別與LED0LED5 的共公端COM 引腳連接,既PC 口的低6 位作為位掃描控制口。根據(jù)硬件電路,我們可以看出,在任何一個時刻,根據(jù)硬件電路,我們可以看出,在任何一個時刻,PC0-PC5 PC0-PC5 中只能有一個中只能有一個I/O I/O 口輸出低電平,即只有口輸出低電平,即只有一位數(shù)碼管亮。而且,一位數(shù)碼管亮。而且,MCU MCU 必須循環(huán)輪流控制必須循環(huán)輪流控制PC0-PC0-PC5 PC5 中的一位輸出中的一位輸出“0 0”,同時,同時PA PA

9、口要輸出該位相應(yīng)口要輸出該位相應(yīng)的段碼值。即使顯示的內(nèi)容沒有變化,的段碼值。即使顯示的內(nèi)容沒有變化,MCU MCU 也要進也要進行不停的循環(huán)掃描處理。行不停的循環(huán)掃描處理。軟件的設(shè)計應(yīng)保證從在外表看數(shù)碼管顯示的效果要連軟件的設(shè)計應(yīng)保證從在外表看數(shù)碼管顯示的效果要連續(xù)即在人眼里各個數(shù)碼管全部亮),亮度均勻,續(xù)即在人眼里各個數(shù)碼管全部亮),亮度均勻,同時沒有拖尾現(xiàn)象。同時沒有拖尾現(xiàn)象。通常,每個數(shù)碼管點亮的持續(xù)時間為通常,每個數(shù)碼管點亮的持續(xù)時間為1-2ms1-2ms。我們將。我們將每個數(shù)碼管的點亮持續(xù)時間定為每個數(shù)碼管的點亮持續(xù)時間定為2ms2ms,那么,那么6 6 個數(shù)個數(shù)碼管掃描一遍的時間為

10、碼管掃描一遍的時間為12ms12ms,因此,因此MCU MCU 還有還有13ms 13ms 的時間處理其它事件的時間處理其它事件為了保證各個數(shù)碼管的顯示的效果不產(chǎn)生閃爍情況,為了保證各個數(shù)碼管的顯示的效果不產(chǎn)生閃爍情況,表象上全部點亮的話,則首先必須在表象上全部點亮的話,則首先必須在1 1 秒中內(nèi)循環(huán)秒中內(nèi)循環(huán)掃描掃描6 6 個數(shù)碼管的次數(shù)應(yīng)大于個數(shù)碼管的次數(shù)應(yīng)大于25 25 次,這里是利用次,這里是利用了人眼的影像滯留效應(yīng)。了人眼的影像滯留效應(yīng)。本例中我們選擇本例中我們選擇40 40 次,既每隔次,既每隔1000/40=25ms 1000/40=25ms 將將6 6 個個數(shù)碼管循環(huán)掃描一遍。

11、第二要考慮的是,在數(shù)碼管循環(huán)掃描一遍。第二要考慮的是,在25ms 25ms 時間間隔中,要逐一輪流點亮?xí)r間間隔中,要逐一輪流點亮6 6 個數(shù)碼管,那么每個數(shù)碼管,那么每個數(shù)碼管點亮的持續(xù)時間要相同,這樣亮度才能均個數(shù)碼管點亮的持續(xù)時間要相同,這樣亮度才能均勻。第三個要考慮的要點為每個數(shù)碼管點亮的持續(xù)勻。第三個要考慮的要點為每個數(shù)碼管點亮的持續(xù)時間,這個時間長一些的話,數(shù)碼管的亮度高一些,時間,這個時間長一些的話,數(shù)碼管的亮度高一些,反之則暗一些。反之則暗一些。#include #include flash char led_710=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0

12、 x6D,0 x7D,0 x07,0 x7F,0 x6F;flash char position6=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;char time3; / 時、分、秒計數(shù)char dis_buff6; / 顯示緩沖區(qū),存放要顯示的6 個字符的段碼值char time_counter; / 1 秒計數(shù)器bit point_on; / 秒顯示標(biāo)志void display(void) / 掃描顯示函數(shù),執(zhí)行時間12mschar i;for(i=0;i=5;i+)PORTA = led_7dis_buffi;if (point_on & ( i=2 | i=4 ) PORTA |= 0 x80; / (1)PORTC = positioni;delay_ms(2); / (2)PORTC = 0 xff; / (3)void time_to_disbuffer(void) / 時間值送顯示緩沖區(qū)函數(shù)char i,j=0;

溫馨提示

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

評論

0/150

提交評論