




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、AVRAVR單片機(單片機(C C語言)項目開發(fā)實踐語言)項目開發(fā)實踐教程項目教程項目4 ATmega164 ATmega16單片機單片機IOIO接口接口應用應用v任務一 項目知識點學習v任務二 LED閃爍燈控制v任務三 LED開關燈控制v任務四 汽車轉向燈控制v任務五 霓虹燈控制v任務六 繼電器控制照明設備項目四 ATmega6單片機單片機I/O口應用口應用【知識目標知識目標】v了解LED發(fā)光二極管的驅動控制方法v了解ATmega16單片機數(shù)字I/O口的結構v了解ATmega16單片機數(shù)字I/O口的相關寄存器功能【項目知識點與技能點】【項目知識點與技能點】v掌握單片機控制LED發(fā)光二極管驅動
2、電路的連接方法v掌握ATmega16單片機數(shù)字I/O口的相關寄存器功能的設置v掌握單片機控制數(shù)字I/O口進行開關量控制的程序編寫、調試方法 任務一任務一 項目知識點學習項目知識點學習ATmega16單片機有單片機有32個通用個通用I/O接口,分為接口,分為PORTA、PORTB、PORTC、PORTD四個四個8位接口,分位接口,分別對應于芯片上的別對應于芯片上的32個個I/O引腳。所有的引腳。所有的I/O接口都有復接口都有復用功能。第一功能均作為數(shù)字通用用功能。第一功能均作為數(shù)字通用I/O接口使用,而復用接口使用,而復用功能分別用于中斷、定時功能分別用于中斷、定時/計數(shù)器、計數(shù)器、USART、
3、I2C、SPI、模擬比較、捕捉等應用。模擬比較、捕捉等應用。ATmega16單片機的外部引腳:單片機的外部引腳:Vcc, GND 2XTAL1, XTAL2 2RESET 1AVCC,GND 2AREF 1PA0PA7 8PB0PB7 8 PC0PC7 8PD0PD7 8DIP封裝封裝40腳腳一、一、 I/O端口的基本結構端口的基本結構從圖中可以看出,每組I/O口配備三個8位寄存器,它們分別是方向控制寄存器DDRx,數(shù)據(jù)寄存器PORTx,和輸入引腳寄存器PINx(x=ABCD)。I/O口的工作方式和表現(xiàn)特征由這3個I/O口寄存器控制。 在GCCAVR C環(huán)境中,頭文件“io.h”中定義了許多用
4、于控制I/O接口輸入/出操作的宏,這些宏與I/O寄存器同名,通過這些宏可以控制A、B、C、D接口的輸入輸出操作。 當A、B、C、D接口用于數(shù)據(jù)I/O口時,通過DDRx、PORTx和PINx三個宏控制接口的輸入與輸出(其中x為A、B、C或D)。例如: DDRA為A口數(shù)據(jù)方向寄存器,用來定義A口的通訊方向(輸入/輸出); PORTA為A口數(shù)據(jù)寄存器,用來輸出數(shù)據(jù)(輸入時,PORTX為高,打開上拉電阻);當PORTx=1時,I/O引腳高電平,可提供輸出20mA電流;當PORTx=0時,I/O引腳低電平,可吸納20mA電流。因此,AVR的I/O在輸出方式下提供了比較大驅動能力,可以直接驅動LED等小功
5、率外圍器件。 PINA用來讀取A口數(shù)據(jù)(只讀)。二、二、I/O接口的寄存器接口的寄存器二、二、I/O接口的寄存器接口的寄存器v數(shù)據(jù)方向寄存器:DDRX(DDRA)-可讀寫DDRA.0DDRA.00DDRA.1DDRA.10 0DDRA.2DDRA.20 0DDRA.3DDRA.30 0DDRA.4DDRA.40 0DDRA.5DDRA.50 0DDRA.6DDRA.60 0DDRA.7DDRA.70 0復位值復位值位位v數(shù)據(jù)寄存器:PORTX(PORTA )-可讀寫PORTA.0PORTA.00PORTA.1PORTA.10 0PORTA.2PORTA.20 0PORTA.3PORTA.30
6、0PORTA.4PORTA.40 0PORTA.5PORTA.50 0PORTA.6PORTA.60 0PORTA.7PORTA.70 0復位值復位值位位二、二、I/O接口的寄存器接口的寄存器v端口輸入寄存器:PINX(PINA)-只讀PINA.0PINA.0N/APINA.1PINA.1N/APINA.2PINA.2N/APINA.3PINA.3N/APINA.4PINA.4N/APINA.5PINA.5N/APINA.6PINA.6N/APINA.7PINA.7N/A復位值復位值位位v特殊功能寄存器:SFIORPSR10PSR100PSR2PSR20 0PSR1PSR10 0PUDPUD0
7、 0- -0 0ADTS0ADTS00 0ADTS1ADTS10 0ADTS2ADTS20 0復位值復位值位位 BIT3PUD:Pull up disable置位時,禁用上拉電阻,即使是將寄存器置位時,禁用上拉電阻,即使是將寄存器DDxn 和和PORTxn 配置為使配置為使能上拉電阻,能上拉電阻,I/O端口的上拉電阻也被禁止。端口的上拉電阻也被禁止。 當DDRA的某位為0時,送到方向鎖存器的輸出端為0,相應位只能作輸入。 char a;DDRA=0 x00;PORTA=0 x0F; a=PINA;/ A口作為輸入/ 低4位使用內部上拉電阻/ 讀取A口的值到變量a二、二、I/O接口的寄存器接口的
8、寄存器當DDRA的某位為1時,送到方向鎖存器的輸出端為1,相應位只能作輸出。如程序段: char a; a=0 x11; DDRA=0 xFF; PORTA=a;/ 賦值00010001/ A口8腳都作輸出/將a的值通過PA口輸出接口名稱接口名稱方向控制宏方向控制宏引腳輸入宏引腳輸入宏引腳輸出宏引腳輸出宏接口性質接口性質PADDRAPINAPORTAI/OPBDDRBPINBPORTBI/OPCDDRCPINCPORTCI/OPDDDRDPINDPORTDI/O 注:因為所有IO接口都具有不同的第二功能,因此實際的接口電路都與前面介紹的有所不同,要詳細了解請查閱相關資料。 與A口類似,用于對P
9、B口控制三個特定宏為:DDRB、PINB、PORTB;用于對PC口控制三個特定宏為: DDRC、PINC、PORTC;用于對PD口控制三個特定宏為: DDRD、PIND、PORTD。綜上所述,4個并行接口的情況如表所示。ATmega16單片機的單片機的IO引腳結構圖:引腳結構圖:AVR I/O口引腳配置表DDRXnDDRXnPORTXnPORTXnPUDPUDI/OI/O方向方向上拉電阻上拉電阻引腳狀態(tài)說明引腳狀態(tài)說明0 00 0X X輸入輸入無效無效高阻態(tài)高阻態(tài)0 01 10 0輸入輸入有效有效外部引腳拉低時外部引腳拉低時將輸出電流將輸出電流0 01 11 1輸入輸入無效無效高阻態(tài)高阻態(tài)1
10、10 0X X輸出輸出無效無效輸出低電平(吸輸出低電平(吸收電流)收電流)1 11 1X X輸出輸出無效無效輸出高電平(輸輸出高電平(輸出電流)出電流)ATmega16 單片機單片機I/O端口的主要特點端口的主要特點 雙向可獨立位控的I/O口。 ATmega16有A、B、C、D四個并行(8位字長)輸入輸出端口。能一次輸入/輸出一個字節(jié)的數(shù)據(jù)。 Push-Pull大電流驅動(最大40mA)。每個I/O口輸出方式均采用推挽式緩沖器輸出,提供大電流的驅動,可以輸出(吸入)20mA的電流,因而能直接驅動LED顯示器。 可控制的引腳內部上拉電阻。 DDRx可控的方向寄存器。首先要根據(jù)系統(tǒng)的硬件設計情況,
11、設定各個I/O口的工作方式:輸入或輸出工作方式輸入或輸出工作方式,即先正確設置DDRx方向寄存,再進行I/O接口的讀/寫操作。當將當將I/O接口定義為數(shù)字輸入口時,還應注意是接口定義為數(shù)字輸入口時,還應注意是否需要將該口內部的上拉電阻設置為有效。否需要將該口內部的上拉電阻設置為有效。在設計電路時,如果能利用ATmega16單片機內部的I/O接口上拉電阻,則可節(jié)省外部的上拉電阻。在GCCAVR中,可以直接使用C語言對I/O接口寄存器進行操作。三、通用數(shù)字三、通用數(shù)字I/O接口的設置與讀寫操作接口的設置與讀寫操作C語言:位操作語言:位操作v“按位或按位或”用于打開某一位或某幾位,即用于打開某一位或
12、某幾位,即置位置位#includeunsigned char gtmpAvoid main() unsigned char tmpB; PORTA|=0 x80; tmpB|=0 x80; /將端口將端口A的第七位置的第七位置“1”/將局部變量的第七位置將局部變量的第七位置“1”/將全局變量的第七位置將全局變量的第七位置“1”v“按位取反按位取反”用于關閉某一位或某幾位,即用于關閉某一位或某幾位,即清零清零#includeunsigned char gtmpA;void main() unsigned char tmpB; PORTA &=0 x80; tmpB &=0 x80
13、; gtmpA &=0 x80;/將端口將端口A的第七位清零的第七位清零/將局部變量的第七位清零將局部變量的第七位清零/將全局變量的第七位清零將全局變量的第七位清零C語言:位操作語言:位操作v“按位異或按位異或”用于翻轉(用于翻轉(取反取反)某一位或某幾位)某一位或某幾位#includeunsigned char gtmpAvoid main() unsigned char tmpB; PORTA = 0 x80; tmpB = 0 x80; gtmpA = 0 x80;/將端口將端口A的第七位翻轉的第七位翻轉/將局部變量的第七位翻轉將局部變量的第七位翻轉/將全局變量的第七位翻轉將全局
14、變量的第七位翻轉C語言:位操作語言:位操作v“按位與按位與”用于檢查某一位或某幾位是否為用于檢查某一位或某幾位是否為1 #includeunsigned char gtmpAvoid main() unsigned char tmpB; while(tmpB&0 x80) if(PINA&0 x80) PORTA &=0 x80; else /查詢局部變量第七位是否為查詢局部變量第七位是否為“1”/查詢查詢PA.7是否為是否為“1”/關閉關閉A端口第七位端口第七位C語言:位操作語言:位操作vDDRA=0 xFF;/PA口的07位設置為輸出vPORTA0 x0F;/PA口
15、的03位輸出為高電平,47位輸出為低電平 在GCCAVR的頭文件中定義#define_BV(PXx) (1 (x)1(x)表示邏輯“1”左移x位,_BV(PX1)為邏輯“1”左移1位,結果為0b00000010,_BV(PX7)為邏輯“1”左移7位0b10000000。 vDDRA|=_BV(PA1)|_BV(PA7);/PA口的第1位和第7位置高電平輸出vPORTA|=_BV(PA1);/PA口第1位輸出高電平vPORTA&=BV(PA7);/PA口第7位輸出低電平1、設置I/O接口為輸出方式vDDRA=0 x00;/PA口的07位設置為輸入vPORTA0 xF0;/PA口的47位設
16、置內部上拉電阻使能,03位的內部上拉電阻沒有使用,外部引腳呈現(xiàn)三態(tài)高阻輸入狀態(tài)vif(PINA&0 x80) /判斷PA口第7位的高低電平狀態(tài)2、設置I/O接口為輸入方式需求分析:在試驗裝置上有8只發(fā)光二極管接在PC口,每只發(fā)光管低電平點亮。如果按圖所示的方式點亮,每次點亮兩只發(fā)光管,間隔0.2秒后,再換成點亮相鄰的兩只,依此類推,4次后,再回到第一次,周而復始,形成彩燈的移動。第一次第二次第三次第四次76543210四、舉例四、舉例任務任務2 LED閃爍燈控制閃爍燈控制v一、任務要求:一、任務要求:利用ATmega16單片機數(shù)字I/O口,編程實現(xiàn)控制一個LED發(fā)光二極管的閃爍亮滅,通
17、過編寫程序,可改變LED發(fā)光二極管閃爍的頻率。v二、硬件電路v三、程序流程任務任務3 LED開關燈控制開關燈控制v一、任務要求:一、任務要求:利用ATmega16單片機數(shù)字I/O口,編程實現(xiàn)用一個開關控制LED發(fā)光二極管的亮滅,開關閉合時LED亮,開關斷開時LED熄滅。v二、硬件電路v三、程序流程任務任務4 汽車轉向燈控制汽車轉向燈控制v一、任務要求:一、任務要求:利用ATmega16單片機數(shù)字I/O口,編程實現(xiàn)模擬汽車轉向燈的控制,當開關在中間原位時左右兩個轉向燈均不亮,當開關撥到上面時右轉向燈閃爍點亮,當開關撥到下面時左轉向燈閃爍點亮。v二、硬件電路v三、程序流程任務任務5 霓虹燈控制霓虹燈控制v一、任務要求:一、任務要求:利用ATmega16單片機數(shù)字I/O口,編程實現(xiàn)8個LED燈的左右來回循環(huán)點亮,形成走馬燈形式。(也可根據(jù)需要編程實現(xiàn)多種花樣的LED燈點亮形
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院幼兒護理視頻課件
- 2024年智能人體秤項目投資申請報告代可行性研究報告
- 2024年硅系鐵合金資金籌措計劃書代可行性研究報告
- 落實檢察官登記管理辦法
- 2024年特種運輸資金需求報告代可行性研究報告
- 融媒體教室使用管理辦法
- 衡水消防車管理辦法規(guī)定
- 行政執(zhí)法公務員管理辦法
- 裝配式住宅運輸管理辦法
- 西安市疫情分級管理辦法
- 2025至2030中國素食食品行業(yè)發(fā)展分析及發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025年天津出租車考試資料
- 2024年廣州市荔灣區(qū)社區(qū)專職招聘筆試真題
- 《人工智能基礎與應用》課件 項目1 認識人工智能
- 網絡貨運安全管理制度
- 2025至2030全球及中國溴化聚苯乙烯(BPS)行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 文化認同機制構建-洞察及研究
- 校園外賣公司管理制度
- BA系統(tǒng)對電氣設備動力柜(箱)的自控接口要求
- 汕尾市市直單位招聘政府聘員筆試真題2024
- 遼寧省鐵嶺市鐵嶺縣2023-2024學年七年級下學期7月期末考試地理試卷(含答案)
評論
0/150
提交評論