微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 我用的pic16f877a,如何让lcd12864以十进制显示寄存器里的数字啊

我用的pic16f877a,如何让lcd12864以十进制显示寄存器里的数字啊

时间:10-02 整理:3721RD 点击:
用的汇编语言但又不是很懂

1,会在LCD里显示数字; 2,会读取寄存器内容; 3,把从寄存器读取到的内容转换成10进制;最后将其在LED显示。

第一个:我只会通过查表的方式
第二个我是会的
第三个我先不管
给我个代码或者提供个思路吧
小学期没多少天,书上的代码都只自学了个半懂,帮帮忙吧

不管是单片机自带的液晶驱动还是液晶驱动芯片,一般你要知道是几com,然后知道每个液晶的pin和单片机连的pin。
资料上的lcdram会这样描述,lcdram0 的8个bit位会这样对应,bit7 - com8,bit6 - com7。bit0 - com0。说白了你单片机seg0使用到的地址就是lcdram0,这些寄存器都是有说法的,需要看资料。然后看液晶真值表,需要什么显什么。数字的话一般这样处理,数字有7段,真值表会告诉a段到g段在每个字节的位置,通过不同的bit位就可以组合成数字。所谓的查表,就是把这些bit位组成的字节放进一个数组里。4就用数组arr[4]里的,然后在把这些arr里的字节放到lcdram里面,具体就要看pin和pin是怎么连的。

你可以看下资料描述,一般就是在液晶缓存里写数据。比如你的lbdram0是pin0对应的buff,一般bit7 - com8。bit0-com4.然后你看液晶真值表,会有不同的显示段。数字一般由7段组成,a段到g段,每个段都有自己的位置。你可以用一个字节定义a-g段,举个例子,假如a-0x01。g-0x40,通过不同的段的组合,数字就出来了。所谓查找表就是查找这些段组合出来的字节。假如1由a和b组成,就是a|b,你的数组表就是存放了从0到z。然后再将这些值写入到液晶buff里,这里需要注意lcdram里用到的是低半字节,一般4com数字由两个lcdram组成,就可以lcdram[n]=xx>4,lcdram[n+1]=xx&0x0f。总之就是要会看液晶真值表和液晶驱动资料。

汇编很麻烦的,为什么偏要汇编

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top