由508升级到675,上电读取GP3电平异常,GP3下拉2K电阻,GP0接LED ,其它口悬空,代码精简至如下:
------------PIC12F508---------------
#include<pic.h>
__CONFIG(0x01);
#define gout GP0
#define ikey GP3
void main()
{
TRIS=0x08; //设置GP3为输入
OPTION=0xC0; //禁止上拉
if(!ikey){gout=0; ……读GP3电平正常
------------PIC12F675---------------
#include<pic.h>
__CONFIG(0x3001);
#define gOut GPIO0
#define iKey GPIO3
void main()
{
//OSCCAL = _READ_OSCCAL_DATA();
CMCON = 0x07; // 关闭比较器
TRISIO = 0x3E; // 先设置所有引脚为输入
ANSEL=0x00;
IOCB = 0; // 禁止引脚电平变化引起中断
WPU = 0; // 禁止弱上拉,这里排除过
if(!iKey){gOut=0; ……读GP3电平失常
现在的现象是上电大概40%机率是读到低电平,40%“死机”或者GPIO0 的LED灯频闪。20%读到高电平,给人的直觉很大干扰的样子
分别试过内置振荡和4M晶振、读GP3前延时、上电延时等都没有办法解决了,看了两天PIC12F675的数据手册也看不出所然,小弟刚接触单片机,文字表达能力也不强,请大家指导下,不胜感激:D |