在 w801 的 SDK 中可以看到段式 lcd 的驱动代码, 但是却没找到相关的 demo. 请问这个有 demo 吗?
段码显示确实没有 DEMO, 因为段码显示没有标准的显示规范, 比如: 一个时间 LCD 屏, 计算器的 LCD 显示屏, 音响的 LCD 显示屏, 空调遥控器的 LCD 显示屏, 都是不通用的, 显示的图形内容也完全不一致, 驱动方法也不一样.
但段码显示原理却很简单, 就是显示单元由一个数字或者图案的各段 和 图案 的位组合而成.
因此你可以根据你所接的段码屏的定义, 分别划分好每个位, 一个位占用一个 IO, 每个位的一个段占用一个 IO, 这样控制 IO 的输出波形从而达到显示的目的. 此时支持把 IO 复用为 GPIO 输出态即可.
举例, 一个 4 位数显的段码屏, 每个为由一个 8 字加小数点组成, 则占用 8 个段的 Io. 有 4 位数, 则再占用 4 个位 IO.
通过动态输出的方式, 输出每个数字, 比如给第一个位输出低电平时, 同时输出段的电平, 然后停留一段时间 (一般 20 毫秒) , 然后给下个位输出低电平, 其它位高电平, 同时输出这个位的段电平. . . . 依次类推, 完成 4 个数字的动态的输出, 反复的来回扫描输出就完成了数字的实时显示. 由于 LCD 液晶具有残影保留和视觉的停留性质, 感觉 4 个数就同时显示出来了.
多谢大佬. 我看了驱动代码是有的. 但是不知道怎么去初始化引脚, 能麻烦大佬指点一二吗?
初始化就按 GPIO 的一般输出化方式就可以, 这样子:
tls_gpio_cfg (WM_IO_PB_01, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
tls_gpio_cfg (WM_IO_PB_02, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
tls_gpio_cfg (WM_IO_PB_02, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
tls_gpio_cfg (WM_IO_PB_03, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
tls_gpio_cfg (WM_IO_PB_04, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
tls_gpio_cfg (WM_IO_PB_05, WM_GPIO_DIR_OUTPUT, WM_GPIO_ATTR_FLOATING) ;
. . . . .
就是把全部的段 IO 和位 Io 都配置位输出, 然后不停的拉高拉低. 就这么简单, 因为太简单, 所以没有 DEMO.
@lutherluo 谢了, 但是大佬. 段码屏是要求交流供电的, 我如果用普通 io 去做的话, 就得定时周期的反转电流方向. . . . 唉. 那就来吧. 弄它
方波就是交变的, 可以看成一个直流叠加了多种频率的交流, 可以直接接到 LCD 上看看, 很多 LCD 直接就显示了. 有的要求高的, 那就加一级耦合电路, 把直流滤掉, 有的要加高压, 那就挂升压电路, 有的要电流, 那就加 MOS 管增加驱动力.
所以, 得看你用的是什么 LCD 屏, 不同 LCD 差别很大. 但这些都不在数字电路范畴了.