找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 697|回复: 6
打印 上一主题 下一主题
收起左侧

请教stc8g1k08单片机设置推挽输出后无法设置为低电平

[复制链接]
跳转到指定楼层
楼主
用的是stc8g1k08-16pin的,BI FI FAN lock连接的都是led灯,设置推挽输出后四个灯都可以亮,但是置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;     //设置推挽输出           

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



}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2024-7-9 11:06 | 只看该作者
while(1)呢?
回复

使用道具 举报

板凳
ID:421260 发表于 2024-7-9 11:36 | 只看该作者
STC单片机在上电瞬间都是高电平。
要想上电瞬间低电平:先把端口设为输入,再设为低电平,然后再把端口设为推挽输出,这样上电瞬间就是低电平了。
至于你的程序有错误,缺少while{}大循环程序,一般执行都需要在大循环内部。
回复

使用道具 举报

地板
ID:1109793 发表于 2024-7-9 13:08 | 只看该作者
lock并没有被设置为推挽模式,但是不影响输出0的。你后面注释是链接14脚,那个是P3.5,P3.5的确是推挽,所以,是你的sbit那里打错了,3打成了5
回复

使用道具 举报

5#
ID:1034262 发表于 2024-7-9 17:32 | 只看该作者
我觉得,你要先入门一下C语言。
回复

使用道具 举报

6#
ID:136485 发表于 2024-7-10 08:38 | 只看该作者
你P5两个想设置推挽输出应该是:P5M0 = 0x30;P5M1 = 0x00;要不你把P5那路删了,把P3那路改成P5,LOCK那路设置成推挽就对了,要不改P5那路。你自己把LOCK那路换成二进制看看,是不是设置错了
回复

使用道具 举报

7#
ID:1076567 发表于 2024-7-10 09:16 | 只看该作者
xiaobendan001 发表于 2024-7-9 13:08
lock并没有被设置为推挽模式,但是不影响输出0的。你后面注释是链接14脚,那个是P3.5,P3.5的确是推挽,所 ...

天呐,确实是这里写错了,谢谢你,太粗心了我
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表