打印

是不是PIC12F508A 端口做输入不是高阻态

[复制链接]
2579|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
largef|  楼主 | 2013-3-4 23:51 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
请教PIC12F508A 端口做输入问题(线路和C语言如下):
GP0和GP1做输入时,用示波器量测默认5V。
GP0和GP1的侦查电路无法把GP0和GP1拉高或拉低
侦查电路断开12F508A后是可以动作的,接上单片机后就无法动作,零件阻值大小都试过。
直接用GP0或GP1不接侦查电路,直接去点+5V或GND,程序输出是可以满足要求的

我做了一个实验GP0或GP1接一个1K电阻,电阻另一端点+5V或GND,也是不能拉高或拉低,是不是PIC12F508A 端口做输入不是高阻态?
求DX赐教!





#include <pic.h>
__CONFIG(MCLRDIS&WDTDIS&PROTECT&INTRC);  
unsigned int i;
void delay_min (unsigned int min)
{
for (i=0;i<min;i++)
{
   delay (5000);
}
}

void main()
{
  int count = 0;
TRIS = 011111;
OPTION = 0x00;
  GP5 = 1;
while(1)
{
  if (GP0==0)   // GP0是声控输入脚
  {
   GP5=0; //GP5推动光耦
   delay_min(1); //1是85秒
   GP5=1;
  }
  if (GP1==1)   // GP0是声控输入脚
  {
   GP5=0; //GP5推动光耦
   delay_min(1);
   GP5=1;
  }

}
}

沙发
asspeed| | 2013-3-5 10:05 | 只看该作者
TRIS=011111;????? 你告诉我011111是二进制还是十进制还是十六进制?

使用特权

评论回复
板凳
largef|  楼主 | 2013-3-5 21:36 | 只看该作者
asspeed 发表于 2013-3-5 10:05
TRIS=011111;????? 你告诉我011111是二进制还是十进制还是十六进制?

设置12F508A的端口状态,508A只有6个端口所以用二进制设置为011111(GP5为输出,GP0~GP4为输入),大侠的意思要改成TRIS =0X1F吗?

使用特权

评论回复
地板
asspeed| | 2013-3-5 22:32 | 只看该作者
二进制是这样写的???

使用特权

评论回复
5
兰天白云| | 2013-3-6 13:00 | 只看该作者
TRIS = 011111
基本语法不对

使用特权

评论回复
6
largef|  楼主 | 2013-3-6 14:28 | 只看该作者
如果是语法错误,为什么用GP0接+5V或GND,程序是OK的

使用特权

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

本版积分规则

2

主题

12

帖子

0

粉丝