[MCU] 一个非常简单的MCU问题

[复制链接]
3964|22
 楼主| 那风又起 发表于 2014-3-25 12:37 | 显示全部楼层 |阅读模式
MCU, FOR, sd, RS, HC
sbit SHCP=P3^0;     
sbit SDA_G=P2^5 ;
  uchar s;
  uchar k;   
  for(s=0;s<4;s++)     
{
      for(k=0;k<8;k++)
        {
         SHCP=0;   
      SDA_G=0;      
            SHCP=1; }
   }
不管格式问题,MCU运行这段程序后,好想问一下P3^0(SHCP)是什么电平,
我用共阳极的LED测了一下,LED微亮,说明它不是高电平,也不是底电平,这是为什么,不理解。是MCU质量问题吗?请各位大侠指导一下。
aozima 发表于 2014-3-25 12:48 | 显示全部楼层
没有万用表么?
51如果不是推挽模式,默认的上拉输出很弱的。
ayb_ice 发表于 2014-3-25 13:04 | 显示全部楼层
MCU是输出高电平,但PIN的电平还取决于外部因素



标准51是准双向口,LZ去看资料吧
创隆电子 发表于 2014-3-25 13:26 | 显示全部楼层
P3.0端口单片机输出是高,但还要看你的外围电路
创隆电子 发表于 2014-3-25 13:27 | 显示全部楼层
但要注意你这样写,是不能通过LED查看状态的
创隆电子 发表于 2014-3-25 13:30 | 显示全部楼层
高、低变化之间没有延时,人眼岂能看出来
草民 发表于 2014-3-25 13:36 | 显示全部楼层
“LED微亮,说明它不是高电平,也不是底电平”
猜测是类似PWM一样的电平脉冲,因为不是完整的高电平,也不是完整的低电平,所以LED灯微亮。
wh6ic 发表于 2014-3-25 14:57 | 显示全部楼层
你查看编译后的汇编代码,可以发现P3.0低电平时间只有两个周期,高电平十来个周期。你的LED应该是P3.0低电平时点亮的,占空比比较低,所以亮度比较差。
在内循环里面你刚清零P3.0,后面跟着就又置高了。

评分

参与人数 1威望 +2 收起 理由
那风又起 + 2 赞一个!

查看全部评分

 楼主| 那风又起 发表于 2014-3-25 17:31 | 显示全部楼层
非常感谢各位的解答……我在去想想…找找资料
wzx2088 发表于 2014-3-26 07:25 来自手机 | 显示全部楼层
高低电平变化太快
gx_huang 发表于 2014-3-26 08:34 | 显示全部楼层
你再怎么想程序也没有用,你要先看懂GPIO内部的原理和LED的特性。

评分

参与人数 1威望 +2 收起 理由
那风又起 + 2 赞一个!

查看全部评分

mfkyygt 发表于 2014-3-26 11:22 | 显示全部楼层
估计是IO口直接连数码管了
lkl0305 发表于 2014-3-26 12:17 | 显示全部楼层
这是个动态的过程啊,脉冲信号,那万用表肯定是不行的

评分

参与人数 1威望 +2 收起 理由
那风又起 + 2 很给力!

查看全部评分

xiaox314 发表于 2014-3-26 13:51 | 显示全部楼层
用万用表去测,你用LED灯,哪里看得出效果,一般单片机管脚输出电流都很小,微亮就说明输出是高了~
yinyankang 发表于 2014-3-26 14:34 | 显示全部楼层
IO口的4种设置
huagaoteng 发表于 2014-3-26 15:56 | 显示全部楼层
{
         SHCP=0;   
      SDA_G=0;      
            SHCP=1; }
   }
以上这段,你先给SHCP赋值为0,接着又赋值为1,这中间才多长点时间啊,赋值为0后你做个延时1S后你再试试。或者去掉SHCP=1; 这句,灯就会亮了。
chongxinc 发表于 2014-3-28 08:37 | 显示全部楼层
明显是一个PWM调光的程序啊,在多加几个延时就能或者减几个就是正常调光了。可以用示波器看看
yls0221 发表于 2014-3-28 08:57 | 显示全部楼层
时间有点短
lanchong1980 发表于 2014-3-28 09:02 | 显示全部楼层
你的LED是高亮还是正常的
carlnerv 发表于 2014-3-28 11:26 | 显示全部楼层
建议用示波器看端口
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

35

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部