在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 差别很大。但这些都不在数字电路范畴了。