[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】串行数码管显示

[复制链接]
6172|0
 楼主| jinglixixi 发表于 2021-8-25 10:00 | 显示全部楼层 |阅读模式
Max7219是一种串并转换芯片,故能有效地节省I/O口资源,基于该芯片设计的数码管模块和点阵显示模块就是2款典型的功能模块。
对于PIC18F16Q41这样的小板卡,选择Max7219模块为显示对象是非常合适的。
串行数码管显示模块的功能是以MAX7219芯片来控制8位的7段数码管,在该芯片内部集成了一个B型的BCD码编码多路扫描回路、段字驱动器。而且还含有一个8*8的静态RAM来存储显示数据,且有一个外部寄存器用来设置各LED的段电流。每个数据可以寻址在更新时无需改写其显示,它也同样允许用户对每个数据选择编码或是不编码。在显示过程中,其没有抖动和闪烁现象,支持级联方式进行显示位数的扩展。
该模块的外观如图4所示:
图1  8位串行数码管模块
要使用PIC18F16Q40来驱动Max7219模块,其首要的工作就是通过MCC对所用引脚加以配置。
在建立如下连接关系时,其引脚配置如图2所示:
DIN--- RC4
CLK--- RC6
CS ---RC7
其中:DIN为串行数据输入端、CLK为串行时钟输入端、CS为片选引脚。
                              
图2 引脚配置
相应的引脚命名如图3所示,并将3个引脚都设为输出模式。
图3引脚命名
此外,为便于编程还调用了系统的延时函数,见图4所示。
图4 启用延时函数
由于是采用I/O来模拟串行数据发送,其串行数据发送的函数为:
  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. }

该模块的初始化函数为:
  1. void Init_MAX7219(void)
  2. {
  3. Write_Max7219(0x09, 0xff);
  4. Write_Max7219(0x0a, 0x03);
  5. Write_Max7219(0x0b, 0x07);
  6. Write_Max7219(0x0c, 0x01);
  7. Write_Max7219(0x0f, 0x01);
  8. }

要实现图5的显示效果,其主程序为:
  1. void main(void)
  2. {
  3. // Initialize the device
  4. SYSTEM_Initialize();
  5. DELAY_milliseconds(50);
  6. Init_MAX7219();
  7. DELAY_milliseconds(200);
  8. Write_Max7219(0xff,0x00);
  9. Write_Max7219(1,8);
  10. Write_Max7219(2,7);
  11. Write_Max7219(3,6);
  12. Write_Max7219(4,5);
  13. Write_Max7219(5,4);
  14. Write_Max7219(6,3);
  15. Write_Max7219(7,2);
  16. Write_Max7219(8,1);
  17. while (1)
  18. {
  19. // Add your application code
  20. LED_SetHigh();
  21. DELAY_milliseconds(1000);
  22. LED_SetLow();
  23. DELAY_milliseconds(1000);
  24. }
  25. }

相较于常规的数码管显示,该显示方式具有占用引脚资源少,显示亮度高的特点,故适用于工业控制方面。
图5 显示效果

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部