查看: 1673|回复: 0
打印 上一主题 下一主题

pic单片机定时器0问题

[复制链接]
跳转到指定楼层
沙发
发表于 2015-3-19 13:18:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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;
                        }
                }

        }

}

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表