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