您现在的位置: 主页 > MCU > 单片机学习 > 第83节:矩阵键盘输入任意数字或小数点的液晶屏显示程序 -
本文所属标签:
为本文创立个标签吧:

第83节:矩阵键盘输入任意数字或小数点的液晶屏显示程序 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-31 

[导读]从业近十年!手把手教你单片机程序框架 第83讲开场白:本来这节打算讲调用液晶屏内部字库时让某行内容反显的,但是在昨天调试过程中,发现一个很奇怪的问题,当调用内部字库时,按照数据手册,我执行一条反显指令时,

从业近十年!手把手教你单片机程序框架 第83讲

开场白:

本来这节打算讲调用液晶屏内部字库时让某行内容反显的,但是在昨天调试过程中,发现一个很奇怪的问题,当调用内部字库时,按照数据手册,我执行一条反显指令时,应该是仅仅某一行反显,但是却同时出现两行反显。比如,当我执行

WriteCommand(0x34); //扩充指令集

WriteCommand(0x04); //第1行反显

指令时,发现第一行和第三行反显,后来想想,我猜测这种12864的屏应该是25632折成左右半屏,左半屏在上面,右半屏在下面。经过这次经验,我觉得大家以后尽量不要用液晶屏的内部字库模式,应该用自构字库的模式(图形模式)。因为我觉得用内部字库模式的时候,这个集成的反显扩展指令不好用。而用自构字库的模式(图形模式),却可以顺心所欲的灵活运用,适合做菜单程序。

既然发现内部字库不好用,所以不再讲内部字库模式,这节仅仅接着前面第79节内容,继续讲在自构字库的模式(图形模式)下,如何通过矩阵键盘直接输入数字和小数点,就像普通的计算器一样键盘输入。这个功能表面简单,其实有以下四个地方值得注意:

第一:如何用数组接收按键输入的BCD码数据。

第二:如何限制输入参数的小数点个数和数组的有效个数。

第三:如果第0个位置是0,那么继续输入的数据直接覆盖0,否则就移位再输入。

第四:如果第0个位置是0,那么继续输入的小数点要移位输入。

要仔细了解以上提到的关键点,必须好好研究本程序中的void set_data(…)函数。同时也要温习一下之前讲的自构字库模式的液晶屏显示内容,尤其是插入画布显示的内容。

具体内容,请看源代码讲解。

(1) 硬件平台:

基于朱兆祺51单片机学习板。数字1键对应S1键,数字2键对应S2键,数字3键对应S3键…. 数字9键对应S9键, 数字0键对应S10键。小数键对应S11,清零键对应S16,其它按键不用。

(2) 实现功能:

用矩阵键盘输入任意数字或小数点。小数点不能超过2位,一旦超过2位,再按其它按键则输入无效。有效数字也不能超过6位(包括小数点),一旦超过6位,再按其它按键则输入无效。

想重新输入,必须按S16清零按键才能重新输入。

实物照片83.jpg

(3)源代码讲解如下:第八十三节源代码讲解.rar

总结陈词:

这节讲的是键盘输入数字或者小数点的BCD码用来显示,实际项目中,我们经常要知道所输入的BCD码数组到底有效数值是多少,这个该怎么办?欲知详情,请听下回分解----

实时同步把键盘输入的BCD码数组转换成数值的液晶屏显示程序。



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机学习 > 第83节:矩阵键盘输入任意数字或小数点的液晶屏显示程序 -
 

"第83节:矩阵键盘输入任意数字或小数点的液晶屏显示程序 -"的相关文章

网站地图

围观()