找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2078|回復(fù): 6
收起左側(cè)

請教stc8g1k08單片機設(shè)置推挽輸出后無法設(shè)置為低電平

[復(fù)制鏈接]
ID:1076567 發(fā)表于 2024-7-9 09:41 | 顯示全部樓層 |閱讀模式
用的是stc8g1k08-16pin的,BI FI FAN lock連接的都是led燈,設(shè)置推挽輸出后四個燈都可以亮,但是置0后lock燈還亮著,我量了引腳的電壓是5v,這是為什么呀,燈的另一頭都是接地的


#include "stc8g.h"

sbit BI = P1^1;           //電機后退輸入D連接引腳2
sbit FI = P1^0;           //電機前進(jìn)輸入C連接引腳1
sbit FAN = P5^4;          //風(fēng)扇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



}
stc8g1k08a-sop16.png

回復(fù)

使用道具 舉報

ID:161164 發(fā)表于 2024-7-9 11:06 | 顯示全部樓層
while(1)呢?
回復(fù)

使用道具 舉報

ID:421260 發(fā)表于 2024-7-9 11:36 | 顯示全部樓層
STC單片機在上電瞬間都是高電平。
要想上電瞬間低電平:先把端口設(shè)為輸入,再設(shè)為低電平,然后再把端口設(shè)為推挽輸出,這樣上電瞬間就是低電平了。
至于你的程序有錯誤,缺少while{}大循環(huán)程序,一般執(zhí)行都需要在大循環(huán)內(nèi)部。
回復(fù)

使用道具 舉報

ID:1109793 發(fā)表于 2024-7-9 13:08 | 顯示全部樓層
lock并沒有被設(shè)置為推挽模式,但是不影響輸出0的。你后面注釋是鏈接14腳,那個是P3.5,P3.5的確是推挽,所以,是你的sbit那里打錯了,3打成了5
回復(fù)

使用道具 舉報

ID:1034262 發(fā)表于 2024-7-9 17:32 | 顯示全部樓層
我覺得,你要先入門一下C語言。
回復(fù)

使用道具 舉報

ID:136485 發(fā)表于 2024-7-10 08:38 | 顯示全部樓層
你P5兩個想設(shè)置推挽輸出應(yīng)該是:P5M0 = 0x30;P5M1 = 0x00;要不你把P5那路刪了,把P3那路改成P5,LOCK那路設(shè)置成推挽就對了,要不改P5那路。你自己把LOCK那路換成二進(jìn)制看看,是不是設(shè)置錯了
回復(fù)

使用道具 舉報

ID:1076567 發(fā)表于 2024-7-10 09:16 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-7-9 13:08
lock并沒有被設(shè)置為推挽模式,但是不影響輸出0的。你后面注釋是鏈接14腳,那個是P3.5,P3.5的確是推挽,所 ...

天吶,確實是這里寫錯了,謝謝你,太粗心了我
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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