资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机与液晶显示器接口应用技术单片机与液晶显示器接口应用技术(一)引言液晶显示器(LCD)具有功耗低、体积小、重量轻、超薄等许多其它显示器无法比拟的优点,近几年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品中。LCD 可分为段位式 LCD、字符式 LCD 和点阵式 LCD。其中,段位式 LCD 和字符式 LCD 只能用于字符和数字的简单显示,不能满足图形曲线和汉字显示的要求;而点阵式 LCD 不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动,动画功能,分区开窗口,反转,闪烁等功能,用途十分广泛。本文介绍了点阵式液晶显示器MGLS12864 与单片机的接口及编程的方法,同时介绍了创建 816 字符和 1616 点阵汉字的方法,及常用的字符显示和汉字显示程序。(二)单片机简介单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit) ,常用英文字母的缩写 MCU 表示单片机,它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机这门技术,于是产生单片机开发板,比较有名的例如电子人 DZR-01A 单片机开发板。单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和 CPU 集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。单片机的数量不仅远超过 PC 机和其他计算的总和,甚至比人类的数量还要多。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如 CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,用它来做一些控制电器一类不是很复杂的工作足矣了。它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力。 单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了。 (三)硬件设计 这里着重介绍液晶显示器与单片机的接口技术。单片机可以通过数据总线与控制信号直接采用存储器访问形式、I/O 设备访问形式控制该液晶显示模块。本文以华邦公司的 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 右半屏读显示数据地址 画图图 1 MGLS12864 与 W78E58 接口图 (四)软件设计 液晶控制器 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,1130h /*AH=11h功能调用。装入字库至软字库 */ mov bh,6 /*AL=30h 取点阵信息 */ int 10h /*BH=6 取 ROM8X16 点阵指针(VGA) */ mov ax,es /*出口:ES:BP 指向字库指针 */ mov ascii_es,ax mov ax,bp mov ascii_bp,ax ; ascii_offset=ascii_bp+16*asciicode; for(j=0;j(shiftn-m) (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 ;/*判忙标志 BF,如 BF=1 忙,等待*/ MOV DPTR,#CWADR1 ;/*写指令字口地址*/ MOV A,COMM ;/*取指令代码*/ MOVX DPTR,A ;/*写指令代码*/ RET (2)左半屏写数据子程序 WR_DATA1:MOV DPTR,#CRADR1 ;/*读状态字口地址*/ WAIT11: MOVX A,DPTR ;/* 读状态字 */ JB ACC.7,WAIT11 ;/*判忙标志 BF,如 BF=1 忙,等待*/ MOV DPTR,#DWADR1 ;/*写数据字口地址*/ MOV A,DATA ;/*取数据/ MOVX DPTR,A ;/*写数据*/ 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,DPL MOV DPL,A MOV A,DPH ADDC A,B MOV DPH,A ;MOV R0,#28H ;将点阵数据放到 RAM28H-RAM37H MOV R2,#00H LP_MOVDOT16: MOV A,R2 MOVC A,A+DPTR MOV R0,A ;如要将字符反显(黑底白字) ,则读出点 INC R0 ;阵数据后求反放入单片机的 RAM 中 INC R2 CJNE R2,#16,LP_MOVDOT16 ; PUSH COLUMN MOV A,COLUMN ;显示列数 COLUMN 是否在右半屏 CJNE A,#64,ASCII_IF64 ASCII_IF64: JNC ASCII_YGE64 MOV DPTR,#CWADR1 ;在左半屏时,选择左半屏写指令代码地址 CLR FIRST0_SECOND1_BIT ;左半屏列数标志 BIT=0 SJMP ALL_COLUMN ASCII_YGE64: CLR C SUBB A,#64 MOV COLUMN,A MOV DPTR,#CWADR2 ;在右半屏时,选择右半屏写指令代码地址 SETB FIRST0_SECOND1_BIT ;右半屏列数标志 BIT=1 ALL_COLUMN: MOV A,PAGE ADD A,#10111000B ;设置页地址命令 MOVX DPTR,A MOV A,COLUMN ;设置列地址命令 ADD A,#01000000B MOVX DPTR,A MOV DPTR,DWADR1 ;根据左右半屏列数标志,选择写显示数据地址 JNB FIRST0_SECOND1_BIT,ALLMOV1
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号