//*******************PIC16F877A 看門狗定時器實驗*******************
//
//PORTA,PORTB,PORTC,PORTD,PORTE複位時為輸入狀态
//PORTA.4(RA4)為開漏輸出
//
//WDT運作于獨立的内部RC振蕩器,即使器件時鐘停振,WDT仍正常工作
//PIC16F877A單片機的WDT隻能在燒寫晶片時通過配置位啟動或停止
//WDT基本溢出時間為18ms,由于溫度影響,該值在7-33ms之間變化
//WDT和TMR0共用一個預分頻器
//PSA=1; //預分頻器配置設定給WDT使用
//PS2 PS1 PS0 WDT
// 0 0 0 1 分頻
// 0 0 1 2 分頻
// 0 1 0 4 分頻
// 0 1 1 8 分頻
// 1 0 0 16 分頻
// 1 0 1 32 分頻
// 1 1 0 64 分頻
// 1 1 1 128分頻
//
//mcu: PIC16F877A 12MHz
//2010年7月11日8:03:01
//****************************************************************
#include <lian_pic.h>
__CONFIG(HS&WDTEN&LVPDIS&PWRTEN);
//HS振蕩,打開看門狗,低壓程式設計關閉,啟動延時定時器
//********************函數定義*********************
void delay1ms(uint DelayTime);
//*************** 主程式 ********************
void main(void)
{
PSA=1; //預分頻器配置設定給WDT使用
PS2=1;
PS1=1;
PS0=1; //預分頻器128分頻
TRISC=0x00; //PORTC口設定為輸出
PORTC=0x00;
CLRWDT(); //清看門狗
while(1)
{
PORTC++;
delay1ms(200);
}
}
//***************延時 n*1ms 12MHz***************
void delay1ms(uint DelayTime)
{ uint temp;
for(;DelayTime>0;DelayTime--)
{ for(temp=0;temp<270;temp++)
{;}
}
}
//*******************PIC16F877A 看門狗定時器實驗*******************
//
//PORTA,PORTB,PORTC,PORTD,PORTE複位時為輸入狀态
//PORTA.4(RA4)為開漏輸出
//
//WDT運作于獨立的内部RC振蕩器,即使器件時鐘停振,WDT仍正常工作
//PIC16F877A單片機的WDT隻能在燒寫晶片時通過配置位啟動或停止
//WDT基本溢出時間為18ms,由于溫度影響,該值在7-33ms之間變化
//WDT和TMR0共用一個預分頻器
//PSA=1; //預分頻器配置設定給WDT使用
//PS2 PS1 PS0 WDT
// 0 0 0 1 分頻
// 0 0 1 2 分頻
// 0 1 0 4 分頻
// 0 1 1 8 分頻
// 1 0 0 16 分頻
// 1 0 1 32 分頻
// 1 1 0 64 分頻
// 1 1 1 128分頻
//
//mcu: PIC16F877A 12MHz
//2010年7月11日8:03:01
//****************************************************************
#include <lian_pic.h>
__CONFIG(HS&WDTEN&LVPDIS&PWRTEN);
//HS振蕩,打開看門狗,低壓程式設計關閉,啟動延時定時器
//********************函數定義*********************
void delay1ms(uint DelayTime);
//*************** 主程式 ********************
void main(void)
{
PSA=1; //預分頻器配置設定給WDT使用
PS2=1;
PS1=1;
PS0=1; //預分頻器128分頻
TRISC=0x00; //PORTC口設定為輸出
PORTC=0x00;
CLRWDT(); //清看門狗
while(1)
{
PORTC++;
delay1ms(200);
}
}
//***************延時 n*1ms 12MHz***************
void delay1ms(uint DelayTime)
{ uint temp;
for(;DelayTime>0;DelayTime--)
{ for(temp=0;temp<270;temp++)
{;}
}
}