打印

请教PIC16F1823 RA口输入检测不到的问题

[复制链接]
3790|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lyjoppo|  楼主 | 2013-3-22 17:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大虾,16F1823的RC口输出1/0挺正常的,RA口输入就是无法检测到,加了外部上拉,但读到的状态一直是低。
程序在下面,请帮忙看一下哪里问题吧,谢谢

#include<pic.h>
__CONFIG(0x09A4);
__CONFIG(0x3EFF);
void delay(unsigned int n)
{
  unsigned int k;
  for(k=0;k<n;k++);
}
void main()
{
  GIE=0;
  WDTCON=0x00;
  TRISA=0x3F;  /*设定RA口为输入*/
  ANSELA-0x00;
  TRISC=0x00;  /*设定RC口为输出*/
// PORTA=0x3F;
  PORTC=0x00;
  while(1)
  if(RA0==1)
  {   
        RC0=1;
        delay(6000);
        RC0=0 ;
        delay(6000);
  }
  else                 //程序一直在跑这一步,测试RA0引脚为高电平,实际程序按低电平在运行,不知为什么
   {   
        RC1=1;
        delay(6000);
        RC1=0;
        delay(6000);
    }
  
}
沙发
huangxz| | 2013-3-22 22:58 | 只看该作者
默认配置成模拟口了,改过来就行了,pic很奇怪,输入默认是模拟。

使用特权

评论回复
板凳
Rain_King| | 2013-3-24 22:41 | 只看该作者
楼上的是正确的解释.....就是说,PIC单片机的引脚有复用功能....如果设置为输入状态的话,必须要设置是模拟输入还是数字输入...但是PIC的默认是模拟输入...说以检测的时候,是无法检测到的...至于具体怎么设置,请自己仔细看资料...

使用特权

评论回复
地板
LingTian| | 2013-3-25 17:18 | 只看该作者
TRISA=0x3F;  /*设定RA口为输入*/
  ANSELA-0x00;   ????? - ????
  TRISC=0x00;  /*设定RC口为输出*/

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝