專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

PIC12F508單片機(jī)學(xué)習(xí)之一—定時(shí)器

作者:聽(tīng)雨心情   來(lái)源:聽(tīng)雨心情   點(diǎn)擊數(shù):  更新時(shí)間:2014年06月20日   【字體:

 

 
 
PIC12F508單片機(jī)是沒(méi)有中斷的,定時(shí)器只能是查詢方式。
 
編譯器用的XC8,編譯環(huán)境IDE用的是MPLAB X IDE。
 
 //***************************************************
//             __________________
//             VDD-| 1            8 |-VSS
//             GP5-| 2           27 |-GP0/DAT
//             GP4-| 3           26 |-GP1/CLK
//GP3/RMCLR--| 4           25 |-GP2
//             |________________|
//               12F508
//***************************************************
 
//定時(shí)器模式試用
#include
#include
 
// #pragma config statements should precede project file includes.
// Use project enums instead of #define for ON and OFF.
 
// CONFIG
#pragma config OSC = IntRC      // Oscillator Selection bits (internal RC oscillator)
#pragma config WDT = OFF        // Watchdog Timer Enable bit (WDT disabled)
#pragma config CP = OFF         // Code Protection bit (Code protection off)
#pragma config MCLRE = OFF      // GP3/MCLR Pin Function Select bit (GP3/MCLR pin function is digital input, MCLR internally tied to VDD)
 
#define uchar unsigned char
#define uint unsigned int
uchar  count;
//uchar  GP3_F;
void Init()
{
   TRIS=~0x3F;  //GP3輸入,其它輸出
  //GPWU = 0;//引腳中斷喚醒使能;引腳中斷要引起復(fù)位的,可以查詢復(fù)位原因,這樣就可以知道是誰(shuí)的中斷了
  //GPPU=0;/弱上拉使能
     OPTION=0xF5;//分頻器給定時(shí)器 64 4MHz        x=257-tJ/4F
     TMR0=0x63;   //10ms x=257-tJ/4F
}
 void  main()
{  
 Init();  
 while(1)
      if(TMR0==0xFF)
      {
       TMR0=0x63;   //
       if(++count==50)//1s
        {
         count=0;
         GP2=~GP2;//LED閃爍
        }
       }
    }
}
 
關(guān)閉窗口