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

[复制链接]
3021|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 | 显示全部楼层
二进制是这样写的???
兰天白云 发表于 2013-3-6 13:00 | 显示全部楼层
TRIS = 011111
基本语法不对
 楼主| largef 发表于 2013-3-6 14:28 | 显示全部楼层
如果是语法错误,为什么用GP0接+5V或GND,程序是OK的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部