中科因仑“3+1”工程特种兵精英论坛
标题:
点击此处下载pic单片机定时器0问题
[打印本页]
作者:
张衍波
时间:
2015-3-26 16:15
标题:
点击此处下载pic单片机定时器0问题
用PIC16F685这个型号,发现定时器0没有开启停止位(第一次玩这个单片机),而且写了个代码,发现定时器溢出标志一直没置位。用中断方式,中断也进不去大家给看看。
#include <pic16f685.h>
unsigned int i;
void Init_Fosc(void)
{
OSCCON=0x67;//内部时钟 4M
}
void Init_GPIO(void)
{
PORTC =0;
TRISCbits.TRISC1=0; //RC1口设置成输出 用来控制继电器
PORTCbits.RC1=0;
}
void Init_Timer0(void)
{
OPTION_REG=0x87; //预分频为256
}
/*void interrupt isr(void)//中断程序,interrupt是个关键字说明该函数,是中断函数。
{
i++;
if(i==20)
{
PORTCbits.RC1=1;
i=0;
}
INTCONbits.T0IF=0;//清零中断标志位 如果在离开中断程序前没有清零,程序将不停的中断。
TMR0=61;//给TMR0付初始值61 ,开始下一个50ms计时做准备。
}*/
void main()
{
unsigned char i;
Init_Fosc();
Init_GPIO();
Init_Timer0();
//INTCONbits.GIE=1;//开启总中断
INTCONbits.T0IF=0;//清零TMR0溢出中断标志位
//INTCONbits.T0IE=1;//开启TMR0溢出中断
TMR0=61;//50ms
while(1)
{
if(T0IF==1)
{
i++;
T0IF=0;//清除T0IF中断标志位
TMR0=61;//设置中断初始值61为下次50ms定时做准备
if(i==20)
{
i=0;
RC1=0;
}
else
{
RC1=1;
}
}
}
}
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4