MrLCL 发表于 2012-5-5 16:45:40

51单片机上电IO直接是高

如果我想上电后让P1口全是低,但是经过几番测试,单片机上电复位后,总是先高一会,才能变低。求大家帮忙解答

huangdog 发表于 2012-5-5 16:50:41

51复位阶段本来就是高电平输出。。。没得改。。。

hailing 发表于 2012-5-5 16:52:21

加下拉电阻,要输出高时设为输出模式。或者加非们

ourdev850725 发表于 2012-5-5 16:54:15

接个下接电阻了

spareribs 发表于 2012-5-5 16:55:35

接个三极管就可以了!

wszyjsw2 发表于 2012-5-5 17:41:28

如果你想驱动其他什么东西 接三极管 反相器 或则下拉就可以了

yk28981 发表于 2012-5-5 17:59:10

换AVR的,上电复位是高阻!

raxb 发表于 2012-5-5 19:09:47

下拉也木有用...

little_Monkey 发表于 2012-5-5 19:12:30

下拉1K有用,但是对于普通51来说的话,下拉1K以后高电平驱动能力会弱了很多。

MrLCL 发表于 2012-5-5 20:48:10

ourdev850725 发表于 2012-5-5 16:54 static/image/common/back.gif
接个下接电阻了

肯定没效果,分析下就知道了。因为接个电阻无非相当个负载。我这次驱动12V的继电器,用9013驱动的,所以不行
,除非把继电器换成5V的,然后用PNP型的三极管

MrLCL 发表于 2012-5-5 20:48:32

little_Monkey 发表于 2012-5-5 19:12 static/image/common/back.gif
下拉1K有用,但是对于普通51来说的话,下拉1K以后高电平驱动能力会弱了很多。 ...

对头{:handshake:}

MrLCL 发表于 2012-5-5 20:49:02

wszyjsw2 发表于 2012-5-5 17:41 static/image/common/back.gif
如果你想驱动其他什么东西 接三极管 反相器 或则下拉就可以了

那就麻烦了,这个问题还是不能得到解决

MrLCL 发表于 2012-5-5 20:52:19

今天我发现了,STC单片机好像就是粑粑,我以前为了让5V单片机输出变成0到3V我把IO的内置上拉电阻配置成断开,然后外部接上拉电阻接到3V上,这样就OK。可是这次接了12V,10K的阻排,就不行了,电压就是上不来,大约5.8
。这也不是开漏输出啊,除去上拉电阻,输出确实为0,肯定不是操作问题了。难道他IO输入的内阻不是很大,这么算,12V,IO电压为5.8,内阻还不到10K

ourdev850725 发表于 2012-5-5 20:53:43

MrLCL 发表于 2012-5-5 20:48 static/image/common/back.gif
肯定没效果,分析下就知道了。因为接个电阻无非相当个负载。我这次驱动12V的继电器,用9013驱动的,所以 ...

如果是老的51,接下接电阻一样也有效果,只是会影响高电平的驱动能力,如果是现在的STC或者其它增强的51,不会有什么影响的,因为上电默认状态是弱上拉,输出电流很小的,接个下拉电阻完全可以拉到低电平,软件里面设成输出模式以后是推挽输出,高电平时能输出很大的电流,所以下拉的电阻影响很小,一般情况下可以忽略,我以前用STC的就碰到过这个问题,在上电以后,软件开始跑之前,是输出高电平的,但是接个下接电阻就解决了,你可以自己试试有没效果

little_Monkey 发表于 2012-5-5 20:54:10

MrLCL 发表于 2012-5-5 20:52 static/image/common/back.gif
今天我发现了,STC单片机好像就是粑粑,我以前为了让5V单片机输出变成0到3V我把IO的内置上拉电阻配置成断开 ...

你不知道IO口内部都有钳位二极管么?就算是开漏也不能上拉到12V,

syuan163 发表于 2012-5-5 21:06:09

单片机默认输出都是高电平。

adcr 发表于 2012-5-5 21:34:11

MrLCL 发表于 2012-5-5 20:52 static/image/common/back.gif
今天我发现了,STC单片机好像就是粑粑,我以前为了让5V单片机输出变成0到3V我把IO的内置上拉电阻配置成断开 ...

这样搞也太狠了吧,单片机给它12V,它没坏就够对得起你了。

szzyq 发表于 2012-5-7 09:01:31

IO口接一个下拉电阻,再设为强推挽方式就可以了

yu_lena 发表于 2012-5-7 09:09:19

用STC15F104E吧,有一个I/O复位为低......

zjk 发表于 2012-5-7 09:21:45

{:sweat:}废话,单片机就是这么设计的,没得改

zbn2010 发表于 2012-5-7 09:39:26

MrLCL 发表于 2012-5-5 20:52 static/image/common/back.gif
今天我发现了,STC单片机好像就是粑粑,我以前为了让5V单片机输出变成0到3V我把IO的内置上拉电阻配置成断开 ...

{:funk:} {:funk:} 你就是神啊。厉害厉害!

模电知识还是要掌握一点啊。

yan.ch.ao 发表于 2012-5-7 11:26:42

如果你程序里设了低电平,他不会高一会,而是立刻低下来德!硬件应该有问题,或是程序有问题!

panguoxian 发表于 2012-5-7 12:49:10

复位时,本来就是高电平的吧~~{:sweat:}

mcujack 发表于 2012-5-7 14:10:21

上电高电平没什么大问题吧

xinzhi1986 发表于 2012-5-7 14:22:57

改驱动电路为低电平使能呗,觉得低使能比较常用~

smfox10 发表于 2012-5-7 23:52:14

为什么要上电后让P1口全是低呢?lz想干什么?有没有别的办法代替下

lxa0 发表于 2012-5-8 00:06:47

上电复位后
立即执行:movp1,#00h
我都是这样用的

dz20062008 发表于 2012-5-8 00:31:19

用反相们就可以了,要不就换其它的单片机


MrLCL 发表于 2012-5-8 19:34:11

smfox10 发表于 2012-5-7 23:52 static/image/common/back.gif
为什么要上电后让P1口全是低呢?lz想干什么?有没有别的办法代替下

控制些DC12V 的继电器,因为得控制用PNP的三极管不行,所以用NPN的,然而npn的1有效,上电三极管就导通一段时间,所以这是不允许的。要么我继电器用5V的,三极管用PNP,但是电源是个问题了,总电流会很大,很多继电器

MrLCL 发表于 2012-5-8 19:35:13

zbn2010 发表于 2012-5-7 09:39 static/image/common/back.gif
你就是神啊。厉害厉害!

模电知识还是要掌握一点啊。

理论上,这样没问题,对不起我没学过模拟电子,{:lol:}

MrLCL 发表于 2012-5-8 19:35:59

adcr 发表于 2012-5-5 21:34 static/image/common/back.gif
这样搞也太狠了吧,单片机给它12V,它没坏就够对得起你了。

12V信号,电流小的很,没事

MrLCL 发表于 2012-5-8 19:36:27

little_Monkey 发表于 2012-5-5 20:54 static/image/common/back.gif
你不知道IO口内部都有钳位二极管么?就算是开漏也不能上拉到12V,

这个真没细看。你的回答是关键了

MrLCL 发表于 2012-5-8 19:37:38

ourdev850725 发表于 2012-5-5 20:53 static/image/common/back.gif
如果是老的51,接下接电阻一样也有效果,只是会影响高电平的驱动能力,如果是现在的STC或者其它增强的51,不 ...

我懂你的意思了,这个电阻的阻值关键

331086846 发表于 2013-4-4 17:20:44

同问。。。。。
页: [1]
查看完整版本: 51单片机上电IO直接是高