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