《通用IO接口》由會(huì)員分享,可在線閱讀,更多相關(guān)《通用IO接口(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、,,,,,,,,,單擊此處編輯母版標(biāo)題樣式,,單擊此處編輯母版文本樣式,,第二級(jí),,第三級(jí),,第四級(jí),,第五級(jí),,,,,,,,,,,通用,IO,接口,-1,本節(jié)要點(diǎn),,GPIO,基礎(chǔ)知識(shí),,K60 GPIO,模塊概要及編程要點(diǎn),,第一,個(gè),GPIO,程序,,3.,1,,GPIO基礎(chǔ)知識(shí),1,),I/O,接口的概念,I/O,接口,即輸入輸出接口,是微控制器同外界進(jìn)行交互的重要通道。,,在嵌入式系統(tǒng)中,接口千變?nèi)f化,種類繁多,有顯而易見的人機(jī)交互接口,如操縱桿、鍵盤、顯示器;也有無(wú)人介入的接口,如網(wǎng)絡(luò)接口、機(jī)器設(shè)備接口,等,。,,,,CPU,I/O,,接口,外設(shè),,,2,),I/O,接口要解決的問
2、題,:,速度匹配,(Buffer),,信號(hào)電平和驅(qū)動(dòng)能力,(,電平轉(zhuǎn)換器、驅(qū)動(dòng)器,),,,信號(hào)形式匹配,(A/D,、,D/A),,,信息格式,(,字節(jié)流、塊、數(shù)據(jù)包、幀,),,,時(shí)序配合,(,定時(shí)關(guān)系,),3.1 GPIO,的基本知識(shí),,I/O,信息的三種類型:,數(shù)據(jù)、命令、狀態(tài),。傳送這三類信息的通道分別稱為:數(shù)據(jù)端口、控制端口、狀態(tài)端口。,CPU,,I/O,,設(shè)備,譯碼,數(shù)據(jù)端口,狀態(tài)端口,控制端口,,,,,,,DB,AB,CB,3.1,GPIO的基本知識(shí),,通用,I/O,,也記為,GPIO,(,General Purpose I/O,),即基本的輸入,/,輸出,有時(shí)也稱并行,I/O,,或
3、普通,I/O,,它是,I/O,的最基本形式,。,3),通用,I/O,通用,I/O,接口一般應(yīng)具備:,,,放置工作方式控制字的寄存器,,放置輸入或輸出控制字的寄存器,,放置要交換數(shù)據(jù)的寄存器,,放置反映工作狀態(tài)的寄存器,3.1 GPIO,的基本知識(shí),4).,常用,I/O,輸入電路,輸入引腳有三種不同的連接方式:,,帶上拉電阻的連接,,帶下拉電阻的連接,,“,懸空,”,連接。,若,MCU,的某個(gè)引腳通過一個(gè)電阻接到電源(,Vcc,)上,這個(gè)電阻被稱為,“,上拉電阻,”,。,,,若,MCU,的某個(gè)引腳通過一個(gè)電阻接到地(,GND,)上,則相應(yīng)的電阻被稱為,“,下拉電阻,”,。,,懸空的芯片引腳被上拉
4、電阻或下拉電阻初始化為高電平或低電平。,,MCU,內(nèi)部程序向該引腳輸出高電平或低電平來驅(qū)動(dòng)器件工作,即開關(guān)量輸出。,,,O1,引腳是發(fā)光二極管,LED,的驅(qū)動(dòng)引腳,當(dāng),O1,引腳輸出高電平時(shí),,LED,不亮;當(dāng),O1,引腳輸出低電平時(shí),,LED,點(diǎn)亮。,,O2,引腳接蜂鳴器驅(qū)動(dòng)電路,當(dāng),O2,腳輸出高電平時(shí),蜂鳴器響;,O2,腳輸出低電平時(shí),蜂鳴器不響。,5,),I/O,輸出電路,3.2 K60 GPIO,模塊概要及編程要點(diǎn),1,).,K60 GPIO,模塊概要,可作為,GPIO,功能的引腳數(shù)目及引腳名稱:,,(,1,),A,口有,26,個(gè)引腳,,PTA0~PTA19,、,PTA24~PTA2
5、9,;,,(,2,),B,口有,20,個(gè)引腳,,PTB0~PTB11,、,PTB16~PTB23,;,,(,3,),C,口有,20,個(gè)引腳,,PTC0~PTC19,;,,(,4,),D,口有,16,個(gè)引腳,,PTD0~PTD15,;,,(,5,),E,口有,18,個(gè)引腳,,PTE0~PTE12,、,PTE24~PTE28,。,如何,對(duì),上述,IO,引腳進(jìn)行操作?,Not all pins within each port are implemented on each device.,,The following is the implement On device MK60DN512VMD1
6、0.,,(,1,),PORTA[29:24], PORTA[19:0], 26Pins,,(,2,),PORTB[23:16], POPTB[11:0],20Pins,,(,3,),POTRC[19:0],20Pins,,(,4,),PORTD[15:0],16Pins,,(,5,),PORTE[28:24],PORTE[12:0],18Pins,GPIO,,Registers,(,1,) Pin Control Register n (PORTx_PCRn),,引腳控制寄存器 n,,,,K60,的,I/O,口與其他功能模塊均能引腳復(fù)用。配置相關(guān)模塊的輸入輸出通道時(shí),要先對(duì),I/O,口的引腳復(fù)
7、用寄存器進(jìn)行配置。配置,GPIO,功能,只需配置第,8~10,位(,MUX,)。,Pin Control Register n (PORTx_PCRn),,引腳控制寄存器 n,,引腳復(fù)用功能選擇,,0,:不支持拉電阻,,1,: 支持拉電阻,0,:支持下拉電阻,,1,:支持上拉電阻,(,2,),GPIO,寄存器的概要說明:,,,,(,3,),系統(tǒng)時(shí)鐘門控寄存器 5,,K60,中每一個(gè)模塊都需要在,SIM,模塊中開啟或者關(guān)閉模塊的時(shí)鐘。通過設(shè)置,SIM_SCGC5,寄存器就可以為,I/O,模塊的,PORTA,、,PORTB,、,PORTC,、,PORTD,、,PORTE,提供時(shí)鐘,該寄存器在復(fù)位時(shí)
8、被清零,從而使得相應(yīng)模塊的時(shí)鐘被關(guān)閉。,打開A口,則SIM_SCGC5,|,=(1<<9);打開A、B口,則為 SIM_SCGC5,|,= ( (1<<9) | (1<<10) ),(2) 系統(tǒng)時(shí)鐘門控寄存器 5,GPIO,模塊的基本編程步驟,:,3,)通過設(shè)置,GPIOx_PDDR,來配置相應(yīng)引腳傳輸方向:“,1,”為輸出, “,0,”為輸入。,1,)通過設(shè)置,“,SIM_SCGC5”,寄存器來打開相應(yīng)端口時(shí)鐘。,2,)通過設(shè)置引腳控制寄存器來配置相應(yīng)引腳復(fù)用功能。,以,PA10,輸出為例,GPIO,模塊的基本編程步驟,:,4,)若是輸入引腳,則通過,GPIOx_PDIR,獲得引腳的狀態(tài),
9、: “0”,表示為低電平;,: “1”,表示為高電平。,5,)若是輸出引腳,則通過,GPIOx_PDOR,輸出低電平或高電平,對(duì)應(yīng)值為,0,或,1,。亦可通過,“,輸出置位寄存器,”,、,“,輸出清位寄存器,”,、,“,輸出取反寄存器,”,改變引腳狀態(tài)。,(,1,)置位。要將,R,的第,3,位置,1,,其他位不變,可以這樣做:,R |= (1<<3),,其中“,1<<3,”的結(jié)果是“,0b00001000,”,,R |= (1<<3),也就是,R=R|0b00001000,,任何數(shù)和,0,相或不變,任何數(shù)和,1,相或?yàn)?1,,這樣達(dá)到對(duì),R,的第,3,位置,1,,但不影響其他位的目的。,,(,
10、2,)清位。要將,R,的第,2,位清,0,,其他位不變,可以這樣做:,R &= -(1<<2),,其中“,-(1<<2),”的結(jié)果是“,0b11111011,”,,R&=-(1<<2),也就是,R=R&0b11111011,,任何數(shù)和,1,相與不變,任何數(shù)和,0,相與為,0,,這樣達(dá)到對(duì),R,的第,2,位清,0,,但不影響其他位的目的。,,(,3,)獲得某一位的狀態(tài)。,(R>>4) & 1,,是獲得,R,第,4,位的狀態(tài),“,R>>4,”是將,R,右移,4,位,將,R,的第,4,位移至第,0,位,即最后,1,位,再和,1,相與,也就是和,0b00000001,相與,保留,R,最后,1,位的值,
11、以此得到第,4,位的狀態(tài)值。,3.2.2,GPIO,模塊概要和編程要點(diǎn),3,.置位與清位的宏函數(shù),p48,第一個(gè)工程,:,控制發(fā)光二極管指示燈閃爍,要求,根據(jù)前面課上講解的知識(shí),設(shè)計(jì)程序,實(shí)現(xiàn),E4,燈閃爍。,#include "derivative.h,“,,void delay(void);,,/*********************************************************/,,int,main(,void,),,{,,SIM_SCGC5 = SIM_SCGC5_PORTA_MASK;,//,打開,A,口時(shí)鐘,,,值為,0x200u,,PORTA_PCR
12、10 |= (1<<8));,//,將,A,口,10,號(hào) 引腳配置為,GPIO,口功能,,,GPIOA_PDDR= 1<<10;,//,引腳配置為輸出功能,,,while(1),,{,,GPIOA_PTOR|=1<<10;,//,輸出取反寄存器;燈閃爍,,,delay();,//,延時(shí),,,},,return 0;,,},,void delay(),//,延時(shí)程序,,{ unsigned int i, n, m ;,,for(i=0;i<30000;i++),,,for(n=0;n<100;n++) m=m;,,,},第二個(gè)嵌入式,C,語(yǔ)言工程,:,對(duì)按鍵進(jìn)行查詢方式工作,啟動(dòng),/,停止
13、發(fā)光二極管閃爍,兩個(gè)按鍵分別接,PTA19,,,PTE26,,當(dāng)鍵按下,對(duì)應(yīng)引腳輸入低電平。輸入、設(shè)置內(nèi)部上拉電阻。,先畫流程圖,考慮好邏輯關(guān)系再編程。,,綜合練習(xí):,實(shí)驗(yàn)儀器上有兩個(gè)按鍵、四個(gè),LED,燈,請(qǐng)自己設(shè)計(jì)一個(gè)控制流程,希望把按鍵和,LED,都用上。,,例如:熒光棒,多種亮燈模式,通過按鍵切換模式。,關(guān)于上機(jī)實(shí)驗(yàn),,上機(jī)地點(diǎn):金智樓,4,樓,5# 6#,機(jī)房,,上機(jī)時(shí)間:,10.15 3~5,節(jié),,上機(jī)要求:完成本課件上的第,1,和第,2,個(gè)項(xiàng)目,,項(xiàng)目,1,)學(xué)習(xí),CW,軟件的使用,程序可直接拷貝,通過正確操作,完成程序的錄入、編譯和運(yùn)行;,,,項(xiàng)目,2,)仿照項(xiàng)目,1,)的程序,編制一個(gè),GPIO,輸入口的程序;,,項(xiàng)目,3,)綜合使用實(shí)驗(yàn)儀上的按鍵和,LED,,編寫一個(gè)程序。(第二次上機(jī)完成),