![AVRIO接口基本結構與輸出應用(參考)_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/1/f6076d78-8369-4e9c-a2bf-79388bce7273/f6076d78-8369-4e9c-a2bf-79388bce72731.gif)
![AVRIO接口基本結構與輸出應用(參考)_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/1/f6076d78-8369-4e9c-a2bf-79388bce7273/f6076d78-8369-4e9c-a2bf-79388bce72732.gif)
![AVRIO接口基本結構與輸出應用(參考)_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/1/f6076d78-8369-4e9c-a2bf-79388bce7273/f6076d78-8369-4e9c-a2bf-79388bce72733.gif)
![AVRIO接口基本結構與輸出應用(參考)_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/1/f6076d78-8369-4e9c-a2bf-79388bce7273/f6076d78-8369-4e9c-a2bf-79388bce72734.gif)
![AVRIO接口基本結構與輸出應用(參考)_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-6/1/f6076d78-8369-4e9c-a2bf-79388bce7273/f6076d78-8369-4e9c-a2bf-79388bce72735.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 ATmega16芯片有芯片有PORTA、PORTB、PORTC、PORTD(簡稱(簡稱PA、PB、PC、PD)4組組8位,共位,共32路通用路通用I/O接口,分接口,分別對應于芯片上別對應于芯片上32根根I/O引腳。所有這些引腳。所有這些I/O口都是口都是雙(有的為雙(有的為3)功能復用的功能復用的。 模擬集成電路的特點模擬集成電路的特點 模擬集成電路的特點模擬集成電路的特點 其中其中第一功能均第一功能均作為數(shù)字通用作為數(shù)字通用I/OI/O接口使用,接口使用,復用功能復用功能則分別用于中斷、時鐘則分別用于中斷、時鐘/ /計數(shù)器、計數(shù)器、USRATUSRAT、I2CI2C和和SPISPI串行通
2、串行通信、模擬比較、捕捉等應用。信、模擬比較、捕捉等應用。 通用通用I/O接口基本結構與輸出應用接口基本結構與輸出應用 I/O口的基本結構口的基本結構 每組每組I/OI/O口配備三個口配備三個8 8位寄存器,它們分別是方向控制寄存器位寄存器,它們分別是方向控制寄存器DDRxDDRx,數(shù)據(jù)寄存器,數(shù)據(jù)寄存器PORTxPORTx,和輸入引腳寄存器,和輸入引腳寄存器PINxPINx(x=ABCDx=ABCD)。)。I/OI/O口的工作方式和表現(xiàn)特征由這口的工作方式和表現(xiàn)特征由這3 3個個I/OI/O口寄口寄存器控制。存器控制。 方向控制寄存器方向控制寄存器DDRx用于控制用于控制I/O口的輸入輸出方
3、向,即控制口的輸入輸出方向,即控制I/O口的工作方式為輸出方式還是輸入方式??诘墓ぷ鞣绞綖檩敵龇绞竭€是輸入方式。當當DDRx=1時,時,I/O口處于輸出工作方式??谔幱谳敵龉ぷ鞣绞?。 當當PORTx=1時,時,I/O引腳呈現(xiàn)高電平,同時可提供輸出引腳呈現(xiàn)高電平,同時可提供輸出20mA的電流;而當?shù)碾娏?;而當PORTx=0時,時,I/O引腳呈現(xiàn)低電平,同時可引腳呈現(xiàn)低電平,同時可吸納吸納20mA電流。電流。 當當DDRx=0時,時,I/O處于輸入工作方式處于輸入工作方式 此時引腳寄存器此時引腳寄存器PINx中的數(shù)據(jù)就是外部引腳的實際電平,中的數(shù)據(jù)就是外部引腳的實際電平,通過讀通過讀I/O指令可將
4、物理引腳的真實數(shù)據(jù)讀入指令可將物理引腳的真實數(shù)據(jù)讀入MCU。此外,。此外,當當I/O口定義為輸入時(口定義為輸入時(DDRx=0),通過),通過PORTx的控制,的控制,可使用或不使用內部的上拉電阻??墒褂没虿皇褂脙炔康纳侠娮?。表表6.1是是AVR通用通用I/O端口的引腳配置情況端口的引腳配置情況 表中的表中的PUD為寄存器為寄存器SFIOR中的一位,它的作用相當中的一位,它的作用相當AVR全部全部I/O口內部上拉電阻的總開關。當口內部上拉電阻的總開關。當PUD=1時,時,AVR所有所有I/O內部上拉電阻都不起作用(全局內部上拉無效);而內部上拉電阻都不起作用(全局內部上拉無效);而PUD=
5、0時,時,各個各個I/O口內部上拉電阻取決于口內部上拉電阻取決于DDRXn的設置。的設置。 (1).使用使用AVR的的I/O口,首先要正確設置其工作方式,確定口,首先要正確設置其工作方式,確定其工作在輸出方式還是輸入方式。其工作在輸出方式還是輸入方式。 (2)當當I/O工作在輸入方式,要讀取外部引腳上的電平時,工作在輸入方式,要讀取外部引腳上的電平時,應讀取應讀取PINxn的值,而不是的值,而不是PORTxn的值。的值。 (3)當當I/O工作在輸入方式,要根據(jù)實際情況使用或不使用工作在輸入方式,要根據(jù)實際情況使用或不使用內部的上拉電阻。內部的上拉電阻。 (4)一旦將一旦將I/O口的工作方式由輸
6、出設置成輸入方式后,必口的工作方式由輸出設置成輸入方式后,必須等待一個時鐘周期后才能正確的讀到外部引腳須等待一個時鐘周期后才能正確的讀到外部引腳PINxn的值。的值。I/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
7、1 0 $1A($003A) 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 正確使用正確使用AVRAVR的的I/OI/O口要注意:口要注意:(1)(1)先正確設置先正
8、確設置DDRxDDRx方向寄存器,再進行方向寄存器,再進行I/OI/O口的讀寫操作??诘淖x寫操作。(2)AVR(2)AVR的的I/OI/O口口復位后復位后的初始狀態(tài)全部為的初始狀態(tài)全部為輸入工作方式輸入工作方式,內部上,內部上拉電阻無效。所以,外部引腳呈現(xiàn)三態(tài)高阻輸入狀態(tài)。拉電阻無效。所以,外部引腳呈現(xiàn)三態(tài)高阻輸入狀態(tài)。(3)(3)用戶程序需要首先對要使用的用戶程序需要首先對要使用的I/OI/O口進行初始化設置,根據(jù)口進行初始化設置,根據(jù)實際需要設定使用實際需要設定使用I/OI/O口的工作方式(輸出還是輸入),當設定口的工作方式(輸出還是輸入),當設定為輸入方式時,為輸入方式時,還要考慮是否使
9、用內部的上拉電阻還要考慮是否使用內部的上拉電阻。(4)(4)在硬件電路設計時,如能利用在硬件電路設計時,如能利用AVRAVR內部內部I/OI/O口的上拉電阻,可口的上拉電阻,可以節(jié)省外部的上拉電阻。以節(jié)省外部的上拉電阻。C語言中的位操作語言中的位操作 AVR通用通用I/O端口的主要特點為:端口的主要特點為:雙向可獨立位控的雙向可獨立位控的I/O口口Push-Pull大電流驅動大電流驅動 (最大最大40mA) 可控制的引腳內部上拉電阻可控制的引腳內部上拉電阻每一位引腳內部都有獨立的,可通過編程設置的,設定為上每一位引腳內部都有獨立的,可通過編程設置的,設定為上拉有效或無效的內部上拉電阻。當拉有效
10、或無效的內部上拉電阻。當I/O口被用于輸入狀態(tài),且口被用于輸入狀態(tài),且內部上拉電阻被激活(有效)時,如果外部引腳被拉低,則內部上拉電阻被激活(有效)時,如果外部引腳被拉低,則構成電流源輸出電流(構成電流源輸出電流(uA量級)。量級)??煽氐姆较蚣拇嫫骺煽氐姆较蚣拇嫫鱀DRxC語言中的位操作語言中的位操作 a | b - 按位或按位或 這個表達式指示中這個表達式指示中 a 被表達式中的被表達式中的b 按位進行或運算按位進行或運算 這慣用于打這慣用于打開某些位開某些位 尤其常用尤其常用|=的形式的形式 例如例如 PORTA |= 0 x80; / 打開位打開位 7 (最高位最高位) a & b -
11、 按位與按位與 這個運算在檢查某些位是否置這個運算在檢查某些位是否置 1 時有用時有用 例如例如 If (PORTA & 0 x81) = 0) / 檢查位檢查位 7 和位和位 0 注意圓括號需要括在注意圓括號需要括在&運算符的周圍運算符的周圍 因為它和因為它和= = 相比運算優(yōu)先相比運算優(yōu)先級較低級較低 這是這是 C 程序中很多錯誤的原因之一程序中很多錯誤的原因之一 a b - 按位異或按位異或 這個運算對一個位取反有用這個運算對一個位取反有用 例如例如 在下面的例子中在下面的例子中 位位 7 是被翻轉的是被翻轉的 PORTA = 0 x80; / 翻轉位翻轉位 7 a - 按位取反按位取反
12、 在表達式中這個運算執(zhí)行一個取反在表達式中這個運算執(zhí)行一個取反 當用按位與運算關閉某些位當用按位與運算關閉某些位時時 與這個運算組合使用尤其有用與這個運算組合使用尤其有用 如如 PORTA &= 0 x80;/ 關閉位關閉位 7 PORTC | = (1BIT0) |( 1BIT3); 1(BIT0)表示邏輯表示邏輯1左移到左移到PORTC 的0位,結果為位,結果為0b00000001; 1(BIT3) 表示邏輯表示邏輯1左移左移PORTC 的3位,結果為位,結果為0b00001000。0b00000001在同在同0b00001000相或相或,結果為,結果為0b00001001。 PORTD=
13、BIT(PD7) PORTD口的第口的第7位取反位取反/,取反,取反PD0引腳,引腳,TCCR0|=(1CS01)|(1CS00);TCCR0功能寄存器的功能寄存器的CS01 、CS00位置位置1。通用數(shù)字通用數(shù)字I/O口的設置與編程口的設置與編程 1. 通用通用I/O輸出設計要點輸出設計要點 應用應用I/O口輸出時,在系統(tǒng)的軟硬件設計上應注意的問題有:口輸出時,在系統(tǒng)的軟硬件設計上應注意的問題有: 輸出電平的轉換和匹配。輸出電平的轉換和匹配。 輸出電流的驅動能力。輸出電流的驅動能力。 I/O口輸出為口輸出為“1”時,可以提供時,可以提供20mA左右的驅動電流。輸左右的驅動電流。輸出為出為“0
14、”時,可以吸收時,可以吸收20mA左右的灌電流(最大為左右的灌電流(最大為40mA)。)。 輸出電平轉換的延時輸出電平轉換的延時。 應用舉例應用舉例: LED發(fā)光二極管的控制發(fā)光二極管的控制 設計一個帶有一排設計一個帶有一排8個發(fā)光二極管的簡易彩燈控制系統(tǒng)個發(fā)光二極管的簡易彩燈控制系統(tǒng) 硬件電路設計硬件電路設計 當電壓當電壓U1大于大于U2約約1V以上時,二極管導通以上時,二極管導通發(fā)光。當導通電流大于發(fā)光。當導通電流大于5mA時,人的眼睛時,人的眼睛就可以明顯地觀察到二極管的發(fā)光,導通就可以明顯地觀察到二極管的發(fā)光,導通電流越大,亮度越高。電流越大,亮度越高。 RVledUUI21 AVR的
15、的I/O口輸出口輸出“0”時,可以吸收時,可以吸收最大最大40mA的的電流,因此采電流,因此采用控制發(fā)光二用控制發(fā)光二極管負極的設極管負極的設計比較好。計比較好。 #include /包含單片機型號頭文件包含單片機型號頭文件#include /包含包含位位操作頭文件操作頭文件#include /包含延時頭文件包含延時頭文件#define LEDPORTB/LED端口端口 #define Open_LED PORTA|=0 x10 /使能使能LEDvoid En_Led(void) /使能使能LED DDRB=0 xff; /設置輸出設置輸出PORTB=0 xff;/輸出高電平輸出高電平Open
16、_LED;/打開打開LED功能功能void main(void) unsigned char i;En_Led();/使能使能LEDwhile(1)for(i=0;i1;i-) LED=0 xff; /LED全部熄滅全部熄滅LED&=BIT(i-2); /點亮相應位點亮相應位LEDdelay_nms(200);/延時大約延時大約100毫秒毫秒應用舉例應用舉例:繼電器控制繼電器控制 控制恒溫箱的加熱的硬控制恒溫箱的加熱的硬件電路設計件電路設計 恒溫箱的加熱源采用恒溫箱的加熱源采用500W電爐,電爐的工作電壓電爐,電爐的工作電壓220v,電流電流2.3A。選用。選用HG4200繼電器,開關負載能力
17、為繼電器,開關負載能力為5A/AC220V,繼電器吸合線圈的工作電壓繼電器吸合線圈的工作電壓5v,功耗,功耗0.36W,計算得吸合電流,計算得吸合電流為為0.36/5 = 72mA。因此,要能使繼電器穩(wěn)定的吸合,驅動電流。因此,要能使繼電器穩(wěn)定的吸合,驅動電流應該大于應該大于80mA。該電流已經超出。該電流已經超出AVR本身本身 I/O口的驅動能力,口的驅動能力,因此外部需要使用功率驅動元件。因此外部需要使用功率驅動元件。 I/O引腳輸出引腳輸出“1”時,時,三極管導通,繼電器三極管導通,繼電器吸合,電爐開始加熱。吸合,電爐開始加熱。I/O引腳輸出引腳輸出“0”時,時,三極管截止,繼電器三極管
18、截止,繼電器釋放,加熱停止。釋放,加熱停止。 PORTC | =(1 PORTC0) PORTC 位置位置1。繼電器吸合,電爐開始加熱。繼電器吸合,電爐開始加熱。PORTC & = (1 PORTC0)PORTC & = 0 x80 PORTC 位置位置0。繼電器釋放,加熱停止。繼電器釋放,加熱停止。 應用舉例應用舉例:LED數(shù)碼顯示器的應用數(shù)碼顯示器的應用 0-D7連接連接PB0-PB7,段選信號,段選信號SMGLK11連接連接PA3,位選信,位選信號號BITLK11連接連接PA2,74AC573SJ為鎖存器。為鎖存器。 #include /包含單片機型號頭文件包含單片機型號頭文件#include /包含包含位位操作頭文件操作頭文件#include /包含延時頭文件包含延時頭文件#include /包含通用函數(shù)及宏定義頭文件包含通用函數(shù)及宏定義頭文件/*/* 函數(shù)名稱函數(shù)名稱: Display_All_SMG() */* 功功 能能: 顯示顯示8位數(shù)據(jù)信息位數(shù)據(jù)信息 */* 參參 數(shù)數(shù): *pdata-顯示緩沖數(shù)組地址指針顯示緩沖數(shù)組地址指針 */void Display_All_SMG(unsig
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 出租閑置空地合同范本
- 個人樓房售賣合同范例
- 低保雇傭合同范例
- 豐田延保合同范例
- 關于并購資質合同范例
- 農場租房合同范例
- 中介租房三方合同范本
- 代加工白酒合同范例
- 勞動合同范例 出納
- 區(qū)域授權合同范本
- 簡易三方換地協(xié)議書范本
- 2025屆廣東省深圳羅湖區(qū)四校聯(lián)考九上數(shù)學期末綜合測試試題含解析
- 飛鼠養(yǎng)殖技術指導
- 2024年襄陽漢江檢測有限公司招聘筆試參考題庫附帶答案詳解
- 醫(yī)院檢驗科安全風險評估報告表單
- 高一北師大版歷史必修一知識點總結9篇
- 2024輸血相關知識培訓
- 2023年四川省綿陽市中考初中學業(yè)水平考試語文試題【含答案】
- 夏普LCD-46LX750A電視機使用說明書
- 正大天虹方矩管鍍鋅方矩管材質書
- 2024年山東魯商集團有限公司招聘筆試參考題庫含答案解析
評論
0/150
提交評論