《毕业设计基于单片机的液晶显示器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计基于单片机的液晶显示器设计.doc(36页珍藏版)》请在三一办公上搜索。
1、摘 要液晶显示已经是人机界面的关键技术。本文对基于单片机的液晶显示控制技术进行了研究。本文阐明单片机(89C51)控制LCD1602显示屏的方法。首先本文阐述了LCD1602液晶屏的显示原理,随后通过在Proteus仿真软件上构建相关的仿真电路,并连接在Keil软件编写、编辑及编译生成的相关的.Hex驱动程序电路仿真,成功仿真出对所需内容的显示。关键字:LCD1602、单片机、Proteus仿真目 录1 单片机介绍11.1 单片机发展概况11.2 单片机应用分类21.3 单片机基本组成结构31.4 单片机应用范围52 设计内容和意义71.1 设计的内容71.2 设计意义73 硬件电路831 8
2、9C51系统83.1.1 89C51 单片机的概述83.1.2 89C51 单片机管脚说明93.2 振荡电路外接晶体引脚113.3 复位电路123.4 LCD液晶显示屏133.4.1 LCD1602 简介133.4.2 LCD1602主要参数引脚功能143.4.3 LCD1602显示模指令集154 软件设计194.1 系统框图194.2 程序204.3系统电路图225 Proteus调试与仿真235.1 Proteus介绍235.1.1 功能特点:245.1.2 智能原理图设计245.1.3 电路仿真功能245.1.4 协同仿真功能255.1.5 PROTEUES作用255.2 系统调试与仿真
3、275.2.1 安装与调试275.2.2 仿真27结 论29致 谢30参考文献311 单片机介绍1.1 单片机发展概况单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit)常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与
4、结构的最佳选择。它最早是被用在工业控制领域。单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力
5、比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。 图1.1 单片机芯片由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当
6、中。INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到基于8031的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子
7、玩具、掌上电脑以及鼠标等电子产品中都含有单片机。 汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算的总和,甚至比人类的数量还要多。1.2 单片机应用分类单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。(1)按单片机适用范围来区分通用与专用。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。(2)按单片机是
8、否提供并行总线来区分。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。图1.2 非总线型单片机(3)按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。1.3 单片机基本组成结构
9、1. 运算器。运算器由运算部件算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。运算器有两个功能:(1) 执行各种算术运算。(2) 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。运算器
10、所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。2.控制器。控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:(1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。(2) 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称
11、为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。3.主要寄存器(1)累加器A累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。(2)数据寄存器DR数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。(3)指令寄存器IR和指令译码器ID指令包括操作码和操作数。指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄
12、存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。(4)程序计数器PCPC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。(5)地址寄存器AR地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为
13、止。显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。1.4 单片机应用范围单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表
14、、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)智能仪器:单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、电流、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。(2)工业控制:单片机具有体积小、控制功能强
15、、功耗低、环境适应能力强、扩展灵活和使用方便等优点,用单片机可以构成形式多样的控制系统、数据采集系统、通信系统、信号检测系统、无线感知系统、测控系统、机器人等应用控制系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。(3)家用电器:家用电器广泛采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备和白色家电等。(4)网络和通信:现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机
16、、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。(5)设备领域:单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。(6)模块化系统:某些专用单片机设计用于实现特定功能,从而在各种电路中进行模块化应用,而不要求使用人员了解其内部结构。如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。如:音乐信号以数字的形式存于存储器中(类似于ROM),由微控制器读出,转化为模拟音乐电信号(类似于声卡)。在大型电路中,这种模块化应用极大地缩小了体积,
17、简化了电路,降低了损坏、错误率,也方便于更换。(7)汽车电子:单片机在汽车电子中的应用非常广泛,例如汽车中的发动机控制器,基于CAN总线的汽车发动机智能电子控制器、GPS导航系统、abs防抱死系统、制动系统、胎压检测等。此外,单片机在工商、金融、科研、教育、电力、通信、物流和国防航空航天等领域都有着十分广泛的用途。2 设计内容和意义1.1 设计的内容课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普 遍存在的缺乏动手能力的现象.熟悉掌握1602液晶,和12862液晶的原理,并会编程实现在液
18、晶上显示出自己的基本信息。1.2 设计意义 在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单。在单片机系统中应用晶液显示器作为输出器件有以下几个优点:(1)显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。(2)数字式接口
19、液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。(3)体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。(4)功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。3 硬件电路31 89C51系统3.1.1 89C51 单片机的概述该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash 程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条 I
20、/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O 口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。 此外由于器件采用了静态设计可提供很宽的操作频率范围频率可降至0可实现两个由软件选择的节电模式空闲模式和掉电模式空闲模式冻结CPU但RAM定时器串口和中断系统仍然工作掉电模式保存RAM 的内容但是冻结振荡器导致所有其它的片内功能停止工作由于设计是静态的时钟可停止而不会丢失用户数据运行可从时钟停止处恢复。图3.1 89C51引脚图3.1.2 89C51 单片机管脚说明VCC:供电电压。 GND:接地。 工作电压为5VP0口:P0口为一个8位漏级开路双向I/O
21、口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流
22、,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这
23、是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节
24、。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 EA/VPP:当/EA保
25、持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.2 振荡电路外接晶体引脚XTAL119脚 XTAL218脚图3.2 晶振连接的内部、外部方式图XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振
26、荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容
27、应尽可能的选择陶瓷电容,电容值约为22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。3.3 复位电路在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0P3口均置1引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期
28、的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22F,Rs约为200,Rk约为1K。复位操作不会对内部RAM有所影响。常用的复位电路如图3.3所示:图3.3 常用复位电路图3.4 LCD液晶显示屏3.4.1 LCD1602 简介1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。1602 液晶显示: 1602 液晶模块内部的
29、字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码 是 01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 1602 识别的是 ASCII 码,试验可以用 ASCII 码直接赋值。VSS、 VDD、 V0 一般接地接电源(+5V) 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个 10K 的电位器调整对比度)。 RS 为寄存器选择,高
30、电1时选择数据寄存器、低电0时选择指令寄存器。R/W 为读写信号线,高电平时进行读操作,低电平时进行写操作。E(或 EN)端为使能(enable)端,下降沿使能。RS为数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而为电平时,则是进行命令字节的传输操作。R/W为读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。下图为LCD1602的读操作时序和写操作时序。1602 通过 D0D7 的8位数据端传输数据和指令。显示模式设置: 0011 0000 0x38 设置 162 显示、57 点阵,位数据接口;显示开关及光标设置;0000 1DCB
31、当D显示(1 有效)、 光标显示(1 有效)、 光标闪烁(1 有效)0000 01NS N=1(读 C B 或写一个字符后地址指针加 1 &光标加 1),N=0(读或写一个字符后地址指针减 1 &光标减 1),S=1 且 N=1 (当写一个字符后,整屏显示左移),S =0 当写一个字 符后,整屏显示不移动数据指针设置:数据首地址为 80H,所以数据地址为80H+ 地址码(0-27H,40-67H),其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。写指令08H 是关闭显示 ,写指令01H 显示清屏, 写指令06H光标移动设置 ,写指令0cH 显示开及光
32、标设置。当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。图3.4 LCD1602读写时序3.4.2 LCD1602主要参数引脚功能 1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm引脚功能说明LCD1602引脚如图3.5所示图3
33、.5引脚图的功能如表3-1所示表3-1 LCD引脚功能3.4.3 LCD1602显示模指令集(1)清屏功能:清DDROM值和AC值(2)归位功能:光标复位,光标返回到地址00H(3)输入方式设置功能:设置光标,画面移动方式。其中:I/D=1:数据读写操作后,AC 自加一;I/D=0:数据读写操作后,AC 自减一;S=1:数据读写操作,画面平移;S=0:数据读写操作,画面不动;(4)显示开关控制功能:设置显示、光标和闪烁开关。其中:D 表示显示开关,D=1 为开,D=0 为关;C 表示光标开关,C=1 为开,C=0 为关;B 表示闪烁开关,B=1 为开,B=0 为关。(5)光标、画面位移功能:光
34、标、画面移动。其中:S/C=1 画面移动一个字符位;S/C=0 光标移动一个字符位;R/L=1:右移;R/L=0 左移。(6)功能设置功能:工作方式设置(初始化指令)。其中:DL=1,8 位数据接口;DL=0,4 位数据接口;N=1,两行显示;N=0,一行显示;F=1,5*10 点阵显示;F=0,5*7 点阵显示。(7)CGRAM 地址设置功能:设置CGRAM 地址,A5A0=03FH。(8)DDRAM 地址设置功能:设置DDRAM 地址。其中:N=0,一行显示A6A0=04FH;N=1 两行显示,首行A6A0=02FH,次行A6A0=4067H。(9)读BF 及AC 值功能:读忙BF 和地址
35、计数器AC 的值。其中:BF=1:忙,BF=0:准备好。此时AC 值意义为最近一次地址设置(CGRAM 或DDRAM)定义。(10)写数据功能:根据最近设置的地址性质,数据写入CGRAM 或DDRAM 中。(11)读数据功能:根据最近设置的地址性质,从CGRAM 或DDRAM 数据读出。4 软件设计4.1 系统框图开 始 对LCD1602A进行初始化 判是否有按键按下 否 扫描按键延时 首行扫描字R3列扫描送P1扫描、判行确定键值键值入栈保护键值转化为ASII码,存入寄存器判释放按键 否 判第七位是否为0继续扫描否LCD1602A写命令 显 示延 时结 束4.2 程序#include#defi
36、ne uint unsigned int#define uchar unsigned charuchar code table=Men Hong Sheng;uchar code table1=JIA YOU!;sbit rs=P35;sbit rw=P36;sbit ep=P34;uchar a;void cao(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void zl(uchar com)rs=0;P0=com;cao(5);ep=1;cao(10);ep=0;void sj(uchar shu)rs=1;P0=shu;cao(5);ep
37、=1;cao(10);ep=0;void init()rw=0;zl(0x38);zl(0x0c);zl(0x06);/zl(0x80+0x10);void main()init();for(a=0;a13;a+)sj(tablea);cao(20);zl(0x80+0x40);for(a=0;a8;a+)sj(table1a);cao(20);/for(a=0;a16;a+)/zl(0x18);/cao(200);/while(1);4.3系统电路图 图4.1 系统未运行电路图5 Proteus调试与仿真5.1 Proteus介绍Proteus是世界上著名的EDA工具(仿真软件),从原理图布
38、图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。proteus仿真开发平台是由英国labcenter公司开发的,是目前世界上最先进、最完整的嵌入式系统设计与仿真平台,是一个完整的硬件、软件设计
39、仿真平台,包括原理图输入系统isis、带扩展的prospice混合模型仿真器、动态器件库、高级图形分析模块和处理器虚拟系统仿真模型vsm,主要特点有以下几点。1.可以仿真数千种模拟、数字器件和集成电路,并且提供了大量的动态仿真器件,使仿真运行效果更逼真;支持多种型号的微处理器、微控制器芯片的仿真,如51系列、pic系列、avr系列单片机、摩托罗拉的68mh1l系列,以及philips的lpc系列arm芯片等。2.proteus的仿真是基于spice3f5的,因此它也能像其他的eda软件那样对各种分立与集成的模拟、数字进行电路分析,如模拟分析、数字分析、混合信号分析、频率分析等。3.提供了虚拟示
40、波器、逻辑分析仪、信号发生器、计数器、电表、虚拟终端(virtualterminal使用电脑的键盘和显示器通过串口与外部的单片机系统通讯)等虚拟仪器仪表供选用。4.由isis及ares两大功能模块构成,既能够进行sch(原理图)的设计,也能够进行pcb(印制板)的设计,并且在isis环境中能够对设计的电路进行交互式实时仿真。5.能和keil、matlab等软件整合使用,使得用户可以在设计中直接编辑修改源代码,并即时观察运行效果。5.1.1 功能特点:Proteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:1原理布图2PCB自动或人工布线3SPICE电路仿真4互动的电
41、路仿真用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。5仿真处理器及其外围电路可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。5.1.2 智能原理图设计丰富的器件库:超过27000种元器件,可方便地创建新元件;智能的器件搜索:通过模糊搜索可以快速定位所需要的器件;智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间;支持总线结构:使用总线
42、器件和总线布线使电路设计简明清晰;可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。5.1.3 电路仿真功能ProSPICE混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真。超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件。多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入。丰富的虚拟仪器:13种虚拟仪器,面板
43、操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等。生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动。5.1.4 协同仿真功能支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器;支持通用
44、外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信;实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真;编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试。5.1.5 PROTEUES作用 在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形