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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2263|回復: 16
收起左側

請教大佬,stc單片機io口怎么輸出幾毫安的電流

  [復制鏈接]
ID:1076567 發表于 2024-7-16 09:02 | 顯示全部樓層 |閱讀模式
用的是stc8g1k08—sop16,想讓16、15、13腳輸出幾毫安的電流,剛開始我把它們設置成推挽模式,沒加上拉電阻,它的電流有56ma,我們總工說太耗電了,然后我把它設置成準雙向口,加了上拉電阻,它的電流只有ua,電流太小了不太靈敏,有時候會直接判斷成低電平,如果把它設置成開漏輸出,然后加個上拉電阻,變成跟準雙向口一樣的,但是數據手冊沒寫有多少電流,還有沒有其它方法呀 stc8g1k08a-sop16.png
05b6894309bc9edb272b1a898f3a161.png #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;
                        }
                }
                }
}




回復

使用道具 舉報

ID:277550 發表于 2024-7-16 13:09 | 顯示全部樓層
單片機是數字信號,,,,用三極管唄
回復

使用道具 舉報

ID:136485 發表于 2024-7-16 14:42 | 顯示全部樓層
加個限流電阻不就行了
回復

使用道具 舉報

ID:1076567 發表于 2024-7-16 16:32 | 顯示全部樓層
devcang 發表于 2024-7-16 13:09
單片機是數字信號,,,,用三極管唄

準雙向口模式的時候用三極管放大電流嗎,但是我們總工說ua太小了,抗干擾能力差,手一碰它就會自己啟動,有沒有什么能直接讓單片機輸出ma嘞
回復

使用道具 舉報

ID:227818 發表于 2024-7-16 16:46 | 顯示全部樓層
對硬件不熟悉,但我還是本能的想到了,IO口設為推挽輸出,然后加限流電阻如何?
回復

使用道具 舉報

ID:1109793 發表于 2024-7-16 18:21 | 顯示全部樓層
newlined 發表于 2024-7-16 16:46
對硬件不熟悉,但我還是本能的想到了,IO口設為推挽輸出,然后加限流電阻如何?

對啊,推挽,加個電阻,想要多少都行。
回復

使用道具 舉報

ID:106977 發表于 2024-7-16 22:07 | 顯示全部樓層
你們的總工太水了!
回復

使用道具 舉報

ID:1128898 發表于 2024-7-17 05:36 | 顯示全部樓層
買個模擬輸出芯片,io是數字量
回復

使用道具 舉報

ID:857072 發表于 2024-7-17 07:44 來自觸屏版 | 顯示全部樓層
不是應該調整上拉電阻的阻值 限制電流大小嗎
回復

使用道具 舉報

ID:1076567 發表于 2024-7-17 09:08 | 顯示全部樓層
a185980800 發表于 2024-7-17 07:44
不是應該調整上拉電阻的阻值 限制電流大小嗎

他當時調過上拉電阻的阻值,沒什么變化,而且串了一個1k的電阻,電壓才變了零點幾,后面并了一個電容和一個電阻才可以
回復

使用道具 舉報

ID:1076567 發表于 2024-7-17 09:09 | 顯示全部樓層
xiaobendan001 發表于 2024-7-16 18:21
對啊,推挽,加個電阻,想要多少都行。

加過電阻,但是沒什么變化,后面并了電容和一個電阻才行
回復

使用道具 舉報

ID:1076567 發表于 2024-7-17 09:13 | 顯示全部樓層
lgwd 發表于 2024-7-16 22:07
你們的總工太水了!

沒有,我們總工沒學過單片機和代碼,當時加了限流電阻但是調不了,說是脈沖電流,后面并了一個電容和電阻
回復

使用道具 舉報

ID:401564 發表于 2024-7-17 10:00 | 顯示全部樓層
STC單片機目前是沒有能調節IO電流的,要調節電流大小,就只能通過加限流電阻來調節
回復

使用道具 舉報

ID:276663 發表于 2024-7-17 10:15 | 顯示全部樓層
推挽模式加限流電阻,另外處理器不太建議做輸出,手冊上說了整個MCU灌電流支持幾十mA
回復

使用道具 舉報

ID:1076567 發表于 2024-7-17 10:27 | 顯示全部樓層
Y_G_G 發表于 2024-7-17 10:00
STC單片機目前是沒有能調節IO電流的,要調節電流大小,就只能通過加限流電阻來調節

嗷嗷好的 感謝
回復

使用道具 舉報

ID:1034262 發表于 2024-7-20 11:37 | 顯示全部樓層
推挽輸出+串聯一個電阻
回復

使用道具 舉報

ID:965189 發表于 2024-7-21 07:48 來自觸屏版 | 顯示全部樓層
要輸出mA級的電流,推挽輸出就可以了。至少我是這樣用的。外行當領導,你又沒有說服力。難辦。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一级高清免费毛片 | 黑人巨大精品欧美一区二区免费 | 亚洲一二三区在线观看 | 亚洲综合无码一区二区 | 日韩欧美在线观看一区 | 黄色免费观看网站 | 日韩中文字幕视频 | www.狠狠干| 韩国电影久久 | 国产精品成人一区二区三区 | 三级在线视频 | 免费麻豆视频 | 福利一区在线观看 | 91一区| 亚洲在线一区 | 日韩视频在线播放 | 欧美又大粗又爽又黄大片视频 | 久久蜜桃av一区二区天堂 | 性欧美hd| 久久精品这里精品 | 欧美日韩精品一区二区 | 亚洲日日夜夜 | 丁香综合 | 在线观看中文字幕 | 日韩成人在线免费视频 | 精品视频久久久 | 国产成人精品免费 | 成人亚洲片 | 亚洲专区在线 | 天天干夜夜操 | 91国在线高清视频 | 99福利视频导航 | 91av小视频 | 91免费福利视频 | 狠狠操狠狠操 | 精品一区二区三区四区五区 | 国产精品黄 | 久久久久亚洲精品中文字幕 | 99在线观看| 久久久激情视频 | 国产激情视频在线观看 |