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

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

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

STC51單片機(jī)的IO配置問題解決方案

單片機(jī)技術(shù)宅 ? 來源:cc ? 2019-01-16 15:31 ? 次閱讀

我們?nèi)祟惪梢酝ㄟ^連接手腳上神經(jīng)網(wǎng)絡(luò),肌腱,控制著我們的肌肉做出各種動(dòng)作,完成各種造型。那單片機(jī)里的肌腱和神經(jīng)就是今天我們要講的主角----單片機(jī)的IO口。

我們學(xué)習(xí)單片機(jī),到底學(xué)什么呢?最終落腳點(diǎn),就是落在單片機(jī)的IO口上,其實(shí)最終就是操作單片機(jī)的IO口,什么串口通訊,IIC通信協(xié)議,中斷,定時(shí)器,最終在單片機(jī)上體現(xiàn)出來的還是我們對(duì)單片機(jī)IO口的操作。既然那么重要,今天我們就來好好的說一說單片機(jī)的IO口。

說起單片機(jī)的IO口,大家肯定會(huì)笑話小編,這么簡(jiǎn)單的東西,還要你說。對(duì),它是簡(jiǎn)單,看遍你是個(gè)人寫的單片機(jī)教程,最開始講編程就是從操作單片機(jī)IO口開始,都是從點(diǎn)亮一個(gè)LED燈開始,是的點(diǎn)亮一個(gè)LED燈,就是對(duì)單片機(jī)IO的最簡(jiǎn)單的操作,要么給高電平,要么給低電平,這也是操作IO的唯一的兩個(gè)方法。怎么說?舉個(gè)例子:要在某個(gè)IO上輸出PWM信號(hào),其實(shí)就是有規(guī)律的在這個(gè)IO上交替的給高低電平,給的速度快慢決定了PWM信號(hào)的頻率,給的高電平的時(shí)間所占一個(gè)高低電平周期的多少,決定了這個(gè)PWM信號(hào)的占空比。這么一說,高大上的PWM信號(hào)是不是就簡(jiǎn)單多了。

說了這么多,下面我們具體來說STC51單的IO的配置和各個(gè)模式的區(qū)別。

· 正 · 文 · 來 · 啦 ·

STC的51單片機(jī)為了更多更能的使用和運(yùn)用于不同場(chǎng)合,STC51單片機(jī)設(shè)計(jì)了4中IO口模式,分別是:準(zhǔn)雙向IO口模式、推挽輸出模式、高阻輸入模式和開漏輸出模式。每個(gè)IO口的模式配置,需要兩個(gè)寄存器結(jié)合起來進(jìn)行設(shè)置。這兩個(gè)寄存器分別是PnM1和PnM0,(在STC8系列芯片中n=0,1,2,3,4,5,6,7),以P0口為例,配置P0口需要P0M1和P0M0兩個(gè)寄存器進(jìn)行配置,具體如下圖:

即P0M1寄存器的第0位和P0M0寄存器的第0位組合起來配置P0.0位的模式,P0M1寄存器的第1位和P0M0寄存器的第1位組合起來配置P0.1位的模式,P0口的其他位以此類推。具體的PnM1和PnM0寄存器的組合方式如下表所示:

1、準(zhǔn)雙向I/O模式題

準(zhǔn)雙向I/O模式與標(biāo)準(zhǔn)51相比,雖然在內(nèi)部結(jié)構(gòu)上是不同的,但在用法上類同,比如要作為輸入時(shí)都必須先寫“1”置成高電平,然后才能去讀引腳的電平狀態(tài)。兼容傳統(tǒng)的51單片機(jī),在上電復(fù)位后,常規(guī)的IO都是準(zhǔn)雙向IO模式。在準(zhǔn)雙向IO模式下,端口輸出1時(shí)能力很弱,允許外部將其拉低,輸出0時(shí)驅(qū)動(dòng)能力很強(qiáng),可以吸收很大電流(20mA)。從輸出示意圖可以看出,在此模式下有三個(gè)晶體管來適應(yīng)不同的需求。當(dāng)端口寄存器輸出1且引腳也為1時(shí),晶體管“弱上拉”打開,提供基本的驅(qū)動(dòng)電流,如果引腳輸出的1被外部電路拉低時(shí),“極弱上拉”打開,且關(guān)閉“弱上拉”,此時(shí)外部需要有足夠的灌電流來拉低引腳電平;當(dāng)端口寄存器為1,且引腳懸空時(shí),“極弱上拉”打開,提供微弱的電流來維持引腳的高電平;當(dāng)端口寄存器由0變到1時(shí),“強(qiáng)上拉”打開來加快引腳上電平從0到1的轉(zhuǎn)換,強(qiáng)上拉打開后,引腳上電平由0到1的轉(zhuǎn)換需要兩個(gè)時(shí)鐘周期,所以需要讀外部狀態(tài)的時(shí)候,在端口寫1后需要加兩個(gè)空操作來等待引腳電平的轉(zhuǎn)換,完了讀取到的狀態(tài)才是實(shí)際引腳狀態(tài)。

準(zhǔn)雙向IO輸出示意圖

2、推挽輸出模式

推挽輸出的特點(diǎn)是不論輸出高電平還是低電平都能驅(qū)動(dòng)較大的電流,比如輸出高電平時(shí)可以直接點(diǎn)亮LED(要串聯(lián)幾百歐限流電阻),而在準(zhǔn)雙向I/O模式下很難辦到。

推挽輸出模式輸出示意圖

3、高阻輸入模式

此模式下,電流既不能流入也不能流出,這樣可以獲得比較高的輸入阻抗,這在模擬比較器ADC應(yīng)用中是必需的。高阻態(tài)是數(shù)字電路中的術(shù)語,它既不是高電平也不是低電平,上一級(jí)電路輸出到高阻輸入接口,此接口不會(huì)對(duì)上一級(jí)電路的狀態(tài)有影響,和沒接一樣,不產(chǎn)生電流的衰減,電平也由接入的電平?jīng)Q定,電路分析時(shí)高阻態(tài)可做開路理解??梢园阉醋鬏敵觯ㄝ斎耄╇娮璺浅4?。這樣在做ADC轉(zhuǎn)換的時(shí)候是必須要的,我們都知道電壓表的內(nèi)阻我們認(rèn)為是無窮大的,在此,我們用ADC轉(zhuǎn)換實(shí)現(xiàn)電壓表的時(shí)候,就需要在高阻模式下進(jìn)行。注意,在此模式下,不提供20mA的灌電流的吸收能力。

高阻輸入模式示意圖

4、開漏輸出模式

開漏輸出模式既可讀外部狀態(tài),又可以對(duì)外輸出高低電平,但是必須加上拉電阻。當(dāng)端口鎖存器輸出0時(shí),內(nèi)部將關(guān)閉所有上拉晶體管,此時(shí)可以提供20mA的灌電流吸收能力;當(dāng)端口寄存器輸出1是,外部必須接上拉電阻,這也是此模式下的最大的優(yōu)點(diǎn)----電氣兼容性好,外部上拉電阻接3V電源,就能和3V邏輯器件接口,如果上拉電阻接5V電源,又可以與5V邏輯器件接口。

開漏輸出模式示意圖

STC8A特例一 ----內(nèi)部集成了上拉電阻

內(nèi)部已經(jīng)集成了3.7K的上拉電阻,可以通過上拉電阻控制寄存器實(shí)現(xiàn)禁止和使能。使能上拉電阻控制寄存器相關(guān)位后,對(duì)應(yīng)引腳上將接通單片機(jī)內(nèi)部的3.7K電阻,可以省去外部上拉電阻,禁止上拉電阻控制寄存器后將斷開內(nèi)部上拉電阻。官方給出的資料顯示,此3.7K上拉電阻實(shí)測(cè)為4.2K左右,而且在P3.0和P3.1上的上拉電阻可能會(huì)略小一些。

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

    631983
  • IO
    IO
    +關(guān)注

    關(guān)注

    0

    文章

    434

    瀏覽量

    39049

原文標(biāo)題:一文解決STC51單片機(jī)的IO配置問題

文章出處:【微信號(hào):chuxue_MCU,微信公眾號(hào):?jiǎn)纹瑱C(jī)技術(shù)宅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STC51單片機(jī)學(xué)習(xí)板原理圖

    STC51單片機(jī)學(xué)習(xí)板原理圖
    發(fā)表于 08-12 12:44

    怎么實(shí)現(xiàn)基于STC51單片機(jī)的密碼鎖設(shè)計(jì)?

    怎么實(shí)現(xiàn)基于STC51單片機(jī)的密碼鎖設(shè)計(jì)?
    發(fā)表于 10-20 06:42

    基于STC51單片機(jī)控制的電機(jī)調(diào)速系統(tǒng)

    基于STC51單片機(jī)控制的 電機(jī)調(diào)速 系統(tǒng)的可靠性和抗干擾能力明顯提高,是輔助教學(xué)的有效工具.分析了此系統(tǒng)的工作原理、總體設(shè)計(jì)方案及軟硬件結(jié)構(gòu).它的調(diào)速性能穩(wěn)定,誤差小
    發(fā)表于 08-16 16:40 ?897次下載
    基于<b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>控制的電機(jī)調(diào)速系統(tǒng)

    STC51單片機(jī)設(shè)計(jì)設(shè)置軟件

    電子發(fā)燒友網(wǎng)站提供《STC51單片機(jī)設(shè)計(jì)設(shè)置軟件.exe》資料免費(fèi)下載
    發(fā)表于 07-18 14:38 ?3次下載

    基于STC51單片機(jī)的串口使用的程序源代碼

    基于STC51單片機(jī)的串口使用的程序源代碼
    發(fā)表于 11-16 19:12 ?50次下載

    基于STC51單片機(jī)的串口收發(fā)的源代碼

    基于 STC51單片機(jī)的串口收發(fā)的源代碼
    發(fā)表于 11-16 19:14 ?56次下載

    STC51單片機(jī)核心板(走線圖)

    STC51單片機(jī)核心板(走線圖)
    發(fā)表于 12-17 11:44 ?33次下載

    STC51單片機(jī)串口溫度c程序

    STC51單片機(jī)溫度c程序數(shù)碼管顯示串口發(fā)送給電腦
    發(fā)表于 12-17 16:33 ?29次下載

    STC51單片機(jī)的必備軟件使用

    STC51單片機(jī)的必備軟件使用
    發(fā)表于 10-16 10:24 ?19次下載
    <b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>的必備軟件使用

    STC51單片機(jī)的中斷與定時(shí)器進(jìn)行配置的參考資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是STC51單片機(jī)的中斷與定時(shí)器進(jìn)行配置的參考資料免費(fèi)下載。
    發(fā)表于 08-19 17:31 ?5次下載
    <b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>的中斷與定時(shí)器進(jìn)行<b class='flag-5'>配置</b>的參考資料免費(fèi)下載

    【轉(zhuǎn)載】配置Keil C51配置開發(fā) STC51單片機(jī)過程

    內(nèi)容1. Keil C51 下載2. 配置開發(fā)STC51單片機(jī)配置 Keil IDE與TEASOFT編輯1.
    發(fā)表于 11-13 16:51 ?21次下載
    【轉(zhuǎn)載】<b class='flag-5'>配置</b>Keil C<b class='flag-5'>51</b><b class='flag-5'>配置</b>開發(fā) <b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>過程

    基于STC51單片機(jī)的風(fēng)扇

    基于STC51單片機(jī)的風(fēng)扇設(shè)計(jì)要求:利用直流電機(jī)充當(dāng)風(fēng)扇鍵盤可以調(diào)整風(fēng)扇的轉(zhuǎn)速設(shè)計(jì)概述:???按照設(shè)計(jì)要求,風(fēng)扇的開與關(guān)需要用到獨(dú)立鍵盤,轉(zhuǎn)速控制需要用到PWM技術(shù)。所需要的單片機(jī)芯片為
    發(fā)表于 11-20 21:06 ?37次下載
    基于<b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>的風(fēng)扇

    一文解決STC51單片機(jī)IO配置問題

    我們?nèi)祟惪梢酝ㄟ^連接手腳上神經(jīng)網(wǎng)絡(luò),肌腱,控制著我們的肌肉做出各種動(dòng)作,完成各種造型。那單片機(jī)里的肌腱和神經(jīng)就是今天我們要講的主角----單片機(jī)IO口。
    發(fā)表于 02-09 11:38 ?1次下載
    一文解決<b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>IO</b><b class='flag-5'>配置</b>問題

    一文解決STC51單片機(jī)IO配置問題

    我們學(xué)習(xí)單片機(jī),到底學(xué)什么呢?最終落腳點(diǎn),就是落在單片機(jī)IO口上,其實(shí)最終就是操作單片機(jī)IO口,什么串口通訊,IIC通信協(xié)議,中斷,定時(shí)
    發(fā)表于 02-10 11:13 ?6次下載
    一文解決<b class='flag-5'>STC51</b><b class='flag-5'>單片機(jī)</b>的<b class='flag-5'>IO</b><b class='flag-5'>配置</b>問題

    stc51單片機(jī)怎么燒錄

    燒錄STC51單片機(jī)是一項(xiàng)常見的操作,下面將詳細(xì)介紹如何進(jìn)行燒錄以及所需的步驟和工具。本文將按照如下順序進(jìn)行詳解: STC51單片機(jī)簡(jiǎn)介 硬件燒錄工具介紹 硬件燒錄步驟 軟件燒錄工具介
    的頭像 發(fā)表于 01-02 17:41 ?2932次閱讀