由于不能仿真,使用编程器(深圳乾龙盛的QL-2006)烧写程序,以下观察都是用示波器所得。烧写了两片,现象都一样,。
1、现象:
GPIO00不能输出或者输出电平不变,一直为高电平。GPIO01、GPIO02可以输入,也可以输出。
2、连接:
GPIO00控制LED, GPIO00---LED---电阻----VCC
3、初始化如下:
CMCON=0x07; //关闭比较器
TRISIO=0x3f; //IO设为输入 IO口只在需要输出的时候设置为输出,待机时为输入
WPU=0; //关闭上拉
INTCON=0x00;
OPTION=0x8f; //128分频
IOCB=0; //管脚中断控制关闭
VRCON=0; //基准源
T1CON=0;
4、配置如下:
__CONFIG(PROTECT & CPD & MCLRDIS & PWRTDIS & BORDIS & INTIO & WDTEN);
相关配置字在头文件里如下定义:
/* Protection of data block */
#define CPD 0x3EFF /* data protect on */
#define UNPROTECT 0x3FFF /* data protect off */
/* Protection of program code */
#define PROTECT 0x3F7F /* code protection on */
#define UNPROTECT 0x3FFF /* code protection off */
/* Brown out detection enable */
#define BOREN 0x3FFF /* brown out reset enabled */
#define BORDIS 0x3FBF /* brown out reset disabled */
/* Memory clear enable */
#define MCLREN 0x3FFF /* memory clear function enabled */
#define MCLRDIS 0x3FDF /* memory clear function disabled */
/* Power up timer enable */
#define PWRTDIS 0x3FFF /* power up timer disabled */
#define PWRTEN 0x3FEF /* power up timer enabled */
/* Watchdog timer enable */
#define WDTEN 0x3FFF /* watchdog timer enabled */
#define WDTDIS 0x3FF7 /* watchdog timer disabled */
/* Oscillator configurations */
#define RCCLK 0x3FFF /* GP4 = clock out signal/GP5 = RC osc */
#define RCIO 0x3FFE /* GP4 = IO/GP5 = RC osc */
#define INTCLK 0x3FFD /* internal osc/GP4 = clock out signal/GP5 = IO */
#define INTIO 0x3FFC /* internal osc/GP4 = IO//GP5 = IO */
#define EC 0x3FFB /* external clock */
#define HS 0x3FFA /* high speed crystal/resonator */
#define XT 0x3FF9 /* crystal/resonator */
#define LP 0x3FF8 /* low power crystal/resonator */
请教版主及各位好心人士,这个问题原因是什么,并如何解决? |