51单片机8*8点阵实现9-0
时间: 2024-02-06 16:00:56 浏览: 38
以下是51单片机8*8点阵实现9-0的代码示例:
```c
#include <reg51.h>
// 8*8点阵字符集
unsigned char code LEDCharSet[] = {
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0
0x00, 0x21, 0x7F, 0x01, 0x00, 0x00, // 1
0x21, 0x43, 0x45, 0x49, 0x31, 0x00, // 2
0x22, 0x49, 0x49, 0x49, 0x36, 0x00, // 3
0x0C, 0x14, 0x24, 0x7F, 0x04, 0x00, // 4
0x72, 0x51, 0x51, 0x51, 0x4E, 0x00, // 5
0x3E, 0x49, 0x49, 0x49, 0x0E, 0x00, // 6
0x40, 0x47, 0x48, 0x50, 0x60, 0x00, // 7
0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 8
0x30, 0x49, 0x49, 0x4A, 0x3C, 0x00 // 9
};
void main() {
unsigned char i, j;
unsigned int k;
while(1) {
for(i = 0; i < 10; i++) { // 显示0~9
for(k = 0; k < 1000; k++) { // 延时
for(j = 0; j < 6; j++) { // 6列
P0 = LEDCharSet[i*6+j]; // 设置P0口的输出
P1 = ~(1 << j); // 设置P1口的输出
delay(1);
}
}
}
}
}
void delay(unsigned int t) {
unsigned int i, j;
for(i = 0; i < t; i++)
for(j = 0; j < 125; j++);
}
```
该代码使用了一个8*8点阵字符集,通过循环显示0~9。其中,P0口用于设置点阵每一列的输出,P1口用于设置点阵每一行的输出。其中的`delay()`函数用于延时。请注意,这只是一个简单的示例,实际应用中需要根据具体需求进行更改和优化。