搜索

[PIC®/AVR® MCU] 【CuriosityNano测评报告】+串行数码管的显示驱动

[复制链接]
12853|38
jinglixixi|  楼主 | 2021-5-28 14:52 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2021-5-28 17:00 编辑

#申请原创#

在构建了开发环境及具备了下载功能的前提下,可以由GPIO口的学习来控制开发板的实用功能。

本次所介绍的内容是用GPIO口来模拟SPI接口,以驱动一个串行输入的8位数码管模块,该模块如图1所示。

1  8位串行数码管模



该数码管的基本内容是:它采用MAX7219是串行输入/并行输出的显示驱动芯片,可连接一个8位的7段数码管,也可连接64个独立的LED。在该芯片内部集成了一个B型的BCD码编码多路扫描回路、段字驱动器。而且还含有一个8*8的静态RAM来存储显示数据,且有一个外部寄存器用来设置各LED的段电流。该芯片的串行接口可连接各种通用的微处理器,每个数据可以寻址在更新时无需改写其显示,它也同样允许用户对每个数据选择编码或是不编码。该芯片包含一个150uA的低功耗关闭模式,模拟和数字亮度控制,扫描限制寄存器允许用户显示1-8位数据,且有一个让所有LED发光的检测模式。在显示过程中,无抖动和闪烁现象,支持级联方式进行显示位数的扩展。2个电源引脚外,另3个引脚为:串行数据输入端DIN、串行时钟输入端CLK及片选引脚CS在使用过程中,串行数码管引脚与开发板的连接关系为:VCC---5VGND---GNDDIN---RC4CLK--- RC6CS --- RC7相应的引脚在MCC中的配置情况如图2
所示,此外为便于编程还调用了系统的延时函数。

2 引脚配置

PIC18F16Q40下,实现串行数据发送的函数为:
  1. void Write_Max7219_byte(char DATA)
  2. {
  3. char i;
  4. CS_SetLow();
  5. for(i=8;i>=1;i--)
  6. {
  7. CLK_SetLow();
  8. if(DATA&0x80)
  9. DIN_SetHigh();
  10. else
  11. DIN_SetLow();
  12. DATA=DATA<<1;
  13. CLK_SetHigh();
  14. }
  15. }
复制代码

向寄存器写入数据的函数为:
  1. void Write_Max7219(char address,char dat)
  2. {
  3.      CS_SetLow();
  4.          Write_Max7219_byte(address);
  5.          Write_Max7219_byte(dat);
  6.          CS_SetHigh();
  7. }
复制代码

实现芯片X7219初始化的函数为:
  1. void Init_MAX7219(void)
  2. {
  3. Write_Max7219(0x09, 0xff);
  4. Write_Max7219_2(0x09, 0xff);
  5. Write_Max7219(0x0a, 0x02);
  6. Write_Max7219_2(0x0a, 0x02);
  7. Write_Max7219(0x0b, 0x07);
  8. Write_Max7219_2(0x0b, 0x07);
  9. Write_Max7219(0x0c, 0x01);
  10. Write_Max7219_2(0x0c, 0x01);
  11. Write_Max7219(0x0f, 0x00);
  12. Write_Max7219_2(0x0f, 0x00);
  13. }
复制代码

实现图3所示显示效果的主程序为:
  1. void main(void)
  2. {
  3.     SYSTEM_Initialize();
  4.    
  5.     Init_MAX7219();
  6.     Write_Max7219(1,1);
  7.     Write_Max7219(2,2);
  8.     Write_Max7219(3,3);
  9.     Write_Max7219(4,4);
  10.     Write_Max7219(5,5);
  11.     Write_Max7219(6,6);
  12.     Write_Max7219(7,7);
  13.     Write_Max7219(8,8);
  14.    
  15.     Write_Max7219_2(1,8);
  16.     Write_Max7219_2(2,7);
  17.     Write_Max7219_2(3,6);
  18.     Write_Max7219_2(4,5);
  19.     Write_Max7219_2(5,4);
  20.     Write_Max7219_2(6,3);
  21.     Write_Max7219_2(7,2);
  22.     Write_Max7219_2(8,1);
  23.    
  24.     while (1)
  25.     {
  26.         IO_RC1_SetHigh();
  27.         DELAY_milliseconds(1000);
  28.         IO_RC1_SetLow();
  29.         DELAY_milliseconds(1000);
  30.     }
  31. }
复制代码


有了数码管的显示功能,再有数值显示的问题就可以交给它了,相较于常规的数码管显示,它具有占用引脚资源少的优势,且显示的亮度高,适于用在工业控制中。







使用特权

评论回复
jinglixixi|  楼主 | 2021-5-29 09:13 | 显示全部楼层
3957260b195005c516.png
图2

3026260b1951f16eaa.png
图3

使用特权

评论回复
usysm| | 2021-6-4 13:43 | 显示全部楼层
MAX7219 和 MAX7221 有什么不同?

使用特权

评论回复
i1mcu| | 2021-6-4 13:43 | 显示全部楼层
怎么样把串行输出在4位数码管上显示

使用特权

评论回复
lzmm| | 2021-6-4 13:44 | 显示全部楼层
MAX7219驱动数码管的时钟代码

使用特权

评论回复
pmp| | 2021-6-4 13:44 | 显示全部楼层
能不能控制MAX7219

使用特权

评论回复
mmbs| | 2021-6-4 13:44 | 显示全部楼层
用得比较稳定。  

使用特权

评论回复
1988020566| | 2021-6-4 13:44 | 显示全部楼层
            

使用特权

评论回复
lzbf| | 2021-6-4 13:45 | 显示全部楼层
有MAX7219的中文资料?

使用特权

评论回复
youtome| | 2021-6-4 13:45 | 显示全部楼层
两位两片的数码管如何用max7219控制

使用特权

评论回复
jimmhu| | 2021-6-4 13:46 | 显示全部楼层
串行口驱动数码管  

使用特权

评论回复
xiaoyaozt| | 2021-6-4 13:47 | 显示全部楼层
并行LED数码管?

使用特权

评论回复
pmp| | 2021-6-4 13:47 | 显示全部楼层
用过4个max7219级联   

使用特权

评论回复
lzmm| | 2021-6-4 13:47 | 显示全部楼层
MAX7219驱动数码管为共阴还是共阳  

使用特权

评论回复
mmbs| | 2021-6-4 13:47 | 显示全部楼层
时序图讲解?   

使用特权

评论回复
i1mcu| | 2021-6-4 13:47 | 显示全部楼层
用74hc595d实现数码管的动态显示

使用特权

评论回复
youtome| | 2021-6-4 13:47 | 显示全部楼层
max7219能驱动多大数码管  

使用特权

评论回复
lzbf| | 2021-6-4 13:47 | 显示全部楼层
一片MAX7219最多可接多少个数码管  

使用特权

评论回复
1988020566| | 2021-6-4 13:47 | 显示全部楼层
谢谢楼主分享的。         

使用特权

评论回复
usysm| | 2021-6-4 13:47 | 显示全部楼层
控制串行八位数码管模块?

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 kk的回忆 得到打赏 ¥600.00
  • 2 名字还没想好 得到打赏 ¥350.00
  • 3 天意无罪 得到打赏 ¥312.00
  • 4 wolfe_yu 得到打赏 ¥210.00
  • 5 呐咯密密 得到打赏 ¥170.00
  • 6 gaoyang9992006 得到打赏 ¥120.00
  • 7 CZF11 得到打赏 ¥100.00
  • 8 年轻的国王 得到打赏 ¥90.00
  • 9 hunteredward 得到打赏 ¥90.00
  • 10 blust5 得到打赏 ¥85.00
在线客服 快速回复 返回顶部 返回列表