打印

****PICC求助,读端口无效?无语了

[复制链接]
3321|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
meihuadipu|  楼主 | 2007-4-15 08:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PIC16F630下编了一个PICC的小程序:

RC2和RC1分别用来控制两个灯 ,为高电平则对应的灯亮,为低则不亮。

一个灯是由延时控制RC2电平反相来一亮一灭的,另一个灯是根据RA0的端口电平来判断是否亮的,即RA0为高则RC1输出高电平,灯亮 ,反之不亮

但程序烧写进去后RC2控制的灯可以一亮一灭,但另一个却怎么也不亮,无论给RA0接高电平或低电平

#include <pic.h>
__CONFIG (0x0024);   //配置字设置

delay()
{
  int i,b;
  for(b=0;b<10;b++)
   {
     for(i=0;i<10000;i++)
     {;}
  }
}

void main()
{
  OSCCAL = _READ_OSCCAL_DATA();  //内部振荡校准
  POR=1;                                                  //清除上电复位标志
  PORTA=0x00;                                        //端口清零
  TRISA=0x3f;                                           //设置A口为输入
  TRISC=0x00;                                          //设置C口为输出
  PORTC =0x00;
  RC2=0;                                                   //赋初值 

  while(1)
  { 
     delay();
     RC2=!RC2;    
     if(RA0==1)
       RC1=1;
     else
       RC1=0;
  } 
}
沙发
chenlung| | 2007-4-15 11:51 | 只看该作者

re

好好看下datasheet,A口做为多功能口,相关的寄存器也要设置。没记错的话,A口还可以当比较器口用吧。

使用特权

评论回复
板凳
meihuadipu|  楼主 | 2007-4-15 12:45 | 只看该作者

哦,就是这个的问题,解决了,谢谢啦

使用特权

评论回复
地板
liqiinhit| | 2007-4-25 14:34 | 只看该作者

程序有错!!

兄弟你的程序有一点问题,内部振荡校准是不作用的!

请看:http://www.mcubbs.com/bbs/archiver/tid-2894.html

使用特权

评论回复
5
tuu123| | 2011-7-1 15:46 | 只看该作者
我的比较器关,RA0,RA1,RA2,作为输入口,依然还是低电平,都不知道怎么处理,不知道是不是ICD2的问题,有没有人碰到过这样的问题

使用特权

评论回复
6
yadaovs| | 2011-7-5 09:31 | 只看该作者
A口未配置成数字输入,始终读的是0

使用特权

评论回复
7
ls_view| | 2011-7-21 21:37 | 只看该作者
我今天也碰到这个问题了,搞了一个下午。先拿我自己开的板子,搞不定;拿开发板,搞不定,我开始怀疑是不是我的仿真器坏了。然后,测了数据线也都是好的,那个汗啊!最后拿Proteus试,还是读不进来,PORTA和PORTE总是0。一切努力证明,还是设置的不对。
最后发现,要把ADCON1设置一下,最后四位设成011X,A和E口就可以读入了。因为,PORTA和PORTE都可作为ADC端口用的。参考一下,有关ADC的资料章节。

使用特权

评论回复
8
谈的元| | 2011-7-21 23:05 | 只看该作者
哈哈,多人都在AD口上出问题啊

使用特权

评论回复
9
yewuyi| | 2011-7-22 09:12 | 只看该作者
不仔细看数据手册,那上帝也没有办法。

使用特权

评论回复
10
王金龙ARM| | 2011-7-28 15:36 | 只看该作者
我第一次用PIC16F886的时候也是这个问题,后来看手册才知道是ANSEL没有设置,浪费了一下午的时间。

使用特权

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

本版积分规则

4

主题

14

帖子

0

粉丝