用单片机定时/计数器以定时器t0的方式,工作方式1软件启动利用单片机引脚p1.0 控制LED灯2秒闪烁一次,以中断的方式编程
参考
定时器定时周期定为50mS,然后在定时器中断中做计数,加到40的适合就是2S了,翻转一次,再重新开始计数,再次到达40再次翻转,依此循环就可以2S闪烁一次
#include <reg51.h>
sbit LED_OUT= P1^0;
unsigned char time_cnt = 0;
// 定时器初始化
void timer0_init()
{
EA = 0;
TMOD = 0x01; // T0选择方式1
TH0 = (65536-50000)/256; // 定时器初始值高字节
TL0 = (65536-50000)%256; // 定时器初始值低字节
ET0 = 1;
TR0 =1;
EA = 1;
}
// 定时器中断
void timer0() interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
time_cnt++;
if(time_cnt == 40)
{
LED_OUT= ~LED_OUT; // 翻转LED灯
time_cnt = 0;
}
}
void main()
{
void timer0_init();
while(1);
}