51单片机分别采用两组IO口驱动一个8X8点阵LED,编程实现循环显示0~9的c代码
时间: 2024-05-16 17:14:39 浏览: 96
51单片机开发板实验:用LED数码显示器循环显示数字0~9程序源代码.rar
假设两组IO口分别为P1和P2,8X8点阵LED的接口为COM和SEG,其中COM为行控制,SEG为列控制,可以使用以下代码实现循环显示0~9:
```c
#include <reg51.h>
#define COM P1
#define SEG P2
unsigned char code LED_TBL[] = { // 数码管显示表格
0xc0, 0xf9, 0xa4, 0xb0, 0x99, // 0~4
0x92, 0x82, 0xf8, 0x80, 0x90 // 5~9
};
void delay(unsigned int t) { // 延时函数
unsigned int i, j;
for (i = 0; i < t; i++)
for (j = 0; j < 120; j++);
}
void main() {
unsigned char i, j;
while (1) {
for (i = 0; i < 10; i++) { // 显示0~9
for (j = 0; j < 8; j++) { // 逐行显示
COM = ~(1 << j); // 选择行
SEG = LED_TBL[i]; // 显示数码
delay(1); // 延时一段时间
SEG = 0x00; // 关闭数码
}
}
}
}
```
该代码使用了延时函数实现了逐行显示,可以根据实际情况调整延时时间,以达到更好的显示效果。
阅读全文