




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
点阵显示原理图形液晶显示器和单片机接口应用技术液晶显示器(LCD)具有显示信息丰富、功耗低、体积小、重量轻、超薄等许多其他显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD可分为段位式LCD、字符式LCD和点阵式LCD。其中,段位式LCD和字符式LCD只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。本文介绍点阵式液晶显示器HS12232-1、HS12232-9,点阵式液晶显示器MGLS12864与单片机的接口及编程的方法,同时给出两种显示器常用的字符显示和汉字显示程序。1不带汉字库的HS12232-1下的汉字显示1.1 显示原理利用PC上的1616点阵汉字库,提取后将点阵文件存入ROM,直接利用PC中汉字内码作为单片机系统的编码(不再形成新的汉字编码)。1.2 硬件组成首先要采用点阵图形液晶显示器。(例如一行为240点,总列数为128点,可以容纳1616点阵的汉字15个因为240/16=15,128列可以显示8行因为128/16=8),广州市千喜科技开发有限公司的HS12232-1内置SED1520驱动控制器的点阵为12232点,每行7个半汉字,共2行。如果要扩展存储器,全部国标1616点阵汉字、816点阵的ASCII码点阵数据及汉字语句编码数据要使用1片512KB的存储器来存储,多出部分可以留作数据存储器。本文只探讨液晶显示器与单片机的接口部分,扩展存储器部分略。下面给出HS-12232-1与单片机8031的一种接口,如图1所示(VDD=+5V)。1.3 汉字显示原理国家标准信息交换用汉字字符集GB 2312-80共收录了汉字、图形符号等共7445个,其中汉字6763个,按照汉字使用的频度分为两级,其中一级汉字3755个,二级汉字3008个。汉字、图形符号根据其位置将其分为94个“区”,每个区包含94个汉字字符,每个汉字字符又称为“位”。其中“区”的序号由01区至94区,“位”的序号也由01位至94位。若以横向表示“位”号,纵向表示“区” 号,则“区”和“位”构成一个二维坐标。给定一个“区”值和“位”值就可以确定一个惟一的汉字或图形符号。即4位阿拉伯数字就可以惟一地确定一个汉字或符号。如“北”字的区位码是“1717”,而京字的区位码是“3009”。前两位是“区”号,后两位是“位”号。其中1至15区是各种图形符号、制表符和一些主要国家的语言字母,16区至87区是汉字,其中16区至55区是一级汉字,56至87区是二级汉字。UCDOS软件中的文件HZK16和文件ASC16分别为1616的国际汉字点阵文件和816的ASCII码点阵文件,HZK16中按汉字区位码从小到大依次存放国标区位码表中的所有汉字,每个汉字占用32字节,每个区为94个汉字。而asc16文件中按ascii码从小到大依次存有816的ASCII码点阵,每个ASCII码占用16字节。PC的文本文件中,汉字是用机内码的形式存储的,每个汉字占2字节,其中第一个字节为机内码的区码,汉字机内码的区码范围是从0A1H(十六进制)开始,对应区位码中区码的第一区;而机内码的第二个字节为机内码的位码,范围也是从0A1H(十六进制)开始,对应某区中的第一个位码。就是说将汉字机内码减去0A0AH就得到该汉字的区位码。例如汉字“北”的机内码是十六进制的“B1B1”,其中前两位“B1”表示机内码的区码,后两位“B1”表示机内码的位码。所以“北”的区位码为0B1B1H0A0A0H=1111H,将区码和位码分别转换为十进制,得汉字“北”的区位码为“1717”。即“北”的点阵位于第17区的第17个字的位置,在文件HZK16中的位置为第32(17-1)94+(171)=48640D以后的32个字节为“北”的显示点阵。用RF-1800编程器读入二进制文件hzk16j.bin后利用其编辑功能中的缓冲区编辑查找到BE00 H (48640D是十进制,将其转变为十六进制后得BE00 H)开始的32个字节:04 80 04 80 04 88 04 98 04 A0 7C C0 04 80 04 80 04 80 04 80 04 80 04 80 1C 82 E4 82 44 7E 00 00(以上全为下十六进制),将其写在1616点阵方格纸上,即得图2。由此可以理解其相互逻辑关系。在单片机系统中,连续取32个字节送到LCD的相应位置,就能正确显示汉字后的图形符号。从HS-12232-1使用的SED1520的控制原理得知,字模送显示前要旋转90,例如“逢”的区位码是3778,在HZK16中的位置为第32*(371)*94+(781)=110752D以后的32个字节:04 44 FF FE 05 40 41 F8 33 10 14 E0 01 18 F6 46 1B F8 10 40 13 F8 10 40 17 FC 10 40 28 46 47 FC , 旋转90后上16个字节:82 8A 92 B2 02 A7 92 5E 2A AF 2A 5A 4A 83 82 00,下16个字节;00 80 40 3F 04 90 95 95 95 FF 95 95 95 D0 40 00。1.4 ASCII码的显示原理ASCII码的显示与汉字的显示基本原理相同,在ASC16文件中不存在机内码的问题,其显示点阵直接按ASCII码从小到大依次排列,不过每个ASCII码在文本文件中只占1个字节并且小于80 H, 每个ASCII码为816点阵,即在ASCII16文件中,每个ASCII码的点阵也只占16个字节。2带汉字库的HS12232-9下的汉字显示 HS12232-9内置ST7920A驱动控制器,点阵为12232点,每行7个半汉字,共2行。内部字型ROM 包括8192个1616点阵的中文字型和126个168点阵的字母符号字型,另外还提供一个64256点的绘图区域(GDRAM)及240点的ICON RAM,可以和文字画面混合显示。内含的CGRAM有4组可编程的1616点阵的造字功能。与单片机的接口有8位并行、4位并行、2/3线串行。它采用低功率电源消耗,电压范围2.75.5V,功能齐全,汉字、点阵图形、ASCII码、曲线同屏显示;上下左右移动当前显示屏幕、清屏、光标显示、闪烁、睡眠、唤醒、关闭显示功能齐备,适合许多场合应用。上面使用了并行方式,现在研究串行方式。2.1 串行时序与硬件接口电路HS12232-9与单片机的串行接口时序如图3所示,即24个时钟脉冲传送一个字节。单片机首先发送数据传输起始位5个“1”,HS12232-9收到连续的5个“1”,内部传输被重置,同时串行传输被同步,紧接着RW位用于决定数据的传输方向(读还是写),RS用来选择是内部数据寄存器还是指令寄存器,第8位固定为“0”。收到起始位、RW、RS、“0”组成的第一个字节后,一个字节的数据或指令被分成两个字节来串行传送或接收。数据或指令的高4位被放在第二个字节串行数据的高4位,低4位补4个“0”,数据或指令的低4位被放在第三个字节串行数据的高4位,低4位补4个“0”,这样完成一个字节或数据的传送。HS12232-9内部没有发送/接收缓冲区,传送节奏要注意,否则要丢指令或数据。PIC16C5X单片机与HS12232-9接口电路如图4所示,只占用RA0、RA1两根I/O口,或者用16f877的RD6、RD7两根I/O口,RS(CS)引脚是片选,只有一片时固定接高电平使片选始终有效,SID引脚作数据线,SCLK引脚作时钟线。单片机通过SID数据线在SCLK同步时钟线配合下完成数据(指令)传输的任务。接口电路十分简单。3.点阵式液晶显示器MGLS12864与单片机的接口及编程的方法 以W78E58为例,它是51系列单片机兼容的微控制器,其内部有32KB的FLASH EEPROM,用户编制的程序及需要显示的英文字母、数字、汉字、曲线和图形都可以存储在里面,免去了扩展外部存储器的麻烦,使得以W78E58单片机为核心的控制系统电路更简单。因此十分适用于液晶显示。MGLS12864与W78E58单片机接口电路如图1所示。该图采用直接访问方式,单片机通过低位地址A2控制CSA;A3控制CSB,以选通液晶显示屏上各区的控制器HD61202;同时W78E58用地址A1作为R/W信号控制数据总线的数据流向;用地址A0作为D/I信号控制寄存器的选择;E信号由W78E58的读信号/RD和写信号/WR合成产生;另外单片机的复位脚(9脚)经反相器后连接到液晶显示器复位脚(17脚 /RST),当单片机上电复位或手动复位时, 液晶显示器同时也复位;从而实现了W78E58对内置HD61202图形液晶显示器模块的电路连接。电路中LCD电源控制端VO是用来调节显示屏灰度的,调节该端的电压,可改变显示屏字符、图形的颜色深浅。 单片机对液晶显示模块的操作可分为两部分,即左半屏和右半屏操作。下面是根据图1的连接确定对应左半屏(前6464)和右半屏(后6464)操作地址: CWADR1 EQU 0004H 左半屏写指令代码地址 DWADR1 EQU 0005H 左半屏写显示数据地址 CRADR1 EQU 0006H 左半屏读状态字地址 DRADR1 EQU 0007H 左半屏读显示数据地址 CWADR2 EQU 0008H 右半屏写指令代码地址 DWADR2 EQU 0009H 右半屏写显示数据地址 CRADR2 EQU 000AH右半屏读状态字地址 DRADR2 EQU 000BH 右半屏读显示数据地址软件设计 液晶控制器HD61202一共有七条指令,从作用上可分为两类,显示状态设置指令和数据读写操作指令。详见指令系统可查看图形液晶显示器产品有关手册。显示起始行设置中L5L0为显示起始行的地址,取值在0-3FH(1-64行)范围内。页面地址设置中P2-P0为选择的页面地址,取值范围为0-7H,代表-8页。列地址设置中C5-C0为地址计数器的内容,取值在0-3FH(1-64行)范围内。显示器上128点64点,每点为一字节数据,都对应着显示数据RAM(在HD61202芯片内),一点对应一个bit,计算机写入或读出显示存储器的数据代表显示屏上某一点列上的垂直8点行的数据。D0代表最上一行的点数据,D1为第二行的点数据,.,D7为第八行的点数据。该bit=1时该点则显示黑点出来,该bit=0时该点则消失。另外LCD指令中有条display ON/OFF指令,display ON时显示RAM数据对应显示的画面;display OFF则画面消失,RAM中显示数据仍存在。 点阵字模文件的建立:由于MGLS12864液晶显示器没有内部字符发生器,所以在屏幕上显示的任何字符、汉字等须自己建立点阵字模库,然后均按图形方式进行显示。由于HD61202显示存储器的特性,不能将计算机内的汉字库和其它字模库提出直接使用,需要将其旋转90度后再写入。点阵字模库建立包括以下几个方面: (1)建立816点阵常用字符、数字、符号字模库。 可选用计算机BIOS中ASCII的816字模库,所有字符按照ASCII值从小到大升序排列。asmmov ax,1130hmov bh,6int 10hmov ax,esmov ascii_es,axmov ax,bpmov ascii_bp,ax ;ascii_offset=ascii_bp+16*asciicode;for(j=0;j16;j+) bufj=peekb(ascii_es,ascii_offset+j);for(m=0;m16;m+) if(m8) beginbyte= 7; shiftn=7;else beginbyte=15; shiftn=15;for(j=0;j(shiftn-m)&0x01)1; 也可选用UCDOS的ASC16文件做字模库。ASC16文件的字符为816点阵。所有字符按照ASCII值从小到大升序排列。计算字符首地址的公式:字符首地址=字符的ASCII码值16+字模库首地址。 (2) 建立所用到的1616点阵字模库。 汉字字符可选用UCDOS的HZK16文件做字模库。HZK16文件的字符为1616点阵。所有字符按照区位码从小到大升序排列。计算汉字字符首地址的公式如下:汉字首地址=(区码-1)94+位码-1)32。作者用C语言编写的读取UCDOS点阵字库字模程序,完成字模读取、数据重新排列,并按MCS-51汇编程序的要求写成相应格式的文本文件。p=(quma-1)*94+weima-1)*32;cclibfile=fopen(HZK16,rb);fseek(cclibfile,(long)p,SEEK_SET);fread(buf,sizeof(unsigned char),32,cclibfile);for(m=0;m32;m+)if(m= 8 & m=16 & m24 ) beginbyte=30; shiftn=23;else beginbyte=31; shiftn=31;for(j=0;j(shiftn-m)&0x01)1; (3) 常用图形(如产品商标等)的点阵图形的建立。 对已有的图形可采用扫描仪进行扫描,然后用图形处理软件进行处理,再将BMP格式文件转换成MCS-51的汇编文件的格式。 以上所有的字模数据都存放在单片机W78E58的程序存储器中,如用到的汉字、图形较多,可选用较大容量的程序存储器。 通用子程序:通用子程序分左半屏、右半屏写指令代码子程序和写显示数据子程序。液晶显示驱动器HD16202内部有个忙标志寄存器,当BF=1时,表示内部操作正在运行,不能接受外部数据或指令。下面子程序中设指令代码寄存器为COMM,数据寄存器为DATA。 (COMM EQU 20H DATA EQU 21H ) (1) 左半屏写指令子程序WR_CMD1: MOV DPTR,#CRADR1 ;WAIT1: MOVX A,DPTR ;JB ACC.7,WAIT1 ;MOV DPTR,#CWADR1 ;MOV A,COMM ;MOVX DPTR,A ;RET(2)左半屏写数据子程序WR_DATA1:MOV DPTR,#CRADR1 ;WAIT11: MOVX A,DPTR ;JB ACC.7,WAIT11 ;MOV DPTR,#DWADR1 ;MOV A,DATA ;RET (3)右半屏写指令子程序WR_CMD2和右半屏写数据子程序WR_DATA2的编制同左半屏子程序相同,只是对应口地址不同。 8X16字符显示子程序:MGLS12864液晶显示屏由二片HD61202控制,LCD显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。设列地址寄存器为COLUMN,页地址寄存器为PAGE,要显示的字符代码寄存器为ASCIICODE,W78E58内RAM28H-RAM37H共16个字节存放816的点阵数据,生成的816点阵库文件存放在单片机W78E58存储器中的首地址定义为ASCII_DOT816。DISP_ASCII816: MOV DPTR,#ASCII_DOT816 ;816点阵库首地址MOV A,ASCIICODE ;显示字符代码ASCIICODE MOV B,#16 ;每个字符点阵占16个字节 MUL AB ;计算显示字符在字库的首地址ADD A,DPLMOV DPL,AMOV A,DPHADDC A,BMOV DPH,A;MOV R0,#28H ;将点阵数据放到RAM28H-RAM37HMOV R2,#00HLP_MOVDOT16: MOV A,R2MOVC A,A+DPTRMOV R0,A ;如要将字符反显(黑底白字),则读出点INC R0 ;阵数据后求反放入单片机的RAM中INC R2CJNE R2,#16,LP_MOVDOT16;PUSH COLUMNMOV A,COLUMN ;显示列数COLUMN是否在右半屏CJNE A,#64,ASCII_IF64ASCII_IF64: JNC ASCII_YGE64MOV DPTR,#CWADR1 ;在左半屏时,选择左半屏写指令代码地址CLR FIRST0_SECOND1_BIT ;左半屏列数标志BIT=0SJMP ALL_COLUMNASCII_YGE64: CLR CSUBB A,#64MOV COLUMN,AMOV DPTR,#CWADR2 ;在右半屏时,选择右半屏写指令代码地址SETB FIRST0_SECOND1_BIT ;右半屏列数标志BIT=1ALL_COLUMN: MO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 魔术画我的飞天梦课件
- 济南市2025-2026学年八年级下学期语文期中模拟试卷
- 高速供配电基础知识培训课件
- XXXX年国企学习教育自评报告范文
- 电能电功电功率课件
- 电网急救知识培训新闻稿课件
- 电线维修知识培训课件
- 河南省洛阳市老城区2022-2023学年九年级上学期1期中化学试题(含答案)
- 电焊面罩产品知识培训
- 新解读《GB-T 30996.3-2018信息技术 实时定位系统 第3部分:433MHz空中接口协议》
- 小学综合教研组的工作计划PPT模板下载
- GB/T 7588.1-2020电梯制造与安装安全规范第1部分:乘客电梯和载货电梯
- GB/T 3406-2010石油甲苯
- GB/T 3098.9-2020紧固件机械性能有效力矩型钢锁紧螺母
- GB/T 15566.9-2012公共信息导向系统设置原则与要求第9部分:旅游景区
- GB/T 152.2-2014紧固件沉头螺钉用沉孔
- 幼儿园中班绘本:《我喜欢我的小毯子》
- 改革开放以来教育方面的变化课件
- DB44-T 2197-2019配电房运维服务规范-(高清现行)
- 山西省运城市各县区乡镇行政村村庄村名居民村民委员会明细
- 河西走廊课件
评论
0/150
提交评论