C51/STC 单片机 1ms/1毫秒12T定时器0中断实现输出1HZ方波输出并控制LED闪烁 程序源码
#include <STC15F104E.h> //单片机型号:STC任意 (根据型号更改对应的头文件)
#define feed_dog() WDT_CONTR |= 0x10 //看门狗喂狗 (严禁在中断内、被中断调用的函数喂狗)
#define T1ms 0xFC18 //12Mhz 1ms 12T定时器初值 (根据晶振频率修改)
sbit hz1 = P3 ^ 3;
void InitTimer0(){
TMOD = 0x01;
TH0 = T1ms >> 8;
TL0 = T1ms;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(){
WDT_CONTR = 0x27; //开看门狗
InitTimer0();
while (1) {
feed_dog();
}
}
void Timer0Interrupt() interrupt 1{ //1ms定时器中断
static unsigned int ms = 0;
TH0 = T1ms >> 8;
TL0 = T1ms;
if(++ms >= 500){
ms = 0;
hz1 = !hz1;
}
}
页:
[1]