PIC07輸入輸出端口的基本功能.ppt
《PIC07輸入輸出端口的基本功能.ppt》由會員分享,可在線閱讀,更多相關(guān)《PIC07輸入輸出端口的基本功能.ppt(14頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第六章輸入輸出端口的基本功能,在PIC16F87X單片機(jī)中,28引腳型號的單片機(jī)有3個I/O端口,分別是RA、RB和RC;40引腳型號單片機(jī)有5個I/O端口,分別是RA、RB、RC、RD和RE。其中RA有6條口線,RE有3條口線,其余都有8條口線。PIC16F87X端口口線既可作普通I/O引腳,又可作某些部件或外圍模塊的外接引腳,比如端口引腳RC.4既可用作普通I/O腳,又可以作為SPI串行通信的數(shù)據(jù)輸入引腳。本章只介紹端口的基本功能和基本用法,端口的其他復(fù)合功能,在以后章節(jié)中介紹。,6.1與輸入/輸出端口相關(guān)的2個寄存器PIC單片機(jī)中各個I/O端口都具備兩個基本的專用寄存器:端口數(shù)據(jù)寄存器和端口方向寄存器。如下所示。,這些寄存器在RAM中都有統(tǒng)一的編址,即PIC單片機(jī)的端口都可以當(dāng)作RAM單元來訪問,而無需專門的指令來訪問。,6.2輸入/輸出端口的基本結(jié)構(gòu)PIC16F87X的5個端口不但結(jié)構(gòu)上存在差異,而且同一端口的各口線的內(nèi)部結(jié)構(gòu)也略有差別,但是他們的基本結(jié)構(gòu)模型,如下圖所示。圖中有三個D觸發(fā)器(也稱為鎖存器),其中DataLatch代表了端口數(shù)據(jù)寄存器,例如PORTA、PORTB、PORTC;TRISLatch端口方向寄存器,例如TRISA、TRISB、TRISC;而InputLatch是端口設(shè)置為輸入時作為緩沖器。㈠基本輸入/輸出端口的工作原理下面對端口口線進(jìn)行的基本操作說明如下:,⒈寫I/O方向寄存器TRISLatch當(dāng)方向寄存器中的內(nèi)容為1時,則對應(yīng)口線被設(shè)置為輸入;當(dāng)其內(nèi)容為0時,則對應(yīng)引腳設(shè)置為輸出。⒉經(jīng)端口引腳輸出數(shù)據(jù)要把端口口線作為輸出,必須要把該口線預(yù)先設(shè)定為輸出態(tài),即相應(yīng)的TRISLatch的內(nèi)容必須為0。⒊從端口引腳輸入數(shù)據(jù)要把端口口線作為輸入,必須要把該口線預(yù)先設(shè)定為輸出態(tài),即相應(yīng)的TRISLatch的內(nèi)容必須為1。,6.3輸入/輸出端口基本功能的應(yīng)用舉例下面的實例是單鍵觸發(fā)8位二進(jìn)制累加計數(shù)器,是針對端口功能和ICD在線調(diào)試器上的硬件為基礎(chǔ)而設(shè)計的。該實例中要用到的演示板上的部分硬件電路如下圖所示。圖中端口RC外接8條支路,這8條支路構(gòu)成了端口RC的輸出電路,其中8只電阻起限流作用,保護(hù)端口引腳和發(fā)光二極管LED;LED在高電平時發(fā)光。圖中還使用了端口RB的RB0口線作為外接輸入引腳。電阻R4為限流電阻,對RB0引腳起,保護(hù)作用;電阻R21為上拉電阻,將RB0電平拉高;開關(guān)SW1用來人工輸入低電平脈沖信號。程序設(shè)計思路本實例是把演示板當(dāng)做一個計數(shù)器。剛接通電源時,8只發(fā)光二極管都不亮,表示計數(shù)器初始值為0。按下開關(guān)SW1時,計數(shù)器值加l,D0點亮,表示二進(jìn)制數(shù)00000001B,然后松開按鈕;再次按下SW1時,計數(shù)器值又加1,D1點亮,表示二進(jìn)制數(shù)00000010B,然后再松開按鈕;依次類推。直到按了255次按鈕時,D7~D0全部點亮,假如再次按動按鈕將使計數(shù)器回0。如此循環(huán)往復(fù)。,設(shè)計按鈕輸入程序時,有一點需要注意,就是必須處理按鈕在按下或松開時存在抖動現(xiàn)象,以免產(chǎn)生誤判。按鈕的去抖動一般都是調(diào)用延遲程序來消除抖動的。即在程序設(shè)計中,當(dāng)查詢到RB0上的首次電平變化后,馬上延遲τ(例如10ms),待RB0上的狀態(tài)穩(wěn)定后,再次查詢確認(rèn),果真是按鍵動作(按下或者松開),方認(rèn)定為有效,否則,判為干擾脈沖。程序清單如下:STATUSEQU03HPORTBEQU06HTRISBEQU86H,PORTCEQU07HTRISCEQU87HDATA1EQU20H;DATA1為延時變量DATA2EQU21H;DATA2為延時變量N1EQUD13;外層循環(huán)延時常數(shù)N2EQU0FFH;內(nèi)層循環(huán)延時常數(shù)RP0EQU5H;體選位RP0ORG000HBSFSTATUS,RP0;切換到RAM的體1MOVLW00H;將端口C設(shè)為輸出MOVWFTRISCMOVLW0FFH;將端口B設(shè)置為輸入MOVWFTRISBBCFSTATUS,RP0;恢復(fù)到RAM的體0,MOVLW00H;初始化端口CMOVWFPORTCLPBTFSCPORTB,0;測試SW1按下否?GOTOLP;否!則循環(huán)檢測CALLDELAY;調(diào)用延時程序去抖動BTFSCPORTB,0;再次測試SW1按下否?GOTOLP;否!則循環(huán)檢測INCFPORTC,1;PORTC+1->PORTCLP1BTFSSPORTB,0;測試SW1斷開否GOTOLP1;否!則循環(huán)檢測CALLDELAY;消除斷開抖動BTFSSPORTB,0;再次測試SW1斷開否GOTOLP1;否!則循環(huán)檢測GOTOLP;返回,DELAYMOVLWN1;N1→DATA1MOVWFDATA1LOOP0MOVLWN2;N2→DATA2MOVWFDATA2LOOP1DECFSZDATA2,1;DATA2-1→DATA2,;若為0則跳轉(zhuǎn)GOTOLOOP1DECFSZDATA1,1;DATA1-1→DATA1,;若為0跳轉(zhuǎn)GOTOLOOP0RETURNEND;源程序結(jié)束以下是用C語言編寫的程序:,#include#defineN113#defineN20 xffstaticvolatilebitPORTB0@(unsigned)},voidDELAY(){DATA1=N1;LP0:DATA2=N2;LP1:ifDATA2-->0gotoLP1;ifDATA1-->0gotoLP0;return;},- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- PIC07 輸入輸出 端口 基本功能
鏈接地址:http://www.820124.com/p-11497584.html