找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC15W4K56S单片机复位输出低电平的问题分析?

[复制链接]
跳转到指定楼层
楼主
    按STC15单片机芯片手册IO复位后要输出低电平的话,需在IO口串一个470欧姆以上的电阻并接一个1K/2K/3K的下拉电阻,我按照这样做好像没啥用!程序初始化的时候将IO:P20~P27 设置成强推挽输出。上电后不设置IO输出值,则P20 ~27都输出高电平。  要是设置IO输出为0,则单片机复位或者上电瞬间会有一个高电平的脉冲。
   打算用这单片机控制三极管带动继电器。要是有脉冲的话会误动作。请教一下大神怎么设置,使得复位或者上电的时候单片机引脚输出低电平

微信图片_20181220170556.jpg (239.77 KB, 下载次数: 52)

微信图片_20181220170556.jpg
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2018-12-20 19:57 | 只看该作者
51单片机上电的时候,默认都是高电平的,你想输出低电平的话可以加一个反相器。
一看就知道,是外行设计的电路。这才需要零初始状态。
开关设计成低电平驱动的,这样就可以避免这种情况
回复

使用道具 举报

板凳
ID:213173 发表于 2018-12-20 21:13 | 只看该作者
这是你理解错了。如果想P20~P27 设置成强推挽输出并且开机瞬间没有尖脉冲按手册推荐的方法是可行的。只要初始化代码写得正确完全可以满足需求。单片机加电复位后P2默认准双向(弱上拉)高电平,由于有下拉电阻使得I/O实际输出电压很低不足以使晶体管导通。进入main程序首先设P2全是低电平,延时几微秒再设P2全是强推挽,这时不会有高电平输出。在应用程序中需要输出高电平时因强推挽输出I/O口内阻小足以抵消下拉电阻影响保持高电平驱动晶体管。

void main()
{
//进入main时I/O口全都是高电平
//初始化设置
        P2=0x00;//先设P2全是低电平
    _nop_();//延时几微秒
    _nop_();
    _nop_();
    _nop_();
        P2M0 = 0xff;//后设P2全是强推挽
        P2M1 = 0x00;

        while(1)
        {

        }
}
回复

使用道具 举报

地板
ID:403024 发表于 2018-12-21 08:29 | 只看该作者
angmall 发表于 2018-12-20 19:57
51单片机上电的时候,默认都是高电平的,你想输出低电平的话可以加一个反相器。
一看就知道,是外行设计的 ...

外加器件有很多种方法,想弄清楚的是不外加器件的情况能不能实现
回复

使用道具 举报

5#
ID:403024 发表于 2018-12-21 08:59 | 只看该作者
wulin 发表于 2018-12-20 21:13
这是你理解错了。如果想P20~P27 设置成强推挽输出并且开机瞬间没有尖脉冲按手册推荐的方法是可行的。只要初 ...

程序我试过,刚才又按您的程序试了一下,还是有个小脉冲,尖峰电压降低了 原来是24V 现在上不到24V就往下降了。我的理解的芯片手册的意思是。复位后没进入程序前,所有的 IO都会成为准双向口的高电平。但其输出能力较弱,所以测量输出电压还是有3.3V但是其驱动电流较低,带不动晶体管?能这样理解吗?但是电压器件还是能带的动 ?
回复

使用道具 举报

6#
ID:65956 发表于 2018-12-21 09:42 | 只看该作者
51单片机这个功能还是有不足的,为何不返回来想呢,或在NPN前再加1级PNP的三极管不就可以了吗,我用51单片机作项目都是这样处理的
回复

使用道具 举报

7#
ID:213173 发表于 2018-12-21 09:47 | 只看该作者
luanhong 发表于 2018-12-21 08:59
程序我试过,刚才又按您的程序试了一下,还是有个小脉冲,尖峰电压降低了 原来是24V 现在上不到24V就往下降 ...

可以这样理解,按此方法在实际应用中没有发现异常。如果在下拉电阻两端并联103~104小电容能有效消除小脉冲,但会影响外部瞬态响应特性。这是要根据实际需求取舍的,
回复

使用道具 举报

8#
ID:403024 发表于 2018-12-21 11:10 | 只看该作者
wulin 发表于 2018-12-21 09:47
可以这样理解,按此方法在实际应用中没有发现异常。如果在下拉电阻两端并联103~104小电容能有效消除小脉 ...

104 我之前试过。加在三极管B极,另一端接地,也是不能完全消除。要完全消除那还是得像之前那个大神说的加个反相器。多谢大神指教!
回复

使用道具 举报

9#
ID:403024 发表于 2018-12-21 11:48 | 只看该作者
aking991 发表于 2018-12-21 09:42
51单片机这个功能还是有不足的,为何不返回来想呢,或在NPN前再加1级PNP的三极管不就可以了吗,我用51单片 ...

加个PNP是没啥问题,之前一直不想外加多余的器件
回复

使用道具 举报

10#
ID:47286 发表于 2018-12-21 12:07 | 只看该作者
你这个电路和STC官网以前给的不一样 不知道是不是STC官网笔误 这么接相当于把输出端口分压了 我大概算了一下 如果限流470欧 下拉3k 输出电压是4.3v 如果1k下拉就只有3.4v 感觉这样有接多东西驱动起来不太好

过去STC给的说法是这样:51单片机复位后所有端口都是弱上拉 为了防止误动 可以在输出端口接下拉电阻 1~3k 并将端口设置成推挽输出模式 就是说不要那个470欧以上的电阻或者放在下拉电阻之后作为限流用 端口必须参照手册的PxM0/PxM1设置成推挽 否则拉不起来

我一般推NMOS 2.2k下拉+10k限流 管脚电压一般在4.5v~4.8v之间

截止STC8x系列的手册 没有看到如何配置寄存器能成为复位后直接输出低
回复

使用道具 举报

11#
ID:403024 发表于 2018-12-21 13:52 | 只看该作者
dzbj 发表于 2018-12-21 12:07
你这个电路和STC官网以前给的不一样 不知道是不是STC官网笔误 这么接相当于把输出端口分压了 我大概算了一 ...

我也试过加一个1K的下拉电阻,然后将470欧用作三极管基极的限流,然而并没有什么用,而且限流电阻小三极管都进入放大区了。打电话去51那边他们那边销售也说不清给个技术的电话 打了几次没通就没打 了
回复

使用道具 举报

12#
ID:213173 发表于 2018-12-21 15:45 | 只看该作者
wulin 发表于 2018-12-21 09:47
可以这样理解,按此方法在实际应用中没有发现异常。如果在下拉电阻两端并联103~104小电容能有效消除小脉 ...

如果只需要1个端口上电复位后低电平可以用P2.0,在下载用户程序时硬件选项中设置。



回复

使用道具 举报

13#
ID:428180 发表于 2018-12-22 08:42 | 只看该作者
51单片机这个功能还是有不足的,为何不返回来想呢,或在NPN前再加1级PNP的三极管不就可以了吗,我用51单片机作项目都是这样处理的
回复

使用道具 举报

14#
ID:421260 发表于 2022-7-7 16:32 | 只看该作者
wulin 发表于 2018-12-20 21:13
这是你理解错了。如果想P20~P27 设置成强推挽输出并且开机瞬间没有尖脉冲按手册推荐的方法是可行的。只要初 ...

这个方法相当有用,感谢楼主分享经验。
为了这个高电平脉冲,折腾了很久了,现在终于完美解决。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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