PIC07輸入輸出端口的基本功能.ppt_第1頁
PIC07輸入輸出端口的基本功能.ppt_第2頁
PIC07輸入輸出端口的基本功能.ppt_第3頁
PIC07輸入輸出端口的基本功能.ppt_第4頁
PIC07輸入輸出端口的基本功能.ppt_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第六章 輸入輸出端口的基本功能,在PIC16F87X 單片機中,28引腳型號的單片機有3 個IO端口,分別是RA、RB和RC;40引腳型號單片機有5個 IO端口,分別是RA、RB、RC、RD和RE。其中RA有6條口線,RE有3條口線,其余都有 8條口線。 PIC16F87X端口口線既可作普通IO引腳,又可作某些部件或外圍模塊的外接引腳,比如端口引腳RC.4既可用作普通IO腳,又可以作為SPI串行通信的數(shù)據(jù)輸入引腳。 本章只介紹端口的基本功能和基本用法,端口的其他復合功能,在以后章節(jié)中介紹。,6.1 與輸入輸出端口相關(guān)的2個寄存器 PIC單片機中各個IO端口都具備兩個基本的專用寄存器:端口數(shù)據(jù)寄

2、存器和端口方向寄存器。如下所示。,這些寄存器在RAM中都有統(tǒng)一的編址,即PIC單片機的端口都可以當作RAM單元來訪問,而無需專門的指令來訪問。,6.2 輸入輸出端口的基本結(jié)構(gòu) PIC16F87X的5個端口不但結(jié)構(gòu)上存在差異,而且同一端口的各口線的內(nèi)部結(jié)構(gòu)也略有差別,但是他們的基本結(jié)構(gòu)模型,如下圖所示。 圖中有三個D觸發(fā)器(也稱為鎖存器),其中Data Latch代表了端口數(shù)據(jù)寄存器,例如PORTA、PORTB、PORTC;TRIS Latch端口方向寄存器,例如TRISA、TRISB、TRISC;而Input Latch是端口設(shè)置為輸入時作為緩沖器。 基本輸入輸出端口的工作原理 下面對端口口線

3、進行的基本操作說明如下:,寫IO方向寄存器TRIS Latch 當方向寄存器中的內(nèi)容為1時,則對應口線被設(shè)置為輸入;當其內(nèi)容為0時,則對應引腳設(shè)置為輸出。 經(jīng)端口引腳輸出數(shù)據(jù) 要把端口口線作為輸出,必須要把該口線預先設(shè)定為輸出態(tài),即相應的TRIS Latch的內(nèi)容必須為0。 從端口引腳輸入數(shù)據(jù) 要把端口口線作為輸入,必須要把該口線預先設(shè)定為輸出態(tài),即相應的TRIS Latch的內(nèi)容必須為1。,6.3 輸入輸出端口基本功能的應用舉例 下面的實例是單鍵觸發(fā)8位二進制累加計數(shù)器,是針對端口功能和ICD在線調(diào)試器上的硬件為基礎(chǔ)而設(shè)計的。該實例中要用到的演示板上的部分硬件電路如下圖所示。 圖中端口RC外

4、接8條支路,這8條支路構(gòu)成了端口RC的輸出電路,其中8只電阻起限流作用,保護端口引腳和發(fā)光二極管LED;LED在高電平時發(fā)光。 圖中還使用了端口RB的RB0口線作為外接輸入引腳。電阻R4為限流電阻,對RB0引腳起,保護作用;電阻R21為上拉電阻,將RB0電平拉高;開關(guān)SW1用來人工輸入低電平脈沖信號。 程序設(shè)計思路 本實例是把演示板當做一個計數(shù)器。剛接通電源時,8只發(fā)光二極管都不亮,表示計數(shù)器初始值為0。 按下開關(guān)SW1時,計數(shù)器值加l,D0點亮,表示二進制數(shù)00000001B,然后松開按鈕;再次按下SW1時,計數(shù)器值又加1,D1點亮,表示二進制數(shù)00000010B,然后再松開按鈕;依次類推。

5、直到按了255次按鈕時,D7D0全部點亮,假如再次按動按鈕將使計數(shù)器回0。如此循環(huán)往復。,設(shè)計按鈕輸入程序時,有一點需要注意,就是必須處理按鈕在按下或松開時存在抖動現(xiàn)象,以免產(chǎn)生誤判。 按鈕的去抖動一般都是調(diào)用延遲程序來消除抖動的。即在程序設(shè)計中,當查詢到RB0上的首次電平變化后,馬上延遲(例如10ms),待RB0上的狀態(tài)穩(wěn)定后,再次查詢確認,果真是按鍵動作(按下或者松開),方認定為有效,否則,判為干擾脈沖。程序清單如下: STATUS EQU 03H PORTB EQU 06H TRISB EQU 86H,PORTC EQU 07H TRISC EQU 87H DATA1 EQU 20H ;

6、 DATA1為延時變量 DATA2 EQU 21H ; DATA2為延時變量 N1 EQU D13 ;外層循環(huán)延時常數(shù) N2 EQU 0FFH ;內(nèi)層循環(huán)延時常數(shù) RP0 EQU 5H ;體選位RP0 ORG 000H BSF STATUS, RP0 ;切換到RAM的體1 MOVLW 00H ;將端口C設(shè)為輸出 MOVWF TRISC MOVLW 0FFH ;將端口B設(shè)置為輸入 MOVWF TRISB BCF STATUS, RP0 ;恢復到RAM的體0,MOVLW 00H ;初始化端口C MOVWF PORTC LP BTFSC PORTB,0 ;測試SW1按下否? GOTO LP ;否!則

7、循環(huán)檢測 CALL DELAY ;調(diào)用延時程序去抖動 BTFSC PORTB, 0 ;再次測試SW1按下否? GOTO LP ;否!則循環(huán)檢測 INCF PORTC,1 ; PORTC+1-PORTC LP1 BTFSS PORTB,0 ;測試SW1斷開否 GOTO LP1 ;否!則循環(huán)檢測 CALL DELAY ;消除斷開抖動 BTFSS PORTB,0 ;再次測試SW1斷開否 GOTO LP1 ;否!則循環(huán)檢測 GOTO LP ;返回,DELAY MOVLW N1 ;N1 DATA1 MOVWF DATA1 LOOP0 MOVLW N2 ;N2DATA2 MOVWF DATA2 LOOP1 DECFSZ DATA2,1 ;DATA2-1 DATA2, ;若為0則跳轉(zhuǎn) GOTO LOOP1 DECFSZ DATA1,1 ; DATA1-1 DATA1, ;若為0跳轉(zhuǎn) GOTO LOOP0 RETURN END ;源程序結(jié)束 以下是用C語言編寫的程序:,#include #define N1 13 #define N2 0 xff static volati

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論