setpulse.c
来自「一个基于STC89C52的单片机程序」· C语言 代码 · 共 51 行
C
51 行
#include "STC12C5410AD.h"
#include "type.h"
sbit Pulse_OP = P1^3;
#define TH0_RELOAD 0xFC
#define TL0_RELOAD 0x17
#define HIGH_INTERVAL 100
#define LOW_INTERVAL 1000
/*****变量定义*******/
uint16_t current_count = 0;
uint16_t count[2]={HIGH_INTERVAL, LOW_INTERVAL};
uint16_t elec=0;
void timer0_init(void)
{
TMOD=0x01;
EA=1;
ET0=1;
Pulse_OP = 1;
}
void start_timer0(void)
{
TH0=TH0_RELOAD;
TL0=TL0_RELOAD;
TR0=1;
}
void stop_timer0(void)
{
TR0=0;
}
void timer0_isq(void) interrupt 1
{
if(current_count >= count[elec])
{
current_count = 0;
elec = (elec+1)%2;
Pulse_OP = ~Pulse_OP;
}
else
{
current_count++;
}
start_timer0();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?