今天主要是学习了一下段式液晶驱动和比较器模块,由于手头上没有4xx的板子所以也只是理论上去学习这些模块,不像之前的可以拿板子跑跑程序。所以作了一下简单的学习笔记。比较器虽然看起来不难主要是比机器配合定时器去记录外部充放电的时间,不过在现场要想用好的话个人感觉还是很难的不像AD那么好用需要考虑更多关于模拟部分的东西,没有具体的这一块的实践,我也不敢瞎说了。明天用G2xx的板子测试一下比较器的Slope AD,程序晚上已经写得差不多了,看看明天实际的情况如何。液晶驱动个人感觉只需要搞懂输出引脚连接表以及显示缓存器的关系就可以了,当然我也只是针对4MUX的显示方式来学习这个LCD驱动的。 1、一般为了节约外部IO口资源,选取4MUX显示方式,其他的不作详细了解。具体的显示原理都是一样的,就是控制Sn和COMn实现对应的段显示,在4MUX显示方式中,每个数字的全部8段被安排在同一个显存字节中,便于程序处理。
3、针对第一位的数字显示作具体说明: 通过控制S0和S1以及四个公共端COM0、COM1、COM2、COM3来实现显示内容的变化。 显示0:a、b、c、d、e、f段被驱动,只需要将0xEB写入09FH就可以了,相关的切换硬件自动完成,比如S0和S1下对应的COMn状态不同,都由硬件自动生成驱动所需的引脚时序。 显示1:b、c段被驱动,写入相应的字节到对应的缓存器中即可,需要注意的是COMx对应的段往往不同,此时写入的字节需要根据变化修改。
按照a、b、c、h、f、g、e、d时对应0-9的缓存内容如左表 按照e、h、f、c、g、d、b、a时对应0-9的缓存内容如右表
5、显示数值处理方式 定义指针char *LCD = LCDMEM; for(i=0;i<5;i++) { LCD = Digit[Value%10]; Value = Value/10; } 其中Digit[]为4中提及的左表缓存内容数值构成的数组,这里关于显示Value(5位数的数值)的处理很不错值得借鉴。 |
文章评论(0条评论)
登录后参与讨论