嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章

上传人:E**** 文档编号:89406461 上传时间:2019-05-24 格式:PPT 页数:45 大小:420KB
返回 下载 相关 举报
嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章_第1页
第1页 / 共45页
嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章_第2页
第2页 / 共45页
嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章_第3页
第3页 / 共45页
嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章_第4页
第4页 / 共45页
嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章》由会员分享,可在线阅读,更多相关《嵌入式系统开发基础——基于8位单片机的C语言程序设计(第二版) 教学课件 ppt 作者 侯殿有 葛海淼 编著 第十七章(45页珍藏版)》请在金锄头文库上搜索。

1、第十七章HD61830液晶显示器驱动控制,【本章知识架构】,【本章教学目标和要求】 熟练掌握HD61830的指令系统 了解HD61830的特殊ARM结构 熟读掌握“位”操作指令和打点程序的编写 熟练掌握HD61830的汉字和曲线显示,HD61830是一种图形液晶显示控制器,它可与8位微处理器接口,管理64K显示RAM,内部时序发生器产生点阵液晶显示驱动信号。 随书下载资料中有HD61830的驱动程序,可供读者拷贝使用。 本章重点要掌握“位”操作指令和打点程序的编写,掌握字模转换方法,18.1 HD61830液晶显示器概述,1液晶显示控制器 HD61830是图形液晶显示控制器,可直接与MCS-5

2、1系列时序的MPU接口。 2指令集 HD61830具有专门的指令集,可完成文本显示或图形显示的功能设置,以及实现画面卷动、光标闪烁、位操作等功能。 3HD61830 内存管理 HD61830 可管理64K显示RAM,其中图形方式为60K,字符方式为4K;,4内部字符发生器CGROM HD61830内部字符发生器CGROM共有192种字符,其中57字体160种,511字体有32种,HD61830还可外接字符发生器,使字符量达到256种。 5占空比 HD61830具有较高占空比,可以静态方式显示至1/128占空比的动态方式显示。 6HD61830封装和引脚 HD61830封装为60个引脚,管脚排列

3、如图18-1示,管脚功能如表18-1示。,7多种组合功能 当为低电平时,RS, R/W, E的各种组合所实现的功能如表18-2示: 8HD61830的电气参数 HD61830的电气参数如表18-3示。 内嵌HD61830控制器的显示模块有很多,如:MGLS-8032B、MGLS240128、MGLS-8464、MGLS12864等等,它们的电气参数基本相同,指令系统是一样的。因此它们的显示控制程序编制可参考本章介绍的方法进行。,18.2 HD61830的指令系统,HD61830有13条指令,指令是由一个指令代码和一个功能参数组成。指令代码类似参数寄存器的地址代码,而参数才是实质的功能值。MPU

4、向HD61830指令寄存器写入指令代码来选择参数寄存器,再通过数据寄存器向参数寄存器写入参数值,以实现功能的设置。 HD61830向MPU提供一个忙(BF)标志位:BF=1表示当前HD61830处于内部运行状态,不接受MPU的访问(读状态标志位除外),BF=0表示HD61830允许MPU的访问。MPU在访问HD61830时都要判断BF是否为0。 MPU可在RS=1下从数据总线D7位上读出BF标志值。,18.2.1 方式控制指令 1方式控制,指令代码为0x00 该指令参数定义了显示方式。 其参数格式为: D0:字符发生器选择,D0 =0为CGROM, D0=1为EXCGROM; D1:显示方式选

5、择,D1=0为文本方式,D1=1为图形方式; D3与D2组合实现如表18-4功能: D4:工作方式选择,D4=0为从方式,D4=1为主方式; D5:显示状态选择,D5=0为禁止显示,D5=1为启用显示。 需要注意的是,使用图形方式(D1=1)时,只能使D0=D2=D3 =0。一般情况下,HD61830采用主方式D4 =1。当有两片HD61830并联时,则其中一片为主方式,一片为从方式。,2字体设置,指令代码0x01 该指令设置文本方式下字符的点阵大小,指令参数格式: VP:字符点阵行数,取值范围116; HP:字符点阵列数,图形方式表示一字节显示数据的有效位数,HP的取值范围为6,7,8。,3

6、帧设置,指令代码0x03 该指令的指令参数格式如下: NX为显示时的帧扫描行数,其倒数即为占空比。对单屏结构的显示模块,NX即为其有效显示行数;对双屏显示结构的模块则2NX为其有效显示行数。 18.2.2 显示域设置指令 显示域设置,指令代码0x02 指令参数格式如下: HN为一行显示所占的字节数,其取值范围为2128内的偶数值,由HN和HP可得显示屏有效显示点列数N=HNHP。,5显示缓冲区起始地址低8位SADL设置,指令代码0x08 该指令的指令参数格式如下: 6显示缓冲区起始地址高8位SADH设置,指令代码0x09 该指令的指令参数格式如下: 以上两条指令设置了显示缓冲区起始地址,它们的

7、指令参数分 别是该地址的低位和高位字节。该地址对应显示屏上左上角显 示位,显示缓冲区单元(即RAM单元)与显示屏上的显示位的对 应关系如表18-5所示:,显示屏上一个显示位长为HP点阵。,18.2.3 光标设置指令 7光标位置设置,指令代码0x04 文本方式下的光标为一行(81)点阵显示,该指令用来指明光标在字符位中第几行,指令参数格式如下: 其中CP表示光标在字符体中的行位置,CP取值范围在1VP之问。CPVP时光标将被禁止。 设置光标地址指针低8位CACL指令,指令代码0x0a 该指令的指令参数格式如下:,设置光标地址指针高8位CACH指令,指令代码0x0b 该指令的指令参数格式如下: 以

8、上两条指令设置光标地址指针,它们的指令参数即是该光标地址指针的低位和高位字节。其作用一是用来指示当前要读、写显示缓冲区单元的地址;二是用在文本方式下,指出光标或闪烁字符在显示屏上的位置。 由于光标地址计数器是16位加1计数器,当第N位从1变到0时,会引起第N+1位自动加1,因此当设置低8位地址时,若最高位MSB从1变为0就会引起高8位地址的最低位LSB加1。因此设置时应先设置低8位,再设置高8位,而且即使只需修改地址低8位,其高位也要跟着重新设置一次,以确保地址指针设置的万无一失。,18.2.4 数据读写指令 10数据写指令代码0x0c 该指令将随后写入数据寄存器的数据送入光标地址指针指向的显

9、示RAM单元。光标地址指针将随着每次数据的写入而自动加1。该指令功能的终止将由下一条指令的输入来完成。 11数据读指令代码0x0d 该指令代码写入后,紧跟着一次“空读”操作后,则可以连续读出光标地址指针所指向单元的内容。光标地址指针将随着每次数据的读出而自动加1,该指令功能的终止将由下一条指令的输入来完成。,18.2.5 “位”操作指令 12“位清”零,指令代码0x0e 13“位置”1,指令代码0x0f 以上两条指令的功能是将光标地址指针所指向的显示RAM单元中的某一位清零或置1。指令执行一次,光标地址指针自动加1。指令参数格式为: 其中NB为要清零或置1的位址,取值18。,18.3 HD61

10、830液晶显示器驱动控制程序,18.3.1 HD61830液晶显示器显示RAM结构 正常1616汉字的显示字模在屏上是按图18-2 所示,而HD61830汉字显示字模在屏上是按图18-3 排列;同时正常1616汉字的字模字节排列是高位在前,低为在后,如图18-4示,而HD61830显示字节排列是高位在后,低为在前, 如图18-5示。 所以编写显示程序时要按此规律进行,按图18-6首先显示0号字节,显示完0号字节后,字模偏移量要加16,在同一行上显示16号字节;然后显示1号字节,17号字节,以此类推。显示时每个字节都先要调convert ( )按图18-8所示进行转换,然后送HD61830。,8

11、8和816ASCII字符字膜、1616、2424、1212、4848点阵汉字字膜在内存中都是高位在前,低位在后存放的。 所以这些点阵汉字在写入HD61830时都要用进行转换。原理可参看具体程序和注释。,18.3.2 软件程序 HD61830液晶显示器驱动控制程序用C语言给出,完整程序、头文件、HD61830.pdf文档均在随书下载资料中,其中HD61830.C经Keil C 调试通过。 例18-1 HD61830驱动程序,下面对注释进行解释: 注1:CTAB数组存放的是要显示的CGROM中的88字符代码“Support TEL: 010-62780379”,代码是8位的,高4位在前,低4位在后

12、。指令0x0c就是写CGROM命令,指令参数就是字符代码。 注2:函数参数和是以字节为单位的屏上显示位置,定位就是把指针移到与此对应的显示RAM。r=*40+x中,*40是一行40个字节,行共占的字节数;加上列正好是显示位置对应的RAM单元,ROW = r/256,CUL = r%256是分别求出此16位地址高8位和低8位,然后通过下面程序送入HD61830。 注3:指令0x0c就是写CGROM字符命令,指令参数就是字符代码。,注4:显示字符串 “Support TEL: 010-62780379”, CTAB数组存放的是要显示的字符串的代码。 注5:读操作要进行二次,第一次是空读,第二次才是

13、读得的数据。 注6:显示时每个字节都先要调convert ( )进行转换,然后送HD61830。 注7:88和816ASCII字符,1616、2424、1212、4848点阵汉字在写入HD61830时都要用程序转换。这是转换程序。 注8:打点函数中的参数,是屏上点的坐标,单位是点,对我们MGLS-12864 LCD模块来说的范围是0127;的范围是063。n=i/8是计算该点在向占多少字节,以便计算该点内存映象的位置。 因为定位函数是以字节为单位的,m=i%8是计算该点在字节中的bit位。COM=0x0f是置位命令代码,DAT=m&0x07是将bit数写入模块。,18.4 HD61830 CG

14、RAM字符代码表,HD61830内部字符发生器CGROM字符代码表见表18-6,供编程参考。,小贴示: 由于篇幅限制,本书只给出三种典型LCD显示控制器控制程序,想了解更多LCD显示控制器驱动程序,请参见文献【5】,本 章 小 结,本章讲述了在嵌入式系统中使用较多的LCD显式控制器HD61830的特殊RAM结构和指令系统,特别详细介绍了如何编写打点指令和在打点指令基础上显示汉字、曲线和ASCII码字符的原理,给出了HD61830和MCS-51的连接和软件驱动程序。 对使用正常字模的显示程序给出了字模转换程序。 对使用HD61830显式控制器的一类显示模块有参考价值。,第十八章习题,HD61830字模在屏上排列和T6963C、KS0108有什么不同? HD61830的打点、清点函数有什么特点? 正常字模汉字在HD61830上显示和T6963C上显示有什么不同? 正常1616点阵汉字在HD61830上显示如何变换? 如何根据打点函数显示1212、1616、2424、4848点阵汉字? 如何根据打点函数显示88、816ASCII码字符。 如何根据打点函数显示周期为4f的正弦曲线? 如何根据打点函数显示警笛图形?,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号