打印

PIC16F876A RB5的怪问题……(绝对不是菜鸟的问题)

[复制链接]
1787|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小鱼儿1045|  楼主 | 2012-3-16 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机RB5输出不了高点平,但是在我将RB5置高,后加一个小延时,就能输出高电平了。我用的是18.432M。配置字都对。单片机也换过,硬件电路是Rb5控制一个9013的基极。下面是简化的程序:
void Init(void)
{
TRISB5 = 0;
RB5 = 0;
}
void SetStart(void)
{
RB5 = 1;
delay(1);//程序不加这句,就不输出高电平。
……
}
搞了很久,用汇编也写过,就是不行。有18.432M是要求的晶振。
沙发
小鱼儿1045|  楼主 | 2012-3-16 17:37 | 只看该作者
补充:代码反汇编出来8000多行,初步判定可能是代码太长了。PC指针的问题吧。将大部分的代码屏蔽掉,就可以了。但是那些代码不涉及到RB5的操作……

使用特权

评论回复
板凳
Ryanhsiung| | 2012-3-16 17:43 | 只看该作者
RB5 = 1;
delay(1);//程序不加这句,就不输出高电平。

应该是被优化掉了,你可以将人优化等级降低一点。

使用特权

评论回复
地板
XIEYUANBIN| | 2012-3-17 11:37 | 只看该作者
读-修改-写的问题。你后面估计有其他的IO口的位操作紧随。比如 RB6 = 1 之类的语句

使用特权

评论回复
5
XIEYUANBIN| | 2012-3-17 11:39 | 只看该作者
另外9013基极与RB5之间是否有电阻?

使用特权

评论回复
6
小鱼儿1045|  楼主 | 2012-3-17 15:11 | 只看该作者
5# XIEYUANBIN
有一个限流的电组,我也尝试过短接,也不行。现在问题是RB5不输出高电平,貌似没有执行过RB5=1的指令

使用特权

评论回复
7
大江名誉| | 2012-3-17 16:50 | 只看该作者
短接更不行,电阻多大?
在后加句
RB5 = 1;
while(1);
直接量B5口的电压看是多少。

使用特权

评论回复
8
XIEYUANBIN| | 2012-3-17 18:03 | 只看该作者
5# XIEYUANBIN  
有一个限流的电组,我也尝试过短接,也不行。现在问题是RB5不输出高电平,貌似没有执行过RB5=1的指令
小鱼儿1045 发表于 2012-3-17 15:11

菜鸟,鉴定完毕

使用特权

评论回复
9
NE5532| | 2012-3-17 22:12 | 只看该作者
绝对的菜鸟级问题,100%的低级错误,只是楼主不会找问题罢了。推荐侃单片机精华帖里的黑宝书。

再送楼主一句话——现象越奇怪的问题,原因越低级。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

1966

帖子

19

粉丝