51单片机8*8点阵图使用sl595芯片的代码
时间: 2023-07-02 16:20:44 浏览: 89
好的,以下是一个简单的基于51单片机和74HC595芯片驱动8x8点阵的代码示例:
```c
#include <reg51.h>
#define LED_DOUT P0_0 // 74HC595的数据输出引脚
sbit LED_SCK = P1^0; // 74HC595的时钟引脚
sbit LED_RCK = P1^1; // 74HC595的锁存引脚
unsigned char code LED_TBL[] = { // 8x8点阵的显示表
0xC3, 0xBD, 0x99, 0x81, 0x81, 0x99, 0xBD, 0xC3
};
void delay_ms(unsigned int n) { // 延时函数
unsigned int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < 125; j++);
}
}
void LED_WriteByte(unsigned char dat) { // 向74HC595写入一个字节的数据
unsigned char i;
for (i = 0; i < 8; i++) {
LED_DOUT = (dat & 0x80) >> 7;
dat <<= 1;
LED_SCK = 0;
LED_SCK = 1;
}
LED_RCK = 0;
LED_RCK = 1;
}
void LED_Show(unsigned char *dat) { // 在8x8点阵上显示数据
unsigned char i;
for (i = 0; i < 8; i++) {
LED_WriteByte(~dat[i]);
}
}
void main() {
unsigned char i;
while (1) {
for (i = 0; i < sizeof(LED_TBL); i++) {
LED_Show(&LED_TBL[i]);
delay_ms(500);
}
}
}
```
这个代码使用了74HC595芯片来驱动8x8点阵,通过向74HC595写入数据来控制点阵的亮灭。其中,LED_DOUT是74HC595的数据输出引脚,LED_SCK是时钟引脚,LED_RCK是锁存引脚。LED_TBL数组是8x8点阵的显示表,用来存储要显示的数据。在主函数中,通过循环遍历显示表,将数据写入74HC595并在点阵上显示出来。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)