大体思路:设P0^0控制LED的亮灭,当P0.0=0时灯点亮。有两种闪烁方式,可以让1HZ的在main()函数里闪烁。然后开个定时器,让100HZ的在定时器中断里闪烁,就行了。
1HZ就是1S亮一次,100HZ是10ms亮一次
#include<reg52.h>
void delay(int x)
{
时间是5ms;
}
void timer1()interrupt 1 定时器0中断
{
static unsigned int a;
unsigned int b;
if(++a==5) 看是否到了5S
{
TR0=0;先把定时器关了,防止在送段运行时再次进入中断。
a=0;
for(b=1000;b>0;--b)
{
P0.0=0; 让灯亮灭的间隔为5MS。一共闪5S
delay(1);
p0.0=~p0.0;
delay(1);
}
}
TH0=XX; 再次 设置好定时器,让它每隔1S进一次中断;
TL0=XX;
TR0=1;
}
void main()
{
TH0=XX; 设置好定时器,让它每隔1S进一次中断;
TL0=XX;
TR0=1;
while(1)
{
P0.0=0; 灯开始以500ms为间隔开始亮灭。
delay(100);
p0.0=~p0.0;
delay(100);
}
}
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。