毕业设计(论文)-基于LCD的图像输入及显示_第1页
毕业设计(论文)-基于LCD的图像输入及显示_第2页
毕业设计(论文)-基于LCD的图像输入及显示_第3页
毕业设计(论文)-基于LCD的图像输入及显示_第4页
毕业设计(论文)-基于LCD的图像输入及显示_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

成都电子机械高等专科学校毕业设计(论文)PAGEPAGE1基于LCD的图像输入及显示目录摘要3Abstract4 第1章绪论51.1本设计的要求/51.2关于单片机/51.2.11.2.2单片机的特点/61.2.3单片机的应用/61.3关于汇编语言/71.3.1汇编语言及其优点/71.4关于液晶显示LCD/7第2章有关T6963C的一般介绍82.1T6963C的特点/82.2T6963C的部分引脚说明及功能/82.2.2T6963C各引脚功能/82.3T6963C的指令系统/92.3.1T6963C的状态字2.3.2T6963C的2.3.3T6963C部分指令系统的说明第3章系统硬件设计153.1内置T6963C控制器的液晶显示模块的硬件特性/153.2T6963C与单片机的接口电路/16第4章系统软件设计184.1设计思路/184.2实现功能/184.3系统程序/204.3.1主程序/204.3.2判断状态字/214.3.3指令写入/224.3.4数据写入/234.3.5各功能模块子程序/244.4总结/34第5章谢辞35参考文献36附录一37摘要:计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动显示技随着术的发展。本文采用单片机的汇编语言编程实现在LCD模块上的数据和图像显示即是一例。液晶显示简称LCD,LCD是当今最有发展前途的一种平面显示技术。本例的LCD模块采用的是T6963C点阵式图像显示模块(240*128点阵)。所以本文特意在第2章重点介绍了T6963C。此外在第1章导言中简单介绍了单片机汇编语言和液晶显示LCD。本文的重点部分是T6963C与8031单片机的硬件接口和软件设计,即第三、四章。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。相信读过本文后你会对单片机汇编语言和液晶显示技术(尤其是T6963C点阵显示模块)有一些最基本的了解。关键词:T6963C;接口;编程;显示Abstract:Inthesocialfieldofcomputerpenetration,microcontrollerapplicationsaretogodeeperandMeanwhiledrivenshowwiththetechnologyfordevelopment.InthispaperMCUassemblylanguageprogrammingontheLCDmoduledataandimagedisplayservesasanexample.LCDshortLCD,theLCDisthemostpromisingofaflatpaneldisplay.ThecasesofLCDmodulesusingtheT6963MatrixImageDisplayModule(240*128lattice).Therefore,inthispaper,specificallyChapter2focusesontheT6963C.Moreover,intheintroductiontoChapter1oftheSCMsimplecompilationoflanguageandLCDLCD.Thefocusofthispaperispartofthe8031microcontrollerwiththeT6963Cthehardwareandsoftwareinterfacedesign,thatisthethird,fourchapters.Thispaperwrittenbythedominantthoughtissoftandhardwareintegration,hardware-based,forthepreparationoffunctionalmodules.IbelieveafteryoureadthepaperonSCMassemblylanguageandLCDtechnology(especiallydotmatrixdisplaymoduleT6963C)withsomebasicunderstanding.Keywords:T6963C第1章绪论1.1本设计的要求:(1)采用汇编语言实现在LCD模块上进行数据、图像显示.(2)LCD模块采用T6963C点阵式图像显示模块(240*128点阵).(3)具有初始化程序\汉字、西文写入子程序、绘点子程序等.(4)用PROTEL画出与单片机的连接原理图与印制板电路图.1.2关于单片机当今,计算机技术带来了科研和生产的许多重大飞跃,微型计算机的应用已渗透到生产,生活的各个方面。其中单片机以体积小,价廉,功能强,性能不断的提高,适用范围越来越宽,在计算机应用领域已占有日益重要的地位。单片机是在一块半导体芯片上,集成了CPU,ROM,RAM,I/O接口,定时器/计数器,中断系统等功能部件,构成了一台完整的数字电子计算机。由于集成电路技术的进步,片内甚至还可包含HSO,HIS,A/D转换器,PWM等称为“片内外设”的特殊功能部件。随着单片机构成的计算机应用系统的功能也日益增强,它一样可以配用打印机,绘图仪,CRT等外围设备,一样可以联网。这进一步深化了单片机在工业控制,自动检测,智能仪器仪表,家用电器等领域的突出地位,并使它不断拓宽应用范围,增添了新的活力。单片机的应用结束了计算机专业人员“垄断”计算机系统开发与应用的时代,它既给各种专业人员,特别是许多工程技术人员带来了学习和掌握计算机技术的急迫性,同时也带来了可能性,因为组成计算机应用系统变得容易,增强了人们进入这一领域的自信心。1.2.1单片机的发展历史单片机的历史非常短暂,然而发展十分迅猛。自1971年美国Intel公司首先研制出4位单片机4004以来,它的发展可大致划分为四个阶段:第一阶段1971~1976年,属萌芽阶段。发展了各种四位单片机,多用于家用电器,计算机,高级玩具。第二阶段1976~1980年,为初级8位机阶段,发展了各种中,低档8位单片机,典型的如MCS-48系列单片机,片内含多个8位并行I/O接口,一个8位定时器/计数器,不带串行I/O接口,其功能可满足一般工业控制和智能化仪器仪表等的需要。第三阶段1980~1983年,高级8位机阶段,发展了高性能的8位单片机,例如MCS-51系列单片机,它带有串行I/O接口和多个16位定时器/计数器,具有多级中断功能。这一阶段进一步拓宽了单片机的应用范围,使之能用于智能终端,局部网络的接口,并挤入了个人计算机领域。第四阶段1983年以后,16位单片机阶段。发展了MCS-96系列等16位单片机。功能很强,价格却迅速下降。片内有A/D转换器;可快速输入,输出;可用于电机控制;网络通信能力有显著提高。随着大规模集成电路技术的演进,单片机的性能仍在快速提高。其生产工艺经历了PMOS,NMOS,HMOS,CMOS等各个阶段,正朝CHMOS(高速型CMOS)工艺的反向发展;并继续提高集成度;增大RAM,ROM容量;增多功能模块;提高速度;降低功耗。1.2.2单片机的特点单片机芯片的集成度很高,它将微型计算机的主要部件都集成在一块芯片上,具有下列特点:·体积小,重量轻,价格便宜,耗电少。·根据工控环境要求设计,且许多功能部件集成在芯片内部,其信号通道受外界影响小,故可靠性高,抗干扰性能优于一般的CPU。·控制功能强,运行速度快。起结构组成与指令系统都着重满足工控要求。有极丰富的条件分支转移指令,有很强的位处理功能和I/O口逻辑操作功能。·片内存储器的容量不可能很大;引脚也嫌少,I/O引脚不够用,且兼第二功能以至第三功能。但存储器和I/O 接口都很易于扩展。1.2.3单片机的应用由于以上特点,可推知其应用最多的领域为·因它具有“小,轻,廉,省”的特点,尤其耗电少,又可供电电源的体积小,重量轻,所以特别适用于“电脑型产品”,在家用电器,玩具,游戏机,声像设备,电子秤,收银机,办公设备,厨房设备等许多产品上得到应用。·适用于仪器,仪表,不仅能完成测量,还具有处理(运算,误差修正,线性化,零漂处理),监控等功能,易于实现数字化和智能化。·有利于“机电一化”技术的发展,多用于数控机械,缝纫机械,医疗设备,汽车等。·广泛应用于打印机,绘图仪等许多计算机外围设备,特别是用于智能终端,可以大大减轻主机负担。·用于各种工业控制,如温度控制,液面控制,生产线顺序控制等。·宜于多机应用。例如机床加工中心,其各种功能可分散由各个单片机子系统分别完成,上级主机则负责统管,协调。又如要求高的数据检测采集系统,每一采集通道如是一个单片机子系统,可实现多点同时快速采集和预处理,然后再由主机进行集中处理和控制,以构成大型的实时测控系统。1.3关于汇编语言1.3.1汇编语言本设计采用的是汇编语言编程,所以下面我们对汇编语言及其优点做一些简介。汇编语言(AssemblyLanguage)是面向机器的程序设计语言。在汇编语句中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样符号代替机器语言的用二进制码,就把机器语言变成了汇编语言。于是汇编语言亦称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为f汇编。作为最基本的编程语言之一,汇编语言虽然应用的范围不算很广,但重要性却勿庸置疑,因为它能够完成许多其它语言所无法完成的功能。汇编语言的主要优点有:1)速度快,可以直接对硬件进行操作(这对诸如图形处理等关键应用是非常重要的)2)能够直接访问与硬件相关的存储器或I/O端口3)能够不受编译器的限制,对生成的二进制代码进行完全的控制4)能够对关键代码进行更准确的控制,避免因线程共同访问或者硬件设备共享引起的死锁5)能够根据特定的应用对代码做最佳的优化,提高运行速度6)能够最大限度地发挥硬件的功能。1.4关于液晶显示LCD目前,显示技术和显示工业的发展迅速。显示技术是传递视觉的信息技术,显示器件是显示技术的基础。显示器从最早的12"发展到到现在流行的17",显像管依然采用的是传统的CRT(阴极射线显像管)。虽然CRT显示器的技术处于非常成熟的阶段,大屏幕彩显正成为主流,但难以避免显示器的体积不断增加,功耗不断提升。由于物理上的限制,CRT显示器的应用范围也很有限。所以消费者希望有一种新型的显示设备来弥补CRT显示器的不足。液晶显示器的技术由笔记本电脑上的应用而逐渐成熟,有可能成为替代CRT显示器成为PC机的标准输出设备。综合比较各类显示器件,你会发现,液晶显示器件确实具有很多独到的优异特性。液晶显示器件LCD是当今最有发展前途的一种平板显示器件,它具有显示信息多、易于彩色化、体积小、重量轻、功耗低、寿命长、价格低、无辐射、无污染、接口控制方便等优点,正在测量及控制领域被广泛地推广和应用。限于篇幅,关于液晶显示LCD的发展历史、基础知识这里不做详细介绍了,有兴趣的读者可以参阅由电子工业出版社出版,郭强主编的《液晶显示应用技术》一书。在下一章中将对本设计中所用的T6963C点阵式图像显示模块做一般性介绍。第2章有关T6963C的一般介绍液晶显示器按其功能可分为笔段式和点矩阵式两种。后者又可以分成字符点阵式和图形点阵式,图形点阵式液晶显示器不仅可显示数字、字符等内容,还能显示汉字和任意图形。在中规模图形式液晶显示模块中,内置T6963C控制器的液晶显示模块是目前较为常用的一种。T6963C是点阵式液晶图形显示器,可以图形方式、字符方式、图形和字符合成方式显示,以及实现字符方式下的特征方式显示,还可以像CAD一样进行屏拷贝操作。本设计由于需要显示西文、汉字还有图形,所以采用的就是T6963C是点阵式液晶图形显示器。2.1T6963C的特点T6963C是点阵式液晶图形显示控制器,它能直接与80系列的8位微处理器接口;T6963C的字符字体由硬件设置,其字体有4种:5X8、6X8、7X8、8X8;T6963C的占空比可从1/16到1/128;T6963C可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;T6963C具有内部字符发生器CGROM,工有128个字符,T6963C可管理64K显示缓冲区及字符发生器CGRAM。并允许MPU随时访问显示缓冲区,甚至可以进行位操作。2.2T6963C的部分引脚说明及功能(1)D0—D7:T6963C与MPU接口的数据总线,三态;(2)/RD,/WR:读、写选通信号,低电平有效,输入信号;(3)/CE:T6963C的片选信号,低电平有效;(4)C/D:通道选择信号,1为指令通道,0为数据通道;(5)/RESET,/HALT:/RESET为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;/HALT具有/RESET的基本功能,还将种植内部时钟振荡器的工作;(6)DUAL,SDSEL:DUAL=1为单屏结构,DUAL=0为双屏结构;SDSEL=0为一位串行数据传输方式,SDSEL=1为二位并行数据传输方式;MD2,MD3:设置显示窗口长度,从而确定了列数据传输个数的最大值,起组合逻辑关系如下:MD31100MD21010每行字符数32406480(8)MDS,MD1,MD0:设置显示窗口宽度(行),从而确定T6963C的帧扫描信号的时序和显示驱动的占空比系数,当DUAL=1时,其组合功能如下:MDS00001111MD111001100MD010101010字符行246810121416总行数163248648096112128占空比1/161/321/481/641/801/961/1121/128当DUAL=0时,以上设置中的字符行和总行数增至原来的2倍,其它都不变,这种情况下的液晶屏结构为双屏结构。(9)FS1,FS2:显示字符的字体选择FS11100FS01010字体5X86X87X88X8(10)XI,XO:振荡时钟引脚;(11)AD0--AD15:输出信号,显示缓冲区16位地址总线;(12)D0—D7:三态,显示缓冲区8位数据总线;(13)R/W:输出,显示缓冲区读、写控制信号;(14)/CE:输出,显示缓冲区片选信号,低点平有效;(15)/CE0,/CE1:输出,DUAL=1时的存储器片选信号;(16)T1,T2,CH,CH2:用来检测T6963C工作使用情况,T1,T2作为测试信号输入端,CH,CH2作为输出端;(17)HOD,HSCP,LODLSCP(CE1),EDLP,CDATA,FR为T6963C驱动信号。2.3T6963C的指令系统2.3.1T6963CT6963C的初始化设置一般都由管脚设置完成,因此其指令系统将集中于显示功能的设置上。T6963C的指令可带一个或两个参数,或无参数。每条指令的执行都是先送入参数(如果有的话),再送入指令代码。每次操作之前都要进行状态字检测。T6963C的状态字如下所示:STA7STA6STA5STA4STA3STA2STA1STA0STA0:指令读写状态1:准备好0:忙STA1:数据读写状态1:准备好0:忙STA2:数据自动读状态1:准备好0:忙STA3:指令自动写状态1:准备好0:忙STA4:未用STA5:控制器运行检测可能性1:可能0:不能STA0:屏读/拷贝出错状态1:出错0:正确STA0:闪烁状态检测1:正常显示0:关显示由于状态位作用不一样,因此执行不同指令必须检测不同状态位。在MPU一次读、写指令和数据时,STA0和STA1要同时为1。当MPU读、写数组时,判断STA2或STA3状态。2.3.2T6963C的T6963C的指令如下表所示T6963C指令码表指令编码D1D2功能指针设置00100001X地址Y地址设置光标位置00100010数据00H设置CGRAM偏置地址00100100地址低8位地址高8位设置地址指针显示区域设置01000000地址低8位地址高8位设置文本起始地址01000001列00H设置文本区宽度01000010地址低8位地址高8位设置图形起始地址01000011列00H设置图形区宽度显示方式设置1000x000----逻辑“或”模式1000x001----逻辑“异或”模式1000x010----逻辑“与”模式1000x011----文本特征模式10000xxx----内部CGROM模式10001xxx----外部CGRAM模式显示开关设置10010000----显示关闭1001xx10----打开光标,黑色关闭1001xx11----打开光标,黑色显示100101xx----开文本方式,关图形方式100110xx----关文本方式,开图形方式100111xx----图形文本混合方式光标形状设置10100000----1条线10100001----2条线10100010----3条线10100011----4条线10100100----5条线10100101----6条线10100110----7条线10100111----8条线数据自动读写10110000----数据自动写设定10110001----数据自动读设定10110010----自动复位数据一次读写11000000----数据写,地址自加111000001----数据读,地址自加111000010----数据写,地址自减111000011----数据读,地址自减111000100----数据写,地址不变11000101----数据读,地址不变屏读11100000----屏拷贝11101000----位设置/复位11110xxx----位复位11111xxx----位设置1111x000----位0(最低位)1111x001----位11111x010----位21111x011----位31111x100----位41111x101----位51111x110----位61111x111----位72.3.3T6963C部分1、指针设置指令,格式如下:D1D200100N2N1N0D1,D2为第一和第二个参数,后一个字节为指令代码,根据N0,N1,N2的值,该指令有三种含义(N0,N1,N2不能有两个同时为1)D1D2指令代码功能水平位置(低七位有效)垂直位置(低五位有效)21H(N0=1)光标指针设置地址(低五位有效)00H22H(N1=1)CGRAM偏置地址设置低字节高字节24H(N2=1)地址指针设置光标指针设置:D1表示光标在实际液晶屏上离左上角的横向距离(字符数),D2表示纵向距离(字符行).CGRAM偏置地址寄存器设置:设置了CGRAM在显示64KRAM内的高5位地址CGRAM的实际地址为:A15A14A偏置地址:C4C3C字符代码:D7D6D5D4D3D2D1D0行地址指针:+)R2R1R0实际地址:V15V14V13V12V11V10V9V8V7V6V5V4V3V2V1V0地址指针设置:设置将要进行操作的显示缓冲区(RAM)的一个单元地址。D1,D2为该单元地址的低位和高位地址。2、显示区域设置,指令格式为:D1D2010000N1N0根据N1,N0的不同取值,该指令有四种指令功能形式:N1N0D1D2指令代码功能00低字节高字节40H文本区首址01字节数00H41H文本区宽度(字节数/行)10低字节高字节42H图形区首址11字节数00H43H图形区宽度(字节数/行)文本区和图形区首地址对应屏上左上角字符位或字节位,修改该地址可以产生卷动效果。D1,D2分别为该地址的低位和高位字节。文本区宽度(字节数/行)设置和图形区宽度(字节数/行)设置用于调整一行显示所占显示RAM的字节数,从而确定显示屏与显示RAM单元的对应关系。T6963C控制器对显示存储器的分区管理是由其控制部中的若干个参数寄存器的内容所控制的。一组是显示区的16位"起始地址"寄存器SAD,它确定了该显示区的首地址,这个地址对应着显示屏左上角(home)的显示位。一个是"显示字节数/行"寄存器C/R,它决定了在一行扫描时控制器要向驱动系统传输多少字节的数据。当这几个寄存器的内容确定下来,显示区各单元的地址与显示屏上显示像素的一一对应关系就确定下来,如下表所示:像素坐标0~7列8~15列16~23列…

(C/R-1)*8~(C/R-1)*8+7列0行SADSAD+1SAD+2

…SAD+C/R-11行SAD+C/R

SAD+C/R+1SAD+C/R+2…SAD+2*C/R-12行SAD+2*C/RSAD+2*C/R+1SAD+2*C/R+2…SAD+3*C/R-1::::::n行SAD+(n-1)*C/RSAD+(n-1)*C/R+1SAD+(n-1)*C/R+2…SAD+n*C/R-1(注:若显示屏对应于文本显示区,则像素坐标的行数要乘以8。)当设置的显示区宽度超过了实际显示屏上显示所需的单元数,那么超出的部分不显示。使用软件设置的显示区域宽度仅是T6963C作为计算每行显示数据传输的起始单元地址的参数,实际传输的字节数已于硬件引脚设置完成。3、显示方式设置,指令格式为:无参数1000N3N2N1N0N3:字符发生器选择位。N3=1为外部字符发生器有效,此时内部字符发生器被屏蔽,字符代码全部提供给外部字符发生器使用,字符代码为00H~0FFH。N3=0为CGROM即内部字符发生器有效,由于CGROM字符代码为00H~7FH。因此选用80H~0FFH字符代码时,将自动选择CGRAM。N2~N0:合成显示方式控制位,其组合功能如下表:N2N1N0合成方式000逻辑“或”合成001逻辑“异或”合成011逻辑“与”合成100文本属性当设置文本方式和图形方式均打开时,上述合成显示方式设置才有效。其中的文本属性方式是指将图形区改为文本属性区。该区大小与文本区相同,每个字节作为对应文本区的每个字符显示的属性,包括字符显示与不显示、字符闪烁及字符的“负向”显示。通过这种方式,T6963C可以控制每个字符的文本属性。4、显示状态设置,指令格式如下:无参数1001N3N2N1N0N0:1/0,光标闪烁启用/禁止N1:1/0,光标显示启用/禁止N2:1/0,文本显示启用/禁止N3:1/0,图形显示启用/禁止本设计中只用了图形显示方式。5、光标形状选择,指令格式如下:无参数10100N2N1N0光标形状为8点(列)*N行,N值为0~7H,由N2,N1,N0设定。6、数据自动读、写方式设置:无参数101100N1N0该指令执行后,MPU可以连续地读、写显示缓冲区RAM的数据,每读、写一次,地址指针自动增1。自动读、写结束时,必须写如自动结束命令以使T6963C推出自动读、写状态,开始接受其他指令。N1,N0组合功能如下:N1N0指令代码功能00B0H自动写设置01B1H自动读设置11/0B2H/B3H自动读、写结束第3章系统硬件设计3.1内置T6963C控制器的液晶显示模块的硬件特性本设计用的就是内置T6963C控制器的图形点阵式液晶显示控制器。该液晶显示模块由液晶显示控制器T6963C及其周边电路、行驱动器T6A40组、列驱动器T6A39组、液晶驱动偏压电路、显示存储器以及液晶屏组成。T6963C的指令可带一个、两个参数,或无参数,则每条指令执行时指令必须检测不同状态位。T6963C广泛应用于内置控制器的液晶显示模块。T6963C的最大特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数,驱动传输的字节书/行及字体选择等均由引脚电平设置,这样T6963C的初始化在上电是就已经基本设置完成,软件操作的主要精力就可以全部用于显示画面的设计上了。在内置T6963C的液晶显示模块上已经实现了T6963C与行、列驱动器及显示缓冲区RAM的接口,同时也已用硬件设置了数据传输方式、显示窗口长度、宽度等。T6963C是图形点阵式液晶显示控制器,能直接与80系列的8位微处理器接口。字符字体可由硬件或软件设置,字体有4种:5×8、6×8、7×8、8×8。内置T6963C的单屏点阵图形液晶显示模块结构如图一所示:图1(内置T6963C的单屏点阵图形液晶显示模块结构)此模块的初始化设置一般由管脚设置完成,所以初始化时,由软件编写的指令就集中在显示功能的设置上。T6963C的指令可带一个、两个参数,或无参数。若指令中含有参数,则每条指令执行时均须先送入参数,再送入指令代码。由于状态位作用不一样,因此执行不同指令必须检测不同状态位。3.2T6963C与单片机的接口电路本设计的接口电路中,CPU采用的是8031芯片,液晶显示模块是T6963C点阵式模块。本文中的液晶模块是240×128点阵。本设计中T6963C模块与8031之间的数据传送可以通过串口方式,也可以通过并口方式来实现。T6963C模块与MPU8031的并口方式下的接口图见下图(图2)。其中:图2(T6963C与8031的接口图)D0~D7是T6963C与MPU接口的数据总线,它与8031的P1.0~P1.7相连,用来传送数据。(本设计中T6963C控制器的液晶显示模块与计算机的接口采用的是间接控制方式,所以LCD模块和8031的P1口相连,读写线和P3口相连。如果采用直接控制方式的话LCD模块的数据总线应跟8031的P0口相连,读写线和8031的读写线相连。间接控制方式是MPU通过并行接口间接实现对液晶显示模块的控制。)/RD和/WR是T6963C的读、写选通信号,它们分别连接8031的读和写信号。/CE是T6963C的片选信号。(由于并行接口只用于液晶显示模块,所以/CE信号直接接地。)VO是T6963C需要的负电压。PCB板图见下图(图3):图3(T6963C与8031的接线图的PCB板)第4章系统软件设计4.1设计思路由实现功能可以看出,本设计中需要用到西文显示、汉字显示、绘图等子程序。首先,要实现西文/汉字的显示,需要三个子程序:创建字模,写入字模,显示西文或汉字。T6963C实现西文/汉字的显示有三种方式:文本显示,图形显示和文本属性显示。由于绘图只能使用图形显示,因此在本设计中采用图形显示方法来实现西文/汉字的显示。其次,要实现绘图,需要由绘点子程序实现。绘图功能则是通过连续使用绘点子程序实现的。最后,还需要用到初始化子程序、清屏子程序。同时状态字的检测和指令的写入、数据的自动写、数据的一次写等子程序也是必不可少的。由于每进行一次操作都需要检测状态字,所以可以把状态字检测程序做成通用程序方便调用。初始化程序和清屏幕程序主要完成T6963C的初始化和屏幕清除功能。西文/汉字的显示首先需要创建字模,然后将字模写入T6963C中,最后再在屏幕上显示出来。4.2实现功能随着显示技术发展的日新月异,液晶显示器因其功耗低、重量轻而成为便携式应用中的主流显示技术。本设计将实现的主要功能如下:1)先用绘图法在屏幕上划定一块显示区域。2)在该显示区域中将显示以下汉字或西文:第一行:显示“液晶图像输入及显示”(24X21宋体)第二行:显示“成都电子机械高等专科学校”(16X16宋体)第三行:显示“0422417”(16X21宋体)第四行:显示“曾军”(24X21宋体)3)改变字库的内容,显示其它汉字或西文。显示结果如下图(图4)所示: 液晶图像输入及显示成都电子机械高等专科学校0422417曾军设图4(外部矩形为液晶显示屏幕,内部矩形为绘图法做出的显示区域)4.3系统程序4.3.1入口CDEQUP3.2;通道选择信号入口WREQUP3.3;写操作信号RDEQUP3.4;读操作信号DAT1EQU30H;第一参数单元设置堆栈地址DAT2EQU31H;第二参数/数据单元设置堆栈地址COMEQU32H;指令代码单元O_XEQU33H;X坐标初始化O_YEQU34H;Y坐标初始化CODEQU35H;字符代码COUNTEQU36H;计数器清屏ORG0000H清屏AJMPMAINORG0030H西文/汉字显示MAIN:MOVSP,#60H;设置堆栈地址指针西文/汉字显示ORLP3,#1CHLCALLINT;初始化子程序绘图LCALLCLEAR;清屏子程序绘图LJMPDCGRAM1;显示子程序1LJMPDCGRAM2;显示子程序2结束LJMPDCGRAM3;显示子程序3结束LJMPDRAW;绘图子程序SJMP$主程序流程图4.3.2R_ST:MOVP1,#0FFH;读状态字子程序SETBCD;CD=1STA0=1CLRRDSTA0=1MOVA,P1;读操作否SETBRD;/RD=1RETSTA1=1STA1=1否ST01:LCALLR_ST;判状态字STA1,STA0子程序JNBACC.0,ST01JNBACC.1,ST01判断状态字STA0、STA1流程图RETST3:LCALLR_ST;判状态字STA3子程序STA3=1JNBACC.3,ST3STA3=1RET否数据写操作数据写操作判断状态字STA3流程图4.3.3双参数入口双参数入口判S0、S1状态判S0、S1状态单参数入口单参数入口参数D1写入数据通道参数D1写入数据通道判S0、S1状态判S0、S1状态无参数入口无参数入口参数D2写入数据通道参数D2写入数据通道判S0、S1状态判S0、S1状态指令代码写入指令通道指令代码写入指令通道返回返回指令写入流程图PR1:LCALLST01;双字节参数指令写入入口MOVA,DAT1;取第一参数单元数据LCALLPR13;写入参数PR11:LCALLST01;单字节参数指令写入入口MOVA,DAT2;取第二参数单元数据LCALLPR13;写入参数PR12:LCALLST01;无参数指令写入入口MOVA,COM;取指令代码单元数据LJMPPR14;写入指令代码PR13:CLRCD;CD=0/数据写入入口PR14:MOVP1,A;设置数据CLRWR;WR=0SETBWR;WR=1RET4.3.4入口入口入口入口显示地址指针设置显示地址指针设置显示地址指针设置 显示地址指针设置判S0、S1状态判S0、S1状态判S0、S1状态判S0、S1状态写入数据自动写指令代码写入数据一次写指令代码写入数据自动写指令代码写入数据一次写指令代码判状态位S3数据写操作判状态位S3数据写操作返回返回数据写操作数据写操作数据一次写流程图结束?结束?写入退出自动写方式指令写入退出自动写方式指令 返回返回数据自动写流程图4.3.5入口入口设置图形显示首地址设置图形显示首地址设置图形显示区域宽度设置图形显示区域宽度设置光标形状设置光标形状显示开关设置显示开关设置字符发生器设置字符发生器设置返回返回初始化设置流程图INT:MOVDAT1,#00H;设置图形显示区域首地址MOVDAT2,#00HMOVCOM,#42HLCALLPR1MOVDAT1,#20H;设置图形显示区域宽度MOVDAT2,#00H;即一行显示所占字节数MOVCOM,#43HLCALLPR1MOVCOM,#0A7H;光标形状设置LCALLPR12MOVCOM,#98H;显示开关设置(开图形关文本)LCALLPR12MOVCOM,#88H;字符发生器设置LCALLPR12RET入口入口设置显示RAM首地址设置显示RAM首地址设置8K循环量设置8K循环量设置自动写设置自动写判断自动写状态位判断自动写状态位写入数据0写入数据0循环结束?循环结束?否自动写结束自动写结束返回返回清屏子程序流程图CLEAR:MOVDAT1,#00H;设置显示RAM首地址MOVDAT2,#00HMOVCOM,#24HLCALLPR1MOVR3,#0FFH;设置循环量MOVR4,#20HMOVCOM,#0B0H;设置自动写LCALLPR12CLEAR1:LCALLST3;判断状态位MOVA,#00H;置数据"0"LCALLPR13;写入数据DJNZR3,CLEAR1;循环DJNZR4,CLEAR1MOVCOM,#0B2H;自动写结束LCALLPR12RET计算图形显示RAM地址入口计算图形显示RAM地址入口计算字库字符首地址计算字库字符首地址设置循环量设置循环量设置显示RAM地址设置显示RAM地址取左部字模数据取左部字模数据设置偏置地址设置偏置地址取右部字模数据取右部字模数据字符库指针加一字符库指针加一设置一次写设置一次写写入左部数据写入左部数据写入右部数据写入右部数据显示RAM地址修正显示RAM地址修正循环结束?循环结束?否返回返回西文/中文写入(图形方式)流程图西文/汉字写入子程序1WRI_CC1:MOVA,O_Y;计算图形显示RAM地址MOVB,#20H;图形显示区域宽度为20HMULABADDA,O_XMOVO_X,AMOVA,BADDCA,#00H;图形显示区首址为0000HMOVO_Y,AMOVDPTR,#CGTAB1;计算汉字库字符首地址MOVA,CODMOVB,#20H;单个字模的字节数为32MULABADDA,DPLMOVDPL,AMOVA,BADDCA,DPHMOVDPH,APUSHDPH;存字库地址指针PUSHDPLMOVCOUNT,#10H;计数器设置为16次WRI_CC11:MOVDAT1,O_X;设置显示RAM地址MOVDAT2,O_YMOVCOM,#24HLCALLPR1POPDPL;取字库地址指针POPDPHCLRAMOVCA,@A+DPTR;取左部字模数据MOVDAT2,A;设置数据MOVA,#10H;偏置地址为16MOVCA,@A+DPTR;取右部字模数据MOVDAT1,A;暂存数据INCDPTR;字库地址指针加一PUSHDPH;存字库地址指针PUSHDPLMOVCOM,#0C0H;设置一次写数据指令代码LCALLPR11;写入数据MOVDAT2,DAT1;设置右部数据LCALLPR11;写入数据MOVA,#20H;显示RAM地址修正ADDA,O_XMOVO_X,ACLRAADDCA,O_YMOVO_Y,ADJNZCOUNT,WRI_CC11;计数器循环POPACC;修正栈指针POPACCRET;西文/汉字写入子程序2WRI_CC2:MOVA,O_Y;计算图形显示RAM地址MOVB,#20H;图形显示区域宽度为20HMULABADDA,O_XMOVO_X,AMOVA,BADDCA,#00H;图形显示区首址为0000HMOVO_Y,AMOVDPTR,#CGTAB2;计算汉字库字符首地址MOVA,CODMOVB,#48H;单个字模的字节数为72MULABADDA,DPLMOVDPL,AMOVA,BADDCA,DPHMOVDPH,APUSHDPH;存字库地址指针PUSHDPLMOVCOUNT,#24H;计数器设置为36次WRI_CC21:MOVDAT1,O_X;设置显示RAM地址MOVDAT2,O_YMOVCOM,#24HLCALLPR1POPDPL;取字库地址指针POPDPHCLRAMOVCA,@A+DPTR;取左部字模数据MOVDAT2,A;设置数据MOVA,#24H;偏置地址为36MOVCA,@A+DPTR;取右部字模数据MOVDAT1,A;暂存数据INCDPTR;字库地址指针加一PUSHDPH;存字库地址指针PUSHDPLMOVCOM,#0C0H;设置一次写数据指令代码LCALLPR11;写入数据MOVDAT2,DAT1;设置右部数据LCALLPR11;写入数据MOVA,#20H;显示RAM地址修正ADDA,O_XMOVO_X,ACLRAADDCA,O_YMOVO_Y,ADJNZCOUNT,WRI_CC21;计数器循环POPACC;修正栈指针POPACCRET;西文/汉字写入子程序3WRI_CC3:MOVA,O_Y;计算图形显示RAM地址MOVB,#20H;图形显示区域宽度为20HMULABADDA,O_XMOVO_X,AMOVA,BADDCA,#00H;图形显示区首址为0000HMOVO_Y,AMOVDPTR,#CGTAB3;计算汉字库字符首地址MOVA,CODMOVB,#30H;单个字模字节数为48MULABADDA,DPLMOVDPL,AMOVA,BADDCA,DPHMOVDPH,APUSHDPH;存字库地址指针PUSHDPLMOVCOUNT,#18H;计数器设置为24次WRI_CC31:MOVDAT1,O_X;设置显示RAM地址MOVDAT2,O_YMOVCOM,#24HLCALLPR1POPDPL;取字库地址指针POPDPHCLRAMOVCA,@A+DPTR;取左部字模数据MOVDAT2,A;设置数据MOVA,#18H;偏置地址为24MOVCA,@A+DPTR;取右部字模数据MOVDAT1,A;暂存数据INCDPTR;字库地址指针加一PUSHDPH;存字库地址指针PUSHDPLMOVCOM,#0C0H;设置一次写数据指令代码LCALLPR11;写入数据MOVDAT2,DAT1;设置右部数据LCALLPR11;写入数据MOVA,#20H;显示RAM地址修正ADDA,O_XMOVO_X,ACLRAADDCA,O_YMOVO_Y,ADJNZCOUNT,WRI_CC31;计数器循环POPACC;修正栈指针POPACCRET;计算图形显示RAM地址入口计算图形显示RAM地址入口计算列地址计算列地址设置显示RAM地址设置显示RAM地址转换位数据转换位数据设置置点位设置置点位显示位操作指令标志显示位操作指令标志设置操作位设置操作位绘点绘点返回返回绘点子程序流程图绘点子程序W_DOT:MOVA,O_Y;计算图形显示RAM地址CLRACC.7MOVB,#20H;图形显示区宽度为20HMULABMOVDAT1,AMOVDAT2,BMOVA,O_X;计算列地址MOVB,#08HDIVAB;B为点数值ADDA,DAT1MOVDAT1,AMOVA,#00H;图形显示区首地址为0000HADDCA,DAT2MOVDAT2,AMOVCOM,#24H;设置显示RAM地址LCALLPR1MOVA,B;转换位数据CPLAANLA,#07HXCHA,O_Y;设置置/消点位SWAPAANLA,#08HORLA,#0F0H;设置位操作指令标志ORLA,O_Y;设置操作位MOVCOM,A;设置位操作指令LCALLPR12RET;设置置点坐标入口设置置点坐标入口设置循环量设置循环量设置置点标志位设置置点标志位调绘点子程序调绘点子程序置点地址加/减一置点地址加/减一循环结束?循环结束?否返回返回绘图子程序流程图(程序见附录1)入口入口设置字符代码设置字符代码设置显示位置设置显示位置调写入子程序调写入子程序返回返回西文/汉字显示程序流程图(程序见附录1)4.4总结本系统是以汇编语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。在取字模的时候对于连续几行字的取模老是不成功,后来我们先在画图板中把字排好版,然后用取模软件打开位图进行取模获得了成功。作为图形点阵式液晶显示控制器的T6963C能直接与80系列的8位微处理器接口。字符字体可由硬件或软件设置。在内置T6963C的液晶显示模块上已经实现了T6963C与行、列驱动器及显示缓冲区RAM的接口,同时也已用硬件设置了数据传输方式、显示窗口长度、宽度等。T6963C功能比较齐全,因此广泛应用于内置控制器的液晶显示模块。T6963C的最大特点是具有独特的硬件初始值设置功能,显示驱动所需的参数如占空比系数,驱动传输的字节书/行及字体选择等均由引脚电平设置,这样T6963C的初始化在上电时就已基本设置完成,软件操作的主要精力可以全部用于显示画面的设计上。由于自己在大二时没有学好单片机,以前对液晶显示方面的知识也了解不多,在这次设计开始我都有一种恐惧心里,总想着这个一点都不懂,怎么做啊……。最后在老师的讲解和鼓励下我慢慢看书,请教同学,一步一步才得到了今天的成果,真的觉得有太多的感谢和来之不易。我想,通过这次毕业设计,我是得到了真正的锻炼。第5章谢辞经过几个月的查资料、整理材料、编程设计、写作论文,今天终于可以顺利的完成论文了。本次毕业设计是在我们组同学的合作和罗乐老师的精心指导下完成的,基本达到了预期效果。在系统设计、构建和修改的整个设计过程中,我们遇到许多困难,并发现这当中许多问题在教学过程中是不可能遇到的。在解决问题的过程中,我们都经历了彷徨、无助甚至煎熬,最终我们凭借坚强的毅力坚持了下来,才取得了今天的成果。衷心感谢罗老师在这期间给予我们的无私帮助。感谢罗老师在百忙之中仍抽出时间和我们研究、讨论设计中所遇到的难点,直到我们找到解决问题的途径。另外,我还要感谢在大学期间所有传授我知识的老师,是你们的悉心教导使我有了良好的专业课知识,这也是论文得以完成的基础。我很幸运能跟夏露、尹乐同组。我们是一个团结合作的小组。在这几个月的中,我们经常在一起学习、共同解决问题、交流思想和知识。与其说是学习,我更感觉到我们是在一起工作。这让我对不久之后即将参加的工作无限向往,我想我更未来同事的合作也会像跟他们合作一样快乐的。在整个设计期间我还向其他一些同学请教了很多问题,衷心感谢他们给与我的无偿帮助。同学之间的感情是至真至纯的。感谢所有给我帮助的老师和同学,谢谢你们!通过此次的论文,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在论文的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在论文的写作过程中也学到了做任何事情所要有的态度和心态,首先做学问要一丝不苟,对于发展过程中出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就达退堂鼓,只要坚持下去就可以找到思路去解决问题的。参考文献:[1]北京精电蓬远显示技术有限公司。内藏T6963C液晶显示模块使用手册。第二版,北京:北京精电蓬远显示技术有限公司,1999[2]郭强,《液晶显示应用技术》。电子工业出版社,2000年3月[3]《单片微机原理与接口技术》/曾一江主编。北京:科学出版社,2006[4]《电路设计与制版》Protel99入门与提高/高鹏,安涛,寇怀成编著。人民邮电出版社,2000年2月附录1:显示程序1DCGRAM1:MOVCOD,#00H;成MOVO_X,#03HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#01H;都MOVO_X,#05HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#02H;电MOVO_X,#07HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#03H;子MOVO_X,#09HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#04H;机MOVO_X,#0BHMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#05H;械MOVO_X,#0DHMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#06H;高MOVO_X,#0FHMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#07H;等MOVO_X,#11HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#08H;专MOVO_X,#13HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#09H;科MOVO_X,#15HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#0AH;学MOVO_X,#17HMOVO_Y,#18HLCALLWRI_CC1MOVCOD,#0BH;校MOVO_X,#19HMOVO_Y,#18HLCALLWRI_CC1SJMP$;显示程序2DCGRAM2:MOVCOD,#00H;液MOVO_X,#01HMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#01H;晶MOVO_X,#04HMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#02H;图MOVO_X,#07HMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#03H;像MOVO_X,#0AHMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#04H;输MOVO_X,#0DHMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#05H;入MOVO_X,#10HMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#06H;及MOVO_X,#13HMOVO_Y,#02HLCALLWRI_CC2MOVCOD,#07H;显MOVO_X,#16HMOVO_Y,#02H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论