按键控制单片机改变流水灯速度
/*程序效果:有三个按键,按下其中任意一个流水灯的速度改变
*/#includereg52.h //52 系列单片机的头文件#define uchar unsigned char//宏定义
#define uint unsigned intuchar count=40,flag=0; //定义刚开始的流水灯的速度,后
一个为标志变量void main(){uchar i=0;//定义局部变量EA=1; //打开总
中断ET0=1; //打开定时器TR0=1; //启动定时器TH0=(65536-50000)
/256; //装初值TL0=(65536-50000)%256; P2=0xfe; //点亮第一个数码管,
为下次循环做准备while(1){ if(flag) //flag 被置位{
flag=0;//清零,为下次做准备P2=~P2; //取反P2=1;
//左移一位P2=~P2; //取反i++;
if(i==8) //移到第八个数码管,则从新装初值{
i=0; P2=0xfe; } }
P0=0xf0; //赋初值if((P00xf0)!=0xf0) //判断是否有按键按下{
if(P0==0x70) //按下第一个按键count=60; //给count 从新赋值
if(P0==0xb0) count=20; if(P0==0xd0) count=10;} }}void time0() interrupt 1 //定时器0{static uchar cnt; //定义静态变量TH0=(65536-50000)/256;TL0=(65536-50000)%256; cnt++; //计数if(cnt==count){ cnt=0; //清零flag=1; //置标志位}} tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!。