標題: 請教stc8g1k08單片機設(shè)置推挽輸出后無法設(shè)置為低電平 [打印本頁]

作者: Dokkis    時間: 2024-7-9 09:41
標題: 請教stc8g1k08單片機設(shè)置推挽輸出后無法設(shè)置為低電平
用的是stc8g1k08-16pin的,BI FI FAN lock連接的都是led燈,設(shè)置推挽輸出后四個燈都可以亮,但是置0后lock燈還亮著,我量了引腳的電壓是5v,這是為什么呀,燈的另一頭都是接地的


#include "stc8g.h"

sbit BI = P1^1;           //電機后退輸入D連接引腳2
sbit FI = P1^0;           //電機前進輸入C連接引腳1
sbit FAN = P5^4;          //風扇G連接引腳引腳5
sbit lock = P5^5;         //鎖扣I連接引腳14
void main()
{
            P1M0 = 0x03; P1M1 = 0x00;
            P3M0 = 0x20; P3M1 = 0x00;
           P5M0 = 0x10; P5M1 = 0x00;     //設(shè)置推挽輸出           

                        BI = 0;
                        FI = 0;
                        FAN = 0;
                        lock = 0



}



作者: lkc8210    時間: 2024-7-9 11:06
while(1)呢?
作者: szqinyi    時間: 2024-7-9 11:36
STC單片機在上電瞬間都是高電平。
要想上電瞬間低電平:先把端口設(shè)為輸入,再設(shè)為低電平,然后再把端口設(shè)為推挽輸出,這樣上電瞬間就是低電平了。
至于你的程序有錯誤,缺少while{}大循環(huán)程序,一般執(zhí)行都需要在大循環(huán)內(nèi)部。
作者: xiaobendan001    時間: 2024-7-9 13:08
lock并沒有被設(shè)置為推挽模式,但是不影響輸出0的。你后面注釋是鏈接14腳,那個是P3.5,P3.5的確是推挽,所以,是你的sbit那里打錯了,3打成了5
作者: coody_sz    時間: 2024-7-9 17:32
我覺得,你要先入門一下C語言。
作者: kxcuser    時間: 2024-7-10 08:38
你P5兩個想設(shè)置推挽輸出應(yīng)該是:P5M0 = 0x30;P5M1 = 0x00;要不你把P5那路刪了,把P3那路改成P5,LOCK那路設(shè)置成推挽就對了,要不改P5那路。你自己把LOCK那路換成二進制看看,是不是設(shè)置錯了
作者: Dokkis    時間: 2024-7-10 09:16
xiaobendan001 發(fā)表于 2024-7-9 13:08
lock并沒有被設(shè)置為推挽模式,但是不影響輸出0的。你后面注釋是鏈接14腳,那個是P3.5,P3.5的確是推挽,所 ...

天吶,確實是這里寫錯了,謝謝你,太粗心了我




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1