实验实现:八个红蓝LED灯实现流水灯定时闪烁,当按下按键Key则停止闪烁,松开按键恢复闪烁。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit Key=P3^2;
void delay(int i)
{
while(i--);
}
void init() //初始化定时器
{
TMOD = 0x01; //选择为定时器 0 模式, 工作方式 1, 仅用 TR0 打开启动。
TH0 = 0x3c; //给定时器赋初值
TL0 = 0xb0;
ET0 = 1;
TR0 = 1;
EX0=1;
IT0=1;
EA = 1;
}
void main()
{
init();
while(1);
}
void key() interrupt 0 using 0
{
if(Key==0)
{
delay(40000); //按键消抖
if(Key==0)
{
P0=0xff;
while(Key==0);//等待按键松开
}
}
}
void timer0() interrupt 1
{
TH0 = 0x3c;
TL0 = 0xb0;
P0 = ~P0;
delay(10000);
}
proteus仿真电路图
版权声明:本文为baidu_41629489原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。