新聞中心

PIC16F72 Timer1 使用

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò) 收藏
PIC16F72 定時(shí)器1使用,程序執(zhí)行結(jié)果,LED一閃一閃。

使用到的寄存器具體請(qǐng)看datasheet

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

#include
__CONFIG(11111110111001);//bit13-bit7=1;bit6 欠壓使能(1 enable);bit5=1;bit4 代碼保護(hù)(0保護(hù));
//bit3 上電延時(shí)(0 enable);bit2 看門(mén)狗(1 enable);bit1-bit0 時(shí)鐘選擇 (11 RC 10 HS 01 XT OO LP)

#define uchar unsigned char
#define uint unsigned int

void Init(void); //初始化子程序
void delayms(unsigned int count);

#define LED1 RC0

/*********************************************/
void delayms(unsigned int count)
{
uint i,j;
for(i=0;ifor(j=0;j<120;j++);
}
/*********************************************/
void Init(void)
{
PORTA = 0B00000000;
PORTB = 0B00000000;
PORTC = 0B00000000;

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

RBPU=0;//PORTB上拉使能
ADCON1=0B11111111;//設(shè)置為數(shù)字I/O
}

//////////////////////中斷服務(wù)程序/////////////////////////

void interrupt timer1_int(void)
{

TMR1IF=0;//清除中斷標(biāo)志位

TMR1L=0;
TMR1H=250; //重新設(shè)置定時(shí)器時(shí)間
counter++;
if(counter==100)
{
counter=0;
LED1=!LED1;
}

}
////////////主程序/////////////////////////
void main (void)
{
uchar i;
Init();//初始化程序
PORTC=0XFF;
PORTB=0XFF;
counter=0;

T1CON=0B00110101;
TMR1L=0;
TMR1H=250;
TMR1IE=1; //外設(shè)中斷使能
PEIE=1;//使能定時(shí)器1 中斷
GIE=1; //全局中斷使能
while(1);

}



關(guān)鍵詞: PIC16F72Timer

評(píng)論


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

關(guān)閉