最近在玩PIC12F629,哎,被这玩意儿的寄存器弄得实在郁闷!
我的GPIO0、GPIO1、GPIO2都能正常使用,就是GPIO4、GPIO5死活不能用!
初始化我检查了N遍,结果还是一样!
__CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTEN & INTIO);
/**************************************************************************
* 函数原型: void ParaInit(void)
* 功 能: 参数初始化
**************************************************************************/
void ParaInit(void){
TMR0 = TMR0_Value;
time_10mS = vTime_10mS;
time_100mS =vTime_100mS;
time_1S = vTime_1S;
time_1Min = vTime_1Min;
time_1Hour= vTime_1Hour;
time_10Hour = vTime_10Hour;
}
/**************************************************************************
* 函数原型: void InitSys(void)
* 功 能: 系统初始化
**************************************************************************/
void InitSys(void){
INTCON = 0xd0; //使能GP2/INT 外部中断,使能TMR0 溢出中断
OPTION = 0x8f;
CMCON = 0x07;
WPU = 0x00;
TRISIO = 0x00;
GPIO = 0xff;
T1CON = 0x08;
TMR1IE = 1; //允许Timer1中断
ParaInit();
}
/**************************************************************************
* 函数原型: void main(void)
* 功 能: 主程序
**************************************************************************/
void main(void){
InitSys();
while(1){
CLRWDT();
GPIO=0xff;
Delay_mS(100);
GPIO=0x00;
Delay_mS(100);
// CommandDeal();
}
}
就是上面这样直接置1或0,再延时也是毫无用处。
搞了2、3天了,还是一样!
期待大虾们的回复!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
在OSC1(输入)和OSC2(放大器输出)引脚之间内
置有一个晶体振荡器电路。通过将控制位T1OSCEN
(T1CON<3>)置1 可使能该振荡电路。该振荡电路是
低功耗振荡电路,额定频率最高可达37 kHz。在休眠模
式中,它仍可继续工作。该振荡电路主要适用于32 kHz
晶振。表9-2 显示了Timer1 振荡器的可选电容。
Timer1 的振荡器与系统LP 振荡器共用。因此,只有当
系统时钟来自于内部振荡器时, Timer1 才能采用该模
式。与系统LP 振荡器相同,用户必须提供软件延时以
确保振荡器的正常起振。
当Timer1 振荡器被使能时,TRISIO4 和TRISIO5 置1。
GP4 和GP5 读作0,而TRISIO4 和TRISIO5 读作1。
你初始化里,有这句:T1CON = 0x08:
你把LP振荡打开了。
结果就是:
当Timer1振荡器(就是指LP)被使能时,TRISIO4 和TRISIO5 置1。
GP4 和GP5 读作0,而TRISIO4 和TRISIO5 读作1。
请问楼主 pic12f629 这个单片机能自己制作ISP下载线吗? 像at89s52那样的,那学起来就简单多了。
我现在在DIY LED小手电的电路, 里面用到这个单片机对LED进行调光,然后用mos管扩流加大LED的驱动电流。
一周热门 更多>