AT89C51,利用键盘扫描函数以及消抖原理,实现按下四个不同开关时,实现不同的流水灯显示。当按下开关S1时,从上至下跑马灯,当按下S2时,由下至上,当按下S3时,高四位和低四位LED灯不断交替闪烁,当按下S4时,八位LED灯闪烁。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit S0=P1^0;
sbit S1=P1^1;
sbit S2=P1^2;
sbit S3=P1^3;//定义引脚
uchar keyval;//键值存储变量单元
uchar dis_code[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uchar m;
void delay(uint i) //延时函数
{
uint j;
while(i--)
{for(j=0;j<125;j++);}
}