STM32使用MAX7219控制点阵屏和点阵屏级联

07-01 1027阅读

本文仅仅针对如何使用STM32通过使用MAX7219对点阵屏的控制和级联,提供相应的程序说明和简单的芯片说明,具体的芯片说明请查找数据手册(找淘宝商家要最简单)

目录

一、芯片简单介绍

1.芯片管脚配置

1.1管脚描述

 2.时序图

2.1数据格式

二、 如何使用

 1.单字节写入函数

     2.芯片初始化

3.显示函数

三、级联说明


STM32使用MAX7219控制点阵屏和点阵屏级联

一、芯片简单介绍

1.芯片管脚配置

 

STM32使用MAX7219控制点阵屏和点阵屏级联

1.1管脚描述

管脚名称功能
1DIN串行数据输入端口。在时钟上升沿时数据被载入内部

的16 位寄存器。

2,3,5-8,10,11DIG 0–DIG

7

八个数据驱动线路置显示器共阴极为低电平。关闭时

7219 此管脚输出高电平,7221 呈现高阻抗。

4,9GND地线(4 脚和9 脚必须同时接地)
12LOAD

(MAX7219)

载入数据。连续数据的后16 位在LOAD 端的上升沿时

被锁定。

CS

(MAX7221)

片选端。该端为低电平时串行数据被载入移位寄存

器。连续数据的后16 位在cs 端的上升沿时被锁定。

13CLK时钟序列输入端。最大速率为10MHz.在时钟的上升

沿,数据移入内部移位寄存器。下降沿时,数据从DOUT

端输出。对MAX7221 来说,只有当cs 端为低电平时时

钟输入才有效。

14-17,20-23SEG

A–SEG G,

DP

7 段和小数点驱动,为显示器提供电流。当一个段驱

动关闭时,7219 的此端呈低电平,7221 呈现高阻抗。

18SET通过一个电阻连接到VDD 来提高段电流。
19V+正极电压输入,+5V
24DOUT串行数据输出端口,从DIN 输入的数据在16.5 个时

钟周期后在此端有效。当使用多个MAX7219/MAX7221

时用此端方便扩展。

 2.时序图

STM32使用MAX7219控制点阵屏和点阵屏级联

        通过三线控制,当CS拉低时开始传输数据,CLK由低变高时的DIN引脚的高低代表1和0。当CS由0变1时,数据将存入芯片内部。

2.1数据格式

STM32使用MAX7219控制点阵屏和点阵屏级联

        数据格式上图所示,一帧数据由2部分组成,高8位是地址,低8位是数据。地址由0到15,分别对应数据寄存器和控制寄存器如下图所示:

STM32使用MAX7219控制点阵屏和点阵屏级联

具体内容参考官方数据手册,关于芯片内部这里只做简单的描述,主要会用就行。

二、 如何使用

STM32使用MAX7219控制点阵屏和点阵屏级联STM32使用MAX7219控制点阵屏和点阵屏级联

        我使用的是共阴极点阵屏,配合寄存器图可知,其实Digit0~7控制的就是点阵屏的第1~8行,当给Digit命令后,相当于拉低电平了,那么这一行都是低电平,只要列是高,那么灯就会亮,所以根据这个特性编写程序。

 1.单字节写入函数

编程的第一步便是通过时序图编写一个写入函数程序如下。

/*3个引脚的控制宏定低    位带操作*/
#define MAX7219_DIN PBout(5)
#define MAX7219_CS 	PBout(6)
#define MAX7219_CLK PBout(7)
void MAX7219_Write_byte(uint8_t data)//单字节写入
{
	uint8_t i=0;
	MAX7219_CS=0;//为了防止CS没有拉低,所以每次写都拉低
	for(i=8;i>0;i--)
	{
		MAX7219_CLK=0;
		if(data&0x80)//高位先行
		{
			MAX7219_DIN=1;
		}
		else
		{
			MAX7219_DIN=0;
		}
		data=data
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]