1、 基于RA8835的液晶屏驱动程序设计摘 要:液晶显示器(LCD)是现代电子产品中应用非常广泛的一种显示设备。本设计主要介绍了一个基于RA8835的液晶屏驱动程序的设计,该功能由C8051F020单片机和RA8835液晶驱动芯片两个核心器件来实现,C8051F020控制RA8835来完成液晶显示功能。软件部分用C语言来编写,详细介绍了基于单片机C8051F020的应用软件设计。本设计是在原有的硬件平台的基础上根据液晶屏的基本驱动指令给出了各个模块的驱动程序设计,如任意位置打点、画线、画圆、任意位置字符、字符串、汉字的显示,并且分析了最基础的功能模块打点的算法原理。作为打点功能的延伸,编写了一个
2、支持图片显示的程序。作为显示汉字功能的延伸,编写了一个支持任意大小汉字显示的程序。最后,把以上各个功能模块综合起来显示,也完成了一个简单信息界面的显示。实验证明这是一种简单但有效的工作方案,对此进行少量修改就可用于很多不同场合,实用性强。关键词:C8051F020单片机; LCD; RA8835; 驱动程序The designation of LCD driver baded on RA8835Abstract: LCD is one of the most popular display in modern electronic devices. The design mainly intr
3、oduces a designation of LCD driver based on RA8835. The function can be completed with two core devices, C8051F020 MCU and RA8835 LCD driver IC. C8051F020 controls RA8835 to complete the LCD function. The software part is complies with the C language, the applicaton software design based on C8051F02
4、0 MCU was introduced in detail. According to the LCD basic drive instructions, the design, based on the original hardware platform, gives each module driver design. For example, show a point in any position, draw line, draw circle, show a character, character string or Chinese character in any posit
5、ion. The algorithm theory of basic function moduleshow a point in any position is analysed. As the extend function of showing a point, a program supporting picture display is written. As the extend function of showing a Chinese character, a program supporting any size of Chinese character is written
6、. Finally, the above all function module combined, also a simple interface display is completed. Experiments show that this is a simply designed but well worked project, it is proved that the design can be used in many different occasions modified a little, it can be widely used.Key words:C8051F020
7、MCU; LCD; RA8835; driver 目 录 1 绪 论11.1 研究的意义及背景11.2 系统概述31.3 小结42 硬件系统组成及工作原理52.1 硬件系统原理框图52.2 C8051F020系列单片机52.2.1 C8051F020系列单片机系统概述52.3 RA8835液晶驱动芯片72.3.1 液晶屏显示的原理82.3.2 模块接口定义82.3.3 模块主要硬件构成说明92.3.4 地址计算方法113 软件设计基础123.1 KeilC51简介123.2 RA8835的基础指令模块133.2.1 系统设置(SYSTEM SET)133.2.2 显示状态设置(DISPLAY
8、ON/OFF)143.2.3 CGRAM 首址设置(CGRAMADR)153.2.4 光标地址设置(CSRW)163.2.5 读出光标地址(CSRR)163.2.6 显示数据写入(MRWITE)163.2.7 显示数据读出(MREAD)163.3 RA8835的基本驱动函数173.3.1 写命令函数173.3.2 写数据函数173.3.3 读取命令函数173.3.4 读取数据函数173.3.5 检测 “忙”标志函数173.4 RA8835与C8051F020的接口定义173.4 液晶屏初始化183.4.1 初始化流程图183.4.2 初始化程序194 应用程序部分214.1 打点214.1.1
9、 打点的算法214.1.2 打点函数214.2 画直线224.2.1 画直线的算法224.2.2 画直线函数224.3 画圆224.3.1 画圆的算法224.3.2 画圆函数234.4 显示字符和字符串234.4.1 显示字符和字符串的算法234.4.2 显示字符和字符串的函数234.5 显示汉字234.5.1 显示汉字的算法234.5.2 显示汉字的模式244.5.3 显示大小不同的汉字244.5.4 显示汉字的函数244.6 显示简单图片254.6.1 显示简单图片的算法254.6.2 显示简单图片的模式254.6.3 显示简单图片的程序255 演示程序部分265.1 演示流程图265.2
10、 演示过程及画面显示275.2.1 打点275.2.2 画直线275.2.3 画一组同心圆285.2.4 显示字符串285.2.5 显示大小不同的汉字295.2.6 显示简单图片306 结论31参考文献32致 谢33331 绪 论1.1 研究的意义及背景随着电子产品设计技术的不断发展,电子产品的设计,尤其是人机交互界面的设计日益趋向人性化。显示器件在人们的日常生活中扮演着越来越重要的角色,这主要体现在它的桥梁角色(bridging role)或者说人机界面角色(man-machine interface role)中,其发展趋势在信息社会中越来越重要。显示器件分类有多种,但最常见的是按显示原理
11、分类,即主动发光显示和非主动发光显示。主动发光型(自发光型)是利用信息来调制各像素的发光亮度和颜色,进行直接显示。非主动发光型本身不发光,利用信息调制光源使其达到显示的目的。主动发光显示器主要有:CRT(阴极射线管显示);PDP(等离子体显示);ELD(电致发光显示);LED(发光二极管显示);VFD(真空荧光显示);FED(场致发射显示);OLED(有机发光二极管显示)。非主动发光显示器主要有:LCD(液晶显示);ECD(电化学显示);EPID(电泳成像显示)。其中,ECD、EPID和ELD这几种显示器应用面不大,市场小。早期的显示器以显像管(CRT)显示器为主,但随着科技不断进步,各种显示
12、技术如雨后春笋般诞生,近来由于液晶显示器(LCD)具有轻薄短小、低耗电量、无辐射危险,能显示复杂文字及图形、显示面积大小随意、平面直角显示以及影像稳定不闪烁等优点,在近年来价格不断下跌的吸引下,逐渐取代CRT之主流地位,而得到广泛的应用。液晶显示器与传统的显示器相比,有新的特点:(1) 显示质量高液晶显示器的每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新亮点。因此,液晶显示器画面质量高而且绝对不会闪烁,能把眼睛疲劳降到最低。 (2) 没有电磁辐射 传统显示器的显示材料是荧光粉,通过电子束撞击荧光粉而显示,电子束在打到荧光粉上的一刹那间会
13、产生强大的电磁辐射,尽管目前有许多显示器产品在处理辐射问题上进行了比较有效的处理,尽可能地把辐射量降到最低,但要彻底消除是困难的。相对来说,液晶显示器在防止辐射方面具有先天的优势,因为它根本就不存在辐射。在电磁波的防范方面,液晶显示器也有自己独特的优势,它采用了严格的密封技术将来自驱动电路的少量电磁波封闭在显示器中,而普通显示器为了散发热量的需要,必须尽可能地让内部的电路与空气接触,这样内部电路产生的电磁波也就大量地向外“泄漏”了。 (3) 可视面积大 对于相同尺寸的显示器来说,液晶显示器的可视面积要更大一些。液晶显示器的可视面积跟它的对角线尺寸相同。阴极射线管显示器显像管前面板四周有一英寸左
14、右的边框不能用于显示。 (4) 应用范围广 最初的液晶显示器由于无法显示细腻的字符,通常应用在电子表、计算器上。随着液晶显示技术的不断发展和进步,字符显示开始细腻起来,同时也支持基本的彩色显示,并逐步用于液晶电视、摄像机的液晶显示器、掌上游戏机上。而随后出现的DSTN和TFT则被广泛制作成电脑中的液晶显示设备,DSTN液晶显示屏用于早期的笔记本电脑;TFT则既应用在笔记本电脑上(现在大多数笔记本电脑都使用TFT显示屏),又用于主流台式显示器上。 (5) 画面效果好 与传统显示器相比,液晶显示器一开始就使用纯平面的玻璃板,其显示效果是平面直角的,让人有一种耳目一新的感觉。而且液晶显示器更容易在小
15、面积屏幕上实现高分辨率,例如,17英寸的液晶显示器就能很好地实现12801024分辨率,而通常18英寸CRT彩显上使用12801024以上分辨率的画面效果是不能完全令人满意的。 (6) 数字式接口 液晶显示器都是数字式的,不像阴极射线管彩显采用模拟接口。也就是说,使用液晶显示器,显卡再也不需要像往常那样把数字信号转化成模拟信号再行输出。理论上,这会使色彩和定位都更加准确完美。 (7) “身材”匀称小巧 传统的阴极射线管显示器,后面总是拖着一个笨重的射线管。液晶显示器突破了这一限制,给人一种全新的感觉。传统显示器是通过电子枪发射电子束到屏幕,因而显像管的管颈不能做得很短,当屏幕增加时也必然增大整
16、个显示器的体积。而液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示目的,即使屏幕加大,它的体积也不会成正比的增加,而且在重量上比相同显示面积的传统显示器要轻得多。(8) 功率消耗小 传统的显示器内部由许多电路组成,这些电路驱动着阴极射线显像管工作时,需要消耗很大的功率,而且随着体积的不断增大,其内部电路消耗的功率肯定也会随之增大。相比而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比传统显示器也要小得多。近年来,随着单片机技术的飞速发展,涌现了多种性能优良且成本很低的单片机品种。C8051F系列单片机就是其中之一。在工程应用中,C8051F020可在满足性能要求的前提
17、下,减少浪费、降低成本。为此,本文给出了一种基于C8051F020和RA8835实现的低成本液晶显示方案。1.2 系统概述 最新液晶显示技术应用离不开最新液晶显示技术的发展。液晶显示的发展是当代持续发展速度最快的产业之一,它的发展是有规律的。一个产业的发展,最基本的动力是市场。 (1) 市场的角度 市场,不外需求和竞争。液晶显示产业面对的市场核心也是如此。市场对液晶显示的需求和各类显示器件与液晶显示的竞争是液晶显示发展的最大动力,并决定,主导了液晶显示的发展趋势。市场对液晶显示的需求不断扩大,这是有目共睹的,特别是个人便携式产品的发展,例如,移动通讯产业的迅速发展,为液晶显示的发展注入了动力。
18、市场需求的扩大,将决定了液晶显示持续发展的基本态势。 而各类显示与液晶显示在市场上的竞争则不仅是液晶显示发展的动力,而且将决定液晶显示发展的方向和特点。所以液晶显示的市场竞争是决定液晶显示持续发展趋势的。 (2) 液晶显示内部竞争 各个液晶显示厂商间的竞争和各类液晶显示器件之间的竞争是液晶显示内部竞争的主要构成。 各厂商间的竞争主要内容是产品的质量和性价比。质量越好,市场越欢迎,你就会卖得多,赚钱多;性价比高,客户越高兴,销售量越大,你的利润就更多。 所以,液晶显示各厂商间的竞争将会不断的促进液晶显示质量的提高和性价比的提高。换句话说,产品越来越好,价钱越来越便宜这是液晶显示持续发展的第一个趋
19、势。 各类液晶显示之间的竞争对液晶显示发展趋势影响也很大。我们知道,液晶显示的分类是很多的,例如:TN,STN,TFT等。各种类别的液晶显示优缺点各异,对用户来说,他们是互补的,但对各类液晶显示来说,竞争就促成了他们各自克服缺点,发挥优点的不断进步,甚至会激发出灵感开创出新的显示模式。 (3) 液晶显示与各类显示的竞争 液晶显示与其他几种平板显示在市场上的竞争是驱动液晶显示持续发展的又一大动力。近年来,PDP、OLED、DMD、FED等多种非液晶的平板显示都已经陆续成熟上市,它们针对液晶显示的某些不足,如亮度低,不易大屏幕化等缺陷,来势汹汹地发起了对液晶显示的挑战。某些观点喜欢将显示器分为“代
20、”,而且认为“新一代”的显示会取代“老一代”的显示,如最近,某些人即声称OLED将会取代液晶显示。 事实上,由于各种显示各有不同的优缺点和各自特性,一般不可能互相取代,但是,利用本身的某一特长部分取代或冲击另一类显示器件是完全现实的。液晶显示不得不面对这一挑战和竞争。这一挑战和竞争既是对液晶显示产业的威胁,又是液晶显示产业的发展动力。 可以预见,各类平板显示器件将直面液晶显示的几大弱势被动显示、亮度低、对比度不高、背光源功耗大、大屏幕化难度高等发起挑战。这既是各类平板显示器件发展趋势也是液晶显示为保持持续发展的努力方向。 1.3 小结本设计分为两个部分,即硬件设计部分和软件设计部分。硬件设计部
21、分包括以单片机C8051F020为主的驱动部分和基于RA8835的320240液晶显示屏部分。本论文中对设计所需要的开发软件Keil uVision3有简单的说明,对作为硬件设计核心的C8051F020单片机的管脚配置也有说明,对单片机C8051F020和RA8835芯片的接口连接也有相应说明。软件部分采用C语言编写驱动程序,其软件实现流程图、图解说明及实现程序都在文中有叙述,文中对程序也有详细的解释。2 硬件系统组成及工作原理2.1 硬件系统原理框图图2-1 LCD 控制驱动及其接口2.2 C8051F020系列单片机2.2.1 C8051F020系列单片机系统概述本系统选用性能优良且成本较
22、低的SOC单片机C8051F020作为控制核心。C8051F020/1/2/3器件是完全集成的混合信号系统级MCU芯片,具有64个数字I/O 引脚(C8051F020/2)或32个数字I/O引脚(C8051F021/3)。其主要的内部资源有:高速、流水线结构的8051兼容的CIP-51内核(可达25MIPS),全速、非侵入式的在系统调试接口(片内),真正12位(C8051F020/1)或10位(C8051F022/3)、100 ksps的8通道ADC,带PGA和模拟多路开关,真正8位500 ksps的ADC,带PGA和8通道模拟多路开关,两个12位DAC,具有可编程数据更新方式,64K字节可在
23、系统编程的FLASH 存储器,4352(4096+256)字节的片内RAM,可寻址64K字节地址空间的外部数据存储器接口,硬件实现的SPI、SMBus/ I2C和两个UART 串行接口,5个通用的16位定时器,具有5个捕捉/比较模块的可编程计数器/定时器阵列,片内看门狗定时器、VDD监视器和温度传感器。每个MCU 都可在工业温度范围(-45到+85)内用2.7V-3.6V 的电压工作。端口I/O、/RST 和JTAG 引脚都容许5V 的输入信号电压。C8051F020 为100 脚TQFP 封装(见图2-2),其原理框图如图2-3所示。图2-2 C8051F020 的TQFP100 封装图2-
24、3 C8051F020 原理框图2.3 RA8835液晶驱动芯片320240B使用功能强大的RA8835/ SED1335 作为控制器。适配Intel8080 系列和M6800 系列MPU 的两种操作时序电路,通过硬件设置,可选择二者之一。4 位显示数据线,传输数据迅速;具有强大的作图功能;支持文本显示、图形显示以及图形和文本混合显示具备简捷的MPU 接口和功能齐全的控制指令集。采用SMT 工艺制作,结构稳固,使用寿命长。芯片特性如下:供电电压为5.0V10,320240 点阵显示,LCD:FSTN,1/240 duty,1/17 bias,6:00 视角,64KB 显示RAM,内含160 种
25、57 点阵字体的字符,温度补偿功能,对环境的适应性强。外形尺寸如图2-7 所示:图2-7 320240液晶显示器外形图 表2-1 320240液晶显示器外形图尺寸项目标准尺寸单位模块体积160L109W12Hmm视域12292mm行 列 点 阵 数320240dots点距离0.360.36mm点大小0.330.33mm2.3.1 液晶屏显示的原理液晶是一种介于液体与固体之间的热力学的中间稳定相。在一定的温度范围内,它既有液体的流动性和连续性,又有晶体的各向异性。其分子呈长棒形,长度比较大,分子是一个刚性体,不能弯曲,分子中心一般有一个桥链,分子两头有极性。液晶是一种特殊的物质,它具有四壁效应。
26、在定向膜的作用下,液晶分子在正、背玻璃电极上呈水平排列。但是,它们排列的方向互为正交,而玻璃间的分子呈连续扭转过渡。这样的构造能使液晶对光产生旋光作用,使光的偏振方向旋转90度。平时,当外部光线通过上偏振片之后就形成了偏振光,偏振方向呈垂直方向。当此偏振光通过液晶材料后,旋转90度,偏振方向变成水平方向。由于此方向与下偏振片的偏振方向一致,因此光线完全能够穿过下偏振片而达到反射板,再经反射后沿原路返回,从而呈现出透明状态。当在液晶盒的上、下电极施加一定的电压后,电极部分的液晶分子就会转成垂直排列,从而失去旋光性。因此,从上偏振片入射的偏振光不会发生旋转。当此偏振光到达下偏振片时,因为其偏振方向
27、与下偏振片的方向垂直,而被下偏振片吸收,光线无法到达发射极板形成反射,所以呈现出黑色。实际应用时,可根据需要将电极做成各种文字、数字或点阵。2.3.2 模块接口定义表2-2 RA8835模块接口定义DB0DB7:三态数据总线,可直接挂在MCU的数据总线上;CS:片选信号,低电平有效,MCUI访问RA8835时,应将其置低;RD:为8080接口时,该脚为读操作信号;为M6800接口时,则为使能信号;WR:为8080接口时,该脚为写操作信号;为M6800接口时,则为是写操作信号;A0:IO缓冲器选择信号,当A0为0时,写数据参数和读忙标志,当A0为1时,写指令代码和读数据;RES:复位信号,低电平
28、有效,当重新启动RA8835时,还需要使用指令SYSTEMSET。SEL1、SEL2:接口时的类型选择信号。2.3.3 模块主要硬件构成说明(1) SEL1脚接低时选择Intel8080 时序(模块上JP1-80 接10K 电阻),接高时选择M6800 时序(模块上JP1-68接10K 电阻)。(2) 忙标志(BF)MPU访问RA8835不需要判断其是否“忙”,RA8835随时准备接受MPU访问并在内部时序下及时地把MPU发来的数据、指令就位。在MPU访问显示存储器时这样做虽然满足了MPU的实时控制,但是牺牲了内部显示扫描的数据读取周期,也就是要中断为显示驱动而读取显示数据的操作,因而不可避免
29、地将在显示屏上出现“雪花”现象。如果仅仅几次操作,这种中断在瞬间出现,由于人眼在视觉上的惰性而看不出“雪花”现象,但当大量的数据被传送时,“雪花”对显示的影响将不可忽略。为了避免“雪花”的影响,使MPUD的操作对显示的影响最小,RA8835在接口部提供一个状态信号“忙”标志BF。忙标志寄存器是一个只读寄存器,它仅有1 位“忙”标识位BF。在传送完1 行有效显示数据到下1 行传送开始之间的间歇内BF=0。在这段时间内RA8835将不读取显示数据,此时RA8835接应MPU对显示存储器的访问将不会影响显示效果。BF1则表示控制器正在向显示模块传送有效数据,此时RA8835接应MPU对显示存储器的访
30、问将会影响显示效果,只是根据MPU访问的频率决定影响显示的强弱。BF标志可以在数据总线的D6位上读出。(3) 复位电路RA8835 内部配置有复位电路,其控制端/RES 为施密特触发器输入,复位信号为低有效,其低电平宽度应大于200uS。复位电路将RA8835 内部电路复位,重新启动工作需要写入指令SYSTEM SET 指令代码及其P1 参数。(4) 显示RAMRA8835 的64K 显示RAM 分为文本显示特性区和图形显示区2 个显示特性区。RA8835 中还有专门的寄存器来控制2 种显示特性区。可以用1 种特性单独显示,也可以通过某种逻辑关系将两种显示特性合成显示,这些都是通过软件指令设置
31、实现的。2 个显示特性区:文本显示特性区此RAM 区专用于文本方式显示,在访问RAM 区中每个字节的数据都认为是字符代码。控制器将使用该字符代码确定字符库中字符的所在位置,然后将相应的字模数传送至液晶显示屏模块上。在液晶屏上出现该字符的88 点阵块,即文本显示RAM 的1 个字节对应显示屏上的88 点阵。图形显示区此RAM 区专用于图形方式显示。在该显示RAM 区中每个字节的数据直接被送到液晶模块上显示。每个位的电平状态决定显示屏上1 个点显示状态,“1”为显示,“0”为不显示,所以图形显示RAM 的1 个字节对应显示屏上的81 点阵。RA8835能够同时管理三到四个显示区。每个显示区都拥有自
32、己的的显示特性。这里将四个区定义为第一显示区L1、第二显示区L2、第三显示区L3、第四显示区L4。RA8835以第一和第二显示区为主显示区,第三第四显示区为辅显示区。在控制单屏结构液晶显示驱动系统时,RA8835可以分别或同时使用第一、第二和第三显示区。在控制双屏液晶显示驱动系统时,RA8835需要组合使用所有四个显示区。在这种情况下,第一、第二仅管理显示屏上半屏的显示数据,第三、第四显示区管理显示屏的下半屏的显示数据,并规定第一和第三显示区合成为一控制全屏显示,第二和第四合成为一控制全屏显示。管理显示区由如下几个参数寄存器:显示起始地址寄存器SAD:该地址寄存器为16位寄存器,其作用是为显示
33、驱动提供显示区域的首地址。该寄存器由四个,分别管理四个显示区,它们是:SAD1SAD4,分别为第一到第四显示区的首地址寄存器。显示区宽度寄存器AP:该寄存器为16位寄存器,指示显示区一行所占的单元数,也可以称为显示区的宽度。显示区的宽度对四个显示区来说是统一的。显示区长度寄存器SL:该寄存器为8位寄存器,指示显示区占多少行,每行由AP个字节。显示区长度寄存器有两个SL1和SL2。分别管理第一、三显示区,第四、四显示区间接地受SL1和SL2管理。(5) 字符发生器内嵌字符发生器CGROM:在此字符发生器中固化了160 种57 点阵字符的字模。随机字符发生器CGRAM:可根据用户需要随时建立和修改
34、。RA8835 能给用户提供2个自定义字符发生器的数据区,每个区占有256 个字节,为32 个代码。第一自定义字符数据区CGRAM1 的代码范围规定为80H9FH;第二自定义字符数据区CGRAM2 的代码范围规定为E0HFFH。当使用这2 个区的字符代码时,控制部自动的到CGRAM1 或CGRAM2内寻址,提取相应的字模数据。由于2 个区的代码不连续,所以地址就不会连续,这样造成显示空间的浪费,因此控制器在管理第二自定义字符数据区时配置了40H 异或电路,使E0HFFH 范围内的代码经异或电路后产生新的代码A0HBFH,由此使其与第一自定义数据区的地址连接起来,这一特点在建立第二自定义数据区时
35、需特别注意。2.3.4 地址计算方法如表2-3所示,是屏幕与DDRAM的对应关系。可以看出,从00H到257FH为第一显示区的地址,从2580H到4AFF为第二显示区的地址,依次类推。控制器将水平方向320点分为40个字节,寻址范围为039。垂直方向240点以点为最小寻址单位,故寻址范围为0239。其简单地址映射关系如图2-8所示,写数据时以字节为单位写入,每个字节对应屏幕上的8列。例如,向地址01H写入数据0x11,则第0行的第7-15列的第7、9、11、13列被点亮显示。表2-3 屏幕与DDRAM的对应关系表SEG1SEG8SEG9SEG16SEG305SEG312SEG313SEG320
36、COM100H01H26H27HCOM228H29H4EH4FHCOM2392530H2531H2557H2558HCOM2402559H255AH257FH2580H图2-8 简单地址映射关系图3 软件设计基础3.1 KeilC51简介KeilC51是Keil Software公司推出的51系列单片机兼容汇编语言和C语言的软件开发工具。它提供了基于Windows的集成开发环境uVision3,拥有丰富的库函数和功能强大的集成开发调试工具,同时具备功能强大的软件仿真和硬件仿真功能;另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成
37、的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。使用C 语言肯定要使用到C 编译器,以便把写好的C 程序编译为机器码,这样单片机才能执行编写好的程序。Keil uVision3是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM,汇编和C 语言的程序设计,它的界面和常用的微软VC+的界面相似,在调试程序,软件仿真方面有很强大的功能。因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。与汇编语言相比,C语言在功能、结构、可读性和可维护性上有明显的优势,因而易学易用。KeilC51
38、生成的目标代码效率非常高,多数语句生成的汇编代码紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。KeilC51编译器是一个完全支持ANSI标准的C语言编译器,除少数关键地方外,KeilC51和标准ANSI C语言是基本相似的;但是由于51单片机结构的特殊性,KeilC51在ANSI C的基础上进行了一些扩展,使其能够更有效的利用单片机的各种资源。深入理解并应用C51对ANSI C的扩展,是学习C51的关键之一,因为大多数扩展功能都是直接针对C51系列单片机硬件设计的。常用的KeilC51的扩展主要包括:数据类型;存储类型;存储模型;指针;中断函数;再入函数。在整个设计过程中我们主要使用
39、keil C51这个软件进行编写程序,所以我们首先先了解下这个软件的使用方法。(1) 点击PROJECT菜单,给程序项目命名,以后可以直接点击此文件以打开先前做的项目;(2) 选择所要的单片机;(3) 在项目中创建新的程序文件或者加入旧程序文件;(4) 保存新的程序、看是否有语法错误并将其加入到项目中;(5) 掌握新建程序项目和编译运行仿真的基本方法,使用软件默认的编译设置,对加入在项目中的C程序文件进行编译;(6) 进入调试模式,打开串行调试窗口,再按运行键,这时就可以看到串行调试窗口中的结果了,这样就完成了第一个C项目;最后,要停止程序运行回到文件编辑模式中,就要先按停止按钮再按开启关闭调
40、试模式按钮,然后就可以进行关闭KEIL等相关操作了。3.2 RA8835的基础指令模块3.2.1 系统设置(SYSTEM SET) 01000000 格式:该指令为 RA8835 等的初始化而配置的。它规定了 RA8835 工作所必需的各种参数。 该指令是 MPU 操作 RA8835 控制器时首先要写入的指令。如果该指令参数的设置不适合所要控制的液晶模块的特性,那么MPU就不能对液晶显示模块的控制系统做所希望的显示效果。该指令带有 8 个参数。各参数的功能如下:DR0IV1W/SM2M1M0P1:DR:辅助位移时钟周期的选择位。DR=0为正常运行;DR=1为使用辅助位移时钟周期。通常选取 DR
41、=0。IV:负向字符显示时屏面边界选择位。IV=0为画面首行作为边界;IV=1则无边界。通常选取 IV=1。说明:在文本显示方式下,第一行显示的字符时顶天的,没有天头。所以在制作负向字符显示时的效果就不太理想。此时使用IV参数位在显示控制时制造出一行空行作为天头,以达到理想的显示效果。W/S:适配驱动系统选择位。该位将选择产生驱动时序信号的类型。W/S0为单屏 LCD驱动系统,W/S=1为双屏 LCD驱动系统。M2:外部字符发生器的字体选择位。 M2=0为 88点阵字体;M2=1为 816点阵字体。M1:外部字符发生器 CGRAM代码区选择位。M1=0选择 CGRAM1,字体代码为 80H9F
42、H;M1=1选择 CGRAM1+CGRAM2,字符代码为 80H9FH和E0HFFH。M0:字符发生器选择位。M0=0选择内部字符发生器;M0=1选择外部字符发生 器,此时内部字符发生器被屏蔽,字符代码全部供给外部字符发生器使用。WF0000FXP2:WF:交流驱动波形选择位。通常选 WF=1。FX:字符体宽度设置参数(点列数) 。 FX=字符宽+字间距,FX 的范围是 07。WF0000FYP3:FY:字符体高度设置参数(点行数) 。 FY=字符高+行间距,FY 的范围是 0F。P4:C/RC/R:有效显示窗口设置。C/R值设置了显示屏上有效显示的字符数,它的值可以选择比显示屏的实际长度小一
43、些,但是余留的部分不能超过 64点列。C/R值的范围是 00HEFH。P5:TC/RTC/R:驱动频率的时间常数。 TC/R 是晶振频率转换成模块的工作频率 FR 的时间 常数。它可以由下式求出:fOSC9TC/RL/FFRTC/RC/R+4FR 为帧扫描频率,通常取值为FR=70Hz。在控制大规模显示模块时,在最大振荡频率10MHz下,要满足TR/C取值要求,就要降低液晶显示的帧扫描频率FR。该参数的设置有时非常重要,错误的设置可引起以下几种现象:行扫描停止且出现高对比度的水平线;显示不稳定,出现闪烁或全亮或全暗;LP 信号不足或不存在P6:L/FL/F: 扫描驱动的帧参数。L/F值设置了控
44、制器所要控制的液晶显示驱动系统的 扫描行数,其倒数为占空比系数。范围是 00HFFH。P7:APLAP:在显示存储器内分配给一个显示行的单元数(字节数) 。 P8:APHAP:在显示存储器内分配给一个显示行的单元数(字节数) 。AP 为双字节参数, APL 为低 8 位,APH 为高 8 位。通常 AP 取值为 C/R+1 或大于 C/R 的整数,以方便计算显示行的显示存储器地址。3.2.2 显示状态设置(DISPLAY ON/OFF)0101100ON/OFF格 式:该指令设置了显示的各种状态。包括:显示的开关状态、光标的显示状态和各 显示区显示状态的设置。该指令带有一个参数。其功能如下:F
45、P5FP4FP3FP2FP1FP0FC1FC0代 码: FC1,FC0:光标状态设置。如下表所示:FC1FC0光标显示状态00光标显示关闭01光标显示,但不闪烁10光标以 FR/32Hz 的频率闪烁显示11光标以 FR/64Hz 的频率闪烁显示FP1,FP0:显示一区状态设置位。FP3,FP2:显示二,四区状态设置位。FP5,FP4:显示三区状态设置位。FC1FP3FP5FC0FP2FP4显示一区状态 显示二,四区状态显示三区状态 00画面显示关闭01画面显示,但不闪烁10画面以 FR/32Hz 的频率闪烁显示11画面以 FR/64Hz 的频率闪烁显示说明:这些参数位都是控制着各显示区的显示状
46、态,该状态的实现需要在显示 总开关为开显示状态的前提下。3.2.3 CGRAM 首址设置(CGRAMADR)01011100格 式:该指令设 CGRAM的起始地址SAG。从该地址 SAG起的 2K字节的空间(M2=0)或 4K字节空间(M2=1)为 CGRAM 区域。该指令带有两个参数,他们是:P1:SAGLP2:SAGHSAG:CGRAM起始地址。SAGL为 SAG的低 8位。SAGH为SAG的高 8位。 说明:SAG所指地址对应的是字符代码00H的字模首地址, 所以对CGRAM1的首地址为 SAG+80H8。CGRAM2区域的字符代码为E0HFFH , 但是由于控制部在CGRAM2寻址上安置了异或40H电路,所以CGRAM2的地址应按A0HBFH计算,