版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章S12并行輸入/輸出接口5.1
I/O端口功能簡(jiǎn)介I/O端口:即輸入/輸出端口,是MCU與外界進(jìn)行交互的重要通道,實(shí)現(xiàn)各種接口。5.1.1
I/O端口簡(jiǎn)介MC9SDG128有豐富的I/O引腳,多功能、多復(fù)用A口、B口、E口、K口:(擴(kuò)展方式時(shí),可作總線)PORTA(0~7)PORTB(0~7)PORTE(0~7)PORTK(0~5)H口、J口、M口、S口、P口、T口:(復(fù)合功能,優(yōu)先權(quán)左右遞減)PORTH
---SPI/GPIOPORTJ
---CAN/I2C/GPIOPORTM
---CAN/BDLC/GPIOPORTS
---SCI/SPI/GPIOPORTP
---PWM/SPI/GPIOPORTT
---ECT/GPIO注:GPIO=通用并行輸入/輸出MCU5.1.
I/O端口功能通過(guò)設(shè)置相應(yīng)寄存器,實(shí)現(xiàn)以下功能:DDR寄存器---數(shù)據(jù)方向,定義是輸入還是輸出;PORTA、PORTB
、PTS
、PTH…;RDR寄存器
---
定PER寄存器
---
當(dāng)I使能內(nèi)部上拉或下拉;PIE寄存器
---
禁PPS寄存器
--
上1、PER有效時(shí),2、端口中斷允許義驅(qū)動(dòng)能力;/O口作為輸入口時(shí),定義是否止、允許端口中斷;下拉選擇:選擇上拉還是下拉時(shí),選擇上升沿還是下降沿觸發(fā)VccK2R4R3有下拉電阻R4VccK3R5I3“懸空”狀態(tài)I3MCU
I2K1R1R2有上拉電阻R2I1Vcc輸入電I/O寄存器
---
數(shù)據(jù)寄存路器框,圖定義輸出電平的高低;5.2
I/O端口設(shè)置A口、B口、E口、K口數(shù)據(jù)方向寄存器DDRA、DDRB、DDRE、DDRK某位:0---輸入,1---輸出數(shù)據(jù)寄存器PORTA、PORTB、PORTE、PORTK讀時(shí):各位得到外部引腳的邏輯電平;(數(shù)據(jù)方向?yàn)檩斎霑r(shí))寫時(shí):各位數(shù)據(jù)鎖存,并更新外部引腳的邏輯電平;上拉控制寄存器PUCR(8位同時(shí)上拉或無(wú)拉電阻)4口共用,PUPAE、PUPBE、PUPEE、PUPKE位為1使上拉;0無(wú)降功率驅(qū)動(dòng)控制寄存器RDRIV(8位同時(shí)全功率或降功率)4口共用,RDPA、RDPB、RDPE、RDPK位為使輸出降功率;0不降Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0PUPKE\\PUPEE\\PUPBEPUPAEBit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0RDPK\\RDPE\\RDPBRDPA2. H、M、P、S、T
口DDRx:數(shù)據(jù)方向寄存器LDAASTDA%11110000DDRH;高輸出;低輸入。PTx
:
I/O寄存器STDALDAAPTHPTH
;高4位輸出鎖存數(shù)據(jù);低4位引腳邏輯PTIx
輸入寄存器(只讀寄存器)
DDRx=0,反映輸入引腳電平高低;
DDRx=1,反映引腳超載或短路,1:異常,0:正常;LDAA
PTIH;RDRx
低功耗驅(qū)動(dòng)寄存器0:正常輸出;1:正常的1/6LDAA
#$F0 ;
STAARDRSPERx
上下拉使能寄存器(是否允許上下拉功能使用)0:禁止上拉或下拉;1:允許選擇上拉或下拉電阻;LDAA
#%10101010
;
STAA
RDRS列:LDAASTAALDAA#$00DDRP#$FF;P口輸入STAAPERP;P口上下拉使能LDAA#$0FSTAAPIEP;P口低4位中斷使能LADA#$0FSTAAPPSP;高4位上拉,無(wú)中斷;;低位下拉,上升沿引發(fā)中斷;PPSx
上下拉選擇寄存器(選擇具體是上拉還是下拉)①條件:引腳定義為輸入并且上下拉使能(PERx)
;0:上拉
;
1:下拉②條件:P、J、H(有中斷功能端口)且中斷使能。=1:滿足上下拉使能且輸入前提下,定義引腳為下拉,上升沿引發(fā)中斷;=0:滿足上下拉使能且輸入前提下,定義引腳為上拉,下降沿引發(fā)中斷;其它I/OAD口:作為作A通/D用轉(zhuǎn)I/換O??趬K時(shí)的與模前擬述量類輸似入,口作和其外它界功觸能略發(fā)過(guò)脈。沖的輸入口,也可以做為普通輸入口,PORTAD0,PORTAD1注:各寄存器,復(fù)位默認(rèn)值:00000000B;各口的數(shù)據(jù)方向?yàn)檩斎霑r(shí),內(nèi)部上、下拉才可設(shè)置有效;各口的數(shù)據(jù)方向?yàn)檩敵鰰r(shí),內(nèi)部上、下拉被禁止;各寄存器的均有實(shí)際存儲(chǔ)地址,但編程時(shí)使用寄存器名字即可PORTADx
僅能輸入,沒(méi)有數(shù)據(jù)方向寄存器。5.3
人機(jī)交互接口設(shè)計(jì)MCU與外設(shè)如何連接---接口,解決信息傳遞、控制交互…輸入設(shè)備---如按鍵、開(kāi)關(guān),鍵盤等;輸出設(shè)備---如LED燈、蜂鳴器、LED數(shù)碼管、LCD顯示屏等;基本原則:由外設(shè)確定硬件接口+軟件配合?!纠奎c(diǎn)亮LED燈,并使蜂鳴器發(fā)聲。;**************************ORG
$1000#$FFDDRB ;設(shè)置
#$FEPORTB ;輸出main:START:LDAASTAALDAASTAABRA
*+5VR1510LEDR21K+5VNPN8050BuzzerPB0PB1PB2PB3PB4PB5PB6PB7U0Freescale
MCU5.3.1
獨(dú)立式按鍵接口前圖中撥位開(kāi)關(guān)換為按鍵即可;程序也同前。硬件---開(kāi)關(guān)輸入低有效,上拉,S12可直接用內(nèi)部上拉軟件---查詢式,逐位檢測(cè)每個(gè)I/O引腳狀態(tài);獨(dú)立式按鍵結(jié)構(gòu)--檢測(cè)簡(jiǎn)單;占用I/O引腳多。按鍵數(shù)目較少時(shí)用5.3.2
按鍵去抖動(dòng)若常所按的鍵在閉合位置和斷開(kāi)位置之間抖動(dòng)幾下才穩(wěn)定下來(lái)抖動(dòng)持續(xù)的時(shí)間因操作者和按鍵特性而異,一般為5~10ms去抖動(dòng):克服檢測(cè)誤判
硬件方法---按鍵后端加雙穩(wěn)態(tài)觸發(fā)器
軟件方法---檢測(cè)到有鍵按下時(shí),延時(shí)10~20ms左右再檢測(cè),該鍵保持在按下?tīng)顟B(tài),則確定為按鍵按下;松按檢測(cè)同理。注:通常使用軟件去抖動(dòng)鍵盤的其它問(wèn)題還有:一鍵多能、多鍵同按……GN+5抖動(dòng)問(wèn)題:按鍵在按下或抬起時(shí),由于機(jī)械彈性的影響,通+5VR
到微處理器輸入端口
。。開(kāi)關(guān)開(kāi)始時(shí)的回彈
結(jié)束時(shí)的回彈開(kāi)關(guān)打開(kāi)
開(kāi)關(guān)打開(kāi)V(1)開(kāi)關(guān)閉合D(0)
鍵按下
t+5V+5V行線列線GND
+5VR1
R2
R3
R45.1K
5.1K
5.1K
5.1KPB0PB1PB2PB3PB4PB5PB6PB7U0Freescale
MCU+5VR5510LED1R6510LED2R7510LED3R8510LED4SW3-1SW3-4SW3-3SW3-2;*
按鍵檢查子程序:無(wú)鍵輸入直接退出,有鍵輸入時(shí)等松手后退出;*
出口參數(shù):Key_numb
=按鍵號(hào),0
無(wú)鍵,1-4
鍵號(hào)Test_key:;獨(dú)立式按鍵;屏蔽高4位影響PSHAMOVB
#0,
Key_NumbLDAA
PORTAORAA
#$F0COMABEQTest_key_RTS;無(wú)鍵輸入,直接退出JSR
DELAY_20MSLDAA
PORTA;;;Key_Numb;查鍵號(hào),條件控制循環(huán)Test_key_NEXT:
INCLSRABNETest_key_NEXTTest_key_LP1:;判松手LDAA
PORTAORAA
#$F0COMABNETest_key_LP1;未松手則繼續(xù)Test_key_RTS:JSR
DELAY_20MSPULARTS補(bǔ)充:多分支結(jié)構(gòu)程序設(shè)計(jì);根據(jù)鍵號(hào)執(zhí)行相應(yīng)子程序。KeyMain:; A=A
*
2
(分支編號(hào))JSR
Key16LDAA
Key_NumbLSLALDX
#Jmp_TableLDY A,
XJMP
YJmp_Table:
FDB
Key0SubFDB
Key1Sub….Key0Sub:FDB
Key16SubRTS
;
無(wú)鍵輸入Key1Sub:
…………RTSKey16Sub:
…………RTS5.3.3
矩陣式鍵盤接口也叫行列式鍵盤,行、列交叉處跨接按鍵;2x8,4x4,4x8,8x8等按鍵響應(yīng)方式:主程序循環(huán)查詢、中斷后檢測(cè)按鍵檢測(cè)方法:行掃描法
右圖,原理:1、全掃描各行送“0”,查是否有鍵按下
2、逐行掃描逐行送“0”,確定哪行、哪列鍵按下行反轉(zhuǎn)法R15.1KR25.1KR35.1KR45.1K+5VPA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7U0Freescale
MCUS1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16R1
5.1KR2
5.1KR3
5.1KR4
5.1K+5VPA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7U0Freescale
MCUS1S2S3S4S5S6S7S8S9S10S11S12S13S14S15S16鍵值計(jì)算方法(以符號(hào)“1”為例)VDDMCU內(nèi)部上拉電阻PTA0PTA1PTA2PTA3PTA7PTA6PTA5PTA4列線n1
n2
n3
n4行線m1m2m3m4123A456B789C*
0#D輸出輸入7
6
5
4
3
2
1
0PTA口11101110鍵值=$EE123A456B7*809#CD鍵值計(jì)算方法(以符號(hào)“8”為例)VDDMCU內(nèi)部上拉電阻PTA0PTA1PTA2PTA3PTA7PTA6PTA5PTA4列線n1
n2
n3
n4行線m1m2m3m4123A456B789C*
0#D輸出輸入7
6
5
4
3
2
1
0PTA口11011011鍵值=$DB123A456B7*809#CD問(wèn)題:如果輸入是A口低4位,輸出高4位鍵值是$BD鍵值計(jì)算按前圖的接法可以得出鍵值表,如右。鍵值可以通過(guò)掃描法獲得,由鍵值通過(guò)查表法編程得到真正定義值。(即書例5-6)行掃描法匯編程序1EE2DE3BEA7E4ED5DD6BDB7D7EB8DB9BBC7B*E70D7#B7D77定義值鍵值112233A4455667B879810911C12*13014#15D16定義值鍵值;
讀鍵盤口:入口: B
=
輸出行號(hào);
出口:A=列值及相關(guān)標(biāo)志位;DDRA=$F0,PA0~PA3輸入(列);PA4~PA7輸出(行);;條件A
內(nèi)部上拉電阻,按鍵有效時(shí)為“0”InKeyPort:STABPORTALDAAPORTAORAA#$F0;高4位無(wú)用,屏蔽COMA;高4位始終為$0RTS程序分析:B=0時(shí),4行A口輸出4個(gè)低電平,如果有按鍵,則A口輸入端必定有一個(gè)以上0返回,判斷有無(wú)鍵按下;如果無(wú)鍵按下,A
返回時(shí)零當(dāng)B=7,3,1,0時(shí),可以分別測(cè)試1,2,3,4行是否有建按下;取反指令使得有鍵按下時(shí)A寄存器位非零;;
讀鍵盤口:入口: B
=
輸出行號(hào)出口:A=列值及相關(guān)標(biāo)志位DDRA=
$F0;;InKeyPort:STAB
PORTALDAA
PORTAORAA
#$F0COMARTS;非編碼鍵盤:無(wú)鍵輸入退出。;出口參數(shù):Key_numb=0無(wú)鍵,1-16鍵號(hào)Key16:
PSHDMOVB #0,
Key_Numb;測(cè)試所有4行;判斷有無(wú)鍵;無(wú)鍵退出CLRBBSR
InKeyPortBEQ
Key16_RTSJSR
DELAY_20MSLDAB
#$7F
;開(kāi)始逐行掃描K16NL:
BSR
InKeyPortBNE
Key16_LP1;加一行Key_Numb#4Key_NumbLDAAADDASTAALSRBCMPB
#$07;下一行;容錯(cuò)處理BNE
K16NLMOVB#0,
Key_NumbKey16_LP1:Key16_LP2:BRA
Key16_RTSINC
Key_NumbLSRABNECLRBBSRBNEKey16_LP1;對(duì)所有行
InKeyPortKey16_LP2JSR
DELAY_20MSKey16_RTS:
PULDRTS程序功能:是否有鍵按下是什么鍵好鍵釋放否+5V+5V行線列線GND
+5VR1
R2
R3
R45.1K
5.1K
5.1K
5.1KPB0PB1PB2PB3PB4PB5PB6PB7U0Freescale
MCU+5VR5510LED1R6510LED2R7510LED3R8510LED4SW3-1SW3-4SW3-3SW3-2重慶大學(xué)通信工程學(xué)院 任勇;*
按鍵檢查子程序:無(wú)鍵輸入直接退出,有鍵輸入時(shí)等松手后退出;*
出口參數(shù):Key_numb
=按鍵號(hào),0
無(wú)鍵,1-4
鍵號(hào)Test_key:;獨(dú)立式按鍵;屏蔽高4位影響PSHAMOVB
#0,
Key_NumbLDAA
PORTAORAA
#$F0COMABEQTest_key_RTS;無(wú)鍵輸入,直接退出JSR
DELAY_20MSLDAA
PORTA;;;Key_Numb;查鍵號(hào),條件控制循環(huán)Test_key_NEXT:
INCLSRABNETest_key_NEXTTest_key_LP1:;判松手LDAA
PORTAORAA
#$F0COMABNETest_key_LP1;未松手則繼續(xù)Test_key_RTS:JSR
DELAY_20MSPULARTS6.4
人機(jī)交互接口設(shè)計(jì)LED數(shù)碼管的工作原理結(jié)構(gòu)7段,8個(gè)發(fā)光二極管(字段),組合顯示出數(shù)字、字符分:共陰極(給1,段亮);共陽(yáng)極(給0,段亮)提供段驅(qū)動(dòng)電流,并加適當(dāng)限流電阻字形編碼見(jiàn)表6-1譯碼分類軟件譯碼(查表)硬件譯碼(專用芯片)掃描分類靜態(tài)掃描動(dòng)態(tài)掃描VCCe d
GND
c
dp1
2
3
4
510
9
8
7
6g f
GND
a
babcdefgdp(a)
外形結(jié)構(gòu)與引腳(b)
共陰極(C)共陽(yáng)極6.4.2
數(shù)碼管編程實(shí)例掃描法LED顯示編程原理abcdefgdpabcdefgdpabcdefgdpabcdefgdpCS3
CS2
CS1
CS0位選線掃描法:CS0~CS3中只有一個(gè)為0。位選線掃描法:CS0~CS3中只有一個(gè)為0。6.4.3
LED數(shù)碼管顯示匯編程序設(shè)計(jì)DISP:LDXLDY#$2000#TABLELDAB
#$FFCLC;準(zhǔn)備完畢LP:LDAA#$FFSTAAPTT;關(guān)LEDLDAA
X;取數(shù)LDAA
A,Y;查段碼STAA
PTP;P口輸出ROLB;左移位選STAB
PTT;T口輸出BSR
DELAY10msINX
;指針加1CPX
#2004 ;比較BNE
LP ;4次循環(huán)RTS
;返回gdpfabcdeCOMgdpfabcdeCOMgdpfabcdeCOMgdpfabcdeCOM限限限限PP0
PP1
PP2
PP3
PP4
PP5
PP6
PP7PT0
PT1
PT2
PT3
PT4
PT5
PT6
PT7U0Freescale
MCUEntry:LDAA#$FF;P、STAADDRP;T口STAADDRT;輸出LOOP:JSRDISPBRALOOPTABLE:DC.B
$3F,$06,$5B,$4F,$66,$6D,$7D,
07,$7F,$6F列5-5:共陰、動(dòng)態(tài)顯示4位BCD碼($2000開(kāi)始存放)的程序示.本章習(xí)題:S12MCU的I/O口有哪些?各能復(fù)用為什么功能?A口作為通用I/O口時(shí)有哪幾個(gè)幾個(gè)寄存器?A口、B口的數(shù)據(jù)方向寄存器和上拉控制寄存器的作用是什么?編寫匯編程序:連接在PB4~PB7有4個(gè)LED燈,實(shí)現(xiàn)跑馬燈顯示。畫電路圖:實(shí)現(xiàn)4x4矩陣鍵盤+4位LED數(shù)碼管顯示。通讀書例5-10匯編程序,理解并學(xué)習(xí)鍵盤、數(shù)碼管的軟件編程。列5-6$2000KEYNUMB
EQUDELAY:
CLCLDAA#$00STAA
KEYNUMBLDY
#TABLE2LP3:
LDAB
YINYLDAA
KEYVALSBABEQ
DISPLAY1INC
KEYNUMBLDAA
KEYNUMB#$10NOKEYLP3LDABSBABEQBRANOKEY:
RTS#$01 ;共陽(yáng)
PTTKEYNUMB;#TABLE3B,YPTPDISPLAY1:
LDAASTAALDABCOUNTER1:
LDYLDAASTAARTSTABLE2:
FCB
$ee,$de,$be,$7e,$ed,$dd,$bd,$7d,$eb,$db,$bb,$7b,$e7,$d7,$b7,$77;4x4行列鍵值,預(yù)定義的,16個(gè)可能的讀回值TABLE3:
FCB
$f9,$a4,$b0,$99,$92,$82,$f8,$80,$90,$c0,$88,$83,$c6,$a1,$86,$8e;共
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年抗氧劑1010搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年北京市金屬包裝容器制造行業(yè)產(chǎn)銷需求及投資策略研究報(bào)告
- 2024-2030年全球及中國(guó)高級(jí)陶瓷和納米陶瓷粉末市場(chǎng)產(chǎn)銷規(guī)模及銷售效益預(yù)測(cè)報(bào)告版
- 2024-2030年全球及中國(guó)自熱食品行業(yè)盈利模式及營(yíng)銷推廣策略報(bào)告
- 2024-2030年全球及中國(guó)無(wú)鹵素藥芯焊錫絲行業(yè)發(fā)展動(dòng)態(tài)及前景規(guī)劃分析報(bào)告
- 2024-2030年全球及中國(guó)巧克力制造機(jī)行業(yè)應(yīng)用前景及投資盈利預(yù)測(cè)報(bào)告
- 2024-2030年全球及中國(guó)地板機(jī)器人吸塵器行業(yè)銷售情況及競(jìng)爭(zhēng)趨勢(shì)預(yù)測(cè)報(bào)告
- 2024-2030年全球健康醫(yī)療大數(shù)據(jù)行業(yè)競(jìng)爭(zhēng)格局及發(fā)展模式研究報(bào)告
- 2024-2030年供水管道(水管)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- 2024-2030年中國(guó)麻紡織行業(yè)市場(chǎng)競(jìng)爭(zhēng)格局及未來(lái)投資趨勢(shì)分析報(bào)告
- 培訓(xùn)班授課教師課時(shí)費(fèi)用領(lǐng)取表
- 2023年10月秘書學(xué)概論自考試卷及答案
- 小學(xué)數(shù)學(xué)教育現(xiàn)狀與發(fā)展趨勢(shì)分析
- 新版袁行霈中國(guó)文學(xué)史第3版
- 特殊教育概論第二版PPT完整全套教學(xué)課件
- 臨床藥學(xué)基地管理細(xì)則
- 中藥飲片采購(gòu)配送服務(wù)投標(biāo)方案
- 中國(guó)流行音樂(lè) 課件-2022-2023學(xué)年高中音樂(lè)湘教版(2019)必修音樂(lè)鑒賞下篇
- 《商務(wù)禮儀》案例分析題匯編
- 孫子兵法-湖南大學(xué)中國(guó)大學(xué)mooc課后章節(jié)答案期末考試題庫(kù)2023年
- 新湘少版英語(yǔ)四年級(jí)上冊(cè):unit10 Welcome to our home!說(shuō)課稿
評(píng)論
0/150
提交評(píng)論