搜索
bottom↓
回复: 6

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

[复制链接]

出0入0汤圆

发表于 2009-9-20 12:37:58 | 显示全部楼层 |阅读模式
之前用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成了交替输出了。(未开启看门狗)

出0入0汤圆

发表于 2009-9-20 13:07:51 | 显示全部楼层
端口位操作时,不能连续进行操作,加入一条Nop空指令,好好看看PIC的端口操作资料

出0入0汤圆

 楼主| 发表于 2009-9-20 13:07:57 | 显示全部楼层
找到问题,在ANSEL寄存器上出问题。按数据手册上说,这个寄存器只影响输入。如果TRIS设置成输出,ANSEL是不会影响的。但看来手册上也有问题。将ANSELB设0,上述问题就解决了。

看来有关模块设置的寄存器,好使手册中说明不会影响的,为安全起见还是配置上为好。

出0入0汤圆

 楼主| 发表于 2009-9-20 13:09:22 | 显示全部楼层
回【1楼】 tdh03z:
连续位操作是可以的。至少在我这没出问题。我提出的问题是因ANSEL寄存器引起的。

出0入213汤圆

发表于 2009-9-24 13:28:31 | 显示全部楼层
佩服楼主的研究精神

出0入0汤圆

发表于 2009-9-25 10:32:02 | 显示全部楼层
用CCSC啦 软件自动帮你设置

出0入0汤圆

发表于 2009-9-25 10:50:47 | 显示全部楼层
根据我自用pic单片机的经验,象楼主那样操作RA口是会出问题的,操作RB,RC口倒没出现过问题。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-10 01:02

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表