MAX7219的.c文件
时间: 2024-05-02 12:16:55 浏览: 19
以下是 MAX7219 的 C 语言驱动程序示例代码:
```c
#include <avr/io.h>
#include <util/delay.h>
#include "max7219.h"
void MAX7219_init(void)
{
// 设置 SPI 接口引脚方向
DDRB |= (1<<PB3) | (1<<PB5) | (1<<PB2);
// 设置 SPI 接口工作模式
SPCR = (1<<SPE) | (1<<MSTR);
// 设置 MAX7219 控制寄存器初始值
MAX7219_write(MAX7219_REG_SCAN_LIMIT, 0x07);
MAX7219_write(MAX7219_REG_DECODE_MODE, 0x00);
MAX7219_write(MAX7219_REG_SHUTDOWN, 0x01);
MAX7219_write(MAX7219_REG_DISPLAY_TEST, 0x00);
MAX7219_write(MAX7219_REG_INTENSITY, 0x0F);
MAX7219_clear();
MAX7219_write(MAX7219_REG_SHUTDOWN, 0x00);
}
void MAX7219_write(uint8_t reg, uint8_t data)
{
// 使能片选信号
PORTB &= ~(1<<PB2);
// 发送控制寄存器地址
SPDR = reg;
// 等待 SPI 数据传输完成
while(!(SPSR & (1<<SPIF)));
// 发送控制寄存器数据
SPDR = data;
// 等待 SPI 数据传输完成
while(!(SPSR & (1<<SPIF)));
// 禁用片选信号
PORTB |= (1<<PB2);
}
void MAX7219_clear(void)
{
for(uint8_t i=1; i<=8; i++) {
MAX7219_write(i, 0x00);
}
}
void MAX7219_display_digit(uint8_t digit, uint8_t num)
{
MAX7219_write(digit, num);
}
void MAX7219_display_number(uint16_t num)
{
MAX7219_clear();
uint8_t digit = 1;
while(num > 0) {
uint8_t remainder = num % 10;
MAX7219_display_digit(digit, remainder);
num /= 10;
digit++;
}
}
```
以上代码中,`MAX7219_init()` 函数用于初始化 MAX7219 芯片,包括设置 SPI 接口、设置 MAX7219 控制寄存器的初始值、清除显示内容等;`MAX7219_write()` 函数用于向 MAX7219 控制寄存器写入数据;`MAX7219_clear()` 函数用于清除显示内容;`MAX7219_display_digit()` 函数用于显示单个数字;`MAX7219_display_number()` 函数用于显示多位数字。需要注意的是,在使用这些函数之前,需要先调用 `MAX7219_init()` 函数初始化 MAX7219 芯片。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)