c
```c
#include <reg51.h>
#include <intrins.h>
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i=0;i<250;i++);
}
}
//main()
//{
// unsigned char LED;
//
// P2=0XFF;
// LED=0XFE;
// P2=LED;
// while(1)
// {
// delayms(250);
// LED=_cror_(LED,1);
// P2=LED;
// }
void main()
{
int i;
unsigned char LED;
int led[]={0XFF,0XE7,0XC3,0X81,0X00};
while(1)
{
for(i=0;i<5;i++)
{
P2=led[i];
delayms(250);
}
P2=0XFF;
LED=0XFE;
P2=LED;
for(i=0;i<8;i++)
{
delayms(250);
LED=_crol_(LED,1);
P2=LED;
}
P2=0XFF;
LED=0X7F;
P2=LED;
i=0;
for(i=0;i<8;i++)
{
delayms(250);
LED=_cror_(LED,1);
P2=LED;
}
for(i=0;i<5;i++)
{
P2=0X55;
delayms(250);
P2=0xAA;
delayms(250);
}
}
}
22222
c
#include<reg51.h>//51单片机寄存器定义的头文件
sbit S1=P3^0;//定义S1按键与单片机P3.0位相连
sbit S2=P3^1;//定义S2按键与单片机P3.1位相连
sbit S3=P3^2;//定义S3按键与单片机P3.2位相连
sbit S4=P3^3;//定义S4按键与单片机P3.3位相连
void delay(void)//定义延时函数用于按键去抖动,延时10ms
{
unsigned char i,j;
for(i=0;i<20;i++)
for(j=0;j<250;j++);
}
void main(){
P3=0xff;//对S1-S4按键复位。
P2=0xff;//对8个LED灯复位
while(1)//是否有按键按下循环监测
{if(S1==0)//判断是否S1按键按下
{delay();//去抖动处理
if(S1==0)//确认S1按键按下
{P2=0xfc;//给P0口置数点亮LED1和LED2
}
}if(S2==0)//判断是否S2按键按下
{delay();//去抖动处理
if(S2==0)//确认S2按键按下
{P2=0xf3;//给P0口置数点亮LED3和LED4
}
}
if(S3==0)//判断是否S3按键按下
{delay();//去抖动处理
if(S3==0)//确认S3按键按下
{P2=0xcf;//给P0口置数点亮LED5和LED6
}
}if(S4==0)//判断是否S4按键按下
{delay();//去抖动处理
if(S4==0)//确认S4按键按下
{P2=0x3f;//给P0口置数点亮LED7和LED8
}
}
}
}