#include "reg52.h" //必用头文件
typedef unsigned int u16;
typedef unsigned char u8;
sbit bo1 = P2^0;
sbit bo2 = P2^1;
sbit bo3 = P2^2;
sbit bo4 = P2^3;
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit key = P3^2; //位定义按键
void delay(u16 t)
{
while(t--);
}
unsigned char flag = 0;
void main(void)
{
P2 = 0x00; //P1全赋0
bo4 = 1;
while(1){
if(key == 0) //按键消抖
{
delay(1000);
if(key == 0)
{
flag++;
switch(flag%5) //判断切换的是第几个波形
{
case 1: bo1=1;bo2=0;bo3=0;bo4=1;led0=0;led1=1;led2=0;led3=0;led4=0;break; //P1.0
case 2: bo1=0;bo2=1;bo3=0;bo4=1;led0=0;led1=0;led2=1;led3=0;led4=0;break; //P1.1
case 3: bo1=0;bo2=0;bo3=1;bo4=1;led0=0;led1=0;led2=0;led3=1;led4=0;break; //P1.2
case 4: bo1=0;bo2=0;bo3=0;bo4=0;led0=0;led1=0;led2=0;led3=0;led4=1;break; //P1.3
default:bo1=0;bo2=0;bo3=0;bo4=1;led0=1;led1=0;led2=0;led3=0;led4=0;break; //回到无失真波形
}
}while(key == 0);
}
}
}