1602液晶显示设计_第1页
1602液晶显示设计_第2页
1602液晶显示设计_第3页
1602液晶显示设计_第4页
1602液晶显示设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

摘要本次课程设计是以AT89C52为核心控制器,1602液晶为显示器设计的液晶显示电路。该电路可在1602液晶上显示ASCII码表里的各种字符,通过编程设定的显示方式。设计中采用了二种动态显示方式,第一种是整屏左移操作,先将待显示的内容写入1602RAM的后面几个存储单元,当内容写入完成后,写入指令,实现指针不动而屏幕动的效果。第二种是将内容一个个写到1602显示,这主要通过延时函数控制写入的两个字符间的时间间隔。1602液晶一次可以显示32个字符,通过编程可以实现不同的动态显示方式。关键词:AT89C52;1602;动态显示1Proteus仿真流程与Keil编译器简介1.1Proteus仿真流程(1)工作界面ProteusISIS的工作界面是一种标准的Windows界面,如图1-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。|DsSM康喝□_j团专1申1帝或w吸以电魁吕!JLJLI吸井器产IF^s邮/1匡国®■。八函UI四标港—具栏Eile里iwwMdt|DsSM康喝□_j团专1申1帝或w吸以电魁吕!JLJLI吸井器产IF^s邮/1匡国®■。八函UI四标港—具栏Eile里iwwMdtLiErmry[cok匚己血旦匚h宝urce口ebug任何1就」虫Ip|主荽单isiaUbTITLED-ISISPruTs、iuikdDEVICES绘图工具栏对象选择按祖图形编辑窗口Co|c~乡♦|*|1,|H.I0|Raolsh9et17、J|y+130C-2O0Dth图1.1proteus操作界面仿真进程控制按钮状态栏预览对象方位控制按钮|(2)基本操作图形编辑窗口在图形编辑窗口内完成电路原理图的编辑和绘制。为了方便作图坐标系统(CO-ORDINATESYSTEM)。ISIS中坐标系统的基本单位是10nm,主要是为了和ProteusARES保持一致。但坐标系统的识别(read-out)单位被限制在1th。坐标原点默认在图形编辑区的中间,图形的坐标值能够显示在屏幕的右下角的状态栏中。点状栅格(TheDotGrid)与捕捉到栅格(SnappingtoaGrid)编辑窗口内有点状的栅格,可以通过View菜单的Grid命令在打开和关闭间切换。点与点之间的间距由当前捕捉的设置决定。捕捉的尺度可以由View菜单的Snap命令设置,或者直接使用快捷键F4、F3、F2和CTRL+F1。预览窗口该窗口通常显示整个电路图的缩略图。在预览窗口上点击鼠标左键,将会有一个矩形蓝绿框标示出在编辑窗口的中显示的区域。其他情况下,预览窗口显示将要放置的对象的预览。这种PlacePreview特性在下列情况下被激活:当一个对象在选择器中被选中、当使用旋转或镜像按钮时、当为一个可以设定朝向的对象选择类型图标时(例如:Componenticon,DevicePinicon等等)、当放置对象或者执行其他非以上操作时,placepreview会自动消除、对象选择器(ObjectSelector)根据由图标决定的当前状态显示不同的内容。显示对象的类型包括:设备,终端,管脚,图形符号,标注和图形。在某些状态下,对象选择器有一个Pick切换按钮,点击该按钮可以弹出库元件选取窗体。通过该窗体可以选择元件并置入对象选择器,在今后绘图时使用。对象选择与放置通过对象选择按钮,从元件库中选择对象,并置入对象选择器窗口,供今后绘图时使用。显示对象的类型包括:设备,终端,管脚,图形符号,标注和图形。放置对象的步骤如下(Toplaceanobject:)根据对象的类别在工具箱选择相应模式的图标(modeicon)。根据对象的具体类型选择子模式图标(sub-modeicon)。如果对象类型是元件、端点、管脚、图形、符号或标记,从选择器里(selector)选择你想要的对象的名字。对于元件、端点、管脚和符号,可能首先需要从库中调出。如果对象是有方向的,将会在预览窗口显示出来,你可以通过预览对象方位按钮对对象进行调整。最后,指向编辑窗口并点击鼠标左键放置对象。1.2Keil软件简介KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。KeilC51开发系统基本知识KeilC51开发系统基本知识系统概述KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍KeilC51开发系统各部分功能和使用。KeilC51单片机软件开发系统的整体结构C51工具包的整体结构,uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2单片机模块功能简介AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。其主要功能特性有以下几点:(1)兼容MCS51指令系统(2)8K可反复擦写(大于100000次)FlashROM;(3)32个双向I/O口;(4)256x8bit内部RAM;(5)3个16位可编程定时/计数器中断;(6)时钟频率0-24MHz;(7)2个串行中断,可编程UART串行通道;(8)2个外部中断源,共8个中断源;(9)2个读写中断口线,3级加密位;(10)低功耗空闲和掉电模式,软件设置睡眠和唤醒功能;(11)有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC51相同,其主要用于会聚调整时的功能控制。其引脚分布如图2.1所示。P1.0vccPl.1P0.0P1.2PO.1P1.3PO.2P1.4PO.2P1.5P0.4P1.6P0.5P1.7PO.6KSTArPDPO.7P3.0MEA/VppP3.1.4xDALE/PKUjP3.2/INIDPSENP3.3/MJP2.7P3.4/TOP2.6P3.5/T]P2.5P2.4P2.3XTAL2P2.2XIALIP2.1WP2.0图2.1AT89C52单片机引脚图3设计方案与工作原理3.1LCM1602液晶简介LCM(LCDModule)即LCD显示模组,是指将液晶显示器件、连接件、控制与驱动等外围电路,PCB电路板,背光源,结构件等装配在一起的组件。LCM提供用户一个标准的LCD显示驱动接口,用户按照接口要求进行操作来控制LCD正确显示。LCM是一种相对更高集成度的LCD产品,对小尺寸LCD显示,LCM是一种省电的显示装置,LCM可以比较方便地与各种微控制器(比如单片机)连接,作为简易的人机接口。其中,MCS-51单片机作为LCM1602显示控制系统的核心部件。它由中央处理器(CPU)、存储器(ROM与RAM)、输入/输出单元(I/O)三大基本部分构成。单片机具有高性能、低价格;体积小,集成度高,可靠性和抗干扰能力强;较低工作电压(1.8〜5V),低功耗等优点。并且,只要在单片机的外围适当加一些必要的扩展电路及通道接口,就可以构成各种应用系统,如工业控制系统、数据采集系统、自动控制系统、自动测试系统、检测监视系统、智能仪表、功能模块等。因此单片机广泛应用于便携式智能产品与家电消费品,以及工业控制,国防装备等领域。3.2单片机最小系统单片机控制模块是整个设计方案的核心。AT59C51芯片作为该系统的控制部件,它控制了1602液晶显示的内容以及液晶动态显示方式。单片机最下系统由时钟电路和复位电路构成,这样就可以在接入其他器件,用单片机编程实现对外部器件的控制。单片机最小系统如图3.1所示。:汹厂.<TEXT>.C4-.|1X2...―—CRYSTAL•<TEXT>,U1:汹厂.<TEXT>.C4-.|1X2...―—CRYSTAL•<TEXT>,U1R1以TALIPQ.Q/ADQP0.1/AD1P0.2/AD2XTAL2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/ABP2.1/A3PSENP2.2XA10ALEP2.4XA12EAP2.5VA13P2.6/A14P2.7/A15P1.0H2P3.0/RKDP1.1H2EKPS.inXDP12P3.2/1NT0P13P3.3/1NT1P14P3.4/70P1.5P1.6P3.5/TLP3.6AA/RP17P37/RD1918~gS0C52_2L瑚27231口11—LL—LI_L±_L^——LL图3.1单片机最小系统3.3设计方案由上面介绍的1602液晶,参看1602液晶芯片资料可以对其写入内容和设定内容的显示位置以及显示方式。将1602液晶与单片机最小系统相连接就构成了本次设计方案。1602液晶与单片机的连接方式是1602液晶的数据端D0〜D7连接在单片机的P0口,1602液晶的数据命令选择端RD接在单片机的P2.6引脚,读写控制端R/Wj接在单片机的P2.5引脚,使能端EN接在单片机的P2.7脚。设计的电路图如图3.2所示。LCLrl-U.C1SL'=Tfc<T=;hXTALIPDU'ADDLCLrl-U.C1SL'=Tfc<T=;hXTALIPDU'ADDPD.1MD1PDZi'ADZXTA12PDa'ADlPn.+H'AD*PDS'ADSP.STPD.TWDTpzn-HZPZ.1l.liS叩mm口PQEMh.LEPZ.«'A1Z至P25'Ai3PS.S'AUPS.TWISF1UFP3ITRXDP1.1iHTZE:<P3.1.T:<[|P12P3Z'IMTnP1Jm・|NT1P1.+F北TOP15F35TT1PUGPi.siTiJp?P1.7P3.7i'Rir堂备-K-S.卫-5毒-#101112口1+藉17■:TE:-:rr=-图3.2设计方案原理图4软件编程4.11602流程图本次课程设计1602液晶显示的内容是“WELCOMETOWUHANLIGONG”,设定的动态显示方式是显示的内容在屏幕上从右向左移动,停留一段时间后闪烁两次消失,然后从左向右一次显示每个字符,停留一段时间后闪烁两次后消失。动态显示方式的字符间的时间间隔,不同显示方式的时间间隔主要通过延时程序来完成,设计的1602系统流程图如图4.1所示。图4.11602显示流程图

4.2软件程序#include<reg51.h>#include<intrins.h>typedefunsignedcharBYTE;typedefbitBOOL;typedefunsignedcharBYTE;typedefbitBOOL;〃用BOOL代替bit数据类型〃数据命令选择端〃读写选择端〃使能信号sbitLCD_RS=P2A6;sbitLCD_RW=P2A5;sbitLCD_EP=P2A7;BYTEcodedis1[]={"WELCOMETO"};//待显示的字符BYTEcodedis2[]={"WUHANLIGONG"};BYTEcodedis3[]={"BIGBIGWORLD"};BYTEcodedis4[]={"ILOVEWHUT"};BYTEcodedis5[]={"WANGDAOYUN"};BYTEcodedis6[]={"0120909310213"};voiddelay(intms){//延时子程序inti;〃数据命令选择端〃读写选择端〃使能信号for(i=0;i<250;i++){_nop_();_nop_();_nop_();_nop_();}}}//测试LCD忙碌状态〃写指令〃为产生下降沿做好准备〃延时5msBOOLlcd_bz(){BOOLresult;LCD_RS=0;LCD_RW=1;LCD_EP=1;_nop_();_nop_();_nop_();_nop_();result=(BOOL)(P0&0x80);//判断状态字最高位STA7,确保STA7为//测试LCD忙碌状态〃写指令〃为产生下降沿做好准备〃延时5msreturnresult;}〃返回结果,为1禁止读写,为0可以读写〃使能端高电平,为产生下降沿准备〃产生下降沿,将指令写入LCDvoidlcd_wcmd(BYTEcmd){while(lcd_bz());LCD_RS=0;LCD_RW=0;LCD_EP=0;_nop_();_nop_();P0=cmd;_nop_();_nop_();_nop_();_nop_();LCD_EP=1;_nop_();_nop_();_nop_();_nop_();LCD_EP=0;〃使能端高电平,为产生下降沿准备〃产生下降沿,将指令写入LCD//写入指令数据到LCD〃为1不能进行读写操作//写指令〃将指令写到P0口〃设定显示位置//LCD数据指针格式80H+地址〃写入字符显示数据到LCD//LCD忙检测,为1不能进行读写,//写数据〃数据送入P0口〃使能端拉高。为产生下降沿做准备为0可以读写voidlcd_pos(BYTEpos){lcd_wcmd(pos|0x80);}voidlcd_wdat(BYTEdat){while(lcd_bz());LCD_RS=1;LCD_RW=〃设定显示位置//LCD数据指针格式80H+地址〃写入字符显示数据到LCD//LCD忙检测,为1不能进行读写,//写数据〃数据送入P0口〃使能端拉高。为产生下降沿做准备为0可以读写LCD_EP=0;}〃使能端拉低,将数据写入LCDvoidlcd_init()//LCD初始化设定{一lcd_wcmd(0x38);//16*2显示,5*7点阵,8位数据delay(1);〃延时1mslcd_wcmd(0x0c);〃显示开,关光标delay(1);lcd_wcmd(0x06);〃移动光标,当读或写一个字符后地址指针加1且光标加1delay(1);lcd_wcmd(0x01);〃清除LCD的显示内容,地址指针数据指针清零delay(1);}voidflash(){delay(300);lcd_wcmd(0x08);delay(100);lcd_wcmd(0x0c);delay(100);lcd_wcmd(0x08);delay(100);lcd_wcmd(0x0c);delay(100);}//控制停留时间//关闭显示//延时//开显示//关闭显示//延时//开显示voidmain(){BYTEi,j;lcd_init();delay(10);//定义uisignedchar型变量i,j//初始化LCD〃延时10mswhile(1){lcd_wcmd(0x06);lcd_pos(0x10);i=0;while(dis1[i]!='\0'){lcd_wdat(dis1[i]);i++;//delay(30);}〃向右移动光标〃设置显示位置为第一行的第17个字符〃显示字符"WLCOMETO"〃控制两字之间显示速度lcd_pos(0x50);i=0;while(dis2[i]!='\0'){lcd_wdat(dis2[i]);i++;//delay(30);}for(j=0;j<16;j++){lcd_wcmd(0x18);delay(80);}flash();delay(800);〃设置显示位置为第二行第17个字符〃显示字符"WUHANLIGONG"〃控制两字之间显示速度〃向左移动16格//字符同时左移一格〃控制移动时间〃闪动二次〃控制停留时间lcd_wcmd(0x01);delay(1);lcd_wcmd(0x06);〃清除LCD的显示内容〃向左移动光标lcd_pos(0);i=0;while(dis3[i]!='\0'){lcd_wdat(dis3[i]);i++;delay(30);}lcd_pos(0x40);i=0;while(dis4[i]!='\0'){lcd_wdat(dis4[i]);i++;delay(30);}flash();delay(800);lcd_wcmd(0x01);delay(1);lcd_wcmd(0x06);〃设置显示位置为第一行的第1个字符〃显示字符"BIGBIGWORLD"//控制两字之间显示速度〃设置显示位置为第二行的第16个字符〃显示字符"ILOVEWHUT"//控制两字之间显示速度//控制停留时间〃清除LCD的显示内容//向左移动光标lcd_pos(0);i=0;〃设置显示位置为第一行的第1个字符//显示字符//显示字符"WANGDAOYUN"〃控制两字之间显示速度〃设置显示位置为第二行的第16个字符〃显示字符”0120909301213"//控制两字之间显示速度〃清除LCD的显示内容〃控制两屏转换时间while(dis5[i]!='\0'){lcd_wdat(dis5[i]);i++;delay(30);}lcd_pos(0x40);i=0;while(dis6[i]!='\0'){lcd_wdat(dis6[i]);i++;delay(30);}flash();delay(800);lcd_wcmd(0x01);delay(200);5实验结果与分析本次电路采用Proteus仿真,可以实现编程所设计的动态显示,在仿真过程中第一种从右至左的动态显示在仿真时

温馨提示

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

评论

0/150

提交评论