I/O控制對于單片機(jī)而言是最基礎(chǔ)最核心的東西,其實(shí)單片機(jī)除了AD DA 轉(zhuǎn)換之外的事情。其他大部分的事情I/O口都能做的到。I/O控制簡單卻能千變?nèi)f化。
I/O就是Input/Output的英文簡寫,意譯為輸入/輸出。
I/O對于單片機(jī)是最基本的東西,單片機(jī)除了AD、DA轉(zhuǎn)換之外的事情,大部分I/O都可以做到。
如果你是剛剛步入電子的新手,那你最好要知道一下I/O口具體能做什么。感性的認(rèn)識對你的學(xué)習(xí)是很有幫助的。I/O口輸出一個(gè)高(低)電平可以用來點(diǎn)亮一個(gè)LED燈,可以接通過一個(gè)繼電器,來開啟電機(jī),來開啟音響。開啟許多的東西,也可以用于通信等等。輸入一個(gè)高(低)電平 可以用來檢測按鍵,檢測紅外線輸入 ,檢測信號等等。
2、TRISA寄存器與io口之間的對應(yīng)關(guān)系:
首先看下一個(gè)芯片的原理圖。 注意 RA5~RA0這些口
在看看RA口的方向控制寄存器TRISA
在看看RA口的數(shù)據(jù)控制寄存器PORTA
可以看出 芯片原理圖中的第二腳 RA5 口 和 TRISA 寄存器中的TRISA5位對應(yīng) 和PORTA寄存器中的 RA5位對應(yīng)的,RA4~RA0都是如此對應(yīng)的。
也就是說TRISA 寄存器中的TRISA5位 和PORTA寄存器中的 RA5位來控制 第二腳的RA5口。
3、如何控制I/O口?
其實(shí)控制單片機(jī),就是控制寄存器上的各個(gè)位,設(shè)置成高設(shè)置成低。就好像給你一臺機(jī)器有 8個(gè)的按鈕。然后你根據(jù)說明書上介紹,根據(jù)你的需要按下 或者松開相應(yīng)的按鍵 來得到你想得到的功能。只不過我們用的不是手而是C語言來按下和松開這些按鍵。
TRISA寄存器是方向控制寄存器。就是控制I/O輸入還是輸出。比如 TRISA寄存器中的TRISA5位 設(shè)置成為0 RA5口是輸出 設(shè)置成為1 RA5口為是輸入。
4、C語言的具體實(shí)現(xiàn):
將RA5口設(shè)置成輸入的幾種方式
第一種 TRISAbits.TRISA5=1; //簡單明了,只影響一個(gè)位 設(shè)置單個(gè)I/O比較方便
第二種 TRISA |= 0x20;//不夠明了,只影響一個(gè)位
第三種 TRISA =0x20;//不夠明了,影響到其他位,設(shè)置多個(gè)I/O用比較方便
將RA5口設(shè)置成輸出的幾種方式
第一種 TRISAbits.TRISA5=0;
第二種 TRISA &= ~0x20;
第三種 TRISA =0x00;
PORTA寄存器是數(shù)據(jù)控制寄存器。如果是輸出狀態(tài):PORTA寄存器中的RA5位為0 則RA5口輸出低電平,PORTA寄存器中的RA5位為1 則RA5口輸出高電平。
如果是輸入狀態(tài):PORTA寄存器中的RA5位為0 則說明RA5口當(dāng)前為低電平,PORTA寄存器中的RA5位為1 則說明RA5口當(dāng)前為高電平。
實(shí)例程序:
如果在RA5口上連接著一個(gè)LED燈。我們將如何點(diǎn)亮他呢?
/*
開發(fā)環(huán)境為 MPLAB X IDE,芯片型號為PIC16LF1823
*/
#include //頭文件
__CONFIG(FOSC_INTOSC&WDTE_OFF&PWRTE_ON&MCLRE_OFF&CP_ON&CPD_OFF&BOREN_ON
&CLKOUTEN_OFF&IESO_ON&FCMEN_ON);//這個(gè)要放到上一行去
__CONFIG(PLLEN_OFF&LVP_OFF) ;//配置位
int main(int argc, char** argv) {
ANSELA=0;//將RA口全部設(shè)置成數(shù)字口,
TRISAbits.TRISA5=0;//設(shè)置RA5為輸出
PORTAbits.RA5=1;//設(shè)置輸出高電平點(diǎn)亮LED
while(1);//程序在此無限循環(huán)
}
頭文件:程序中只要有了#include編譯器就會(huì)去自動(dòng)找到相應(yīng)型號的頭文件,頭文件中定義好了每個(gè)寄存器的地址,位的地址等。
配置位:這是十分重要即使程序沒有任何錯(cuò)誤 配置位沒配置好程序一樣不能用。具體如何配置可以看( 基于MPLAB X IDE配置位設(shè)置講解 )。
模擬數(shù)字口:在使用I/O口的時(shí)候要確保對應(yīng)的I/O口是被設(shè)置成數(shù)字口的。
評論
查看更多