打印
[复制链接]
1631|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
海川先生|  楼主 | 2014-5-13 14:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RB6 = dat[1]?1:0;
RB4 = dat[2]?1:0;
烧到板子里
1这两句话同时只有一个能实现;
2注释掉其中一个,另外一个就OK;
3如果两句中间延时500ms 两句都能实现;
4在protues中仿真一切正常;
用的是PIC16F690  PICC 9.83 的编译器;
怎么解释这个现象呢? 这两个IO通过三极管控制继电器,我判断跟硬件电路没关系;
沙发
yklstudent| | 2014-5-13 15:42 | 只看该作者
read->write

使用特权

评论回复
板凳
小鱼儿1045| | 2014-5-13 16:01 | 只看该作者
外面有没有接电容什么的啊?

使用特权

评论回复
地板
yewuyi| | 2014-5-13 16:31 | 只看该作者
IO口读-修改-写 。

在没有单独的IO输出缓冲寄存器的型号中,尽量不要位操作,如果一定要搞位操作,从代码可靠性的角度出发,应当自己定义一个无符号变量,然后把这个变量整体赋值给IO口寄存器。

例如:uchar PORTAbuf=0;
PORTA=PORTAbuf;

在需要操作PORTA某一个位时,可以对PORTAbuf操作,然后整体赋值过去。

如果对于增强型的PIC16来说,例如后来的PIC16F1XXX等型号,则芯片多了LATA寄存器,直接操作它即可。

使用特权

评论回复
5
海川先生|  楼主 | 2014-5-15 21:20 | 只看该作者
yewuyi 发表于 2014-5-13 16:31
IO口读-修改-写 。

在没有单独的IO输出缓冲寄存器的型号中,尽量不要位操作,如果一定要搞位操作,从代码 ...

谢谢斑竹指点

使用特权

评论回复
6
海川先生|  楼主 | 2014-5-15 21:22 | 只看该作者
yewuyi 发表于 2014-5-13 16:31
IO口读-修改-写 。

在没有单独的IO输出缓冲寄存器的型号中,尽量不要位操作,如果一定要搞位操作,从代码 ...

比如A 端口 有输入管脚 也有输出管脚 对A端口整体赋值会影响到输入管脚吗?

使用特权

评论回复
7
zxlabc| | 2014-5-16 08:09 | 只看该作者
編譯器優化了不?

使用特权

评论回复
8
yewuyi| | 2014-5-16 08:20 | 只看该作者
海川先生 发表于 2014-5-15 21:22
比如A 端口 有输入管脚 也有输出管脚 对A端口整体赋值会影响到输入管脚吗? ...

在设置为输入态时,不管输出是1还是0,均不会影响输入状态的读取。

使用特权

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

本版积分规则

17

主题

200

帖子

1

粉丝