lcd12864等液晶接口的设计(编辑修改稿)内容摘要:

beginbyte= 7。 shiftn=7。 } else { beginbyte=15。 shiftn=15。 } for(j=0。 j8。 j++) ascii8x16[m]=(ascii8x16[m]+ (buf[beginbytej](shiftnm))amp。 0x01)1。 } 也可选用 UCDOS 的 ASC16 文件做字模库。 ASC16 文件的字符为 816 点阵。 所有字符按照 ASCII 值从小到大升序排列。 计算字符首地址的公式:字符首地址 =字符的 ASCII 码值 16+ 字模库首地址。 (2) 建立所用到的 1616 点阵字模库。 汉字字符可选用 UCDOS 的 HZK16 文件做字模库。 HZK16 文件的字符为 1616 点阵。 所有字符按照区位码从小到大升序排列。 计算汉字字 符首地址的公式如下:汉字首地址 =((区码 1) 94+ 位码 1)32。 作者用 C语言编写的读取 UCDOS 点阵字库字模程序 ,完成字模读取、数据重新 排列 ,并按 MCS51汇编程序的要求写成相应格式的文本文件。 p=((quma1)*94+weima1)*32。 cclibfile=fopen(HZK16,rb)。 fseek(cclibfile,(long)p,SEEK_SET)。 fread(buf,sizeof(unsigned char),32,cclibfile)。 /*读 32 字节点阵数据 */ for(m=0。 m32。 m++){ /*点阵数据转换成 LCD 格式数据 */ if(m8) { beginbyte=14。 shiftn=7。 } else if( m= 8 amp。 amp。 m16 ) { beginbyte=15。 shiftn=15。 } else if( m=16 amp。 amp。 m24 ) { beginbyte=30。 shiftn=23。 } else { beginbyte=31。 shiftn=31。 } for(j=0。 j8。 j++) hzk16x16[m]=(hzk16x16[m]+ (buf[beginbyte2*j] (shiftnm))amp。 0x01)1。 } (3) 常用图形(如产品商标等)的点阵图形的建立。 对已有的图形可采用扫描仪进行扫描 ,然后用图形处理软件进行处理 ,再将 BMP 格式文件转换成MCS51的汇编文件的格式。 以上所有的字模数据都存放在单片机 W78E58 的程序存储器中 ,如用到的汉字、图形较多 ,可选用较大容量的程序存储器。 通用子程序:通用子程序分左半屏、右半屏 写指令代码子程序和写显示数据子程序。 液晶显示驱动器HD16202 内部有个忙标志寄存器 ,当 BF=1 时 ,表示内部操作正在运行 ,不能接受外部数据或指令。 下面子程序中设指令代码寄存器为 COMM,数据寄存器为 DATA。 (COMM EQU 20H /*指令寄存器 */ DATA EQU 21H /*数据寄存器 */) (1) 左半屏写指令子程序 WR_CMD1: MOV DPTR,CRADR1。 /*读状态字口地址 */ WAIT1:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。