第6章 通用IO接口的基本結(jié)構(gòu)與輸出應(yīng)用_第1頁
第6章 通用IO接口的基本結(jié)構(gòu)與輸出應(yīng)用_第2頁
第6章 通用IO接口的基本結(jié)構(gòu)與輸出應(yīng)用_第3頁
第6章 通用IO接口的基本結(jié)構(gòu)與輸出應(yīng)用_第4頁
第6章 通用IO接口的基本結(jié)構(gòu)與輸出應(yīng)用_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第第6章章 通用通用I/O接口基本結(jié)構(gòu)與輸接口基本結(jié)構(gòu)與輸出應(yīng)用出應(yīng)用2 ATmega16芯片有芯片有PORTA、PORTB、PORTC、PORTD(簡稱(簡稱PA、PB、PC、PD)4組組8位,共位,共32路通用路通用I/O接口,分接口,分別對應(yīng)于芯片上別對應(yīng)于芯片上32根根I/O引腳。所有這些引腳。所有這些I/O口都是口都是雙(有的為雙(有的為3)功能復(fù)用的功能復(fù)用的。 其中其中第一功能均第一功能均作為數(shù)字通用作為數(shù)字通用I/OI/O接口使用,接口使用,復(fù)用功能復(fù)用功能則分別用于中斷、時(shí)鐘則分別用于中斷、時(shí)鐘/ /計(jì)數(shù)器、計(jì)數(shù)器、USRATUSRAT、I2CI2C和和SPISPI串行通串

2、行通信、模擬比較、捕捉等應(yīng)用。信、模擬比較、捕捉等應(yīng)用。 引言引言 3 I/O口的基本結(jié)構(gòu)口的基本結(jié)構(gòu) 每組每組I/OI/O口配備三個(gè)口配備三個(gè)8 8位寄存器,它們分別是方向控制寄存器位寄存器,它們分別是方向控制寄存器DDRxDDRx,數(shù)據(jù)寄存器,數(shù)據(jù)寄存器PORTxPORTx,和輸入引腳寄存器,和輸入引腳寄存器PINxPINx(x=ABCDx=ABCD)。)。I/OI/O口的工作方式和表現(xiàn)特征由這口的工作方式和表現(xiàn)特征由這3 3個(gè)個(gè)I/OI/O口寄口寄存器控制。存器控制。 4方向控制寄存器方向控制寄存器DDRx用于控制用于控制I/O口的輸入輸出方向,即控制口的輸入輸出方向,即控制I/O口的工

3、作方式為輸出方式還是輸入方式。口的工作方式為輸出方式還是輸入方式。當(dāng)當(dāng)DDRx=1時(shí),時(shí),I/O口處于輸出工作方式。口處于輸出工作方式。 當(dāng)當(dāng)PORTx=1時(shí),時(shí),I/O引腳呈現(xiàn)高電平,同時(shí)可提供輸出引腳呈現(xiàn)高電平,同時(shí)可提供輸出20mA的電流;而當(dāng)?shù)碾娏?;而?dāng)PORTx=0時(shí),時(shí),I/O引腳呈現(xiàn)低電平,同時(shí)可引腳呈現(xiàn)低電平,同時(shí)可吸納吸納20mA電流。電流。 5當(dāng)當(dāng)DDRx=0時(shí),時(shí),I/O處于輸入工作方式處于輸入工作方式 此時(shí)引腳寄存器此時(shí)引腳寄存器PINx中的數(shù)據(jù)就是外部引腳的實(shí)際電平,中的數(shù)據(jù)就是外部引腳的實(shí)際電平,通過讀通過讀I/O指令可將物理引腳的真實(shí)數(shù)據(jù)讀入指令可將物理引腳的真實(shí)

4、數(shù)據(jù)讀入MCU。此外,。此外,當(dāng)當(dāng)I/O口定義為輸入時(shí)(口定義為輸入時(shí)(DDRx=0),通過),通過PORTx的控制,的控制,可使用或不使用內(nèi)部的上拉電阻??墒褂没虿皇褂脙?nèi)部的上拉電阻。6表表6.1是是AVR通用通用I/O端口的引腳配置情況端口的引腳配置情況 表中的表中的PUD為寄存器為寄存器SFIOR中的一位,它的作用相當(dāng)中的一位,它的作用相當(dāng)AVR全部全部I/O口內(nèi)部上拉電阻的總開關(guān)。當(dāng)口內(nèi)部上拉電阻的總開關(guān)。當(dāng)PUD=1時(shí),時(shí),AVR所有所有I/O內(nèi)部上拉電阻都不起作用(全局內(nèi)部上拉無效);而內(nèi)部上拉電阻都不起作用(全局內(nèi)部上拉無效);而PUD=0時(shí),時(shí),各個(gè)各個(gè)I/O口內(nèi)部上拉電阻取決

5、于口內(nèi)部上拉電阻取決于DDRXn的設(shè)置。的設(shè)置。 7 (1).使用使用AVR的的I/O口,首先要正確設(shè)置其工作方口,首先要正確設(shè)置其工作方式,確定其工作在輸出方式還是輸入方式。式,確定其工作在輸出方式還是輸入方式。 (2)當(dāng)當(dāng)I/O工作在輸入方式,要讀取外部引腳上的電工作在輸入方式,要讀取外部引腳上的電平時(shí),平時(shí),應(yīng)讀取應(yīng)讀取PINxn的值,而不是的值,而不是PORTxn的值。的值。 (3)當(dāng)當(dāng)I/O工作在輸入方式,要根據(jù)實(shí)際情況使用或工作在輸入方式,要根據(jù)實(shí)際情況使用或不使用內(nèi)部的上拉電阻。不使用內(nèi)部的上拉電阻。 (4)一旦將一旦將I/O口的工作方式由輸出設(shè)置成輸入方式口的工作方式由輸出設(shè)置

6、成輸入方式后,必須后,必須等待一個(gè)時(shí)鐘周期后等待一個(gè)時(shí)鐘周期后才能正確的讀到外部才能正確的讀到外部引腳引腳PINxn的值的值。8I/O端口寄存器端口寄存器 PA口寄存器口寄存器PORTA、DDRA、PINA各個(gè)位的具體定義各個(gè)位的具體定義 位 7 6 5 4 3 2 1 0 $1B($003B) PORTA7 PORTA6 PORTA5 PORTA4 PORTA3 PORTA2 PORTA1 PORTA0 PORTA 讀/寫 R/W R/W R/W R/W R/W R/W R/W R/W 復(fù)位值 0 0 0 0 0 0 0 0 位 7 6 5 4 3 2 1 0 $1A($003A) DDA7

7、 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0 DDRA 讀/寫 R/W R/W R/W R/W R/W R/W R/W R/W 復(fù)位值 0 0 0 0 0 0 0 0 位 7 6 5 4 3 2 1 0 $19 ($0039) PINA7 PINA6 PINA5 PINA4 PINA3 PINA2 PINA1 PINA0 PINA 讀/寫 R R R R R R R R 復(fù)位值 N/A N/A N/A N/A N/A N/A N/A N/A 9 正確使用正確使用AVRAVR的的I/OI/O口要注意:口要注意:(1)(1)先正確設(shè)置先正確設(shè)置DDRxDDRx方向寄存器,

8、再進(jìn)行方向寄存器,再進(jìn)行I/OI/O口的讀寫操作。口的讀寫操作。(2)AVR(2)AVR的的I/OI/O口口復(fù)位后復(fù)位后的初始狀態(tài)全部為的初始狀態(tài)全部為輸入工作方式輸入工作方式,內(nèi)部上,內(nèi)部上拉電阻無效。所以,外部引腳呈現(xiàn)三態(tài)高阻輸入狀態(tài)。拉電阻無效。所以,外部引腳呈現(xiàn)三態(tài)高阻輸入狀態(tài)。(3)(3)用戶程序需要首先對要使用的用戶程序需要首先對要使用的I/OI/O口進(jìn)行初始化設(shè)置,根據(jù)口進(jìn)行初始化設(shè)置,根據(jù)實(shí)際需要設(shè)定使用實(shí)際需要設(shè)定使用I/OI/O口的工作方式(輸出還是輸入),當(dāng)設(shè)定口的工作方式(輸出還是輸入),當(dāng)設(shè)定為輸入方式時(shí),為輸入方式時(shí),還要考慮是否使用內(nèi)部的上拉電阻還要考慮是否使用內(nèi)

9、部的上拉電阻。(4)(4)在硬件電路設(shè)計(jì)時(shí),如能利用在硬件電路設(shè)計(jì)時(shí),如能利用AVRAVR內(nèi)部內(nèi)部I/OI/O口的上拉電阻,可口的上拉電阻,可以節(jié)省外部的上拉電阻。以節(jié)省外部的上拉電阻。AVR通用I/O端口的主要特點(diǎn) 雙向可獨(dú)立位控的I/O口 ATmega16的PA、PB、PC、PD四個(gè)端口都是8位雙向I/O口,每一位引腳都可以單獨(dú)的進(jìn)行定義,相互不受影響。如用戶可以在定義PA口第0、2、3、4、5、6位用于輸入的同時(shí)定義第1、7位用于輸出,互不影響10AVR通用I/O端口的主要特點(diǎn) Push-Pull大電流驅(qū)動(dòng) 每個(gè)I/O口輸出方式均采用推挽式緩沖器輸出,提供大電流的驅(qū)動(dòng),可以輸出(吸入)2

10、0mA的電流,因而能直接驅(qū)動(dòng)LED顯示器。 可控制的引腳內(nèi)部上拉電阻每一位引腳內(nèi)部都有獨(dú)立的,可通過編程設(shè)置的,設(shè)定為上拉有效或無效的內(nèi)部上拉電阻。當(dāng)I/O口被用于輸入狀態(tài),且內(nèi)部上拉電阻被激活(有效)時(shí),如果外部引腳被拉低,則構(gòu)成電流源輸出電流(uA量級)。11AVR通用I/O端口的主要特點(diǎn) DDRx可控的方向寄存器。 AVR的I/O端口結(jié)構(gòu)同其它類型單片機(jī)的明顯區(qū)別是,AVR采用3個(gè)寄存器來控制I/O端口。一般單片機(jī)的I/O僅有數(shù)據(jù)寄存器和控制寄存器,而AVR還多了一個(gè)方向控制器,用于控制I/O的輸入輸出方向。由于輸入寄存器PINx實(shí)際不是一個(gè)寄存器,而是一個(gè)可選通的三態(tài)緩沖器,外部引腳通

11、過該三態(tài)緩沖器與MCU的內(nèi)部總線連接,因此,讀PINx時(shí)是讀取外部引腳上的真實(shí)和實(shí)際邏輯值,實(shí)現(xiàn)了外部信號(hào)的同步輸入。這種結(jié)構(gòu)的I/O端口,具備了真正的讀-修改-寫(Read-Modify-Write)特性。1213C語言中的位操作語言中的位操作 a | b - 按位或按位或 這個(gè)表達(dá)式指示中這個(gè)表達(dá)式指示中 a 被表達(dá)式中的被表達(dá)式中的b 按位進(jìn)行或運(yùn)算按位進(jìn)行或運(yùn)算 這慣用于打這慣用于打開某些位開某些位 尤其常用尤其常用|=的形式的形式 例如例如 PORTA |= 0 x80; / 打開位打開位 7 (最高位最高位) a & b - 按位與按位與 這個(gè)運(yùn)算在檢查某些位是否置這個(gè)運(yùn)算

12、在檢查某些位是否置 1 時(shí)有用時(shí)有用 例如例如 If (PORTA & 0 x81) = 0) / 檢查位檢查位 7 和位和位 0 注意圓括號(hào)需要括在注意圓括號(hào)需要括在&運(yùn)算符的周圍運(yùn)算符的周圍 因?yàn)樗鸵驗(yàn)樗? = 相比運(yùn)算優(yōu)先相比運(yùn)算優(yōu)先級較低級較低 這是這是 C 程序中很多錯(cuò)誤的原因之一程序中很多錯(cuò)誤的原因之一 a b - 按位異或按位異或 這個(gè)運(yùn)算對一個(gè)位取反有用這個(gè)運(yùn)算對一個(gè)位取反有用 例如例如 在下面的例子中在下面的例子中 位位 7 是被翻轉(zhuǎn)的是被翻轉(zhuǎn)的 PORTA = 0 x80; / 翻轉(zhuǎn)位翻轉(zhuǎn)位 7 a - 按位取反按位取反 在表達(dá)式中這個(gè)運(yùn)算執(zhí)行一個(gè)取反在

13、表達(dá)式中這個(gè)運(yùn)算執(zhí)行一個(gè)取反 當(dāng)用按位與運(yùn)算關(guān)閉某些位當(dāng)用按位與運(yùn)算關(guān)閉某些位時(shí)時(shí) 與這個(gè)運(yùn)算組合使用尤其有用與這個(gè)運(yùn)算組合使用尤其有用 如如 PORTA &= 0 x80;/ 關(guān)閉位關(guān)閉位 7 14PORTC | = (1BIT0) |( 1BIT3); 1(BIT0)表示邏輯表示邏輯1左移到左移到PORTC 的0位,結(jié)果為位,結(jié)果為0b00000001; 1(BIT3) 表示邏輯表示邏輯1左移左移PORTC 的3位,結(jié)果為位,結(jié)果為0b00001000。0b00000001在同在同0b00001000相或相或,結(jié)果為,結(jié)果為0b00001001。 PORTD=BIT(PD7) PO

14、RTD口的第口的第7位取反位取反/,取反,取反PD0引腳,引腳,TCCR0|=(1CS01)|(1CS00);TCCR0功能寄存器的功能寄存器的CS01 、CS00位置位置1。15通用數(shù)字通用數(shù)字I/O口的設(shè)置與編程口的設(shè)置與編程 1. 通用通用I/O輸出設(shè)計(jì)要點(diǎn)輸出設(shè)計(jì)要點(diǎn) 應(yīng)用應(yīng)用I/O口輸出時(shí),在系統(tǒng)的軟硬件設(shè)計(jì)上應(yīng)注意的問題有:口輸出時(shí),在系統(tǒng)的軟硬件設(shè)計(jì)上應(yīng)注意的問題有: 輸出電平的轉(zhuǎn)換和匹配。輸出電平的轉(zhuǎn)換和匹配。 輸出電流的驅(qū)動(dòng)能力。輸出電流的驅(qū)動(dòng)能力。 I/O口輸出為口輸出為“1”時(shí),可以提供時(shí),可以提供20mA左右的驅(qū)動(dòng)電流。輸左右的驅(qū)動(dòng)電流。輸出為出為“0”時(shí),可以吸收時(shí),

15、可以吸收20mA左右的灌電流(最大為左右的灌電流(最大為40mA)。)。 輸出電平轉(zhuǎn)換的延時(shí)輸出電平轉(zhuǎn)換的延時(shí)。 應(yīng)用舉例應(yīng)用舉例: LED發(fā)光二極管的控制發(fā)光二極管的控制 設(shè)計(jì)一個(gè)帶有一排設(shè)計(jì)一個(gè)帶有一排8個(gè)發(fā)光二極管的簡易彩燈控制系統(tǒng)個(gè)發(fā)光二極管的簡易彩燈控制系統(tǒng) 16硬件電路設(shè)計(jì)硬件電路設(shè)計(jì) 當(dāng)電壓當(dāng)電壓U1大于大于U2約約1V以上時(shí),二極管導(dǎo)通以上時(shí),二極管導(dǎo)通發(fā)光。當(dāng)導(dǎo)通電流大于發(fā)光。當(dāng)導(dǎo)通電流大于5mA時(shí),人的眼睛時(shí),人的眼睛就可以明顯地觀察到二極管的發(fā)光,導(dǎo)通就可以明顯地觀察到二極管的發(fā)光,導(dǎo)通電流越大,亮度越高。電流越大,亮度越高。 RVledUUI21 AVR的的I/O口輸出

16、口輸出“0”時(shí),可以吸收時(shí),可以吸收最大最大40mA的的電流,因此采電流,因此采用控制發(fā)光二用控制發(fā)光二極管負(fù)極的設(shè)極管負(fù)極的設(shè)計(jì)比較好。計(jì)比較好。 17#include #include void main(void) unsigned char position = 0;/ position為控制位的位置為控制位的位置 PORTA=0 xFF;/ PA口輸出全口輸出全1,LED全滅全滅 DDRA=0 xFF;/ PA口工作為輸出方式口工作為輸出方式 while (1) PORTA = (1= 8) position = 0; delay_ms(1000); 18應(yīng)用舉例應(yīng)用舉例:繼電器控制

17、繼電器控制 控制恒溫箱的加熱的硬控制恒溫箱的加熱的硬件電路設(shè)計(jì)件電路設(shè)計(jì) 恒溫箱的加熱源采用恒溫箱的加熱源采用500W電爐,電爐的工作電壓電爐,電爐的工作電壓220v,電流電流2.3A。選用。選用HG4200繼電器,開關(guān)負(fù)載能力為繼電器,開關(guān)負(fù)載能力為5A/AC220V,繼電器吸合線圈的工作電壓繼電器吸合線圈的工作電壓5v,功耗,功耗0.36W,計(jì)算得吸合電流,計(jì)算得吸合電流為為0.36/5 = 72mA。因此,要能使繼電器穩(wěn)定的吸合,驅(qū)動(dòng)電流。因此,要能使繼電器穩(wěn)定的吸合,驅(qū)動(dòng)電流應(yīng)該大于應(yīng)該大于80mA。該電流已經(jīng)超出。該電流已經(jīng)超出AVR本身本身 I/O口的驅(qū)動(dòng)能力,口的驅(qū)動(dòng)能力,因此外

18、部需要使用功率驅(qū)動(dòng)元件。因此外部需要使用功率驅(qū)動(dòng)元件。 I/O引腳輸出引腳輸出“1”時(shí),時(shí),三極管導(dǎo)通,繼電器三極管導(dǎo)通,繼電器吸合,電爐開始加熱。吸合,電爐開始加熱。I/O引腳輸出引腳輸出“0”時(shí),時(shí),三極管截止,繼電器三極管截止,繼電器釋放,加熱停止。釋放,加熱停止。 19PORTC | =(1 PORTC0)/PORTC 位置位置1。繼電器吸。繼電器吸合,電爐開始加熱。合,電爐開始加熱。PORTC & = (1 PORTC0)PORTC & = 0 x80 /PORTC 位置位置0。繼電器釋放,。繼電器釋放,加熱停止。加熱停止。 20應(yīng)用舉例應(yīng)用舉例:步進(jìn)電機(jī)控制步進(jìn)電機(jī)

19、控制21硬件電路硬件電路22程序程序#include #include Flash unsigned char step6=0 x04, 0 x06, 0 x02, 0 x03, 0 x01, 0 x05;void main(void)char i= 0;int delay = 500;PORTA=0 x00;DDRA=0 x07;/ PA口工作為輸出方式口工作為輸出方式 while (1) PORTA =stepi;/ if (+i = 6) i= 0; delay_ms(delay); ;23AVR I/O端口應(yīng)用實(shí)例7段LED顯示器 在單片機(jī)系統(tǒng)中在單片機(jī)系統(tǒng)中,常用的顯示器有常用的顯示

20、器有:發(fā)光二極管顯示器發(fā)光二極管顯示器,簡稱簡稱LED(Light Emitting Diode);液晶顯示器液晶顯示器,簡稱簡稱LCD(Liquid Crystal Display);熒光管顯示器,簡稱熒光管顯示器,簡稱CRT。近年來也開始使用簡易的。近年來也開始使用簡易的CRT接口接口,顯示一些漢字及圖形顯示一些漢字及圖形。24前二種顯示器都有兩種顯示結(jié)構(gòu)前二種顯示器都有兩種顯示結(jié)構(gòu): :段顯示段顯示(7(7段段,“,“米米”字型等字型等) )和點(diǎn)陣顯示和點(diǎn)陣顯示(5(57,57,58,88,88 8點(diǎn)陣等點(diǎn)陣等) )。而發(fā)光。而發(fā)光二極管顯示又分為固定段顯示和可以拼裝的大型字段顯二極管顯

21、示又分為固定段顯示和可以拼裝的大型字段顯示示, ,此外還有共陽極和陰極之分等。此外還有共陽極和陰極之分等。 三種顯示器中三種顯示器中, ,以熒光管顯示器亮度最高以熒光管顯示器亮度最高, ,發(fā)光二極發(fā)光二極管次之管次之, ,而液晶顯示器最弱而液晶顯示器最弱, ,為被動(dòng)顯示器為被動(dòng)顯示器, ,必須有外光必須有外光源。源。 限于篇幅限于篇幅, ,我們介紹我們介紹7 7段段LEDLED顯示器顯示器。25LED顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的價(jià)廉顯示器是單片機(jī)應(yīng)用系統(tǒng)中常用的價(jià)廉輸出設(shè)備。輸出設(shè)備。 它是由若干個(gè)發(fā)光二極管組成的它是由若干個(gè)發(fā)光二極管組成的,當(dāng)發(fā)光二極管當(dāng)發(fā)光二極管導(dǎo)通時(shí)導(dǎo)通時(shí),相應(yīng)的一個(gè)

22、點(diǎn)或一個(gè)筆畫發(fā)亮。控制不同相應(yīng)的一個(gè)點(diǎn)或一個(gè)筆畫發(fā)亮??刂撇煌M合的二極管導(dǎo)通組合的二極管導(dǎo)通,就能顯示出各種字符。就能顯示出各種字符。 發(fā)光二極管的陽極連在一起的稱為發(fā)光二極管的陽極連在一起的稱為共陽極顯示共陽極顯示器器,陰極連在一起的稱為陰極連在一起的稱為共陰極顯示器共陰極顯示器。 26對于共陰極LED,欲點(diǎn)亮的段在字節(jié)中所處的位為“1”, 對于共陽極LED,欲點(diǎn)亮的段在字節(jié)中所處的位為“0”, 例如:顯示字符5,共陰極字型碼為01101101B(6DH),共陽極字型碼為10010010B(92H)。 27LEDLED共陰共陰/ /共陽段選編碼表共陽段選編碼表顯示字符共陰極字型碼共陽極字型

23、碼顯示字符共陰極字型碼共陽極字型碼 0 3FH C0H c 39H C6H 1 06H F9H D 5EH A1H 2 5BH A4H E 79H 86H 3 4FH B0H F 71H 8EH 4 66H 99H P 73H 8CH 5 6DH 92H U 3EH C1H 6 7DH 82H I 31H CEH 7 07H F8H Y 6EH 91H 8 7FH 80H H 76H 89H 9 6FH 90H L 38H C7H A 77H 88H “滅” 00H FFH b 7CH 83H 28二、二、 LED顯示器顯示方式顯示器顯示方式LED顯示器有靜態(tài)顯示和動(dòng)態(tài)顯示兩種顯顯示器有靜態(tài)顯

24、示和動(dòng)態(tài)顯示兩種顯示方式,分述如下:示方式,分述如下:.LED靜態(tài)顯示方式靜態(tài)顯示方式 所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個(gè)所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一個(gè)字符時(shí),相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止,字符時(shí),相應(yīng)的發(fā)光二極管恒定地導(dǎo)通或截止,例如七段顯示器的例如七段顯示器的a,b,c,d,e,f導(dǎo)通,導(dǎo)通,g截止,顯截止,顯示示0。這種顯示方式每一位都需要有一個(gè)位。這種顯示方式每一位都需要有一個(gè)位輸出口控制。輸出口控制。29多位顯示器的接口邏輯。如圖多位顯示器的接口邏輯。如圖 所示所示 優(yōu)點(diǎn)優(yōu)點(diǎn):編程容易,管理簡單,亮度較高,:編程容易,管理簡單,亮度較高, 缺點(diǎn)缺點(diǎn):占用口線資源較多。:占

25、用口線資源較多。 1、LED靜態(tài)顯示方式靜態(tài)顯示方式30.LED .LED 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示動(dòng)態(tài)顯示就是一位一位地輪流點(diǎn)亮顯示就是一位一位地輪流點(diǎn)亮顯示器各個(gè)位(掃描),對于顯示器的每一位來說,器各個(gè)位(掃描),對于顯示器的每一位來說,每隔一段時(shí)間點(diǎn)亮一次。每隔一段時(shí)間點(diǎn)亮一次。 顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。 31多位段多位段LED動(dòng)態(tài)顯示器電路動(dòng)態(tài)顯示器電路 在多位在多位LED顯示時(shí)

26、顯示時(shí),為了簡化硬件電路為了簡化硬件電路,通常將所在位通常將所在位段選線相應(yīng)地并聯(lián)在一起段選線相應(yīng)地并聯(lián)在一起,由一個(gè)由一個(gè)(7段段LED)8位位I/O口控制口控制,形成段線的多路復(fù)用。而各位的共陽極或共陰極分別由形成段線的多路復(fù)用。而各位的共陽極或共陰極分別由相應(yīng)的相應(yīng)的I/O口線控制口線控制,實(shí)現(xiàn)各位的分時(shí)選通。實(shí)現(xiàn)各位的分時(shí)選通。.LED .LED 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式32.LED .LED 動(dòng)態(tài)顯示方式動(dòng)態(tài)顯示方式掃描顯示方式掃描顯示方式,即在某一時(shí)刻即在某一時(shí)刻,只讓某一位的位選線只讓某一位的位選線處于選通狀態(tài)處于選通狀態(tài),而其它各位的位選線處于關(guān)閉狀態(tài)而其它各位的位選線處于關(guān)閉

27、狀態(tài),同時(shí)同時(shí),段選線上輸出相應(yīng)位要顯示字符的字型碼段選線上輸出相應(yīng)位要顯示字符的字型碼,這樣同一時(shí)這樣同一時(shí)刻刻,6位位LED中只有選通的那一位顯示出字符中只有選通的那一位顯示出字符,而其它三而其它三位則是熄滅的。位則是熄滅的。 由于人眼有視覺暫留現(xiàn)象由于人眼有視覺暫留現(xiàn)象,只要每位顯示間隔足夠只要每位顯示間隔足夠短短,則可造成多位同時(shí)亮的假象則可造成多位同時(shí)亮的假象,達(dá)到顯示的目的。達(dá)到顯示的目的。33LEDLED顯示器接口技術(shù)顯示器接口技術(shù)要使要使LED顯示器顯示出字符,必須提供顯示器顯示出字符,必須提供段選碼和位選碼。段選碼和位選碼。 段選碼段選碼(即字碼)可以用硬件譯碼的方(即字碼)

28、可以用硬件譯碼的方法獲得,也可以用軟件的方法獲得。法獲得,也可以用軟件的方法獲得。 位選碼位選碼 靜態(tài)顯示和動(dòng)態(tài)顯示。靜態(tài)顯示和動(dòng)態(tài)顯示。 下面介紹軟件譯碼顯示器接口方法。下面介紹軟件譯碼顯示器接口方法。 34一、靜態(tài)顯示接口一、靜態(tài)顯示接口35一、靜態(tài)顯示接口一、靜態(tài)顯示接口1靜態(tài)顯示器硬件電路靜態(tài)顯示器硬件電路 是一個(gè)采用串行傳送數(shù)據(jù)的8 位數(shù)碼管靜態(tài)顯示接口。設(shè)計(jì)中將8 片八位串行輸入/并行輸出移位寄存器74HC164 串接,數(shù)碼管為共陽極型。 MCU 將8 個(gè)要顯示字符的段碼字準(zhǔn)備好,通過Data Out 引腳,在Clk Out 引腳產(chǎn)生的cp 移位脈沖的作用下,一位一位地移入74HC

29、164 的QAQH 端(串行輸入)。QAQH 的輸出(并行輸出)直接作為數(shù)碼管的段位控制。由于左邊74HC164 芯片的QH(最低位)和右邊74HC164 芯片的數(shù)據(jù)串入端連接,經(jīng)過Clk Out 時(shí)鐘線64 個(gè)cp 脈沖后,要顯示的8 個(gè)字符將會(huì)在8 個(gè)數(shù)碼管上顯示,最先發(fā)送的顯示字符段碼將顯示在最右邊。 36二、動(dòng)態(tài)顯示接口二、動(dòng)態(tài)顯示接口37二、動(dòng)態(tài)顯示接口二、動(dòng)態(tài)顯示接口 在任何一個(gè)時(shí)刻,PC0-PC5 中只能有一個(gè)I/O 口輸出低電平,即只有一位數(shù)碼管亮。 MCU 必須循環(huán)輪流控制PC0-PC5 中的一位輸出“0”,同時(shí)PA 口要輸出該位相應(yīng)的段碼值。 即使顯示的內(nèi)容沒有變化,MCU

30、 也要進(jìn)行不停的循環(huán)掃描處理。38二、動(dòng)態(tài)顯示接口二、動(dòng)態(tài)顯示接口 軟件的設(shè)計(jì)應(yīng)保證從在外表看數(shù)碼管顯示的效果要連續(xù)(即在人眼里各個(gè)數(shù)碼管全部亮),亮度均勻,同時(shí)沒有拖尾現(xiàn)象。 為了保證各個(gè)數(shù)碼管的顯示的效果不產(chǎn)生閃爍情況,表象上全部點(diǎn)亮的話,則首先必須在1 秒中內(nèi)循環(huán)掃描6 個(gè)數(shù)碼管的次數(shù)應(yīng)大于25 次,這里是利用了人眼的影像滯留效應(yīng)。 本例中我們選擇40 次,既每隔1000/40=25ms 將6 個(gè)數(shù)碼管循環(huán)掃描一遍。第二要考慮的是,在25ms 時(shí)間間隔中,要逐一輪流點(diǎn)亮6 個(gè)數(shù)碼管,那么每個(gè)數(shù)碼管點(diǎn)亮的持續(xù)時(shí)間要相同,這樣亮度才能均勻。第三個(gè)要考慮的要點(diǎn)為每個(gè)數(shù)碼管點(diǎn)亮的持續(xù)時(shí)間,這個(gè)時(shí)

31、間長一些的話,數(shù)碼管的亮度高一些,反之則暗一些。 通常,每個(gè)數(shù)碼管點(diǎn)亮的持續(xù)時(shí)間為1-2ms。我們將每個(gè)數(shù)碼管的點(diǎn)亮持續(xù)時(shí)間定為2ms,那么6 個(gè)數(shù)碼管掃描一遍的時(shí)間為12ms,因此MCU 還有13ms 的時(shí)間處理其它事件 39二、動(dòng)態(tài)顯示接口二、動(dòng)態(tài)顯示接口#include #include char led_710=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7D,0 x07,0 x7F,0 x6F;char position6=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/任何時(shí)刻只有一個(gè)管亮,即只有一個(gè)I/O口輸出為低voi

32、d display(void) / 掃描顯示函數(shù),執(zhí)行時(shí)間12mschar i;for(i=0;i=5;i+)PORTA = led_7dis_buffi;PORTC = positioni;delay_ms(2); / (2)PORTC = 0 xff; / (3)40void time_to_disbuffer(void) / 時(shí)間值送顯示緩沖區(qū)函數(shù)unsigned char i,j=0; for (i=0;i= 40) time_counter = 0;/ (4) point_on = point_on;/ (5) if (+time0 = 60) time0 = 0; if (+tim

33、e1 = 60) time1 = 0; if (+time2 = 24) time2 = 0; time_to_disbuffer(); delay_ms(13);/ 延時(shí)13ms,可進(jìn)行其它處理(6) 42點(diǎn)陣LED 顯示器 點(diǎn)陣LED 在許多產(chǎn)品中也是經(jīng)常使用的一種外圍設(shè)備,如電梯中的運(yùn)行指示,公交汽車?yán)锏恼久麖V告顯示,以及大型的電子廣告牌等。 這種LED 的優(yōu)點(diǎn)是可以通過點(diǎn)陣的形式顯示漢字、圖形等。 實(shí)際上,PC 的顯示屏、手機(jī)顯示屏等,在上面顯示漢字、圖形的原理都是點(diǎn)陣顯示的方法。43點(diǎn)陣LED 顯示器 8*8 點(diǎn)陣LED 一般是一個(gè)方型的器件,由8 行 * 8 列共64 個(gè)LED 發(fā)光二極管組成。44點(diǎn)陣LED 顯示器 8*8 點(diǎn)陣LED 的顯示控制方式與LED 數(shù)碼管的顯示方式類似,也是使用動(dòng)態(tài)掃描的工作方式。 上箭頭“”的碼表45點(diǎn)陣LED 顯示器Col+PA 口輸出值1(PA7)2(PA6)3(PA5)4(PA4)5(PA3)6(PA2)7(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論