專注電子技術學習與研究
當前位置:單片機教程網(wǎng) >> MCU設計實例 >> 瀏覽文章

PIC16F877定時器2的中斷方式調(diào)試

作者:佚名   來源:不詳   點擊數(shù):  更新時間:2014年08月31日   【字體:

PIC16F877單片機定時器2使用中斷方式調(diào)試程序如下:

#include<pic.h>

#define uchar unsigned char
#define uint  unsigned int
__CONFIG(0x3B31);
void init();
uint intnum;
void main()
{
 init();
 while(1)
 {
/*  if(intnum==5000)
  {
   intnum=0;
   RD0=!RD0;
  }*/ 
 }
}
void init()
{
 TRISD = 0x00; //設置PORTD為輸出低電平
 PORTD = 0x00; //
/* INTCON=0xc0;
 PIE1=0x02;
 TMR2=0;
 PR2=100;
 T2CON=0x0D;*/
 INTCON = 0xc0; //允許所有中斷、允許外設中斷
 PIE1 = 0x02; //允許TMR2與PR2匹配中斷 
// TMR2 = 56;  //4M晶振系統(tǒng),預設為(256-56=)200us
 TMR2 = 0; //與PR2比較中斷
 PR2 = 100;
 //T2CON = 0x04; //定時器2使能 
 //T2CON=0x05;//4預分頻并使能定時器2 
 T2CON=0x0D; //4預分頻、2后頻并使能定時器2
}
void interrupt time0()
{
/* TMR2IF=0;
// TMR2=56;
// RD0=!RD0;//
 intnum++;*/
 TMR2IF = 0;  //定時器2清除溢出中斷標志位
// TMR2 = 56;  //預裝初值
 intnum++;
 if(++intnum >= 5000)//為1S、4S、8S
 {
  intnum = 0;
  RD0 = !RD0; //反轉
 }
}
關閉窗口