0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

i/o控制對于單片機意味什么,看了就明白了

GReq_mcu168 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-11-03 18:13 ? 次閱讀

I/O控制對于單片機而言是最基礎(chǔ)最核心的東西,其實單片機除了AD DA 轉(zhuǎn)換之外的事情。其他大部分的事情I/O口都能做的到。I/O控制簡單卻能千變?nèi)f化。

單片機在大部分應(yīng)用中做的事情,莫過于 輸入高低電平 ,輸出高低電平。就是通過這簡單的控制電平來實現(xiàn)大多數(shù)的應(yīng)用控制。

什么是I/O口?

什么是I/O 就是 IN/OUT 就是 輸入/輸出。

I/O具體能做什么呢?

如果你是剛剛步入電子的新手,那你最好要知道一下I/O口具體能做什么。感性的認識對你的學(xué)習(xí)是很有幫助的。I/O口輸出一個高(低)電平可以用來點亮一個LED燈,可以接通過一個繼電器,來開啟電機,來開啟音響。開啟許多的東西,也可以用于通信等等。輸入一個高(低)電平 可以用來檢測按鍵,檢測紅外線輸入 ,檢測信號,等等。

I/O口和寄存器之間的對應(yīng)關(guān)系

首先看下一個芯片的原理圖。 注意 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口。

如何控制I/O口?

其實控制單片機,就是控制寄存器上的各個位,設(shè)置成高設(shè)置成低。就好像給你一臺機器有 8個的按鈕。然后你根據(jù)說明書上介紹,根據(jù)你的需要按下 或者松開相應(yīng)的按鍵 來得到你想得到的功能。只不過我們用的不是手而是C語言來按下和松開這些按鍵。

TRISA寄存器是方向控制寄存器。就是控制I/O輸入還是輸出。比如 TRISA寄存器中的TRISA5位 設(shè)置成為0 RA5口是輸出 設(shè)置成為1 RA5口為是輸入。

C語言的具體實現(xiàn):

將RA5口設(shè)置成輸入的幾種方式

第一種 TRISAbits.TRISA5=1; //簡單明了,只影響一個位 設(shè)置單個I/O比較方便

第二種 TRISA |= 0x20;//不夠明了,只影響一個位

第三種 TRISA =0x20;//不夠明了,影響到其他位,設(shè)置多個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口當前為低電平,PORTA寄存器中的RA5位為1 則說明RA5口當前為高電平。

實例程序:

如果在RA5口上連接著一個LED燈。我們將如何點亮他呢?

/*

開發(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);//這個要放到上一行去__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è)置輸出高電平點亮LED

while(1);//程序在此無限循環(huán)}

頭文件:程序中只要有了#include編譯器就會去自動找到相應(yīng)型號的頭文件,頭文件中定義好了每個寄存器的地址,位的地址等。

配置位:這是十分重要即使程序沒有任何錯誤 配置位沒配置好程序一樣不能用。具體如何配置可以看( 基于MPLAB X IDE配置位設(shè)置講解 )。

模擬數(shù)字口:在使用I/O口的時候要確保對應(yīng)的I/O口是被設(shè)置成數(shù)字口的。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5273

    瀏覽量

    119658
  • i/o控制
    +關(guān)注

    關(guān)注

    1

    文章

    4

    瀏覽量

    934

原文標題:PIC單片機之I/O控制

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    8051單片機的四組I/O端口

     單片機I/O端口是輸入信號和輸出信號的通道。8051單片機有P0、P1、P2、P3四組I/O
    發(fā)表于 08-05 16:18 ?1.3w次閱讀
    8051<b class='flag-5'>單片機</b>的四組<b class='flag-5'>I</b>/<b class='flag-5'>O</b>端口

    單片機I/O的常用驅(qū)動和隔離電路的設(shè)計方法

    單片機I/O常用的驅(qū)動與隔離電路設(shè)計
    的頭像 發(fā)表于 09-18 15:48 ?1905次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b>的常用驅(qū)動和隔離電路的設(shè)計方法

    單片機I/O口的使用

    單片機I/O口的使用:對單片機控制,其實就是對I/O
    發(fā)表于 12-03 22:51 ?69次下載

    單片機I/O控制實驗

                    實驗 單片機I/O
    發(fā)表于 09-22 10:45 ?1.6w次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>控制</b>實驗

    PIC單片機教程-內(nèi)部硬件資源之I/O

    PIC單片機教程-內(nèi)部硬件資源之I/O口   I/O單片機作為一個
    發(fā)表于 03-27 17:10 ?2653次閱讀

    PIC單片機I/O控制操作分析

    I/O(input/output),即輸入/輸出端口。每個設(shè)備都會有一個專用的I/O地址,用來處理自己的輸入輸出信息。其實控制單片機,就是
    發(fā)表于 11-15 09:35 ?4406次閱讀
    PIC<b class='flag-5'>單片機</b>之<b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>控制</b>操作分析

    I/O單片機使用手冊

    本文檔內(nèi)容介紹基于I/O單片機使用手冊,供參考
    發(fā)表于 04-03 16:50 ?16次下載

    單片機I/O接口電路的擴展

    單片機I/O (輸入/輸出)接口是其與外設(shè)交換數(shù)字信息的橋梁。事實上,真正用作I/O口線的只有P1口的8位
    的頭像 發(fā)表于 06-30 15:37 ?9501次閱讀
    <b class='flag-5'>單片機</b>的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>接口電路的擴展

    為什么單片機I/O口需要驅(qū)動

    為什么單片機I/O口需要驅(qū)動呢?這個問題需要從I/O口的電氣特性上進行解釋。
    發(fā)表于 07-21 11:10 ?2464次閱讀
    為什么<b class='flag-5'>單片機</b>的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口需要驅(qū)動

    單片機I/O口輸出控制實驗

    單片機】實驗一 I/O口輸出控制實驗一、實驗?zāi)康?.熟悉PROTEUS單片機仿真軟件的使用。2. 熟悉Keil C51軟件的使用3.掌握
    發(fā)表于 11-23 17:51 ?20次下載
    【<b class='flag-5'>單片機</b>】<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口輸出<b class='flag-5'>控制</b>實驗

    單片機I/O控制方式

    單片機如何實現(xiàn)當一個程序在訪問一個I/O設(shè)備時,而不占用CPU呢?對于這個問題,我們先了解一下單片機I
    發(fā)表于 12-01 16:21 ?10次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>控制</b>方式

    I/O口是單片機與外界聯(lián)系的通道

    I/O口是單片機與外界聯(lián)系的通道。它可對各類外部信號(開關(guān)量、模擬量、頻率信一號)進行檢測、判斷、處理,并可控制各類外部設(shè)備。單片機通過
    發(fā)表于 02-10 10:32 ?1次下載
    <b class='flag-5'>I</b>/<b class='flag-5'>O</b>口是<b class='flag-5'>單片機</b>與外界聯(lián)系的通道

    單片機I/O口驅(qū)動的作用分析

    為什么單片機I/O口需要驅(qū)動呢?這個問題需要從I/O口的電氣特性上進行解釋。
    發(fā)表于 01-29 09:51 ?1728次閱讀

    單片機I/O驅(qū)動與隔離常見設(shè)計方法

    單片機I/O驅(qū)動與隔離常見設(shè)計方法
    的頭像 發(fā)表于 10-25 17:36 ?2131次閱讀
    <b class='flag-5'>單片機</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b>驅(qū)動與隔離常見設(shè)計方法

    為什么單片機I/O口需要驅(qū)動?

    為什么單片機I/O口需要驅(qū)動?
    的頭像 發(fā)表于 09-27 15:32 ?818次閱讀
    為什么<b class='flag-5'>單片機</b>的<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口需要驅(qū)動?