STC的IO引脚输出居然有三种状态,引脚取反LED=!LED崩溃压抑中
sbit LED=P3^0;void main()
{
TargetInit();
while(1)
{
switch(KeyScan())
{
case 0xfe: LED=!LED;break;
}
我设置的是强推挽输出
P3M0=0xff;
P3M1=0x00; //设置推挽输出 驱动ULN2003
型号是STC12LE5A16AD,电压3.3伏,LED 那个引脚输出 3.3V,1.6V,0V三种状态,而且随机的
崩溃
有谁遇到过这种问题 0,1两个状态是不是切换的太快了。 设置推挽输出后,就不能读取引脚状态了,当然会出现3种情况了。 为什么我的头像没改过来呢? case 0xfe: LED=!LED;break;
及其错误的方法。 取反是用~
另外你是用万用表测的吧?按下按键的时候是1.6V,松开按键后端口状态取决于上一次翻转后的状态,所以是随机的,有3.3也有0,没什么好奇怪的 3楼正解!
STC单片机能不用推挽就就不用推挽了!
51的IO口可以做输入输出了,但如果改成推挽方式后就只能做输出了,不能再做输入了! 问题解决了我现在用对一个变量取反 然后再赋值给端口 真正的双向口和准双向口,avr也是,输入和输出寄存器都不同。 最后先给键盘输入io口置1然后再去判断键盘输入值,io口0态时无法正确读外部信号 bbs2009 发表于 2012-4-1 19:21 static/image/common/back.gif
STC51够倒霉, 有问题首先被怀疑!
很多时候,出现问题,都不是从自身来找原因 eastboy 发表于 2012-3-28 15:43 static/image/common/back.gif
取反是用~
另外你是用万用表测的吧?按下按键的时候是1.6V,松开按键后端口状态取决于上一次翻转后的状态, ...
位取反是用"!"字节或以上取反用"~" yanjs1016 发表于 2012-4-1 19:23 static/image/common/back.gif
很多时候,出现问题,都不是从自身来找原因
信用不好,是首先被怀疑的对象了! 张小盒 发表于 2012-4-1 19:31 static/image/common/back.gif
信用不好,是首先被怀疑的对象了!
很赞同这个“信用”不好两字,
既然信用不好,一切皆有可能了。 summarize 发表于 2012-4-1 19:28 static/image/common/back.gif
位取反是用"!"字节或以上取反用"~"
"!"是逻辑取反,~是按位取反。如果变量是 bit 类型的,则两个是相同的结果。 手上常备几片stc51、at51、sst51、交叉验证用 貌似端口出现占空比为2:1的PWM LED=!LED;
一直用 LED^=1; 呵呵,我也有可能把罪过归为STC上来。。。 是在修改的时候出现一个脉冲,有中间状态
页:
[1]