求助:PIC16F722 端口奇异现象!!!!(已解决)

2020-02-10 08:36发布

之前用16F72没问题,想用上串口就找16F722,该注意的寄存器都改过来了,编译下去。不能运行,百思不得其解,整个最简单的程序测试一下,结果发现这个奇异现象:

测试程序如下:(PICC 9.65 编译)
void main (void)
{  
    TRISB1 = 0;
    TRISB2 = 0;
    RB1 = 0;
    RB2 = 0;
   
    for (;;)
    {
        RB1 = 1;
        RB2 = 1;
    }
}

程序结果是RB1、RB2输出1,但实测结果却出乎我意料。用示波器测试了一下:结果。。。  RB1置1时,RB2被置0,运行到RB2置1时,RB1又被置0了。就是说RB1、RB2成了交替输出了。(未开启看门狗)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
tdh03z
1楼-- · 2020-02-10 09:46
 精彩回答 2  元偷偷看……
yujie
2楼-- · 2020-02-10 13:26
找到问题,在ANSEL寄存器上出问题。按数据手册上说,这个寄存器只影响输入。如果TRIS设置成输出,ANSEL是不会影响的。但看来手册上也有问题。将ANSELB设0,上述问题就解决了。

看来有关模块设置的寄存器,好使手册中说明不会影响的,为安全起见还是配置上为好。
yujie
3楼-- · 2020-02-10 18:00
回【1楼】 tdh03z:
连续位操作是可以的。至少在我这没出问题。我提出的问题是因ANSEL寄存器引起的。
jyrpxj
4楼-- · 2020-02-10 21:23
佩服楼主的研究精神
piccode
5楼-- · 2020-02-10 21:52
用CCSC啦 软件自动帮你设置
phone
6楼-- · 2020-02-11 00:50
 精彩回答 2  元偷偷看……

一周热门 更多>