您的位置:首页 > 其它

键盘扫描LED_SCAN.H

2009-08-30 10:25 302 查看
#include<reg51.h>
#define unchar unsigned char
const unchar code LED_TAB[]=
{
//0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90  //共阴
0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f //共阳
};  //数码管数字码表 根据实际情况选择共阴还是共阳
unchar LED_BUF[4];
//使能键
//1为关,0为开
sbit LED_A=P1^3;
sbit LED_B=P1^2;
sbit LED_C=P1^1;
sbit LED_D=P1^0;

/*************************************************
LedStore(unchar first,second,third,fourth)
此函数用来装载LED_BUF[4]缓存,有四个入口参数。
四个入口参数分别为数码管的1,2,3,4位
*************************************************/
//四个入口参数分别为数码管的1,2,3,4位
void LedStore(unchar first,unchar second,unchar third,unchar fourth)
{
LED_BUF[0]=first;
LED_BUF[1]=second;
LED_BUF[2]=third;
LED_BUF[3]=fourth;
}

//****************************************************
void LedScan()
{
static unchar a=0;
//控制LED动态显示
switch(a)
{
case 0:  //显示第一个
LED_D=1;  LED_A=0;
break;

case 1:  //显示第二个
LED_A=1;  LED_B=0;
break;

case 2:  //显示第三个
LED_B=1;  LED_C=0;
break;
case 3:  //显示第四个
LED_C=1;  LED_D=0;
break;
}
P0=LED_TAB[LED_BUF[a]];
++a;
if(a>3) a=0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: