完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近项目中做流量仪表测量产品,使用到了段码LCD,为了简化硬件设计,节约硬件成本,于是想到STM8L152系列单片机集成了LCD 控制器,直接驱动LCD很方便,于是开始了硬件设计,硬件设计不是特别复杂,根据LCD的规格书,有几个公共端,对应的单片机就使能几个公共端与LCD对应公共端连接,段码根据数量使用,stm8l152最多有28个段码,硬件设计完,开始软件调试,问题来了,硬件段码如何与软件显存数据对应,尤其是动态显示的LCD需要公共端和段码配合使用,百度吧,资料有不少,看了好多也没有看明白,于是自力更生,通过阅读手册理解了。
这个图讲的是单片机硬件端口和LCD的对应关系,一共做多28个段码,用哪个段码了,软件上就使能那个iO的段码功能。那么对于多为数据,用同一个段码,那软件如何操作呢,平时我们知道动态显示就是段码送显示的数据,对应为的公共端COMX使能,对应为就亮,万变不离其中,这个也是这样的原理只不过,对于stm8l152不是直接操作段码而是把数据先写到显存中,显存中每个公共端对应最多28位,你想让哪位数码管亮,就把数据写到对应显存上去,单片机会自动映射到硬件的段码上 看上图了么,比如硬件上你使能了12个段码seg0 ~ seg11,LCD一共有四位数码管,那么就有4个公共端com0 ~ com3,想要数码管1亮,那么数据写到缓存s0[0:11],那么单片机会自动把数据通过硬件的seg对应的io输出到lcd点亮数码管,以此类推如果要第二位数码管亮,那就要把段码数据写到s1[0:11],这样第二位数码管就亮了。 还有个注意点,就是硬件设计上,如果单片机的VLCD信号外接了电源,那软件中要使能外部电源,反之则使能内部电源。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2955 浏览 16 评论
3455 浏览 1 评论
8987 浏览 16 评论
4050 浏览 18 评论
1102浏览 3评论
570浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2301浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1857浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:11 , Processed in 1.133636 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号