章并行輸入輸出接口_第1頁
章并行輸入輸出接口_第2頁
章并行輸入輸出接口_第3頁
章并行輸入輸出接口_第4頁
章并行輸入輸出接口_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

重慶大學(xué)通信工程學(xué)院任勇第5章并行輸入/輸出接口5.1并行I/O接口功能描述

I/O接口:即輸入/輸出端口,是MCU與外界進(jìn)行交互的重要通道,實(shí)現(xiàn)各種接口。GPIO=通用并行輸入/輸出5.1.1簡介

S12(X)MCU有豐富的I/O引腳,多功能、多復(fù)用,復(fù)用功能優(yōu)先A口、B口、E口、K口:(擴(kuò)展方式時,可作總線)PA[7:0]------擴(kuò)展/GPIOPB[7:0]------擴(kuò)展/GPIOPE[7:0]------擴(kuò)展/GPIOPK[7:0]------控制/GPIO

H口、J口、M口、S口、P口、T口:(復(fù)合功能,優(yōu)先權(quán)左右遞減

)PH[7:0]------SPI/GPIOPJ[7:0]------SCI、I2C/GPIOPM[7:0]------CAN/GPIOPP[7:0]------PWM/GPIOPS[7:0]------SCI、SPI/GPIOPT[7:0]------TIM/GPIO

PAD[15:0]------ATD/GPIO

重慶大學(xué)通信工程學(xué)院任勇5.1.2I/O端口功能通過設(shè)置相應(yīng)的I/O接口寄存器,實(shí)現(xiàn)多種功能:DDRx寄存器---數(shù)據(jù)方向,定義是輸入還是輸出PORTx(PTx)寄存器---數(shù)據(jù)I/O寄存器,定義電平的高低,如PORTARDRx寄存器---定義驅(qū)動能力PERx寄存器---當(dāng)I/O口作為輸入口時,定義是否使用內(nèi)部上拉或下拉PIEx寄存器---定義有無中斷功能PPSx寄存器---1、端口中斷允許時:選擇上升沿還是下降沿觸發(fā)

2、PER有效時,選擇上拉還是下拉如:BSETDDRP,#$01;設(shè)置P口第0位為輸出上/下拉電阻---用于輸入,重要,須接目的:使該引腳始終處于非激活電平且不浮動狀態(tài)。上拉常用

而:FreescaleMCU內(nèi)部集成,方便重慶大學(xué)通信工程學(xué)院任勇輸入輸出方向的改變

S12X復(fù)位時,GPIO默認(rèn)為輸入;初始化時設(shè)定為避免:當(dāng)輸入轉(zhuǎn)輸出時,將數(shù)據(jù)寄存器的可能的激活電平(如1)輸出,引起誤動作。先將非激活電平(如0)寫入到數(shù)據(jù)寄存器,再改變數(shù)據(jù)方向例:應(yīng)先BCLRPTP,#$01;P口的數(shù)據(jù)寄存器第0位清0

然后BSETDDRP,#$01;改變方向?yàn)檩敵?/p>

……

再BSETPTP,#$01;P口數(shù)據(jù)寄存器第0位置1,輸出1

重慶大學(xué)通信工程學(xué)院任勇5.2并行I/O接口寄存器的使用與配置

總體原則:

各寄存器的復(fù)位默認(rèn)值通常為:00000000B;各口的數(shù)據(jù)方向?yàn)檩斎霑r,內(nèi)部上、下拉電阻才可設(shè)置有效;各口的數(shù)據(jù)方向?yàn)檩敵鰰r,內(nèi)部上、下拉電阻被禁止;各口除作為通用I/O使用外的其它功能將放在相關(guān)功能模塊中描述;各寄存器可以按位獨(dú)立設(shè)置某個,而不影響其它引腳功能。各寄存器均有自己的獨(dú)立地址,它們被分配在存儲器地址$0000~$027F處,但編程時使用寄存器名即可;

MCU型號不同時有些引腳資源未提供,此時對應(yīng)寄存器設(shè)置位自然失效;其中P口、H口、J口在做并行輸入口時可配置為中斷輸入信號(用于鍵盤);有關(guān)中斷的寄存器:邊沿方式PPSx、中斷使能PIEx、中斷標(biāo)志PIFx;

AD口:作為A/D轉(zhuǎn)換模塊的模擬量輸入口和外界觸發(fā)脈沖的輸入口;也可以做為通用數(shù)字輸入/輸出口。重慶大學(xué)通信工程學(xué)院任勇具體示例

1.A口、B口、E口、K口數(shù)據(jù)方向寄存器DDRA、DDRB、DDRE、DDRK

某位:0---輸入,1---輸出

數(shù)據(jù)I/O寄存器PORTA、PORTB、PORTE、PORTK

讀時:各位得到外部引腳的邏輯電平;(數(shù)據(jù)方向?yàn)檩斎霑r)寫時:各位數(shù)據(jù)鎖存,并更新外部引腳的邏輯電平;

上拉控制寄存器PUCR

4口共用,PUPAE、PUPBE、PUPEE、PUPKE位為1使上拉;0無

降功率驅(qū)動控制寄存器RDRIV

4口共用,RDPA、RDPB、RDPE、RDPK位為使輸出降功率;0不降Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PUPKE\\PUPEE\\PUPBEPUPAEBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDPK\\RDPE\\RDPBRDPA重慶大學(xué)通信工程學(xué)院任勇2.T口數(shù)據(jù)方向寄存器DDRT

0---輸入,1---輸出數(shù)據(jù)寄存器PTT(ECT)

I/O數(shù)據(jù),復(fù)用ECT輸入寄存器PTIT

一直為讀引腳降功率驅(qū)動寄存器RDRT

1---降功率為1/5,0-不降上下拉使能寄存器PERT

1---使能,0---禁止極性選擇寄存器PPST

1---下拉,0---上拉

Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PERT7PERT6PERT5PERT4PERT3PERT2PERT1PERT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PTT7PTT6PTT5PTT4PTT3PTT2PTT1PTT0I/OC7I/OC6I/OC5I/OC4I/OC3I/OC2I/OC1I/OC0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDRT7RDRT6RDRT5RDRT4RDRT3RDRT2RDRT1RDRT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0DDRT7DDRT6DDRT5DDRT4DDRT3DDRT2DDRT1DDRT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PTIT7PTIT6PTIT5PTIT4PTIT3PTIT2PTIT1PTIT0Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PPST7PPST6PPST5PPST4PPST3PPST2PPST1PPST0重慶大學(xué)通信工程學(xué)院任勇3.S口4.M口5.P口6.H口7.J口8.其它I/O

AD口:作為A/D轉(zhuǎn)換模塊的模擬量輸入口和外界觸發(fā)脈沖的輸入口,也可以做為普通輸入/輸出口注:各寄存器,復(fù)位默認(rèn)值:00000000B;各口的數(shù)據(jù)方向?yàn)檩斎霑r,內(nèi)部上、下拉才可設(shè)置有效;各口的數(shù)據(jù)方向?yàn)檩敵鰰r,內(nèi)部上、下拉自動被禁止;各寄存器情況可用時再行查閱,其復(fù)用功能放在相關(guān)功能模塊中;各寄存器的均占存儲地址($0000~$03FF),但編程時使用寄存器名字即可與T口類似,相應(yīng)寄存器用時再查;其中H口、J口在做通用輸入/輸出口,可配置為中斷輸入信號(用于鍵盤),增加了有關(guān)中斷的寄存器:

邊沿方式PPSx、中斷使能PIEx、中斷標(biāo)志PIFx重慶大學(xué)通信工程學(xué)院任勇人機(jī)交互接口設(shè)計:

MCU與外設(shè)如何連接---接口,解決信息傳遞、控制交互…

輸入設(shè)備---如按鍵、開關(guān),鍵盤等;輸出設(shè)備---如LED燈、蜂鳴器、LED數(shù)碼管、LCD顯示屏等;如果外部設(shè)備連接的是高電壓器件、工業(yè)電器設(shè)備、電器執(zhí)行機(jī)構(gòu)等,還需要考慮加入光電隔離、繼電器等手段,但對于單片機(jī)的輸入輸出來說始終只關(guān)心數(shù)字邏輯。

基本原則:由外設(shè)確定硬件接口+軟件配合【例5-1】點(diǎn)亮LED燈,并使蜂鳴器發(fā)聲;**************************

main:START:LDAA#$FFSTAADDRB;設(shè)為輸出

LDAA#$7ESTAAPORTB;輸出電平

BRA*

5.3應(yīng)用實(shí)例:數(shù)字量輸入/輸出接口設(shè)計

重慶大學(xué)通信工程學(xué)院任勇【例5-2】根據(jù)撥位開關(guān)的狀態(tài),點(diǎn)亮或熄滅對應(yīng)的LED燈,并轉(zhuǎn)向不同的處理程序。(假設(shè)同時只有一個開關(guān)接通)(如圖,此與XDT512實(shí)驗(yàn)核心板一致)

SW:LDAA#$F0STAADDRB;設(shè)B口方向LOOP:LDAAPORTB;讀B口到ATFRA,B;轉(zhuǎn)存到BLSLB;邏輯左移

LSLB;低位補(bǔ)0LSLBLSLBSTABPORTB;亮、滅燈

RORA;循環(huán)右移

BCCPRO1;C=0轉(zhuǎn)

RORABCCPRO2RORABCCPRO3RORABCCPRO4BRALOOP;循環(huán)檢測PRO1:……PRO2:……PRO3:……PRO4:……問:希望不外接上拉電阻,應(yīng)如何處理?重慶大學(xué)通信工程學(xué)院任勇5.4鍵盤輸入接口設(shè)計

1.按鍵去抖動

抖動問題:按鍵在按下或抬起時,由于機(jī)械彈性的影響,通常所按的鍵在閉合位置和斷開位置之間抖動幾下才穩(wěn)定下來。抖動持續(xù)的時間因操作者和按鍵特性而異,一般為5~10ms。去抖動:克服檢測誤判硬件方法---按鍵后端加雙穩(wěn)態(tài)觸發(fā)器軟件方法---檢測到有鍵按下時,延時10~20ms左右再檢測,若該鍵保持在按下狀態(tài),則確定為按鍵按下;松按檢測同理。注:通常使用軟件去抖動。鍵盤的其它問題還有:一鍵多能、多鍵同按……2.獨(dú)立式按鍵接口前圖中撥位開關(guān)換為按鍵即可;程序也同前。硬件---開關(guān)輸入低有效,上拉(S12X可直接用內(nèi)部上拉)

軟件---查詢式,逐位檢測每個I/O引腳狀態(tài);為低有按獨(dú)立式按鍵結(jié)構(gòu)--檢測簡單;占用I/O引腳多。按鍵數(shù)目較少時用重慶大學(xué)通信工程學(xué)院任勇【例5-3】獨(dú)立式按鍵子程序(A口4鍵);*****************************************************************************;按鍵檢查子程序:無鍵按下直接退出,有鍵輸入時等松按后退出;出口參數(shù):Key_numb=按鍵號,0無按鍵,1-4鍵號;*****************************************************************************Test_key: PSHA MOVB#0,Key_Numb LDAAPORTA ORAA#$F0 COMA BEQTest_key_RTS;無鍵按下,直接退出

JSRDELAY_20ms;去抖動Test_key_NEXT: INCKey_Numb LSRA

;查鍵號,條件控制循環(huán)

BCCTest_key_NEXTTest_key_LP1:LDAAPORTA ORAA#$F0 COMABNETest_key_LP1;等松按

JSRDELAY_20ms;去抖動Test_key_RTS:PULARTS問:Key_Numb如何預(yù)定義Key_NumbEQU$2000重慶大學(xué)通信工程學(xué)院任勇3.矩陣式鍵盤接口

也叫行列式鍵盤,行、列交叉處跨接按鍵;4x4,2x8,4x8,8x8等按鍵響應(yīng)方式:主程序循環(huán)查詢、中斷后檢測行掃描法按鍵識別方法,右圖,原理:1、全掃描各行全送“0”,查是否有鍵按下2、逐行掃描逐行分別送“0”,確定哪行、哪列鍵按下4根行線分別接至PA0~3,4根列線分別接至PA4~7。重慶大學(xué)通信工程學(xué)院任勇鍵值計算按前圖的接法可以得出鍵值表,如右,鍵值可以通過掃描法獲得。

由鍵值通過查表法編程轉(zhuǎn)換為真正的自定義值(見例5-6)行掃描法匯編程序,例5-4見書1EE2DE3BEA7E4ED5DD6BDB7D7EB8DB9BBC7B

*E70D7#B7D77定義值鍵值鍵盤的中斷響應(yīng)方法①加接中斷電路:將所有列線接到一個多輸入與門上(如4與門74LS21),與門的輸出接到MCU的輸入中斷引腳(如IRQ)。主程序中仍然實(shí)施全掃描,一旦有鍵按下,與門的輸出會出現(xiàn)低電平,響應(yīng)這個輸入中斷,在中斷服務(wù)程序中實(shí)施逐行掃描查鍵值和后續(xù)鍵盤功能處理。這樣的好處是可以減少程序主循環(huán)查詢對MCU的負(fù)擔(dān)。②利用MCU資源:在FreescaleS12X單片機(jī)應(yīng)用系統(tǒng)中,鍵盤可以接在有中斷功能的P口、H口或J口,這樣可以省略行掃描法中的全掃描步驟(內(nèi)部下拉情況下),并且不需要加接電路。一旦有鍵按下,則進(jìn)入中斷服務(wù)程序,直接實(shí)施逐行掃描查鍵值和后續(xù)鍵盤功能處理。這樣更簡捷方便。重慶大學(xué)通信工程學(xué)院任勇5.5LED數(shù)碼管顯示接口設(shè)計結(jié)構(gòu)

7段(8段),8個發(fā)光二極管(字段),組合顯示出數(shù)字、字符分:共陰極(給1,段亮);共陽極(給0,段亮)亮:提供段驅(qū)動電流,并加適當(dāng)限流電阻

字形編碼

段碼,見表6-1譯碼分類軟件譯碼(查表)硬件譯碼(專用芯片)

掃描分類靜態(tài)顯示(同時都亮)動態(tài)掃描(20ms)(a)外形結(jié)構(gòu)與引腳(共陰)(b)共陰極(C)共陽極重慶大學(xué)通信工程學(xué)院任勇【例5-5】硬件電路圖如下:4位連排數(shù)碼管(公共端位選信號)

共陰、動態(tài)顯示4位BCD碼(已存放在$2000開始處)的程序示例:DISP:LDX#$2000LDY#TABLELDAB#$FFCLC;準(zhǔn)備完畢LP:

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論