STC11系列的单片机好像可以设置IO上电默认低电平,请问用软件的方式怎么去设置,好像datasheet里面

加下拉电阻并且将引脚设置成强推挽模式就可以上电默认低电平,但是怎么设定啊?回答好了加更多分以示酬谢!... 加下拉电阻并且将引脚设置成强推挽模式就可以上电默认低电平,但是怎么设定啊?
回答好了加更多分以示酬谢!
展开
 我来答
stc12C01
推荐于2016-01-30 · TA获得超过242个赞
知道小有建树答主
回答量:168
采纳率:0%
帮助的人:200万
展开全部

以STC12C5628系列为例,按datasheet说法:

现可在STC12系列单片机I/O口上加一个下拉电阻(1K/2K/3K),这样上电复位时,虽然单片机内部I/O口是弱上拉/高电平输出,但由于内部上拉能力有限,而外部下拉电阻又较小,无法将其拉高,所以该I/O口上电复位时外部为低电平。如果要将此I/O口驱动为高电平,可将此I/O口设置为强推挽输出,而强推挽输出时,I/O口驱动电流可达20mA,故肯定可以将该口驱动为高电平输出。


以P2.0为例,要将这个口设为上电低电平。请看I/O口设置sfr:


#include "stc12c5628ad.h"


void main(void)

{

  P2M0 = 0x00;    //0000 0000  注意最低位0为对应P2.0的P2M0设置强推挽

  P2M1 = 0x01;    //0000 0001 注意最低位1为对应P2.0的P2M1设置强推挽

  while(1) {  ;  }

}

追问
这个在STC官网有解释,只是按照这个方法,还是不能上电默认低电平,另外你这个 P2M0和P2M1 是IO口模式设置寄存器,是不是它们已经在C51头文件里面已经定义好了,不需要自己重新定义了,比如SBUF之类的这些口就直接赋值就好了,我上次就完全按照上面改的,输出依旧是上电默认高电平,一点变化都没有啊。
追答
可以到官网 http://www.stcmcu.com 上去,下载一个已经定义好的头文件,里面有P2M0等定义。
如果还是高电平,则要注意以下几点:
1.如果是5V供电,这个口的输出高电平有多高,是接近5V,还是3V多?如果是前者,就要看你的sfr设置是否正确了(1是模式PnM0与PnM1要与数据表对应,2是要注意位不要搞错了);如果是后者,说明电压已经有一定的改变,说明下拉电阻用小了,参考图中的470R是用来限流的,可以根据需要减小或者不要这个电阻。
2.是否有外围电路会将你的IO口电平抬高?可以先断开其它电路试试。
另外,我的回答中,忘了在加P2&=0xFE;了。
GUEL86
2012-12-23 · TA获得超过5857个赞
知道大有可为答主
回答量:5538
采纳率:86%
帮助的人:2762万
展开全部
STC系列单片机,可以设置成强推挽模式,或者高阻模式、准双向模式。
电默认为高电平。没有电默认低电平的功能。
一般推动继电器 可以加下拉电阻,然后 上电 先置低电平,再设置成强推挽模式,就不会产生
上电时 继电器 的 跳动 一下的 误动作。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式