久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 請教大佬,stc單片機io口怎么輸出幾毫安的電流 [打印本頁]

作者: Dokkis    時間: 2024-7-16 09:02
標題: 請教大佬,stc單片機io口怎么輸出幾毫安的電流
用的是stc8g1k08—sop16,想讓16、15、13腳輸出幾毫安的電流,剛開始我把它們設置成推挽模式,沒加上拉電阻,它的電流有56ma,我們總工說太耗電了,然后我把它設置成準雙向口,加了上拉電阻,它的電流只有ua,電流太小了不太靈敏,有時候會直接判斷成低電平,如果把它設置成開漏輸出,然后加個上拉電阻,變成跟準雙向口一樣的,但是數據手冊沒寫有多少電流,還有沒有其它方法呀
#include "stc8g.h"


sbit KeyA = P3^3;         //按鍵A連接引腳12
sbit KeyB = P3^2;         //按鍵B連接引腳11
sbit button1 = P3^6;      //相位開關F連接引腳15
sbit button2 = P3^7;      //相位開關E連接引腳16
sbit BI = P1^1;           //電機后退輸入D連接引腳2
sbit FI = P1^0;           //電機前進輸入C連接引腳1
sbit FAN = P5^4;          //風扇G連接引腳引腳5
sbit lock = P3^5;         //鎖扣I連接引腳14
sbit S1 = P3^4;           //鎖扣開關S1連接引腳13

bit KeyAFlag = 0;         //按鍵A標志位
bit KeyBFlag = 0;         //按鍵B標志位
bit openFlag = 1;
bit button1Flag = 0;
bit button2Flag = 0;

#define MAIN_Fosc                22118400L        //定義主時鐘


void delay_ms(unsigned char ms)    //延時函數
{
        unsigned int i;
        do{
                i = MAIN_Fosc / 10000;
                while(--i);
        }while(--ms);
}

void main()
{
            P1M0 = 0x03; P1M1 = 0x00;//1 2為推挽輸出
      P3M0 = 0xd0; P3M1 = 0xdc; //11腳和12腳為高阻輸入,16 15 13為開漏輸出,其余為準雙向口
      P5M0 = 0x10; P5M1 = 0x00;    //5為推挽輸出
          if(openFlag==1)
                {
                        openFlag = 0;
            BI = 0;
                        FI = 0;
                        FAN = 0;
                        lock = 0;
                        KeyA = 0;
                        KeyB = 0;
                        KeyAFlag = 1;
                        KeyBFlag = 1;
                }
        
                while(1)
                {
                        if(KeyA==1)
                        {
                                KeyBFlag = 1;
                                if(KeyAFlag==1)
                                {                                                                        
                                        button1Flag =1;
                                        KeyAFlag = 0;
                                        lock = 1;
                                        FI = 1;
                                        BI = 0;
                                        FAN = 0;
                                }
                        }
                        
                        if(KeyB==1)
                        {
                                KeyAFlag = 1;                                
                                if(KeyBFlag==1)
                                {
                                        button2Flag = 1;
                                        KeyBFlag = 0;
                                        FAN = 0;
                                        FI = 0;
                                        BI = 1;
                                }
                        }        

        if(button1==0)
        {               
                if(button1Flag==1)
                {
                        button1Flag = 0;
                        FI = 0;
                        BI = 0;
                        FAN = 1;
                }
        }
        
        if(button2==0)                                    
        {
                if(button2Flag==1)
                {
                        button2Flag = 0;
                        FI = 0;
                        BI = 0;
                        FAN = 0;
                }
        }
        
                if(S1==0)
                {
                        delay_ms(10);
                        if(S1==0)
                        {
                                lock = 0;
                        }
                }
                }
}





作者: devcang    時間: 2024-7-16 13:09
單片機是數字信號,,,,用三極管唄
作者: kxcuser    時間: 2024-7-16 14:42
加個限流電阻不就行了
作者: Dokkis    時間: 2024-7-16 16:32
devcang 發表于 2024-7-16 13:09
單片機是數字信號,,,,用三極管唄

準雙向口模式的時候用三極管放大電流嗎,但是我們總工說ua太小了,抗干擾能力差,手一碰它就會自己啟動,有沒有什么能直接讓單片機輸出ma嘞
作者: newlined    時間: 2024-7-16 16:46
對硬件不熟悉,但我還是本能的想到了,IO口設為推挽輸出,然后加限流電阻如何?
作者: xiaobendan001    時間: 2024-7-16 18:21
newlined 發表于 2024-7-16 16:46
對硬件不熟悉,但我還是本能的想到了,IO口設為推挽輸出,然后加限流電阻如何?

對啊,推挽,加個電阻,想要多少都行。
作者: lgwd    時間: 2024-7-16 22:07
你們的總工太水了!
作者: chchking    時間: 2024-7-17 05:36
買個模擬輸出芯片,io是數字量
作者: a185980800    時間: 2024-7-17 07:44
不是應該調整上拉電阻的阻值 限制電流大小嗎
作者: Dokkis    時間: 2024-7-17 09:08
a185980800 發表于 2024-7-17 07:44
不是應該調整上拉電阻的阻值 限制電流大小嗎

他當時調過上拉電阻的阻值,沒什么變化,而且串了一個1k的電阻,電壓才變了零點幾,后面并了一個電容和一個電阻才可以
作者: Dokkis    時間: 2024-7-17 09:09
xiaobendan001 發表于 2024-7-16 18:21
對啊,推挽,加個電阻,想要多少都行。

加過電阻,但是沒什么變化,后面并了電容和一個電阻才行
作者: Dokkis    時間: 2024-7-17 09:13
lgwd 發表于 2024-7-16 22:07
你們的總工太水了!

沒有,我們總工沒學過單片機和代碼,當時加了限流電阻但是調不了,說是脈沖電流,后面并了一個電容和電阻
作者: Y_G_G    時間: 2024-7-17 10:00
STC單片機目前是沒有能調節IO電流的,要調節電流大小,就只能通過加限流電阻來調節
作者: IdeaMing    時間: 2024-7-17 10:15
推挽模式加限流電阻,另外處理器不太建議做輸出,手冊上說了整個MCU灌電流支持幾十mA
作者: Dokkis    時間: 2024-7-17 10:27
Y_G_G 發表于 2024-7-17 10:00
STC單片機目前是沒有能調節IO電流的,要調節電流大小,就只能通過加限流電阻來調節

嗷嗷好的 感謝
作者: coody_sz    時間: 2024-7-20 11:37
推挽輸出+串聯一個電阻
作者: 君工創    時間: 2024-7-21 07:48
要輸出mA級的電流,推挽輸出就可以了。至少我是這樣用的。外行當領導,你又沒有說服力。難辦。




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人午夜视频在线观看 | 天天色官网 | 欧美激情 一区 | 高清黄色网址 | 中文亚洲视频 | 国产精品国色综合久久 | 久久亚| 爱高潮www亚洲精品 中文字幕免费视频 | 日韩欧美电影在线 | 国产精品178页 | 免费看黄色视屏 | 最新日韩欧美 | 日韩中文字幕在线免费 | 亚洲视频在线播放 | 成人国产精品久久久 | 91啪影院| 伊人中文字幕 | 久久国内精品 | 日韩欧美在线精品 | 精品视频免费在线 | 91精品国产欧美一区二区 | 亚州综合在线 | 欧美日韩国产在线 | 国产精品久久久久久久久久久免费看 | 九九热在线观看视频 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 天天操伊人 | 天天操天天干天天爽 | 在线欧美一区 | 欧美精品久久久 | 久久久久久综合 | www.狠狠操| 一区二区小视频 | 一级做a爰片久久毛片 | 综合亚洲视频 | 久久一区二区三区四区 | 久久久久久久久久久久一区二区 | 中文在线a在线 | 免费一级黄 | 久久久久99 | 91精品国产综合久久婷婷香蕉 |