新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F72 TIMER0定時(shí)器練習(xí)程序

PIC16F72 TIMER0定時(shí)器練習(xí)程序

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
要使用PIC的TIMER0,首先需要看數(shù)據(jù)手冊(cè),熟悉寄存器配置

這里需要用到OPTION,INTCON的配置,還有TMR0計(jì)數(shù)值的預(yù)置。

本文引用地址:http://butianyuan.cn/article/201611/316069.htm

典型應(yīng)用程序:利用定時(shí)中斷實(shí)現(xiàn)發(fā)光管一閃一閃功能。

源程序:

#include
#define uchar unsigned char
#define uint unsigned int

#define LED1 RC0

///////////////////////初始化設(shè)置程序////////////////////////////////

void Init(void)
{
PORTA = 0B00000000;
PORTB = 0B00000000;
PORTC = 0B00000000;

TRISA = 0B00000000;//設(shè)置PORTA口為輸出
TRISB = 0B00000001;//設(shè)置RB0為輸入,作為按鍵口
TRISC = 0B00000000;//設(shè)置RC輸出

ADCON1=0B11111111;//設(shè)置為數(shù)字I/O

counter=0;

OPTION=0B01010011;//配置中斷和定時(shí)器0
TMR0=5;
T0IE=1;//使能定時(shí)器中斷0
GIE=1; //全局中斷使能


}

///////////////////////定時(shí)中斷程序////////////////////////////////

void interrupt timer0_int(void)
{
T0IF=0;//清除中斷標(biāo)志位
TMR0=5; //重新設(shè)置定時(shí)器時(shí)間
counter++;
if(counter==250)
{
counter=0;
LED1=!LED1;
}
}

///////////////////////主程序////////////////////////////////

void main (void)
{
Init();//初始化程序

PORTC=0XFF;
PORTB=0XFF;
while(1);

}



關(guān)鍵詞: PIC16F72TIMER0定時(shí)

評(píng)論


技術(shù)專區(qū)

關(guān)閉