16f77奇怪的端口问题

2020-02-10 08:43发布

最近搞了个项目太奇怪了。使用芯片是16f77 portb端口初始化0x83 但是不知道什么时候就被改写成0x9f 我只有在while(1)之前有改写的动作,在往后就没有了。 按照程序来说应该是不可能的。 发生改写的时候是在上电运行2个小时之后。有时候稍微长一些。那位大侠给解释一些。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
gaolf_2000
1楼-- · 2020-02-11 00:45
16系列没有锁存输出,你观测到的值是受外部电路影响的,要判断某口是否是被外部电路影响了,把外部电路断开再看看值还变不
luan_dahai
2楼-- · 2020-02-11 06:32
输出是个发光二极管。刚开始是好用的,但是不知道什么时候被改写成输入了。我地方对方向位操作啊。
gaolf_2000
3楼-- · 2020-02-11 09:05
那只能是程序的事了,一部分一部分裁减吧,看是哪段程序做得好事
luan_dahai
4楼-- · 2020-02-11 10:41
 精彩回答 2  元偷偷看……
caochunhua
5楼-- · 2020-02-11 14:54

(原文件名:寄存器.jpg)

会不会是bank设错了,对PORTB操作实际修改的是TRISB。
luan_dahai
6楼-- · 2020-02-11 16:32
谢谢caochunhua  我想应该不会的。我没有用汇编,是编译器自动分配的。
不过你这么一说我倒是感觉很像。 从现象来说,有一段时间不对portb操作就会导致trisb的错误。要是不停的对portb操作就没有问题。因为开始我不停的让他工作就没有问题。后来到了晚上他就处于待机的状态,没有对portb操作的指令了所以就出现了trisb的错误现象。倒是也可能是巧合

一周热门 更多>