|
給你寫個(gè)程序,完全滿足你的要求#include <AT89X51.H>
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P3^0;
sbit LED2=P3^1;
sbit LED3=P3^2;
sbit LED4=P3^3;
sbit LED5=P3^4;
sbit LED6=P3^5;
sbit LED7=P3^6;
sbit LED8=P3^7;
uchar num1=0,num2=0,num3=0,num4=0; //中斷計(jì)時(shí)變量
uchar num1_1=0,num2_1=0,num3_1=0,num4_1=0;//中斷計(jì)數(shù)變量
bit flag1=0,flag2=0,flag3=0,flag4=0; //使能計(jì)時(shí)標(biāo)志
void Timer0Init() //50毫秒@12.000MHz
{
TMOD= 0x01; //設(shè)置定時(shí)器模式
TL0 = 0xB0; //設(shè)置定時(shí)初值
TH0 = 0x3C; //設(shè)置定時(shí)初值
TR0 = 1; //定時(shí)器0開啟
EA=1; //開總中斷
ET0=1; //開定時(shí)器0中斷
}
void keyscan() //按鍵掃描程序
{
static bit sign=0; //按鍵自鎖標(biāo)志
static uint count=0; //消抖計(jì)數(shù)變量
uchar key=0; //臨時(shí)變量
if(P1!=0xff) //檢測(cè)有按鍵按下
{
count++; //消抖計(jì)數(shù)
if((count>=500)&&(sign==0))
{
sign=1; //按鍵自鎖標(biāo)志置1
key=P1; //讀取鍵值
switch(key)
{
case 0xfe: flag1=1;num1=0; break;
case 0xfd: flag1=0;LED1=1;LED2=1;break;
case 0xfb: flag2=1;num2=0; break;
case 0xf7: flag2=0;LED3=1;LED4=1;break;
case 0xef: flag3=1;num3=0; break;
case 0xdf: flag3=0;LED5=1;LED6=1;break;
case 0xbf: flag4=1;num4=0; break;
case 0x7f: flag4=0;LED7=1;LED8=1;break;
default: break;
}
}
}
else //按鍵抬起
{
count=0; //消抖計(jì)數(shù)變量清0
sign=0; //按鍵自鎖標(biāo)志清0
}
}
void main()
{
Timer0Init();
while(1)
{
keyscan();
}
}
/**************中斷服務(wù)程序*****************/
void timer0() interrupt 1
{
TL0 = 0xB0; //設(shè)置定時(shí)初值
TH0 = 0x3C; //設(shè)置定時(shí)初值
if(flag1==1)
{
num1++;
if(num1<=100)
{
LED1=0;LED2=1;
}
else
{
LED1=1;LED2=0;
}
if(num1>=220)
{
num1=0;
num1_1++;
}
if(num1_1>=10)
{
LED1=1;LED2=1;flag1=0;
}
}
if(flag2==1)
{
num2++;
if(num2<=100)
{
LED3=0;LED4=1;
}
else
{
LED3=1;LED4=0;
}
if(num2>=220)
{
num2=0;
num2_1++;
}
if(num2_1>=10)
{
LED3=1;LED4=1;flag2=0;
}
}
if(flag3==1)
{
num3++;
if(num3<=100)
{
LED5=0;LED6=1;
}
else
{
LED5=1;LED6=0;
}
if(num3>=220)
{
num3=0;
num3_1++;
}
if(num3_1>=10)
{
LED5=1;LED6=1;flag3=0;
}
}
if(flag4==1)
{
num4++;
if(num4<=100)
{
LED7=0;LED8=1;
}
else
{
LED7=1;LED8=0;
}
if(num4>=220)
{
num4=0;
num4_1++;
}
if(num4_1>=10)
{
LED7=1;LED8=1;flag4=0;
}
}
}
無標(biāo)題.jpg (175.83 KB, 下載次數(shù): 68)
下載附件
2018-3-4 16:29 上傳
|
評(píng)分
-
查看全部評(píng)分
|