嵌入式I/O扩展点阵控制电路设计-综合

339 阅读2分钟

1 点阵控制电路设计

image.png image.png

2 扫描算法

2.1 列选共阳极时

  • 列选高电平选通
  • 数据字模选择为阴码 image.png image.png

2.2 列选共阴极时

  • 列选底电平选通(A0-A15)
  • 数据字模选择为阳码 image.png

3 扫描算法设计(每次共传输4个字节数据,前两个字节是列选通,后两个字节是一列字模数据,共传输16次,即可控制点阵任意图案显示

  • 要先传输两个字节数据,做好列选通之后,就可以接着传输字模数据,完全不影响字模数据显示
  • 数据逐列式 image.png
  • 寄存器串联顺序为:U1 -> U2 -> U3 -> U4 ,因此数据准备顺序为:U4 -> U3 -> U2 -> U1
  • 对于16*16点阵来说,列选通,应该首先准备,右下8位列选通U4,然后是左下8位列选通U3
  • 对于数据来说,主要是逐列式,先传输高8位(在下面也即U2),然后是低8位(在上面也即U1)
  • 列选通为:U3 U4 , 列选共阴极,因此低电平选通
  • 数据选通为:U1 U2 ,子模软件生成数据 image.png

3.1 精华分析

  • 发现列选通是固定的,1 2 4 8 ,每次都是固定的,不会干扰字模数据显示,只要先传输两个字节数据,做好列选通之后,就可以接着传输字模数据,完全不影响字模数据显示,取反是列选通接在阴极上,
  • image.png
  • 最终点阵控制就很简单了,就是把字模数据生成即可,即可控制点阵任意图案显示 image.png
  • 整个点阵字模总共就(2*16个字节的数据),行两字节,共16行 image.png

4 阵列实验

4.1 点阵模型

image.png

4.2 代码示例

  • 595时序控制 image.png image.png image.png
  • arduino框架 image.png image.png

4.3 实验一

  • B11111111 B11111111 列高电平亮 列全亮
  • B00111100 B00111100 行低电平灭 1、2、7、8、 9、10、 15、 16行亮 d1af067888a79edd5d62847bdc1d82b.jpg

4.4 实验二

  • B11000000 B00000000 前两列点亮
  • B00001111 B11111111 前4行亮 1、2、3、4行亮