PIC16F72 TIMER0定時器練習程序
這里需要用到OPTION,INTCON的配置,還有TMR0計數(shù)值的預置。
本文引用地址:http://2s4d.com/article/201611/316069.htm典型應用程序:利用定時中斷實現(xiàn)發(fā)光管一閃一閃功能。
源程序:
#include
#define uchar unsigned char
#define uint unsigned int
#define LED1 RC0
///////////////////////初始化設置程序////////////////////////////////
void Init(void)
{
PORTA = 0B00000000;
PORTB = 0B00000000;
PORTC = 0B00000000;
TRISA = 0B00000000;//設置PORTA口為輸出
TRISB = 0B00000001;//設置RB0為輸入,作為按鍵口
TRISC = 0B00000000;//設置RC輸出
ADCON1=0B11111111;//設置為數(shù)字I/O
counter=0;
OPTION=0B01010011;//配置中斷和定時器0
TMR0=5;
T0IE=1;//使能定時器中斷0
GIE=1; //全局中斷使能
}
///////////////////////定時中斷程序////////////////////////////////
void interrupt timer0_int(void)
{
T0IF=0;//清除中斷標志位
TMR0=5; //重新設置定時器時間
counter++;
if(counter==250)
{
counter=0;
LED1=!LED1;
}
}
///////////////////////主程序////////////////////////////////
void main (void)
{
Init();//初始化程序
PORTC=0XFF;
PORTB=0XFF;
while(1);
}
評論