AT89C518×8 LED点阵屏显示数字程
时间: 2023-08-30 15:06:56 浏览: 75
下面是一个使用AT89C51单片机控制8x8 LED点阵屏显示数字的程序:
```c
#include <REG52.H>
#include <intrins.h>
// 定义引脚
sbit DIN = P1^0;
sbit CS = P1^1;
sbit CLK = P1^2;
// 定义显示的数字0-9的编码
unsigned char code num[10] = {
0x3F, 0x06, 0x5B, 0x4F, 0x66,
0x6D, 0x7D, 0x07, 0x7F, 0x6F
};
void delay(unsigned int t) {
while (t--);
}
void write(unsigned char dat) {
unsigned char i;
for (i = 0; i < 8; i++) {
CLK = 0;
DIN = dat & 0x80;
dat <<= 1;
CLK = 1;
}
}
void display(unsigned char dat) {
unsigned char i;
CS = 0;
for (i = 0; i < 8; i++) {
write(dat);
dat <<= 1;
}
CS = 1;
}
void main() {
unsigned char i;
while (1) {
for (i = 0; i < 10; i++) {
display(num[i]);
delay(500);
}
}
}
```
说明:
1. 首先定义引脚。
2. 定义显示的数字0-9的编码。
3. 定义延时函数。
4. 定义写入数据的函数write。
5. 定义显示数据的函数display。
6. 在主函数中循环显示数字0-9。