GPIO 发表于 2022-5-10 18:02:25

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]
查看完整版本: C51/STC 单片机 1ms/1毫秒12T定时器0中断实现输出1HZ方波输出并控制LED闪烁 程序源码