怎样用按键C51语言控制流水灯亮灭呢?
发布网友
发布时间:2022-04-27 05:51
我来回答
共2个回答
热心网友
时间:2022-06-27 04:48
#include <reg51.h>
sbit P3_3=P3^3;
sbit P3_4=P3^4;
unsigned char Time,Ledtemp,Sign;
void InitTimer1()//50ms定时器初始化
{
TMOD = 0x10;
TH1 = 0x3C;
TL1 = 0x0B0;
EA = 1;
ET1 = 1;
TR1 = 1;
}
main()
{
InitTimer1();
while(1)
{
if(P3_3==0)Sign=1;//P3.3按下启动流水灯
if(P3_4==0)Sign=0;//P3.4按下停止流水灯
if(Sign)P1=Ledtemp;
else P1=0;
}
}
void Timer1Interrupt() interrupt 3
{
TH1 = 0x3C;
TL1 = 0x0B0;
if(Time<50)Time++;//中断50次=1s
else
{
Time=0;
if(Ledtemp>0)Ledtemp>>=1;//高电平循环右移
else Ledtemp=0x80;
}
}
已测试,自己拿去编译。
这个是单片机IO口输出高电平的流水灯,如果要改成输出低电平的,只需要把23行改成P1=~Ledtemp
热心网友
时间:2022-06-27 04:48
想设置流水灯P1.7亮,一秒后P1.6亮;然后按P3.3开始...