找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1406|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)如何搭建電路實(shí)現(xiàn)高阻態(tài)輸入?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1108479 發(fā)表于 2024-7-15 10:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
現(xiàn)在有一個(gè)芯片A有一個(gè)輸入引腳,該引腳接收外部的輸入信號(hào),實(shí)現(xiàn)不同的功能。當(dāng)輸入為高電平時(shí),芯片A產(chǎn)生100Hz脈沖,當(dāng)輸入為低電平時(shí),芯片A產(chǎn)生1KHZ波形,當(dāng)該引腳懸空(既不輸入高電平也不輸入低電平,相當(dāng)于高阻態(tài),類似斷開)時(shí),芯片A什么也不做。

我用單片機(jī)的GPIO輸出電平給芯片A的這個(gè)輸入引腳,單片機(jī)輸出高低電平很簡(jiǎn)單,但是斷開功能如何實(shí)現(xiàn)?用三極管和MOS管應(yīng)該能實(shí)現(xiàn),但是不知道電路如何搭出來(lái),希望大神能指點(diǎn)下思路。

感謝!
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1109793 發(fā)表于 2024-7-15 13:24 | 只看該作者
用AD功能可以不
回復(fù)

使用道具 舉報(bào)

板凳
ID:624769 發(fā)表于 2024-7-15 13:27 | 只看該作者
目前大多數(shù) 單片機(jī)的 IO口 會(huì)有個(gè)模式  叫  高阻態(tài)模式, 既不輸出高電平,也不輸出低電平。
回復(fù)

使用道具 舉報(bào)

地板
ID:1108479 發(fā)表于 2024-7-15 13:58 | 只看該作者
188610329 發(fā)表于 2024-7-15 13:27
目前大多數(shù) 單片機(jī)的 IO口 會(huì)有個(gè)模式  叫  高阻態(tài)模式, 既不輸出高電平,也不輸出低電平。

我用的是STM32, STM32是把GPIO設(shè)置為輸入才會(huì)有讀高電平,低電平,以及懸空輸入的功能。但我這個(gè)是要STM32 GPIO輸出給芯片A
回復(fù)

使用道具 舉報(bào)

5#
ID:1012735 發(fā)表于 2024-7-15 14:06 | 只看該作者
接個(gè)繼電器行不行,其它引腳控制這個(gè)繼電器開合
回復(fù)

使用道具 舉報(bào)

6#
ID:344848 發(fā)表于 2024-7-15 14:28 | 只看該作者
74LS373
回復(fù)

使用道具 舉報(bào)

7#
ID:624769 發(fā)表于 2024-7-15 14:31 | 只看該作者
coolaiMCU 發(fā)表于 2024-7-15 13:58
我用的是STM32, STM32是把GPIO設(shè)置為輸入才會(huì)有讀高電平,低電平,以及懸空輸入的功能。但我這個(gè)是要STM3 ...

你單片機(jī) 設(shè)置為了輸出,對(duì)于芯片A來(lái)說(shuō), 是不是就是“高阻態(tài)”?是不是就是相當(dāng)于“懸空”?
回復(fù)

使用道具 舉報(bào)

8#
ID:1129021 發(fā)表于 2024-7-15 16:41 | 只看該作者
GPIO引腳實(shí)現(xiàn)“斷開”的功能,可以將該引腳配置為高阻態(tài),或輸入模式。在高阻態(tài)時(shí),GPIO引腳既不會(huì)輸出高電平也不會(huì)輸出低電平,等效于斷開狀態(tài)。
回復(fù)

使用道具 舉報(bào)

9#
ID:1129021 發(fā)表于 2024-7-15 16:43 | 只看該作者
GPIO引腳實(shí)現(xiàn)“斷開”的功能,可以將該引腳配置為高阻態(tài)或輸入模式。在高阻態(tài)時(shí),GPIO引腳既不會(huì)輸出高電平也不會(huì)輸出低電平,等效于斷開狀態(tài)。
回復(fù)

使用道具 舉報(bào)

10#
ID:1129021 發(fā)表于 2024-7-15 16:43 | 只看該作者
#include "stm32f4xx.h"  // 根據(jù)使用的單片機(jī)型號(hào)選擇相應(yīng)的頭文件

void setup() {
    // GPIO引腳初始化
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;  // 使能GPIOA時(shí)鐘
    GPIOA->MODER &= ~GPIO_MODER_MODER5;   // 先清除配置(假設(shè)使用PA5)
}

void setHigh() {
    GPIOA->MODER |= GPIO_MODER_MODER5_0;  // 設(shè)置為輸出模式
    GPIOA->ODR |= GPIO_ODR_ODR_5;         // 輸出高電平
}

void setLow() {
    GPIOA->MODER |= GPIO_MODER_MODER5_0;  // 設(shè)置為輸出模式
    GPIOA->ODR &= ~GPIO_ODR_ODR_5;        // 輸出低電平
}

void setHighZ() {
    GPIOA->MODER &= ~GPIO_MODER_MODER5;   // 設(shè)置為輸入模式(高阻態(tài))
}

int main() {
    setup();

    while(1) {
        setHigh();    // 輸出高電平
        // 延時(shí)...
        setLow();     // 輸出低電平
        // 延時(shí)...
        setHighZ();   // 進(jìn)入高阻態(tài)
        // 延時(shí)...
    }
}
回復(fù)

使用道具 舉報(bào)

11#
ID:1109793 發(fā)表于 2024-7-15 17:47 | 只看該作者
樓主的意思是要識(shí)別三種輸入狀態(tài),高,低,懸空。那么懸空讀進(jìn)來(lái)的大概率是不確定的信號(hào)了。你看這樣行不行,把電路中的交流信號(hào)比如變壓器前邊的信號(hào)用一個(gè)例如1MΩ的電阻接到這個(gè)腳上面。這樣讀到持續(xù)20MS的1就是高,讀到20MS的0就是低,兩種都沒有就是懸空的。
回復(fù)

使用道具 舉報(bào)

12#
ID:341045 發(fā)表于 2024-7-15 20:58 | 只看該作者
有高阻態(tài)的單片機(jī)直接一個(gè)腳連A即可(輸出高低置管腳推挽輸出然后輸出1或0即可, 要輸出高阻,置管腳高阻輸入即可), 如果沒高阻態(tài)單片機(jī), 要用2個(gè)IO腳才能實(shí)現(xiàn),  一個(gè)IO腳控制上臂PNP三極管(或P溝場(chǎng)效應(yīng)管), IO輸出0時(shí)導(dǎo)通輸出高, 另一個(gè)IO腳控制下臂NPN三極管(或N溝場(chǎng)效應(yīng)管), IO輸出1時(shí)導(dǎo)通到地. 2個(gè)管子的C極(或D極)連在一起作輸出. 00輸出高, 11輸出低, 01(二個(gè)管子都不導(dǎo)通高阻), 10(二個(gè)管子都導(dǎo)通短路)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表