PIC單片機(jī)之I/O控制
TRISA寄存器是方向控制寄存器。就是控制I/O輸入還是輸出。比如 TRISA寄存器中的TRISA5位 設(shè)置成為0 RA5口是輸出 設(shè)置成為1 RA5口為是輸入。
C語(yǔ)言的具體實(shí)現(xiàn):
將RA5口設(shè)置成輸入的幾種方式
第一種 TRISAbits.TRISA5=1; //簡(jiǎn)單明了,只影響一個(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 則說(shuō)明RA5口當(dāng)前為低電平,PORTA寄存器中的RA5位為1 則說(shuō)明RA5口當(dāng)前為高電平。
實(shí)例程序:
如果在RA5口上連接著一個(gè)LED燈。我們將如何點(diǎn)亮他呢?
/*
開(kāi)發(fā)環(huán)境為 MPLAB X IDE,芯片型號(hào)為PIC16LF1823
*/
#include
__CONFIG(FOSC_INTOSCWDTE_OFFPWRTE_ONMCLRE_OFFCP_ONCPD_
OFFBOREN_ONCLKOUTEN_OFFIESO_ONFCMEN_ON);
__CONFIG(PLLEN_OFFLVP_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);//程序在此無(wú)限循環(huán)
}
頭文件:程序中只要有了#include
配置位:這是十分重要即使程序沒(méi)有任何錯(cuò)誤 配置位沒(méi)配置好程序一樣不能用。具體如何配置可以看( 基于MPLAB X IDE配置位設(shè)置講解 )。
模擬數(shù)字口:在使用I/O口的時(shí)候要確保對(duì)應(yīng)的I/O口是被設(shè)置成數(shù)字口的。
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
評(píng)論