




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计(论文)基于单片机的LCD显示系统软件设计SOFTWAREDESIGNOFLCDDISPLAYSYSTEMBASEDONSINGLECHIPMICROCOMPUTER总计毕业设计(论文)27页表格6个插图17幅学院系)电子与电气工程系专业电子信息工程基于单片机的LCD显示系统软件设计摘要本文撰写的是基于单片机的LCD显示系统的软件设计,主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的软件设计。本设计以单片机控制LCD液晶显示系统为主线,重点对其中四大模块串口模块,看门狗模块,键盘模块和液晶显示模块的软件设计分别做了详细介绍。采用2片74LS244将单片机串口扩展为4路串口,并由键盘控制分别实现RS485、TTLUART、RS232、USB串口与单片机之间的通信,采用SMC1602A实现字符的液晶显示,并由看门狗模块对单片机运行状态进行实时监测。软件设计重点阐述看如何通过编程实现上述各模块的功能。其次阐述了部分程序的流程图和实现过程。同时并附以系统结构框图加以说明。关键词单片机;串口通信;LCD显示;看门狗SOFTWAREDESIGNOFLCDDISPLAYSYSTEMBASEDONSINGLECHIPMICROCOMPUTERABSTRACTTHISARTICLEISWRITTENREVIVIFICATIONOFLCDDISPLAYSYSTEMSOFTWAREDESIGN,THELEADINGIDEAISASOFT,HARDWARE,HARDWAREBASEDONAFUNCTIONALMODULESOFSOFTWAREDESIGNTHISARTICLEONAMONOLITHICINTEGRATEDCIRCUITSDESIGNLCDDISPLAYSYSTEMASACONTROLLER,THEEMPHASISONTHEONEINCHARGEOFTHEFOURMODULESSERIALPORT,THEGUARDDOG,THEKEYBOARDANDLCDMODULESSHOWSTHATSOFTWAREDESIGNAREMADEADETAILEDPRESENTATIONTHETWOPIECESOFSTRINGMOUTH74LS244MONOLITHICINTEGRATEDCIRCUITSWILLBEEXTENDEDTOFOURROADSERIALPORT,ANDTHEKEYBOARDCONTROL,ANDACHIEVINGRS485,TTLUART,RS232,USBANDTHESERIESMONOLITHICINTEGRATEDCIRCUITS,THEUSEOFCOMMUNICATIONSMC1602ATHELCDDISPLAY,ANDTHEWATCHDOGMODULETOMONOLITHICINTEGRATEDCIRCUITSOPERATIONOFSTATEFORREALTIMEMONITORINGSOFTWAREWASDESIGNEDTOFOCUSONHOWTOIMPLEMENTTHESEMODULESPROGRAMFEATURESTHESECONDPARTOFTHEAPPLICATIONPROCESSESANDIMPLEMENTATIONKEYWORDSSCMSERIALCOMMUNICATIONLCDDISPLAYWATCHDOG目录1引言111研究现状及发展前景112设计内容12各模块软件设计221系统整体流程图222串口通信软件设计2221系统串口通信协议3222串口通信软件设计423液晶显示模块软件设计5231液晶显示原理5232液晶显示流程图6233SMC1602A软件设计724看门狗模块软件设计9241看门狗9242X5045看门狗软件设计1025键盘模块的软件设计143系统实现1531系统开发所需的软件资源1532联机调试与仿真16结束语21参考文献22附录23致谢271引言LCD液晶显示技术作为人机交互的主流方式,正广泛应用于家电、手机、个人电脑等显示终端。随着电子技术的发展,单片机技术的应用产品日益增多,研究以单片机作为主控制器的LCD液晶显示器控制系统意义重大。展望未来,急速的响应速度将会成为个性化LCD的发展趋势,越来越多的单片机正如雨后春笋般涌现。越来越多的LCD向着成本低廉核心系统成本低廉,相对于用户的经济水平来说比较容易接受的方向发展。其次要求操作简单,友好的人机界面通过串口与PC机相连接,用户在使用时只要按动键盘上的数字就可以显示了。同时要求结构轻巧,系统的硬件设计上充分考虑了便携性,整个系统的主要就是单片机,LCD和键盘,而它们的所占空间小,重量轻等特点。11研究现状及发展前景当今是一个信息化的时代,信息的重要性是不言而喻的,获取手段显得尤其重要。人们所接受的信息有70来自于人的视觉,无论用何种方式获取的信息最终需要有某种显示方式来表示。在当代显示技术中,主流的有LED显示屏及LCD液晶显示,而在这些显示技术中,尤其以液晶显示器LCDLIQUIDCRYSTALDISPLAY为代表的平板显示器发展最快、应用最广。LCD是典型的光电器件,它以材料科学为基础,综合利用了精密机械、光电及计算机技术,并正在微机械、微光学、纤维光学等前沿领域研究基础上,向高集成化、智能化方向发展1。如果说目前主流显示器市场上是纯平显示器的天下的话,那么液晶(LCD)显示技术就是当之无愧的明日之花了。液晶显示器的原理是利用液晶的物理特性,通电时导通,排列变得有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过。通过和不通过的组合就可以在屏幕上显示出图像来。由于LCD本身的工作原理,也就决定了液晶显示具有厚度薄、适于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛地应用在便携式电脑、数码摄像机、PDA移动通信工具等众多领域。与传统的显示技术相比,液晶(LCD)显示器具有很多重要的优越性。首先LCD显示器不使用电子枪轰击方式来成像,因此它完全没有辐射危害,对人体安全;同时LCD显示器不闪烁、颜色失真近乎与零;而且LCD显示器工作电压低、功耗小、重量轻、体积小等等优点。12设计内容该题目设计主要包括LCD显示接口技术和单片机接口技术。LCD作为显示界面在嵌入式系统获得了广泛的应用,不同的系统需要的接口、数据显示格式和通信距离不同,本设计通过单片机实现与LCD接口,实现TTL串口、RS232、RS485和USB接口等不同接口和通信距离,通过单片机编程实现不同的数据格式,从而简化LCD的应用。控制系统的CPU采用单片机AT89C51,用来处理液晶显示模块显示的内容及键盘与液晶模块的通信和处理扩展四路串口与主机的通信,同时保证与键盘的通信,获取键盘的指令,通过内部译码传送给液晶显示模块;也为单片机扩展了EEPROM,用来扩展单片机的闪存空间;看门狗用来保证单片机能够正常工作,防止系统进入死循环。图1LCD液晶显示系统框图本设计整个系统框图如图1所示,软件部分设计分为四个模块串口模块转换软件设计,液晶模块显示软件设计,键盘模块软件设计,看门狗模块和EEPROM软件设计。串行端口通过74LS244转换为4路串口分别实现与RS232,TTLUART,RS485和USB的连接通信。液晶显示模块采用SMC1602A芯片,键盘采用23的矩阵式键盘接口,看门狗和EEPROM采用X5045芯片。用PROTEUS仿真软件及KEIL开发环境。2各模块软件设计21系统整体流程图系统整体流程图如图2所示。串口要实现与单片机的通信首先要串口初始化,用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,利用内部复位电路进行初始化。本设计单片机串口由74LS244扩展为4路串口,通过键盘扫描打开要进行通信的串口,液晶屏经过初始化、选屏后显示发送端传输的字符,在显示过程中还要不断的喂狗。22串口通信软件设计221系统串口通信协议本设计要实现的是字符显示,采用SMC1602A,其显示容量为162字符,即每行最多可显示16个字符,总共两行。为了使主机和从机之间能够正确通信,减少传输错误必须制定双方共同遵守的协议2。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。发送端发送一串字符(最多32个字节),如发送“NANYANGINSTITUTEOFTECHNOLOGY”,第一行显示前16个字符“NANYANGINSTITUTE”,第二行显示其余字符“OFTECHNOLOGY”空格不显示。除了32字节显示,还必须有1字节以检查通信是否有误,还有1字节反馈,当通信无误时反馈01H,当通信有误时反馈02H。开始串口初始化1602选屏1602初始化1602清屏看门狗初始化取数据扫描键盘键值在14键值6设置显示起始行打开显示开关单片机向1602写命令单片机向1602写数据结束显示数据程序体喂狗程序程序定义强制复位YNYN有键按下1全行输出1,全列读入列状态均为0置为有键按下散转程序段逐行处理程序段软件延时跳出YNYN图2系统整体流程图222串口通信软件设计单片机串行端口通过74244转换为4路串口分别实现与RS232,TTLUART,RS485和USB的连接通信。串口运行流程图如图3所示。开始串口初始化键盘扫描键值S1键值S2键值S3RS485串口与单片机通信TTLUART串口与单片机通信RS232串口与单片机通信键值S4USB串口与单片机通信YNYNYNY等待N图3串口运行流程图74LS244是专门设计的8缓冲器及线驱动器,通过内部缓冲器,扩展为四路串口,改变了单片机串口接口少的限制。74LS244由2组、每组四路输入、输出构成。每组有一个控制端G,由控制端的高或低电平决定该组数据被接通还是断开3。要扩展四路串口,因此需要两片74LS244芯片。将两片74LS244的四个使能键分别接P04P07,再通过键盘的控制来选择使用哪路通道。S1S4分别控制RS485,TTLUART,RS232和USB串口的开闭,当键盘扫描有键按下时判断键值,并打开相应的串口,使其与单片机进行通信,并把信息传给液晶屏进行显示。串口通信的基本原理串行端口的本质功能是作为CPU和串行设备间的编码转换器。当数据从CPU经过串行端口发送出去时,字节数据转换为串行的位。在接收数据时,串行的位被转换为字节数据4。MCS51内部含有一个可编程全双工串行通信接口,具有UART的全部功能。该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。MCS51串行口的发送和接收时钟可由两种方式产生,一种是由主机频率FOSC经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。1发送和接收串行口的发送过程由指令MOVSBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。CPU响应中断,用一条指令(MOVA,SBUF)把接收缓冲器SBUF(收)的内容读入累加器。TI和RI是由硬件置位的,但需要用软件复位。2相关的寄存器SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。两个缓冲器只用一个字节地址99H,可通过指令对SBUF的读写来区别是对接收缓冲器的操作还是对发送缓冲器的操作。串行口对外有两条独立的收发信号线RXD(P30)、TXD(P31),因此可以同时发送、接收数据,实现全双工。SCON寄存器用来控制串行口的工作方式和状态,可按位寻址,其字节地址为98H。PCON中的SMOD用来控制波特率加倍。TMOD设置定时器1的工作方式,用来产生波特率。如果用到中断,则还需要用到中断相关的寄存器IE,IP等5。23液晶显示模块软件设计231液晶显示原理LCD是基于液晶电光效应的显示器件。包括段显示方式的字符段显示器件;矩阵显示方式的字符、图形、图像显示器件;矩阵显示方式的大屏幕液晶投影电视液晶屏等。液晶显示器的工作原理是利用液晶的物理特性,在通电时导通,使液晶排列变得有秩序,使光线容易通过;不通电时,排列则变得混乱,阻止光线通过6。液晶显示器各种图形的显示原理1线段的显示点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)FFH时,则屏幕的右下角显示一条短亮线;当(000H)FFH,(001H)00H,(002H)00H,(00EH)00H,(00FH)00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。2字符的显示用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3汉字的显示汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。232液晶显示流程图图4液晶显示流程图显示部分由SMC1602A液晶显示的,其中单片机的P0口作为显示数据输出口,而P30P32口是控制液晶显示命令输入输出口。数据位是8位输出。RS数据/命令选择端H/L,R/W读写选择端H/L,E使能信号端。液晶显示流程图如图4所示。源程序见附录。233SMC1602A软件设计本设计液晶显示模块采用SMC1602A芯片,SMC1602A可以采用两种方式与单片机连接,一种是采用8位数据总线D0D7和RS、R/W、EN三个控制端口另一种是只用D4D7作为四位数据分两次传送。本实验将使用并采用八位数据方式来控制SMC1602A显示。SMC1602A引脚功能如表1所示。表1LCD1602引脚功能符号名称功能1VSS接地0V2VDD电路电源5V/103VEE液晶驱动电压保证VDDVEE455V电压差4RS寄存器选择信号H数据寄存器L指令寄存器5R/W读/写信号H读L写6E片选信号下降沿触发,锁存数据714DB0DB7数据线数据传输15BLA背光源正极16BLK背光源负极SMC1602A软件设计主要包括1主要功能40通道点阵LCD驱动;可选择当作行驱动或列驱动;输入/输出信号输出,能产生202个LCD驱动波形;输入,接受控制器送出的串行数据和控制信号,偏压V1V6;通过单片机控制将所测的频率信号读数显示出来。2SMC1602A的显示与控制命令SMC1602A液晶模块内部的字符发生内存CGROM已经存储了160个不同的点阵字符图形,这些字符有阿拉伯数字、英文字母的大小写、和常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B41H,显示时模块把地址41中的点阵字符图形显示出来,我们就能看到字母“A”。显示位与DDRAM地址的对应关系如表2所示。SMC1602A液晶模块内部的控制器共有11条控制指令,指令如下,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的说明1为高电平,0为低电平。表2显示位与DDRAM地址的对应关系显示位序号1234540第一行000102030427DDRAM地址(HEX)第二行404142434467指令2光标复位,光标返回到地址00H。指令3光标和显示模式设置I/D光标移动方向,高电平右移,低电平左移,S屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4显示开关控制。D控制整体显示的开与关,高电平表示开显示,低电平表示关显示;C控制光标的开与关,高电平表示有游标,低电平表示无游标;B控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5光标或显示移位元S/C高电平时移动显示的文字,低电平时移动光标。指令6功能设置命令DL高电平时为4位总线,低电平时为8位总线N低电平时为单行显示,高电平时双行显示F低电平时显示57的点阵字符,高电平时显示510的点阵字符。指令7字符发生器RAM地址设置。指令8DDRAM地址设置。指令9读忙信号和光标地址BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10写数据。指令11读数据。液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符。表3液晶显示涉及的功能函数及说明函数定义功能描述L1602_READSTATUS读1602的状态L1602_WRITECHARDATA1,CHARDATA2,CHARBUSYDATA1写指令或写数据DATA2指令或数据内容BUSY是否检测忙位L1602_READDATA从当前地址读取一个字符L1602_READCHARADDR从指定地址读取一个字符L1602_DISPLAYONECHARCHARX,CHARY,CHARONGCHAR在液晶屏的X行Y列写一个字符L1602_DISPLAYSTRINGCHARX,CHARY,CHARSTRINGDATA从液晶屏的X行Y列开始写入一列字符设计中采用的SMC1602A液晶,首先通过以下几条语句设置液晶寄存器配置。L1602_WRITECOM,0X38/设置16X2显示,5X7点阵,8位数据接口L1602_WRITECOM,0X06/读或写一个字符后地址指针加一,且光标加一L1602_WRITECOM,0X0C/开显示,不显示光标,光标不闪烁L1602_WRITECOM,0X01/清屏其中关于液晶显示及相关函数如表3所示7。寄存器选择功能如表4所示。表4寄存器选择功能RSR/W操作00指令寄存器(IR)写入01忙标志和地址计数器读出10数据寄存器(DR)写入11数据寄存器读出3初始化方法用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,利用内部复位电路进行初始化。下面指令是在初始化过程中执行的。清屏(DISPLAYCLEAR);功能设置(FUNCTIONSET);DL18BIT接口数据;N01行显示;F057DOT字形;显示开/关控制(DISPLAYON/OFFCONTROL);D0显示关;C0光标关;B0消隐关;输入方式设置(ENTRYMODESET);I/D1(增量);S0无移位。24看门狗模块软件设计241看门狗在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的芯片,俗称“看门狗”。看门狗电路的应用,使单片机可以在无人状态下实现连续工作,其工作原理是看门狗芯片和单片机的一个I/O引脚相连,该I/O引脚通过程序控制它定时地往看门狗的这个引脚上送入高电平或低电平,这一程序语句是分散地放在单片机其他控制语句中间的,一旦单片机由于干扰造成程序跑飞后而陷入某一程序段进入死循环状态时,写看门狗引脚的程序便不能被执行,这个时候,看门狗电路就会由于得不到单片机送来的信号,便在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位。看门狗程序流程图如图5所示。程序体初始化喂狗程序程序正常强制复位YN图5看门狗程序流程图基本原理看门狗,是一个定时器电路,一般有一个输入叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,,每隔一端时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT定时超过,就会给出一个复位信号到MCU,是MCU复位,防止MCU死机。看门狗的作用就是防止程序发生死循环,或者说程序跑飞。工作原理在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。看门狗分为硬件看门狗和软件看门狗,本设计采用硬件看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。242X5045看门狗软件设计本课题看门狗模块设计采用X5045芯片。X5045是美国XICOR公司的生产的标准化8脚集成电路,它将EEPROM、看门狗定时器、电压监控三种功能组合在单个芯片之内,大大简化了硬件设计,提高了系统的可靠性,减少了对印制电路板的空间要求,降低了成本和系统功耗,是一种理想的单片机外围芯片8。X5045是一种集上电复位、看门狗、电压监控和串行EEPROM四种功能于一身的可编程控制电路,它有助于简化应用系统的设计,减少电路板的占用面积,提高可靠性。1上电复位X5045加电时会激活其内部的上电复位电路,从而使RESET引脚有效。该信号可避免系统微处理器在电压不足或振荡器未稳定的情况下工作。当VCC超过器件的VTRIP限值时,电路将在200MS典型延时后释放RESET以允许系统开始工作。2低电压检测工作时,X5045对VCC电平进行监测,若电源电压跌落至预置的最小VTRIP以下时,系统即确认RESET,从而避免微处理器在电源失效或断开的情况下工作。当RESET被确认后,该RESET信号将一直保持有效,直到电压跌到低于1V。而当VCC返回并超过VTRIP达200MS时,系统重新开始工作。3看门狗定时器看门狗定时器的作用是通过监视WDI输入来监视微处理器是否激活。由于微处理器必须周期性的触发CS/WDI引脚以避免RESET信号激活而使电路复位,所以CS/WDI引脚必须在看门狗超时时间终止之前受到由高至低信号的触发。看门狗模块软件设计X5045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。看门狗定时器的预置时间是通过X5045的状态寄存器的相应位来设定的。X5045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPR0M的工作设置有关。WD10,WD00,预置时间为14SWD10,WD01,预置时间为06SWD1L,WD00,预置时间为02S看门狗电路的定时时间长短可由具体应用程序的循环周期决定,通常比系统正常工作时最大循环周期的时间略长即可。编程时,要加一条喂狗指令,使看门狗的定时时间永远达不到预置时间,系统就不会复位而正常工作。当系统跑飞,用软件陷阱等别的方法无法捕捉回程序时,则看门狗定时时间很快增长到预置时间,迫使系统复位。看门狗喂狗程序流程图如图6所示,要随时等待接收命令,要是所得的命令与接收的地址码相同时,进行数据采集,在进入喂狗子程序,恢复系统后直接返回,继续等待接收命令到状态。如果在采集中程序跑飞,则单片机自动复位。在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激活看门狗。其源程序段见附录。图6看门狗喂狗流程图表5X5045指令表指令名称指令格式完成的操作WREN00000110写允许WRDI00000100写禁止RSDRWRSR0000010100000001读状态寄存器写状态寄存器看门狗和块锁定READ0000A8011从选定的开始地址单元中读数据WRITE0000A8011响选定的开始地址单元写入数据116字节芯片控制的指令并非组织成一个字节8BIT这些命令中有两条只要直接将指令代码写入芯片即可,有两条读指令用于初始化输出数据,其它的指令还需要一个8位的地址以及相关的数据所有指令如表5所示,它们都是通过SPI串行总线来写入器件的,所有指令、地址、数据都是MSB先写。1写允许在器件进行写操作之前,首先必须设置写操作指令WREN指令允许进行写操作,而WRDI将禁止写操作,在器件复位后将自动禁止写操作,而一旦写入一个字节、一页或写入状态寄存器后也将自动处于写禁止状态,在WP引脚接地后也会使器件处理写禁止状态。在写了WRENWRDIRSDR和WRSR指令后不需要在后跟上一个地址或一个数据状态寄存器。状态寄存器由4个非断电不会丢失的控制位和2个断电即消失的状态位组成控制位用于设置看门狗定时器的溢出时间和存储器块保护。状态寄存器的格式如表6所示。表6状态寄存器的格式7654321000WD1WD0BL1BL0WELWIPWIP是一个易失性的只读位,在片内编程时它指出器件忙这一位可以用RDSR指令读出当读出的这一位是1,则表示内部正在进行写操作;如果是0表示内部没有进行写操作。WEL是一个易失性位,当该位为1时表示芯片处于写允许状态,而该位是0则代表芯片处于写禁止状态。WEL也是一位只读位指令WREN将使WEL变为1而指令WRDS则将这位变为0。要读状态寄存器,首先将CS接地以选择该器件,然后送一个8位的RDSR指令,然后状态寄存器的内容就通过SD0线进行输出,当然必须要有相应的时钟加到SCK线上,读状态寄存器的时序,状态寄存器可以在任何时候被读出,即使是在EEPROM内部的写周期内也可以读出写状态寄存器。读、写状态寄存器时序图分别如图7、8所示。图7读状态寄存器内容图8写状态寄存器的内容要将数据写入状态寄存器,首先必须用WREN命令将WEL置为1,首先将CS接低电平以选中该器件,然后写入WREN指令,接着将CS拉至高电平,然后再次将CS接低电平,接着写入WRSR指令,跟着写入8位数据,这个8位数据就是相应的寄存器中的内容,写入结束后必须将CS拉至高电平,如果CS没有在WREN和WRSR期间变高则WRSR指令将被忽略。2读存储器内容要读存储器的内容首先将CS拉低以选中该器件,然后将8位的读指令送到器件中去,跟着送8位的地址,读指令的位3用于选择存储器的上半区或下半区,在读操作码和地址发送完毕后所选中的地址单元的数据通过SD0线送出,在读完这一字节后如果继续提供时钟脉冲则这一地址单元的下一个单元的数据将会被顺序读出,地址将会自动地增加到,当到达最高地址之后地址将会回绕到000H单元,读周期在CS变为高电平后中止。3写存储器内容要写存储器内容,WEL位必须通过WREN指令置为1。先将CS拉低将WREN指令送入器件,然后将CS拉高,然后再次将CS拉低,随后写入WREN和WRITE指令之间变为高电平则WRITE指令被忽略9。25键盘模块的软件设计键盘程序流程图如图9所示。本设计采用的是23的矩阵式键盘接口,矩阵式键盘的工作方式是先用列线发送扫描字,然后读取行线的状态,查看是否有按键按下10。键盘部分提供一种扫描的工作方式,行扫描的工作过程如下1判断键盘中是否有键按下;2扫描,判断是哪一个键按下,若有键按下,调用延时子程序去抖动之,再次读入键值,进一步确认是否有键按下,若无键按下,则返回重新扫描,若有键按下,读取行号;3读取按键的键值码将按键的位置转换为键值(键的顺序)。图9键盘程序流程图依据系统硬件和软件的需求,定义S1S4为串口选择键即S1为TTLUART通道选择键;S2为RS232通道选择键;S3为RS485通道选择键;S4为USB通道选择键;S5为确认键;S6为清除键。系统默认的通道为TTLUART通道,通过软件的编程来实现通道的选择。S5定义为选择确认键,确认通道和确认显示等功能;S6定义为清除显示内容和清除选择功能。以上功能皆通过编程可实现。开始有键按下键盘扫描子程序确实有键按下延时去抖动求键值并存放延时等待键松开返回NN图10键盘扫描子程序流程图键盘扫描子程序流程图如图10所示。通过键盘扫描来确定哪个键按下并控制打开相应的串口实现串口与单片机的通信。3系统实现31系统开发所需的软件资源系统开发所需的软件资源主要有1PROTEUS电路仿真软件。2单片机系统调试仿真器KEIL。PROTEUS软件是来自英国LABCENTERELECTRONICS公司的EDA工具软件,PROTEUS软件有近20年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,PROTEUS能够很容易的为用户建立了完备的电子设计开发环境。PROTEUS产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。不愧为一款非常优秀的单片机仿真软件11。PROTEUS组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。PROTEUS产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。PROTEUS可以很方便地与KEILC51集成开发环境连接,程序编译好之后,立即可以进行软、硬件结合的系统仿真。PROTEUS与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象12。KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KEILC51软件提供丰富的库函数和功能强大的集成开发调试工具,全WINDOWS界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KEILC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势13。32联机调试与仿真当电路板经过电子工艺加工完成之后并排除基本的硬件故障以后,便进入了系统软件调试阶段,调试大体分为以下几步1对各个模块的程序进行编译、调试,逐个排除错误。2整体调试,结合程序流程图与系统资源的分配,修改程序直到实现系统总体功能。在单片机部分设计中,程序设计是在KEILUVISION3软件中编写并且编译的,KEIL软件可以完成编辑、编译、连接、调试、仿真等整个开发流程,其中也用到了PROTEUS7电路分析实物仿真系统软件,用PROTEUS可以解决KEIL不能对硬件进行仿真的难题,在KEIL软件中编写一段C或者汇编程序之后如果要仿真一下,可以先编译并生成相应的HEX文件,在PROTEUS软件里面找到需要的器件比如AT89C51、LCD、BUTTON然后按照硬件原理图连接之后,将HEX文件载入单片机就可以进行仿真,看具体功能的硬件实现了。由于初期没有实物用PROTEUS就可以仿真,比如在设计中51单片机的显示部分子程序的测试就是这样的,其他一些子模块也是的14。USB转串口仿真图如下图11、12、13、14所示。图11USB转串口仿真1图12USB转串口仿真2图13USB转串口仿真(3)图14USB转串口仿真4使用USB转串口的电路模块与单片机通信过程如下首先安装驱动程序,如图11所示。然后运行串口通信,如图12所示。接着如图13所示打开串口,实现串口与单片机的通信,此仿真验证USB串口是正常的。安装好驱动程序后如图14。通过以上四步,验证了USB串口是正确的,可以正常实现与单片机的通信。在KEILVISION3编程软件中,进行C语言程序的编写和调试,本设计采用模块化编程和调试,为了便于在PROTEUSISIS中进行仿真验证,在KEILVISION3工具栏中点OPTIONSFORTARGET弹出如图15所示的对话框。图15KEILVISION3调试图在图17的选项卡中,点击OUTPUT选项,在CREATEHEX前打勾,点确定,保存并编辑程序,然后生成“HEX”十六进制文件。会出现图16的对话框。图16KEILVISION3调试图图17SMC1602A仿真图经过多次的调试,并在硬件电路的基础上,在PROTEUSISIS74中找出对应的元件,连接好电路,再把已编写好的程序加载到单片机中去,仿真结果如图17所示本设计实现了字符显示,液晶屏总共显示两行,每行最多可显示16个字符,本设计实现了“NANYANGINSTITUTEOFTECHNOLOGY”的显示,“NANYANGINSTITUTE”16个字符显示在第一行,“OFTECHNOLOGY”显示在第2行。结束语本设计主要论述基于单片机的LCD显示系统的软件设计部分,在硬件的基础上进行各模块的程序设计实现系统的功能。本系统是以单片机的汇编语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。系统软件设计分为四个模块,分别是串口模块转换软件设计,液晶模块显示软件设计,键盘模块软件设计,看门狗模块和EEPROM软件设计。1串行端口通过74244转换为4路串口分别实现与RS232,TTLUART,RS485和USB的连接通信。2液晶模块采用1602芯片,通过编程实现字符和数据的显示。3选用X5045芯片把看门狗和存贮功能集成在一个芯片上,节省了很大的空间,大大的简化了系统设计。本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,重点对本中四大模块单片机,看门狗,键盘模块和液晶显示模块分别做了详细介绍。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明。本系统是以单片机的汇编语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。其次阐述了部分程序的流程图和实现过程。本文撰写的主导思想是软、硬件相结合,以硬件为基础,来进行各功能模块的编写。通过正确地应用单片机编程,解决显示与控制等领域实际问题;通过本课题,熟悉单片机应用系统开发研制的过程,软件设计的工作方法和程序的编写及调试,通过软件程序编写实现课题要求的功能,通过基本技能训练,例如组建系统、编程、调试、绘图、仿真等,理论联系实际,提高自己的动手能力。参考文献1贡雪梅日历电子钟的设计J西安航空技术高等专科学校学报,20042李朝青单片机原理与接口技术M北京北京航天大学,20013万福君单片机微机原理系统设计与应用M北京中国科学技术大学出版社,20054杨刚,周群电子系统设计与实践M北京电子工业出版社,20045李军等编著51系列单片机高级实例开发指南M北京北京航空航天大学出版社,20046THOMASLFLOYDELECTRONICDEVICESJIEEETRANSACTIONSONAUTOMATICCONTROL,19997马忠梅,马岩,张凯等单片机的C语言应用程序设计M北京北京航空航天大学出版社,20038许兴存,曾琪琳微型计算机接口技术M北京电子工业出版社,20039李广弟,朱月秀,王秀山单片机基础M北京北京航空航天大学出版社,200110王建校,杨建国等51系列单片机及程序设计M北京科学出版社,200211杨忠煌,黄博俊,李文昌单芯片8051实务与应用M北京中国水利水电出版社,200112何立民单片机高级教程M北京北京航空航天出版社,200013周立功等单片机基础实验指导书M广州广州周立功单片机发展有限公司,200314MATTOS,PHILIPGINTEGRATEDGPSANDDEADRECKONINGFORLOWCOSTVEHICLENAVIGATIONANDTRACKINGJIEEETRANSACTIONSONAUTOMATICCONTROL,1995附录1看门狗程序在C语言中要增加一个声明语句。在AT89X51H声明文件中增加一行SFRWDTRST0XA6MAINWDTRST0X1EWDTRST0XE1/初始化看门狗。WHILE1WDTRST0X1EWDTRST0XE1/喂狗指令2液晶显示程序INCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEL1602_DATAP0/数据接口DEFINECOM0DEFINEDAT1SBITL1602_EP35/定义接口SBITL1602_RWP36SBITL1602_RSP37/延时函数/VOIDDELAY5MSVOID/延时5MSUINTTEMPCYC555WHILETEMPCYC/1602读状态函数函数原型UCHARL1602_READDATAVOID函数功能1602读状态输入参数无输出参数1602返回的状态调用模块/UCHARL1602_READSTATUSVOIDL1602_DATA0XFFL1602_RS0L1602_RW1L1602_E0L1602_E0/延时L1602_E1DELAY5MSWHILEL1602_DATA/检测忙信号DB71为忙;反之,为空闲RETURNL1602_DATA/1602写函数函数原型VOIDL1602_WRITEUCHARDATA1,UCHARDATA2,CHARBUSY函数功能1602写指令或数据输入参数要写入的数据输出参数无调用模块L1602_READSTATUS/VOIDL1602_WRITEUCHARDATA1,UCHARDATA2,UCHARBUSY/DATA1为写数据还是写指令,DATA2为指令或数据内容IFBUSYL1602_READSTATUS/检测忙L1602_DATADATA2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 宫腔镜监测管理制度
- 家族群祖坟管理制度
- 应急及安全管理制度
- 录用与离职管理制度
- 影楼里员工管理制度
- 微课志愿者管理制度
- 心理科浴室管理制度
- 快递员仓库管理制度
- 怀柔区禁钓管理制度
- 总工办日常管理制度
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- (高清版)DG∕TJ 08-67-2015 园林绿化草坪建植和养护技术规程
- 《足外伤的护理》课件
- 动物学海滨实习知到智慧树期末考试答案题库2025年鲁东大学
- 泵站沉井施工方案
- 职业技术学院2024级药膳与食疗专业人才培养方案
- 2025-2030中国微球行业市场现状供需分析及投资评估规划分析研究报告
- 2025至2030年中国矿山设备配件行业发展研究报告
- 2025年湖南省中考数学模拟试卷(一)(原卷版+解析版)
- 浙江省宁波市鄞州区2024年数学小升初试卷(含答案)
- 广西地区历年中考作文题与审题指导(2002-2024)
评论
0/150
提交评论