📄 按键调速控制程序.c
字号:
//AT89C52制作的LED彩灯的调速控制程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,//左右循环流水灯!
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar lede,t,a;//定义全局变量参数名
uchar speed,flag;
sbit K1=P2^1;//定义按键
sbit K2=P2^2;
sbit K3=P2^3;
void delay(uint z) //延时函数
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
t++;
if(t==speed)
{
t=0;
lede=1;
}
}
void init() //初始化函数
{
TMOD=0X01;
TH0=(65536-10000)/256;//定义进入中断时间为1MS
TL0=(65536-10000)%256;
EA=1;//开总中断
ET0=1;
TR0=1;//启动T0定时器
lede=0;
a=0;
t=0;
speed=100;
}
void main()//主函数
{
init();
while(1)
{
if(lede)
{
lede=0;
P1=tab[a];
a++;
if(a==16)
{
a=0;
}
}
if(!K1)speed=100;//按键1是LED以1S的时速来回闪动!
if(!K2)speed=50;//按键2是LED以50MS的时速来回闪动!
if(!K3)speed=10;//按键1是LED以1MS的时速来回闪动!
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -