第6章 通用IO接口的基本結構與輸出應用_第1頁
第6章 通用IO接口的基本結構與輸出應用_第2頁
第6章 通用IO接口的基本結構與輸出應用_第3頁
第6章 通用IO接口的基本結構與輸出應用_第4頁
第6章 通用IO接口的基本結構與輸出應用_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

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

3、作方式為輸出方式還是輸入方式??诘墓ぷ鞣绞綖檩敵龇绞竭€是輸入方式。當當DDRx=1時,時,I/O口處于輸出工作方式??谔幱谳敵龉ぷ鞣绞?。 當當PORTx=1時,時,I/O引腳呈現高電平,同時可提供輸出引腳呈現高電平,同時可提供輸出20mA的電流;而當的電流;而當PORTx=0時,時,I/O引腳呈現低電平,同時可引腳呈現低電平,同時可吸納吸納20mA電流。電流。 5當當DDRx=0時,時,I/O處于輸入工作方式處于輸入工作方式 此時引腳寄存器此時引腳寄存器PINx中的數據就是外部引腳的實際電平,中的數據就是外部引腳的實際電平,通過讀通過讀I/O指令可將物理引腳的真實數據讀入指令可將物理引腳的真實

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

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

6、成輸入方式后,必須后,必須等待一個時鐘周期后等待一個時鐘周期后才能正確的讀到外部才能正確的讀到外部引腳引腳PINxn的值的值。8I/O端口寄存器端口寄存器 PA口寄存器口寄存器PORTA、DDRA、PINA各個位的具體定義各個位的具體定義 位 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 復 位 值 0 0 0 0 0 0 0 0 位 7 6 5 4 3 2 1 0 $1A($003A)

7、 DDA7 DDA6 DDA5 DDA4 DDA3 DDA2 DDA1 DDA0 DDRA 讀/寫 R/W R/W R/W R/W R/W R/W R/W R/W 復位值 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 復位值 N/A N/A N/A N/A N/A N/A N/A N/A 9 正確使用正確使用AVRAVR的的I/OI/O口要注意:口要注意:(1)(1)先正確設置先正確設置DDRxDDRx方

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

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

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

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

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

13、運算執(zhí)行一個取反 當用按位與運算關閉某些位當用按位與運算關閉某些位時時 與這個運算組合使用尤其有用與這個運算組合使用尤其有用 如如 PORTA &= 0 x80;/ 關閉位關閉位 7 14PORTC | = (1BIT0) |( 1BIT3); 1(BIT0)表示邏輯表示邏輯1左移到左移到PORTC 的0位,結果為位,結果為0b00000001; 1(BIT3) 表示邏輯表示邏輯1左移左移PORTC 的3位,結果為位,結果為0b00001000。0b00000001在同在同0b00001000相或相或,結果為,結果為0b00001001。 PORTD=BIT(PD7) PORTD口的第口的第7

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

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

16、吸收時,可以吸收最大最大40mA的的電流,因此采電流,因此采用控制發(fā)光二用控制發(fā)光二極管負極的設極管負極的設計比較好。計比較好。 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應用舉例應用舉例:繼電器控制繼電器控制 控制恒溫

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

18、件。因此外部需要使用功率驅動元件。 I/O引腳輸出引腳輸出“1”時,時,三極管導通,繼電器三極管導通,繼電器吸合,電爐開始加熱。吸合,電爐開始加熱。I/O引腳輸出引腳輸出“0”時,時,三極管截止,繼電器三極管截止,繼電器釋放,加熱停止。釋放,加熱停止。 19PORTC | =(1 PORTC0)/PORTC 位置位置1。繼電器吸。繼電器吸合,電爐開始加熱。合,電爐開始加熱。PORTC & = (1 PORTC0)PORTC & = 0 x80 /PORTC 位置位置0。繼電器釋放,。繼電器釋放,加熱停止。加熱停止。 20應用舉例應用舉例:步進電機控制步進電機控制21硬件電路硬件電路22程序程序

19、#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端口應用實例7段LED顯示器 在單片機系統(tǒng)中在單片機系統(tǒng)中,常用的顯示器有常用的顯示器有:發(fā)光二極管顯示器發(fā)光二極管顯示

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

21、段顯示示, ,此外還有共陽極和陰極之分等。此外還有共陽極和陰極之分等。 三種顯示器中三種顯示器中, ,以熒光管顯示器亮度最高以熒光管顯示器亮度最高, ,發(fā)光二極發(fā)光二極管次之管次之, ,而液晶顯示器最弱而液晶顯示器最弱, ,為被動顯示器為被動顯示器, ,必須有外光必須有外光源。源。 限于篇幅限于篇幅, ,我們介紹我們介紹7 7段段LEDLED顯示器顯示器。25LED顯示器是單片機應用系統(tǒng)中常用的價廉顯示器是單片機應用系統(tǒng)中常用的價廉輸出設備。輸出設備。 它是由若干個發(fā)光二極管組成的它是由若干個發(fā)光二極管組成的,當發(fā)光二極管當發(fā)光二極管導通時導通時,相應的一個點或一個筆畫發(fā)亮??刂撇煌鄳囊粋€

22、點或一個筆畫發(fā)亮??刂撇煌M合的二極管導通組合的二極管導通,就能顯示出各種字符。就能顯示出各種字符。 發(fā)光二極管的陽極連在一起的稱為發(fā)光二極管的陽極連在一起的稱為共陽極顯示共陽極顯示器器,陰極連在一起的稱為陰極連在一起的稱為共陰極顯示器共陰極顯示器。 26對于共陰極LED,欲點亮的段在字節(jié)中所處的位為“1”, 對于共陽極LED,欲點亮的段在字節(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)顯示和動態(tài)顯示兩種顯顯示器有靜態(tài)顯示和動態(tài)顯示兩種顯示方式,分述如下:

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

25、方式靜態(tài)顯示方式30.LED .LED 動態(tài)顯示方式動態(tài)顯示方式動態(tài)顯示動態(tài)顯示就是一位一位地輪流點亮顯示就是一位一位地輪流點亮顯示器各個位(掃描),對于顯示器的每一位來說,器各個位(掃描),對于顯示器的每一位來說,每隔一段時間點亮一次。每隔一段時間點亮一次。 顯示器的亮度既與導通電流有關,也與點顯示器的亮度既與導通電流有關,也與點亮時間和間隔時間的比例有關。調整電流和時間亮時間和間隔時間的比例有關。調整電流和時間參數,可實現亮度較高較穩(wěn)定的顯示。參數,可實現亮度較高較穩(wěn)定的顯示。 31多位段多位段LED動態(tài)顯示器電路動態(tài)顯示器電路 在多位在多位LED顯示時顯示時,為了簡化硬件電路為了簡化硬件

26、電路,通常將所在位通常將所在位段選線相應地并聯在一起段選線相應地并聯在一起,由一個由一個(7段段LED)8位位I/O口控制口控制,形成段線的多路復用。而各位的共陽極或共陰極分別由形成段線的多路復用。而各位的共陽極或共陰極分別由相應的相應的I/O口線控制口線控制,實現各位的分時選通。實現各位的分時選通。.LED .LED 動態(tài)顯示方式動態(tài)顯示方式32.LED .LED 動態(tài)顯示方式動態(tài)顯示方式掃描顯示方式掃描顯示方式,即在某一時刻即在某一時刻,只讓某一位的位選線只讓某一位的位選線處于選通狀態(tài)處于選通狀態(tài),而其它各位的位選線處于關閉狀態(tài)而其它各位的位選線處于關閉狀態(tài),同時同時,段選線上輸出相應位要

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

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

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

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

31、之則暗一些。 通常,每個數碼管點亮的持續(xù)時間為1-2ms。我們將每個數碼管的點亮持續(xù)時間定為2ms,那么6 個數碼管掃描一遍的時間為12ms,因此MCU 還有13ms 的時間處理其它事件 39二、動態(tài)顯示接口二、動態(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;/任何時刻只有一個管亮,即只有一個I/O口輸出為低void display(void) /

32、掃描顯示函數,執(zhí)行時間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) / 時間值送顯示緩沖區(qū)函數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 (+time1 = 60) time1 = 0

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

溫馨提示

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

評論

0/150

提交評論