回答

收藏

[评测分享] [Wio Terminal开发板测评]+串行点阵模块驱动

#板卡评测 #板卡评测 2371 人阅读 | 0 人回复 | 2021-08-08

尽管Wio终端提供了强大的液晶屏显示功能,但这也不妨碍我们用它的扩展接口来进行驱动串行点阵模块的测试。
串行点阵模块共有5个引脚,除2个电源引脚外,另3个引脚分别是片选引脚CS、数据引脚DIN及时钟引脚CLK。
该模块与Wio终端的连接关系如下:
CLK ---PIN_SPI_MOSI
DIN ---PIN_SPI_MISO
CS --- PIN_SPI_SCK
故可将引脚定义为:
#define CLK PIN_SPI_MOSI
#define DIN PIN_SPI_MISO
#define CS  PIN_SPI_SCK
由于串行点阵模块所用的控制芯片为Max7219,故为其配置的初始化函数为:
  1. void Init_MAX7219(void)
  2. {
  3. Write_Max7219(0x0b, 0x07);
  4. Write_Max7219(0x0c, 0x01);
  5. Write_Max7219(0x0f, 0x00);
  6. }
复制代码

辅助串行发送数据的函数为:
  1. void Write_Max7219_byte(unsigned char DATA)
  2. {
  3. unsigned char i;
  4. digitalWrite(CS, LOW);
  5. for(i=8;i>=1;i--) {
  6. digitalWrite(CLK, LOW);
  7. if(DATA&0x80)  digitalWrite(DIN, HIGH);
  8. else  digitalWrite(DIN, LOW);
  9. DATA=DATA<<1;
  10. digitalWrite(CLK, HIGH);
  11. }
  12. }

  13. void Write_Max7219(char address,char dat)
  14. {
  15. digitalWrite(CS, LOW);
  16. Write_Max7219_byte(address);
  17. Write_Max7219_byte(dat);
  18. digitalWrite(CS, HIGH);
  19. }
复制代码

供显示所构建的字库其存储结果如下:
unsigned chardisp[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
...
{0x41,0x22,0x14,0x8,0x8,0x8,0x8,0x8},      //Y
{0x0,0x7F,0x2,0x4,0x8,0x10,0x20,0x7F},     //Z
{0x8,0x7F,0x49,0x49,0x7F,0x8,0x8,0x8},     //中
{0xFE,0xBA,0x92,0xBA,0x92,0x9A,0xBA,0xFE}, //国
};
实现显示效果的程序其上传结果见图1所示,运行后的效果如图2所示。
图1 程序上传
图2 演示效果

分享到:
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /3 下一条