您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 制造加工工艺 > 基于51系列单片机最小系统的液晶显示
《创新设计报告》基于51系列单片机最小系统的液晶显示学院:机电与自动化学院专业班级:电气自动化技术0802学生姓名:刘刚学生学号:20082822077指导教师:姚裕安同组设计者:吴勇(课程设计时间:2011年03月03日——2011年03月13日)华中科技大学武昌分校-1-目录1.设计题目…………………………………………………………………022.设计任务及要求……………………………………………………023.系统硬件电路设计…………………………………………………………023.1设计电路原理图…………………………………………………………023.2主要元器件清单…………………………………………………………033.3OMC12864-4(T6963c)的简介…………………………………………034.系统软件设计………………………………………………………………054.1程序流程图………………………………………………………………054.2子程序功能介绍…………………………………………………………064.3完整程序及其功能注释…………………………………………………065.系统调试故障分析…………………………………………………………126.调试结果与设计任务分析…………………………………………………137.课设收获与建议……………………………………………………………13参考文献………………………………………………………………………13-2-1.设计题目基于51单片机最小系统板实现“液晶显示汉字、数字、英文”2.设计任务及要求任务:最小系统板实现“液晶显示汉字、数字、英文”;要求:错误!未找到引用源。对液晶显示操作技能训练;学会运用Protell软件;错误!未找到引用源。绘制软件流程图、编写并调试程序、详细注释软件功能;错误!未找到引用源。对系统性能指标进行分析并提出改进方案;错误!未找到引用源。作品演示与讲解(硬件、软件、调试、改进、)3系统硬件电路设计(含文字介绍、电路原理图)3.1用Protell软件绘制电路原理图采用的是直接访问方式。如图(1)直接访问方式是把内置T6963C控制器的液晶显示模块作为存储器或I/O设备直接挂在计算机的总线上。模块的数据线接计算机的数据总线上,片选及寄存器选择信号线由算机的地址总线提供,读和写操作由计算机的读写操作信号控制。图(1)图(1)中的引脚说明OCM12864-4与STC89C52RC接口:P0.0-0.7==========D0-7GND==========/CEP3.7==========/RDVCC==========/RESETP3.6==========/WRGND==========FG-3-P2.0==========C/D3.2本设计所要用到的主要元器件:金鹏OMC12864-4液晶显示模块(主控芯片T6963C);JZ-M2单片机最小系统(采用STC89C52RC51系列单片机);3.3关于OMC12864-4(T6963c)的简介3.3.1管脚定义见下表(1):表(1)3.3.2关于主控芯片T6963C说明:结构特点:内藏T6963C的液晶显示模块上已经实现了T6963C与行、列驱动器及显示缓冲区RAM的接口,同时也已用硬件设置了液晶屏的结构(单双屏、数据传输方式、显示窗口长度、宽度等等。我们常用的液晶显示模块一般都是单屏结构,因此我们这里只讨论单屏结构的液晶显示模块。内藏T6963C的单屏结构点阵图形液晶显示模块的方框图如图(2):-4-图(2)►T6963C是点阵式液晶图形显示控制器它能直接与8位微处理器接口;►T6963C的字符字体可由硬件或软件设置,其字体有4种5X8、6X8、7X8、8X8;►T6963C的占空比可从1/16到1/128;►T6963C可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;►T6963C具有内部字符发生器CGROM,共有128个字符。T6963C可管理64K显示缓冲区及字符发生器CGRAM,并允许MPU随时访问显示缓冲区,甚至可以进行位操作。3.3.3主控芯片T6963C指令说明:如表(2)命令代码(bin)代码(hex)参数D1参数D2功能StatusS0-S7--读状态RegSeting0010000121HXAddressyAddress设光标指针0010001022H偏移量00H设偏移量寄存器0010010024H低位地址高位地址设地址指针SetControlWord0100000040H低位地址高位地址设文字区起始地址0100000141H字节数00H设文字区宽度0100001042H低位地址高位地址设图形区起始地址0100001143H字节数00H设图形区宽度Modeset1000*00080H/88HOR*=0内部字符发生器*=1外部字符发生器1000*00181H/89HXOR1000*01183H/8BHAND1000*10084H/8CH文字属性DisplayMolde1001000090H显示关1001xx1092H光标显示,闪烁关1001xx1193H光标显示,闪烁开100101xx94H文字开,图形关100110xx98H文字关,图形开-5-100111xx9BH文字开,图形开CursorPattern10100D2-0A0H-A8H光标高度DataAutoRead/write10110000B0H设置数据自动写10110001B1H设置数据自动读10110010B2H退出自动读写DataRead/write11000000C0H显示数据写数据,地址指针自加111000001C1H-读数据,地址指针自加111000010C2H显示数据写数据,地址指针自减111000011C3H--读数据,地址指针自减111000100C4H显示数据-写数据,地址指针不变11000101C5H--读数据,地址指针不变Screenpeek11100000E0H--屏幕读取Screencopy11101000E8H--屏幕复制BitSet/reset11110xxxx--BitClear11111xxxx--BitSet表(2)4.系统软件设计(含程序流程图,子程序功能介绍、程序功能注释)4.1程序流程图,如图(3)NY图(3)读状态字,闲吗?液晶模块初始化填屏(清屏)创建CGRAM-6-4.2子程序功能介绍LCD_Write_Data()写数据子LCD_Write_Command0()写无参数命令字LCD_Write_Command1()写单参数命令字LCD_Write_Command2()写双参数命令子voidLCD_T6963_Ini()液晶模块初始化工作voidLCD_Fill_All()LCD填充.对LCD的空间填入同一个数据LCD_Dis_Chi()在主函数中,只要调用这几个函数,就能实现显示的文字显示LCD_Dis_Str()能利用T9693C内部字符发生器CGROM,在液晶屏上显示西文数组LCD_Mak_Cgr()创建CGRAM,CGRAM中包含能用文本方式显示的自定义字符LCD_DIS_CHI()利用CGRAM自定字符,以文本方式形式输出4.3完整程序及其功能注释********************************************说明:本程序为T6963C的驱动功能:能对OMC12864-4液晶模块硬件进行定义;定义了对液晶模块最层的操作函数,如:,读状态字函数,读数据函数,写无参数命令字函数,写单参数命令字函数,字双参数命令字函数,写数据函数时间:2011/01/010修改时间:2011/01/12作者:HUSTWbwuyong***************************************************//*说明:本程序主要用来进行文本显示,实现的功能有:显示英文数组,中文数组,在主函数中可以直接调用的函数有:T6963C初始化程序,液晶屏清零程序显示英文数组,中文数组.实现了程序的封装.修改日间:2011/01/12T6963C命令的定义********************************************************************///指针设置指令#defineLCD_CUR_POS0X21//光标位置设置(只有设置到有效显示地址并打开显示才看到),双参数(D1水平位置,D2垂直位置)#defineLCD_CGR_POS0X22//CGRAM偏置地址设置(用来增加自己的符号),双参数(D1低5位有效,D2=00)#defineLCD_ADR_POS0x24//地址指针位置(设置读写操作打针)//显示区域设置指令#defineLCD_TXT_STP0X40//文本区首址(从此地址开始向屏幕左上角显示字符)写英文,写汉字写数字等-7-#defineLCD_TXT_WID0X41//文本区宽度(设置显示宽度,N/6式N/8,其中N为X轴的点数)#defineLCD_GRH_STP0X42//图型区首址(从此地址开始向屏幕左上角显示点,((有等进一步确认))为文本方式显示时,显示为文本显示特性#defineLCD_GRH_WID0X43//图形区宽度(设置显示宽度,N/6式N/8,其中N为X轴的点数)//显示方式设置指令,当CG(D3)为0启用CGROM#defineLCD_MOD_OR0X80//显示方式:逻辑或#defineLCD_MOD_XOR0X81//显示方式:逻辑异或#defineLCD_MOD_AND0x83//显示方式:逻辑与#defineLCD_MOD_TCH0x84//显示方式:文本//显示开关设置指令,(D0,D1,D2,D3)=1/0==========(光标闪烁,光标显示,文本显示图形显示)启用/禁用#defineLCD_DIS_SW0x90//显示开关设置//光标开头设置指令#defineLCD_CUR_SHP0xA0//光标型形状选择:0xA0-0xA7代表光标占的行数//自动读写设置指令#defineLCD_AUT_WR0xB0//自动写设置#defineLCD_AUT_RD0xB1//自动读设置#defineLCD_AUT_OVR0xB2//自动读写结束//数据一次读写设置指令#defineLCD_INC_WR0xC0//数据一次写,地址加1#defineLCD_INC_RD0xC1//数据一次读,地址加1#defineLCD_DEC_WR0xC2//数据一次写,地址减1#defineLCD_DEC_RD0xC3//数据一次读,地址减1#defineLCD_ZER_WR0xc4//数据一次写,地址不变#defineLCE_ZER_RD0xc5//数据一次读,地址不变//屏读设置指令#defineLCD_SCN_RD0xE0//屏读,屏读只能在图形显示区内;该指令是把屏上的内容取出来作为数据使用.//屏拷贝#defineLCD_SCN_CP0xE8//屏拷贝,该指令将屏上当前地址指针(图形)处开妈的一行合成显示内容拷贝到相对应的图形显示区的一级单元//位操作指令#defineLCD_BIT_OP0xFF//该指令可将显示缓冲区单无的某位清零或置位.D0-D1--定义D0-D7位;D3--1为置位,D3--0为复位unsignedcharxdataLCD_DAT_ADD_at_0x8000;//C/D-P2.0unsignedcharxdataLCD_COM_ADD_at_0x8100;//C/D-P2.0/***********************************************************************函数名称:LCD_Write_Data()-8-功能:写数据子程序,将数据输入T6963C入口参数:data想要写入的数据出口参数:无说明:在写命令之前,状态位
本文标题:基于51系列单片机最小系统的液晶显示
链接地址:https://www.777doc.com/doc-2568063 .html