毕业设计(论文)-LED汉字显示控制系统的设计.doc_第1页
毕业设计(论文)-LED汉字显示控制系统的设计.doc_第2页
毕业设计(论文)-LED汉字显示控制系统的设计.doc_第3页
毕业设计(论文)-LED汉字显示控制系统的设计.doc_第4页
毕业设计(论文)-LED汉字显示控制系统的设计.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

万 博 科 技 职 业 学 院毕业设计(论文)报告系 别 专 业 年 级 学 制 学 号 姓 名 二一一年五月14题目LED汉字显示控制系统的设计主要内容本论文设计了一种基于PC机(上位机)与STC89C52RC单片机(下位机)双机控制LCD的汉字显示系统。上位机程序可以编辑显示信息并保存到数据库中,也可以通过添加,修改,删除,保存的方式实现对数据库中的信息进行管理。上位机程序从数据库中调出所需要显示的内容,利用VC定时器定时将各条信息通过串行通信的方式发送给下位机。此时下位机一个字节一个字节地接收从上位机发送过来的字符串并存储到RAM中,通过LCD驱动程序在LCD上显示该字符串(包括汉字)。本设计中的串行通信利用了Microsoft Visual C+的MSComm控件,数据库程序设计采用了ADO访问操作数据库技术。导师评语成 绩导 师目录摘要1引言21.开发工具及基本原理介绍21.1 硬件开发工具.21.1.1 STC89C52RC单片机开发板.2 1.1.1.1 STC89C52RC芯片简介.3 1.1.2 MS12864A-2 LCD显示模块.31.2 软件开发工具31.2.1 Keil Uvision2 编译调试软件.31.2.2 STC 单片机ISP 下载编程软件.41.2.3 Visual C+6.0 开发软件.41.2.4 SQL Server2000 数据库.42.LCD汉字显示控制系统的设计.52.1 系统硬件设计.52.2 系统软件设计.62.2.1 下机位LCD驱动程序软件.72.2.2 下机位接受上机位数据库程序设计.82.2.3 上机位数据库程序设计.92.2.4 上机位发送数据到下机位程序设计.103.结论.13参考文献.14摘要本论文设计了一种基于PC机(上位机)与STC89C52RC单片机(下位机)双机控制LCD的汉字显示系统。上位机程序可以编辑显示信息并保存到数据库中,也可以通过添加,修改,删除,保存的方式实现对数据库中的信息进行管理。上位机程序从数据库中调出所需要显示的内容,利用VC定时器定时将各条信息通过串行通信的方式发送给下位机。此时下位机一个字节一个字节地接收从上位机发送过来的字符串并存储到RAM中,通过LCD驱动程序在LCD上显示该字符串(包括汉字)。本设计中的串行通信利用了Microsoft Visual C+的MSComm控件,数据库程序设计采用了ADO访问操作数据库技术。关键词:LCD MS12864A-2汉字显示;串行通信;STC89C52RC单片机;SQL Server2000; VC+6.0;引 言近年来,平板显示技术迅猛发展,STNLCD主要应用于模块用屏,普通的电话机,游戏机,传真机,汽车显示设备,电子表和电子词典,医疗保健,健美,工业仪器仪表等行业。在电子产品设计中,人机交互显示界面是必不可少的工作,目前一般使用的液晶显示器均为七段笔划式,只能显示数字和少量字符,功能往往受到很大局限,对于较为复杂的字符或图形则无能为力。而STNLCD智能型内藏汉字库显示模块则是一种低功耗,低损耗,低价格的显示器件,它不但可以显示各种各样的Unicode字符,汉字和图形,同时具有可编程能力,且与单片机接口方便。基于以上优点,STNLCD显示模块得到了广泛应用。本课题设计的是LCD汉字显示系统,其所需完成的目标是在LCD上动态显示汉字或字符。在本次课题设计中,我设计了一个LCD下位机驱动程序,该驱动程序能够静态的显示我设定的汉字或字符信息。同时,我还设计了一个PC上位机程序,该程序能够通过添加,删除,修改,保存等方式对数据库中的信息进行管理。同时,PC上位机和STC89系列单片机之间通过串行通信的方式将上位机数据库中的信息发送到下位机的RAM中存储起来,并由下位机驱动程序在LCD显示屏中显示出来。由于我上位机中设置了显示消息定时循环显示方式,因此可以将需要显示的信息定时循环的在LCD上显示出来。1、开发工具及基本原理介绍1.1 硬件开发工具1.1.1 STC89C52RC单片机开发板51-3开发板,主要元件有电源开关,复位按钮,8位LED发光二极管,4位共阳一体化高亮数码管,ISP下载用插座,ZIF编程插座,芯片管脚引出座,实验编程晶振,22行列键盘和6个独立按键,集成电路AT24Cxx和AT93C46,蜂鸣器,LCD1602插座,USB插座,RS232插座。2.1.1.1 STC89C52RC芯片简介 STC89C52RC工作电压为5.5V3.4V(5V单片机);工作频率范围040MHz;用户程序空间8K;片上集成512字节RAM;32个通用I/0口,复位后P1/P2/P3/P4是准双向口/弱上拉,P0口是开漏输出,作为总线扩展用时,不用加上拉电阻,作为I/0口用时,需加上拉电阻;EEPROM 2K可扩展;看门狗;共3个16位定时器/计数器,其中定时器0还可以当成2个8位定时器使用;4路外部中断,下降沿中断或低电平触发中断;一个通用异步串行口UART;ISP在系统可编程无需专用编程器/仿真器。1.1.2 MS12864A-2 LCD显示模块MS12864A-2 液晶显示模块是深圳美视实业发展有限公司研发生产的汉字图形点阵液晶显示模块,如图1.2所示。可显示汉字及图形,内置8192个汉字(1616点阵),128个字符(816点阵),及64256点阵显示RAM(GDRAM)。 图1.2 MS12864A-2液晶显示模块1.2 软件开发工具1.2.1 Keil uVision2编译调试软件Keil uVision2软件是51系列兼容单片机C语言软件开发系统,它集编辑,编译,仿真于一体,支持汇编和C语言的程序设计。使用接近于传统的C语言的语法来开发,与汇编相比,C语言在功能上,结构上,可读性,可维护性上有明显的优势,因而易学易用,而且大大提高了工作效率和项目开发周期。1.2.2 STC单片机ISP下载编程软件STC单片机ISP下载编程软件专用于STC89系列单片机下载烧写,在使用时MCU Type选择STC89C52RC类型,与我的单片机芯片类型匹配。COM口选择COM1,这个COM口如何选择,读者可以在我的电脑上右键点击“管理”查看“设备管理器”的端口,如果通讯端口为COM1,则选择COM1,如果为COM2,则选择COM2。然后将最大下载波特率设置成115200b/s即可。2.2.3 Visual C+6.0开发软件Microsoft Visual C+6.0软件用来开发上位机程序,可新建一个基于对话框的MFC AppWizard(exe)程序,作者命名为PC51_Comm。然后在项目中编写上位机数据库程序,上位机与下位机串行通信程序。2.2.4 SQL Server2000数据库SQL Server2000数据库可建立一个名为PC51_Comm数据库,同时可在数据库中建立需要的用户列表。SQL Server2000数据库如图1.8所示。 图1.8 SQL Server2000 PC51_Comm数据库2、LCD汉字显示控制系统的设计2.1系统硬件设计STC89C52RC芯片与MS12864A-2 LCD显示模块的连接图如下图2.1所示。在实际操作中,由于STC89C52RC芯片管脚对应的芯片管脚引出座的VCC引脚悬空,所以利用开发板自带的LCD1602标准接口的VCC引脚来代替,为了方便,也将VSS引脚用LCD1602标准接口的VSS引脚来代替。因此在接线的时候,只要将LCD显示模块的VSS和VDD引脚接到开发板上的LCD1602标准接口对应的VSS和VCC引脚上即可。将P0口作为指令和数据输入/输出接口连接到LCD显示模块的D0D7引脚上。RS引脚连接P2_7引脚,R/W引脚连接P2_6引脚,E引脚连接P2_5引脚。LCD_K和LCD_A背光源负极和正极作为可选项连接到芯片电源地引脚和电源引脚上。NC悬空。PSB,/RST,VR,V0四个引脚悬空。 图2.1 STC89C52RC与MS12864A-2连接图2.2系统软件设计2.2.1 下位机LCD驱动程序设计STN类型LCD显示模块文本显示RAM提供8个4行的汉字空间,当写入文本显示RAM时,可以分别显示CGROM、HCGROM与CGRAM的字型;ST7920A可以显示三种字型 ,分别是半宽的HCGROM字型、CGRAM字型及中文CGROM字型。三种字型的选择,由在DDRAM中写入的编码选择,各种字型详细编码如下:显示半宽字型 :将一位字节写入DDRAM中,范围为02H-7FH的编码。显示CGRAM字型:将两字节编码写入DDRAM中,总共有0000H,0002H,0004H,0006H四种编码显示中文字形:将两字节编码写入DDRAMK ,范围为A1A0H-F7FFH(GB码)或A140H-D75FH(BIG5码)的编码。LCD驱动程序核心代码的关键就是写数据和写指令,写数据和写指令的具体实现过程,那么LCD驱动程序还有一个至关重要的代码就是LCD的初始化工作,根据表2.2用户基本指令集LCD的初始化过程顺序为:下达功能设置指令;关显示屏指令;清除显示指令;光标移到开头原点地址归位指令;显示屏不移动,光标右移指令;开显示指令。LCD初始化流程图如图2.3所示。下达“显示屏不移动,光标右移”光标和显示移到控制指令0x06,检测忙碌标志开始等待20ms,vcc电源完全上升至5v下达功能设置指令0x30,不检测忙碌标志等待5ms,下达功能设置指令0x30,不检测忙碌标志等待5ms,下达功能设置指令0x30,不检测忙碌标志下达功能设置指令0x30,检测忙碌标志下达清屏指令0x01,检测忙碌标志下达关显示屏指令0x08,检测忙碌标志下达“光标移到开头原点”地址归位指令0x02,检测忙碌标志结束下达“开显示屏”显示状态开 /关指令0x0e,检测忙碌标志 结束图2.3 lcd 初始化流程图2.2.2 下位机接受上位机数据程序设计在串口初始化时,涉及到波特率的计算问题,在本设计中,我们利用定时计数器T1工作在模式2用作波特率发生器,SMOD0不倍增,串口方式1的波特率由定时器T1的溢出率与SMOD值同时决定:波特率BaudRate = (2SMOD*Fosc)/(32*12*(256-初值)即TH1和TL1初值为:256(2SMOD * Fosc)/(BaudRate*32*12)下位机串行通信程序设计过程: 下位机串行通信程序首先进行串行通信初始化(串行通信初始化工作包括设定波特率是否倍增,设定串行中断为优先级别,用哪个定时计数器哪个工作模式作为波特率发生器,定时器初值设置,串行口控制寄存器SCON设置以及启动定时计数器等,其中波特率的设定值为9600b/s,与上位机串行通信程序波特率设定值保持一致)之后,通过串行中断程序接受开始标志符(不断判断上位机是否重新开始发送一组新的字符串,如果是,则清空全局字符串变量strDisplay并一个字符一个字符的保存到strDisplay中,然后根据接受结束标志符)判断字符串接受结束,然后在LCD上显示新接受的字符串。如果判断上位机没有发送一组新的字符串,则下位机通过串行中断程序不断检测上位机有无新字符串发送。下位机串行通信程序设计流程图如图2.4所示。 图2.4 下位机串行通信程序流程图2.2.3 上位机数据库程序设计上位机数据库程序设计的目的就是能够将信息保存在数据库中,方便存储和读取,这样在每次设定显示信息的时候不用重复输入,只需要通过“添加”,“修改”,“删除”,“保存”按钮即可实现信息的管理。如果要显示指定的信息,只要将信息列表中的信息选定,点击“添加”按钮即可放入显示列表中进行显示,如果要取消某条信息的显示,则只需要点击“GetRecordCount();if(m_DisplayCount=0)MessageBox(显示列表没有内容可显示!);return;temp = m_DispList.GetItemText(m_TimerCount,2);SendData = ( + temp + );m_ctrlComm.SetOutput(COleVariant(SendData);m_TimerCount+;if(m_TimerCount = m_DisplayCount)m_TimerCount = 0;CDialog:OnTimer(nIDEvent);其中m_TimerCount为定时循环计数全局变量,而m_DisplayCount为显示信息栏信息总数全局变量。同时通过“显示”按钮控制显示信息的定时更新和定时时间的更新,代码如下:void CPC51_CommDlg:OnBTNDisplay() / TODO: Add your control notification handler code here/显示UpdateData(TRUE);/读取编辑框IDC_EDIT_Times/设置定时时间,秒级计时/m_intTimes为int型变量,值从IDC_EDIT_Times编辑框中获取SetTimer(1,1000*m_intTimes,NULL); 需要注意的是,在编写发送程序之前,还要对串口进行初始化操作。应用Visual C+开发串行通信程序通常使用如下方法:一是利用Windows API通信函数;二是利用Visual C+的标准通信函数_inp,_inpw,_outp,_outpw,_outpd等直接对串口进行操作;三是使用Microsoft Visual C+的通信控件(MSComm)。在这里,作者选用MSComm控件开发串口通信程序。(2)初始化程序如下:/打开串口和设置串口参数 BOOL CPC51_CommDlg:OnInitDialog()if(m_ctrlComm.GetPortOpen()/如果串口打开,先关闭串口m_ctrlComm.SetPortOpen(FALSE);m_ctrlComm.SetCommPort(1);/选择com1 if(!m_ctrlComm.GetPortOpen()m_ctrlComm.SetPortOpen(TRUE);/打开串口elseAfxMessageBox(打开串口失败!);/波特率9600b/s,无校验,8个数据位,1个停止位m_ctrlComm.SetSettings(9600,n,8,1);m_ctrlComm.SetInputMode(1);/1:表示以二进制方式检取数据 m_ctrlComm.SetRThreshol

温馨提示

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

评论

0/150

提交评论