单片机/MCU论坛
直播中

幻影20000

6年用户 4经验值
私信 关注
[问答]

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

用的汇编语言但又不是很懂

回帖(5)

佚小星

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

幻影20000

2017-9-9 18:12:00
引用: stormer 发表于 2017-9-9 16:32
1,会在LCD里显示数字; 2,会读取寄存器内容; 3,把从寄存器读取到的内容转换成10进制;最后将其在LED显示。

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

愚塘霸主

2017-10-14 13:12:42
不管是单片机自带的液晶驱动还是液晶驱动芯片,一般你要知道是几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是怎么连的。
举报

愚塘霸主

2017-10-14 13:23:20
你可以看下资料描述,一般就是在液晶缓存里写数据。比如你的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。总之就是要会看液晶真值表和液晶驱动资料。
举报

老吴

2017-10-14 15:44:51
汇编很麻烦的,为什么偏要汇编
举报

更多回帖

发帖
×
20
完善资料,
赚取积分