[应用方案]

【NuMaker-M471测评】串行点阵模块的驱动显示

[复制链接]
1947|6
手机看帖
扫描二维码
随时随地手机跟帖
jinglixixi|  楼主 | 2021-7-30 19:22 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2021-7-30 19:25 编辑

串行点阵模块是一种基于控制芯片MAX7219的点阵显示模块,在单级使用的情况下,一片MAX7219可控制一块8*8点阵的显示块,若采用级联的方式,则可驱动多个点阵块,以实现多个字符的同时显示,起到点阵信息屏的显示效果。
该模块的电路原理图见图所示:

1.jpg
图1   模块电路图

作为开发板的控制接口, Arduino接口的引脚排列如图2所示。

2.jpg
图2引脚排列

为便于连接,点阵模块与开发板的引脚连接关系为:
DIN-- PA2
CS--PA1
CLK-- PA0

MAX7219的初始化函数为:
void Init_MAX7219(void)
{
Write_Max7219(0x0b, 0x07);
Write_Max7219(0x0c, 0x01);
Write_Max7219(0x0f, 0x00);
}

相关的辅助函数为:
void Write_Max7219_byte(unsigned char DATA)
{
unsigned char i;
PA1 = 0;
for(i=8;i>=1;i--) {
PA0 = 0;
if(DATA&0x80)  PA2 = 1;
else  PA2 = 0;
DATA=DATA<<1;
PA0 = 1;
}
}

void Write_Max7219(char address,char dat)
{
PA1 = 0;
Write_Max7219_byte(address);
Write_Max7219_byte(dat);
PA1 = 1;
}


相关显示的字模被存放在数组中,其结构为:
unsigned char disp[38][8]={
{0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x3C},//0
{0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10},//1
{0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},  //2
...
}

实现图3显示效果的主程序为:
int main()
{
uint32_t i,j;
SYS_Init();
GPIO_SetMode(PB, BIT14, GPIO_MODE_OUTPUT);
GPIO_SetMode(PA, BIT2, GPIO_MODE_OUTPUT);
GPIO_SetMode(PA, BIT1, GPIO_MODE_OUTPUT);
GPIO_SetMode(PA, BIT0, GPIO_MODE_OUTPUT);
GPIO_SetMode(PH, BIT4, GPIO_MODE_INPUT);
TIMER_Delay(TIMER0, 500);
Init_MAX7219();
PB14 = 1;
while(1)
{
for(j=0;j<38;j++)
{
for(i=1;i<9;i++)
Write_Max7219(i,disp[j][i-1]);
TIMER_Delay(TIMER0, 1000000);
}
}
}

其中,内层的循环是为了完成单个字符的显示,而外层的循环则是负责将字符库中的内容遍寻显示一轮。
在显示过程中,每显示完一个字符,板上的LED就切换一次显示状态。
3.jpg

图3  显示效果

使用特权

评论回复
twjiang| | 2021-8-2 08:49 | 显示全部楼层
你应该再提供一个字体转字模(数组)的工具才算完美!

使用特权

评论回复
twjiang| | 2021-8-2 10:36 | 显示全部楼层
TTF to Bitmap Font

使用特权

评论回复
jinglixixi|  楼主 | 2021-8-2 19:11 | 显示全部楼层
twjiang 发表于 2021-8-2 08:49
你应该再提供一个字体转字模(数组)的工具才算完美!

可选取PCtoLCD2002

使用特权

评论回复
huahuagg| | 2023-9-27 20:06 | 显示全部楼层
7219这个芯片很经典。

使用特权

评论回复
huahuagg| | 2023-9-27 20:07 | 显示全部楼层
驱动数码管用的这个,以前用该。

使用特权

评论回复
jinglixixi|  楼主 | 2023-9-28 08:08 | 显示全部楼层
huahuagg 发表于 2023-9-27 20:07
驱动数码管用的这个,以前用该。

用起来比较有特点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

446

主题

2675

帖子

36

粉丝