LED数码动态管扫描子程序
时间: 2023-08-26 17:27:26 浏览: 55
LED数码动态管扫描是一种常见的显示方式,可以通过编写相应的程序实现。下面是一个简单的LED数码动态管扫描子程序的示例,供参考:
```
void LED_Display(unsigned char *p) //定义LED数码动态扫描函数
{
unsigned char i;
unsigned char code table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //共阴数码管的0~9编码表
unsigned char temp[8] = {0}; //定义临时数组,用于存放扫描的数字
for(i=0;i<8;i++) //将需要扫描的数字存入临时数组中
{
temp[i] = table[p[i]];
}
for(i=0;i<8;i++) //依次扫描每一位数码管
{
switch(i) //选择当前需要扫描的数码管
{
case(0):
P0 = 0xfe;
break;
case(1):
P0 = 0xfd;
break;
case(2):
P0 = 0xfb;
break;
case(3):
P0 = 0xf7;
break;
case(4):
P0 = 0xef;
break;
case(5):
P0 = 0xdf;
break;
case(6):
P0 = 0xbf;
break;
case(7):
P0 = 0x7f;
break;
default:
break;
}
P2 = temp[i]; //将要显示的数字发送到数码管
delay(1); //延时一段时间,等待数码管显示
P2 = 0x00; //关闭数码管
}
}
```
该子程序的输入为一个8位无符号整型数组,表示需要显示的数字,输出为在数码管上显示这些数字。其中,P0和P2为MCU的I/O端口,delay为延时函数,应根据实际情况进行修改。