并行IO接口結(jié)構(gòu)和具體應(yīng)用_第1頁
并行IO接口結(jié)構(gòu)和具體應(yīng)用_第2頁
并行IO接口結(jié)構(gòu)和具體應(yīng)用_第3頁
并行IO接口結(jié)構(gòu)和具體應(yīng)用_第4頁
并行IO接口結(jié)構(gòu)和具體應(yīng)用_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 并行I/O接口結(jié)構(gòu)和具體應(yīng)用復(fù)習(xí)單片機(jī)和AVR的微處理器結(jié)構(gòu)有什么不同?的內(nèi)部時(shí)鐘為( )MHZ是( )位單片機(jī),采用( )指令集,51采用( )指令集4. ISP-( )5.開發(fā)板上使用( )接口編程。6.在線編程時(shí),Codevision實(shí)現(xiàn)( ),AVR Studio實(shí)現(xiàn)( )AVR單片機(jī)控制發(fā)光二極管AVR單片機(jī)的并行I/O口結(jié)構(gòu)并行I/O口控制程序設(shè)計(jì)AVR單片機(jī)控制蜂鳴器和繼電器任務(wù)目的回顧實(shí)訓(xùn)程序/* 實(shí)訓(xùn)程序 */#include /包含語句#include /包含語句void main(void) /main主函數(shù) DDRA=0 xff; /初始化PA口 while(1) P

2、ORTA=0 xff; /PA=11111111 delay_ms(1000); /延時(shí)1000ms PORTA=0 x00; /PA=00000000 delay_ms(1000); /延時(shí)1000ms 回顧實(shí)訓(xùn)程序/* 實(shí)訓(xùn)程序 */#include /包含語句#include /包含語句void main(void) /main主函數(shù) DDRA=0 xff; /初始化PA口 while(1) PORTA=0 xff; /PA=11111111 delay_ms(1000); /延時(shí)1000ms PORTA=0 x00; /PA=00000000 delay_ms(1000); /延時(shí)10

3、00ms 主函數(shù)Main()一個(gè)C語言源程序是由一個(gè)或若干個(gè)函數(shù)組成,每一個(gè)函數(shù)完成相對獨(dú)立的功能。每個(gè)C程序都必須有(且僅有)一個(gè)主函數(shù)main() 程序總是從main()函數(shù)開始執(zhí)行。而不論其在程序中的位置如何。當(dāng)主函數(shù)執(zhí)行完畢時(shí),亦即程序執(zhí)行完畢。回顧實(shí)訓(xùn)程序/* 實(shí)訓(xùn)程序 */#include /包含語句#include /包含語句void main(void) /main主函數(shù) DDRA=0 xff; /初始化PA口 while(1) PORTA=0 xff; /PA=11111111 delay_ms(1000); /延時(shí)1000ms PORTA=0 x00; /PA=000000

4、00 delay_ms(1000); /延時(shí)1000ms 51單片機(jī)控制發(fā)光二極管電路AVR單片機(jī)的I/O基本概念何謂“寄存器”寄存器就是RAM中的一些特殊單元,映射片上外設(shè)的特殊功能何謂“IO口”可以將“0”與“1”轉(zhuǎn)換為電壓信號的端口單片機(jī)中最常用的TTL電平:0V代表“0”,+5V代表“1”Mega16有4個(gè)IO口:PA,PB,PC,PD基本概念I(lǐng)O口的性能指標(biāo)灌電流能力:能夠流入IO口的最大電流拉電流能力:能夠從IO口流出的最大電流上拉電阻:簡單來說就是把電平拉高,通常用10K的電阻接到Vcc電源上,再接到需要拉高電平的節(jié)點(diǎn)上。 下拉電阻:則是把電平拉低,電阻接到GND地線上,再接到需

5、要拉低電平的節(jié)點(diǎn)上。 IO口的兩種狀態(tài)輸入口模型輸出口模型IO口的輸出性能指標(biāo)AVR的IO口灌電流能力與拉電流能力均達(dá)30mA51的拉電流能力100uA,灌電流能力10mA灌電流能力:能夠流入IO口的最大電流拉電流能力:能夠從IO口流出的最大電流IO口的輸入性能指標(biāo)AVR的IO口輸入狀態(tài)時(shí)可配置上拉電阻,值為100k數(shù)量級最大輸入電壓范圍:能夠承受的最大輸入電壓范圍是否有上拉電阻AVR控制發(fā)光二極管電路I/O口結(jié)構(gòu)每個(gè)并行端口有三個(gè)相關(guān)的I/O寄存器:數(shù)據(jù)方向寄存器DDRx數(shù)據(jù)寄存器PORTx端口輸入引腳寄存器PINx(其中x對應(yīng)A、B、C、D四個(gè)端口 )每個(gè)并行端口有一個(gè)相關(guān)的I/O寄存器:

6、 Px(其中x對應(yīng)0、1、2、3四個(gè)端口 )AVR單片機(jī)51單片機(jī)I/O口結(jié)構(gòu)I/O口PA口PB口PC口PD口數(shù)據(jù)方向寄存器DDRADDRBDDRCDDRD輸出數(shù)據(jù)寄存器PORTAPORTBPORTCPORTD端口輸入引腳PINAPINBPINCPIND4個(gè)雙向I/O 端口都可以由指令設(shè)置為獨(dú)立的輸入或輸出口當(dāng)I/O口設(shè)置為輸入方式時(shí),引腳內(nèi)部還配置有上拉電阻,這個(gè)內(nèi)部上拉電阻可以通過編程設(shè)置為有效或者無效I/O口驅(qū)動能力非常強(qiáng),直接驅(qū)動LED、數(shù)碼管等發(fā)光I/O口結(jié)構(gòu)SFIOR-特殊功能I/O寄存器第2位PUD為“禁用上拉電阻”位,高電平使能,I/O端口上拉電阻禁止I/O口結(jié)構(gòu)芯片RESET

7、復(fù)位后,所有的I/O口的默認(rèn)狀態(tài)是為輸入方式,上拉電阻無效,即I/O口為輸入的三態(tài)狀態(tài)。輸入輸出及上拉定義PA口配置為輸出:DDRA=0 xff;PORTA=0 x55;PA口配置為不帶上拉輸入:DDRA=0 x00;PORTA=0 x00;i=PINA;PA口配置為帶上拉輸入:DDRA=0 x00;PORTA=0 xff;i=PINA;注意事項(xiàng)如果有引腳未被使用,建議這些引腳賦予一個(gè)確定電平。使能內(nèi)部上拉電阻。如果剛定義了引腳的輸入狀態(tài),就要立即回讀,可以在回讀前,插入一句 _nop()。系統(tǒng)復(fù)位時(shí),DDR全部為0,PORT也全部為0,故上拉電阻在復(fù)位時(shí)會失效。任務(wù)1跑馬燈設(shè)計(jì)一個(gè)燈逐漸從左

8、跑到右的程序設(shè)計(jì)流水燈程序的可移植性流水燈程序的可移植性/*51程序*/#include void main() unsigned char i,w; while(1) w=0 x01; for(i=0;i8;i+) P1=w; delay(20000); w=1; void delay(unsigned int i) unsigned int k; for(k=0;kI;k+); /*AVR程序*/#include #include void main() unsigned char i,w; /設(shè)置PA口為輸出方向 DDRA=0 xff; while(1) w=0 x01; for(i=0

9、;i8;i+) PORTA=w; delay_ms(200); w=1; 流水燈程序的可移植性修改頭文件 51: AVR: 修改I/O口及其設(shè)置 delay函數(shù)可以直接調(diào)用庫函數(shù)該頭文件中定義了ATmega16單片機(jī)中的寄存器sfrb PIND=0 x10;sfrb DDRD=0 x11;sfrb PORTD=0 x12;sfrb PINC=0 x13;sfrb DDRC=0 x14;sfrb PORTC=0 x15;sfrb PINB=0 x16;sfrb DDRB=0 x17;sfrb PORTB=0 x18;sfrb PINA=0 x19;sfrb DDRA=0 x1a;sfrb POR

10、TA=0 x1b;C語言與硬件環(huán)境的映射與寄存器同名的8/16位變量C語言函數(shù):各個(gè)變量之間的互動108/16位寄存器高電平低電平I/O;UART;SPI;IIC;.+5V(+3.3V)0V目標(biāo)代碼硬件實(shí)現(xiàn)各個(gè)寄存器之間的互動各個(gè)硬件模塊之間的互動編譯器編譯下載線下載編程器燒錄Jtag仿真器目標(biāo)仿真其他變量RAM中的數(shù)據(jù)RAM中的存儲單元任 務(wù) 2單片機(jī)的PA連接的8個(gè)發(fā)光二極管led按照以下方式顯示:8個(gè)燈快速閃動3次,再慢速閃動3次,然后再快速閃動3次,如此重復(fù)循環(huán)下去。C語言復(fù)習(xí)重中之重:選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)位操作單獨(dú)使PA0口LED燈拼命閃!任務(wù)38個(gè)LED發(fā)光二極管左閃、右閃、拼命閃任

11、務(wù)4左閃、右閃、拼命閃#include #include void main(void)unsigned char i;PORTA=0 x00;/輸出全部為低電平,關(guān)閉指示燈DDRA=0 xFF;/設(shè)置PA口全部為輸出while (1) for(i=0;i5;i+) PORTA=0 xFF; /我閃!拚命閃! delay_ms(100); for(i=0;i8;i+) PORTA=1i; /我左閃! delay_ms(200); for(i=0;ii; /我右閃! delay_ms(200); 任 務(wù) 3按照要求實(shí)現(xiàn)霓虹燈,循環(huán)往復(fù)。Ox03Ox0cOx30oxc課后拓展任務(wù)拓展訓(xùn)練2:實(shí)現(xiàn)P

12、A口前4個(gè)燈亮、后4個(gè)燈滅;延時(shí)200ms后,前4個(gè)燈滅、后4個(gè)燈亮;再延200ms,實(shí)現(xiàn)PA口的8個(gè)燈間隔點(diǎn)亮;延時(shí)200ms后,亮燈改為滅燈,滅燈改為亮燈;再延時(shí)200ms如此反復(fù)。拓展訓(xùn)練1:左右兩燈往里跑,跑至最中間后再往兩邊跑拓展訓(xùn)練3:1. 蜂鳴器、繼電器操作課后拓展3任務(wù)提示有源蜂鳴器的控制 有源蜂鳴器內(nèi)部有震蕩器,只需要有一定的電壓差(直流)加載蜂鳴器的正負(fù)極上,就可以發(fā)出單一的“滴”聲音。 有源蜂鳴器類似于發(fā)光二極管,但是由于其所需要的驅(qū)動電流一般在10mA左右,所以有的單片機(jī)(例如51單片機(jī))不能直接用I/O口控制。有源蜂鳴器的控制 用PNP型三極管來控制蜂鳴器,驅(qū)動其開和閉

溫馨提示

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

最新文檔

評論

0/150

提交評論