毕业设计数字电压表设计说明_第1页
毕业设计数字电压表设计说明_第2页
毕业设计数字电压表设计说明_第3页
毕业设计数字电压表设计说明_第4页
毕业设计数字电压表设计说明_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、师学校电子信息工程 系 玩具设计与制造(电子智能) 专业 07 级毕业论文(设计)题目: 数字电压表设计 : 秋萍 学号: 3 指导教师(签名): 高丰 2010年1月4日师学校毕业论文(设计)诚 信 承 诺 书本人慎重承诺:我所撰写的论文(设计) 数字电压表 是在老师的指导下自主完成,没有剽窃或抄袭他人的论文或成果。如有剽窃、抄袭,本人愿意为由此引起的后果承担相应责任。毕业论文(设计)的研究成果归属学校所有。 学生(签名): 2010 年 1 月 4 日师学校毕业论文(设计)开题报告登记表学生秋萍学号3专 业玩具设计与制造指导教师姓 名高丰职称工程师工作单位(系、部、处、室)电子信息工程系论

2、文题目数字电压表一、选题的目的、意义和必要性:选择题目的目的是让我们能选择自己感兴趣的课题来做。数字电压表是从电位差计的自动化这种想法研制出来的,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。二、研究的重点与计划: LCD1602,AD1674与89C52构成硬件电路设计,与软件设计。三、研究思路(写作提纲或研究路线) : 确定方案,模数转换,控制部分,显示部分,系统硬件电路设计,软件设计,系统测试与整机调试,总结。四、参考文献(专著、教材、论文10篇以上): 1、高吉祥, 电子竞赛模拟电子线路设计.电子工业 2、周志光, 定良. 单片机技

3、术与应用.中南大学 3、黄志伟, 全国大学生电子设计竞赛系统设计.航空航天大学4、自美,电子线路设计·实验 · 测试. :华中理工大学5、黄智伟,全国大学生电子设计竞赛制作实训.航空航天大学6、法春,单片机原理与接口技术案例教程.机械工业7、高美珍,555时基芯片与其在A/D转换中的应用.电子工程师8、王兆安,黄俊,君等.电力电子技术.机械工业,第四版.9、王兆安,电力电子设备应用与设计手册.机械工业10、王兆安,电气工程师手册.机械工业11、1602液晶使用手册12、佟云峰等, 单片机原理与其应用.:大学13、大明, 单片机控制实训知道与综合应用实例.机械工业14、建领,

4、 51系列单片机开发宝典.:电子工业师学校毕业论文(设计)写作过程考核表学生 秋萍 论文题目 数字电压表 选题经过数字电压表调研与材料准备情况以89C52八位单片机为核心处理器,主要是缓存输出电压和通过中断控制的AD1674的转换过程,最后显示在LCD1602上。在数字电压表中,AD1674将模拟信号转换成数字信号,再将数字信号送到单片机控制电压输出,通过LCD1602显示。89C52主要是控制输出电压,信号处理,LCD显示。初稿写作确定电源电路、积分电路、显示器为主体构成数字电压表。其中控制电路由 8 位单片机 89C52组成,积分电路由 12 位 TLV5618 双 D/转换器,单数控电位

5、器和运算放大器 OP07 构成的加法器组成。成文时间:2010年 1月 4日第一次修改容确定最初的芯片LCD1602,TLV5618,89C52,OP-07,画出最初的电路图,写出最初的程序,确定论文总体结构。第二次修改容修改硬件电路,芯片确定为LCD1602,AD1674,89C52,重新画出电路图,写出程序。重新查找资料对AD1674芯片进行介绍,对论文进行第二次修改。第三次修改容程序调试,硬件电路确定元器件型号、论文排版。师学校毕业论文(设计)容摘要论文题目数字电压表作者秋萍所属专业、级别07玩具302班指导教师高丰字数18700定稿日期1月4日 容 摘 要本系统以89C52八位单片机为

6、核心处理器,主要是缓存输出电压和通过中断控制的AD1674的转换过程,最后显示在LCD1602上。在数字电压表中,AD1674将模拟信号转换成数字信号,再将数字信号送到单片机控制电压输出,通过LCD1602显示。89C52主要是控制输出电压,信号处理,LCD显示。数字电压表由A/D转换、数据处理与显示控制等组成,测量020.000V围的输入电压值,由LCD1602显示,用AD1674输入为20V的量程,最大分辨率5mV。数字电压表的核心为89C52单片机和AD1674 A/D转换集成芯片。AD1674片带有锁存功能的模拟信号输入开关,可对8路或12路输入模拟信号分时转换,具有多路开关的地址译码

7、和锁存电路、12位A/D转换器和三态输出锁存器等。由单片机选择控制不同通道模拟信号输入,给STS置1,开始A/D模数转换,当A/D转换结束后,STS端输出低电平,单片机开始读取A/D转换后的数据。单片机进行数据处理,将二进制数转化为十进制数的BCD码,最终通过AD1674显示电压值。关 键 词数据采集处理、89C52控制,AD1674 12 A/D为转换器、 lCD1602显示41 / 47目 录摘要1前言21.设计方案41.1 方案一41.2方案二 41.3 方案比较71.4 系统最终方案72.模数转换8 2.1 AD1674芯片介绍82.2 AD模数转换电路82.3 引脚介绍93.控制部分

8、11 3.1 89C52芯片介绍114.显示部分134.1 LCD1602芯片介绍与实例135.系统硬件电路设计236.软件设计257.系统测试与整机调试38 7.1 测试方案387.2仪器设备型号387.3 2V档位测试(室温) 387.4 结果分析388.总结39参考文献40摘 要本系统以89C52八位单片机为核心处理器,主要是缓存输出电压和通过中断控制的AD1674的转换过程,最后显示在LCD1602上。在数字电压表中,AD1674将模拟信号转换成数字信号,再将数字信号送到单片机控制电压输出,通过LCD1602显示。89C52主要是控制输出电压,信号处理,LCD显示。数字电压表由A/D转

9、换、数据处理与显示控制等组成,测量020.000V围的输入电压值,由LCD1602显示,用AD1674输入为20V的量程,最大分辨率5mV。数字电压表的核心为89C52单片机和AD1674 A/D转换集成芯片。AD1674片带有锁存功能的模拟信号输入开关,可对8路或12路输入模拟信号分时转换,具有多路开关的地址译码和锁存电路、12位A/D转换器和三态输出锁存器等。由单片机选择控制不同通道模拟信号输入,给STS置1,开始A/D模数转换,当A/D转换结束后,STS端输出低电平,单片机开始读取A/D转换后的数据。单片机进行数据处理,将二进制数转化为十进制数的BCD码,最终通过AD1674显示电压值。

10、关键字:数据采集处理、89C52控制,AD1674 12 A/D为转换器、 lCD1602显示前 言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表(Digital Voltmeter)简称 DVM,是从电位差计的自动化这种想法研制出来的,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。因此即便是最初的DVM,其精度要比模拟式仪表高,而其成本比电位差计也高。以后,DVM的发展就着眼在高精度和低成本两个方面

11、。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,而采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与 PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子与电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。与此同时,由 DVM扩展而成的各种通用与专用数字仪器仪表,也把电量与非电量测量技术提高到崭新水平。数字电压表是一种间接转换形式的数字电压表,它是对输入模拟电压进行积分并转换成中间量时间或频率,再通过计数器将中间量转换成数字量。随着仪器仪表系统的数字化、智能化、网络化,完成自动化仪表从模拟技术向数

12、字技术的转变。而数字仪表采用新技术、新工艺,由LSI和VLSI构成的新型数字仪表与高档智能仪器的大量问世,标志着电子仪器领域的电子仪器领域的一场革命,也开创了现代电子测量技术的先河:(1)、广泛采用新技术,不断开发新产品。(2)、新一代数字仪表正朝着标准模块化的方向发展。预计在不久的将来,许多数字仪表将由标准化 、通用化、系列化的模块所构成,给电路设计和安装调试、维修带来极大方便。(3)、为彻底解决数字仪表不便于观察连续变化量的技术难题,"数字/模拟条图"双显示仪表已成为国际流行款式,它兼有数字仪表准确度高、模拟式仪表便于观察被测量的变化过程与变化趋势的两大优点。(4)、安

13、全性不断提高。 (5)、操作简单化。数字电压表有以下方面的特点:显示清晰直观,读数准确。传统的模拟式仪表必须借助于指针和刻度盘进行读数,在读数过程中不可避免的会引入人为的测量误差。数字电压表则采用先进的数显技术,使测量结果一目了然,只要仪表不发生跳读现象,测量结果就是唯一的。新型数字电压表还增加了标志符显示功能,包括测量项目、符号单位和特殊符号、为解决DVM不能反映被测电压的连续变化过程以与变化趋势这一难题,一种"数字/模拟条图"仪表业已问世。1基本设计方案1. 1 方案一 利用双斜 A/D 转换构成数字电压表,如图 1 所示。它由模拟电路和数字电路两部分构成。模拟电路部分

14、由基准电压源+Ur 和-Ur,模拟开关 S1S4 ,积分器和比较器等组成,数字电路部分由控制逻辑电路,时钟发生器,计数器与寄存器等组成。积分器的第一次积分是对输入电压 Ui 做定时( T1 )积分,第二次积分是对基准电压做定值积分。通过两次积分得到与输入电压的平均值正比的时间间隔 T2 ,即实现 U-T 转换。在 T2 的时间对时钟脉冲进行计数。最后完成电压-数字转换。在控制逻辑电路的控制下,实现一次转换。如图1.1图 1.1 双斜 A/D 转换数字电压表原理图1.2 方案二利用 89C52芯片最小系统构成数字电压表。以89C52八位单片机为核心处理器,主要是缓存输出电压和通过中断控制AD16

15、74的转换过程,最后输出显示在LCD1602上。在数字电压表中,AD1674将模拟信号转换成数字信号,再将数字信号送到单片机控制电压输出,通过LCD1602显示。89C52主要是控制输出电压,信号处理,LCD显示。设计模块如下:1.2.1电源设计因三端稳压具有结构简单外围元器件、外围元器件少、性能优良、调试方便等显著优点,供电部分用三端稳压电路。如图1.2图 1.2 电源设计原理图1.2.2控制与A/D转换电路AD1674片带有锁存功能的模拟信号输入开关,可对输入模拟信号分时转换,具有多路开关的地址译码和锁存电路、12位A/D转换器和三态输出锁存器等。由单片机选择控制不同通道模拟信号输入,当A

16、D1674与89C52按下图连接后,给STS置1,开始A/D模数转换,当A/D转换结束后,STS端输出低电平时,单片机开始读取A/D转换后的数据。输入电压经AD1674转换之后,产生中断信号控制89C52的I/ O口输出电压 ,即AD1674转换结束后,产生一个中断信号。过电压保护电路:下中R5为压敏电阻,目的是保护当外部电压过大时不使整个电路被烧坏。压敏电阻器是电压灵敏电阻器VSR的简称,属于一种新型过压保护元件。压敏电阻器是由氧化锌为主要材料制成的金属氧化物半导体瓷元件,其电阻值可随端电压的不同而变化。压敏电阻器的工作围很宽(63000V,有多种规格),对电压脉冲响应快(响应时间仅为几至几

17、十纳秒),耐冲击电流能力强,通流量指标可达100A20KA,漏电流小(低于几至几十微安),工作稳定可靠。其电阻温度系数小于0.05%每摄氏度。方案二系统原理如图1.3。图 1.3 电源设计原理图1.2.3显示与控制功能输入电压经AD1674转换之后,产生中断控制89C52的I/ O口输出电压 ,确定 89C52的工作状态,即AD1674转换结束后,产生一个中断信号,89C52控制LCD1602显示器显示被测电压值。89C52与LCD1602的连接如图1.4。图1.4 89C52与LCD1602的连接1.3 方案比较方案一:利用双 A/D 转换电路构成数字电压表。该电路主要是由模拟电路构成,调试

18、难度大,精度低,不易控制。方案二:因积分电路的主体结构由数字电路组成,电路信能稳定可靠,易调试,精度高。相比之下选用方案二。1.4 系统最终方案利用 89C52芯片最小系统构成数字电压表,以89C52 八位单片机为核心处理器,主要是缓存输出电压和通过中断控制的AD1674的转换过程,最后输出显示在LCD1602上。在数字电压表中,AD1674将模拟信号转换成数字信号,再将数字信号送到单片机控制电压出,通过LCD1602显示。89C51主要是控制输出电压,信号处理,LCD显示。2数模转换2.1 AD1674芯片介绍AD1674 是美国AD公司推出的一种完整的12 位并行模/数转换单片集成电路。该

19、芯片部自带采样保持器(SHA)、10 伏基准电压源、时钟源以与可和微处理器总线直接接口的暂存/三态输出缓冲器。与原有同系列的AD574A/674A 相比,AD1674 的部结构更加紧凑,集成度更高,工作性能(尤其是高低温稳定性)也更好,而且可以使设计板面积大大减小,因而可降低成本并提高系统的可靠性。在研制某新型国产机载武器系统中采用了M级AD1674T,它可实时地采集各传感器的模拟参量,以进行快速、精确的数据转换并传给CPU 进行处理,从而有效地控制整个武器系统的打击精度。2.2 AD模数转换电路电路的核心部分是12位AD转换器AD1674,将该信号送入89C52.当PC控制程序的计数功能每累

20、加一个数据相应加上5mV,随计数器的数据增加,加法器输出电压以5mV的斜率按规律递增。由于AD1674是12位的AD转换器,为满量程为20V时,分辨率为5mV,通过控制程序调整计数过程。AD1674的引脚功能如图2.1。图2.1 AD1674的引脚功能2.3 引脚介绍1、 /CS:片选信号端。低电平有效。2、 CE:使能端,高电平有效。它与/CS共同用于片选控制,当CE为1并且/CS为0时选中本片工作,否则处于禁止状态。3、 R/ -C:读/转换选择端。该信号为低电平时启动A/D转换,高电平时允许将A/D转换结果读出。4、12/-8:输出数据格式选择信号端。高电平时数据输出格式为12位,若为低

21、电平则按8位数据格式分两次输出。注意,该信号与TTL电平不兼容,因此应直接接+5V或接地。5、A0:字节选择转换长度控制端。有两种功能:一是用于转换数据长度控制,在该信号控制下AD1674可进行8位或12位A/D转换,但必须在A/D转换之前设置,且保持STS(转换结束信号端)变高为止。此时,若A0设置为高电平,则按8位A/D转换,转换时候约6us,若设为低电平,则按12位A/D转换,转换时间为10us。另一种功能是在读出数据时用于输出字节选择,当12/-8接地时,数据按8位数据格式分两次输出。这时当A0=0时,12位数据的高8位从2027脚输出;当A0=1时,12位数据的低4位从2427脚输出

22、,2023脚上输出0。所以在高8位数据格式输出时将1619脚依次和2427脚相连。当12/-8接+5V时,A0信号无效。6、STS:转换状态输出端。为高电平时说明正处于A/D转换状态,当STS变为低电平时说明A/D转换以完成。7、 DB0DB11:数字量输出端。8、 VL:逻辑电源。9、 VCC:正电源。其围位+13.5V+16.5V,其典型值为+15V。10、VEE:负电源。其围位-13.5V-16.5V,其典型值为-15V。11、AGND:模拟电源地。12、DGND:数字电源地。13、REF OUT:基准电压输出端。这是部基准电源输出的10V。14、REF IN:基准电压输入端。REF O

23、UT通过一定电阻跨接到REF IN用来进行满量程调整。15、10V IN:10V量程模拟电压输入端。在单极性时为0+10V,双极性方式下位-5V+5V。16、20V IN:20V量程模拟电压输入端。在单极性时为0+20V,双极性方式下位-10V+10V。17、BIP OFF:双极性偏移信号输入的。该端加一定的电压用于零点调整。AD1674 的基本特点和参数如下:带有部采样保持的完全12 位逐次逼近(SAR)型模/数转换器;采样频率为100kHz;转换时间为10s;具有±1/2LSB 的积分非线性(INL)以与12 位无漏码的差分非线性(DNL);满量程校准误差为0.125%;有+10

24、V 基准电源,也可使用外部基准源;四种单极或双极电压输入围分别为±5V,±10V,0V10V 和0V20V;数据可并行输出,采用8/12 位可选微处理器总线接口;部带有防静电保护装置(ESD),放电耐压值可达3. 控制电路3.1 89C52芯片介绍由 8 位单片机 89C52构成最小系统如图3.1。89C52 单片机是一种低功耗/低电压,高性能的 8 位单片机。图3.1 89C52功能引脚图89C52单片机引脚功能介绍一、主电源与时钟引脚此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。(1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。(2)Vs

25、s(20脚)接地。(3)XTAL1(19脚)在单片机部,它是一个反向放大器的输入端,该放大器构成了片的振荡器,可提供单片机的时钟控制信号。(4)XTAL2(18脚)在单片机部,接至上述振荡器的反向输出端。二、控制引脚此类引脚包括RESET(即RSR/VPD)、ALE/PROG、PSEN、EA/VPP,可以提供控制信号,有些具有复用功能。(1)RSR/ VPD(9脚):复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(REST)。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保持部RA

26、M中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压围(5±0.5V)时,VPD就向部RAM提供备用电源。(2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个LSTTL负载。(3)PSEN(29脚):程序存储器允许输出控制端。此输出为单片访问外部程序存储器的读选通信号。在从外部程序存储器取

27、指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。(4)EA/VPP(31脚):EA功能为外程序存储器选择控制端。当EA端保持高电平时,单片机访问部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器的程序。输入/输出引脚三、此类引脚包括P0口、P1口、P2口和P3口(1)P0(P0.0P0.7)是一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位与数据总路

28、线分时复用口,可带8个LSTTL负载。(2)P1(P1.0P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有部上拉电阻,可带4个LSTTL负载。(3)P2(P2.0P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。4显示部分4.1 LCD1602芯片介绍与实例LCD1602,可以准确的显示被测电压。1602原理与介绍:所谓1602是指显示的容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全一样的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。

29、字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。引脚定义如下表所示: 引脚说明1602采用标准的14脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以

30、写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。 另外引脚"A"和"K"为背光引脚,"A"接正,"K"接负便会点亮背光灯。总结一下:1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样。LCD功能如图4.1。引脚符号功能说明1VSS一般接地2

31、VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0底4位三态、 双向数据总线 0位(最低位)8DB1底4位三态、 双向数据总线 1位9DB2底4位三态、 双向数据总线 2位10DB3底4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12

32、DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极图4.1 LCD引脚功能图HD44780置了DDRAM、CGROM和CGRAM。     DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如表4.1。表4.1 DDRAM地址和屏幕对应关系表显示位置1 23456740DDRAM地址第一行00H01H02H03H04H05H06H27H第二行40H41H42H4

33、3H44H45H46H67H也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行。在1602中用前16个就行了。第二行也一样用前16个地址:DDRAM地址与显示位置的对应关系如表4.2。表4.2 DDRAM地址与显示位置的对应关系表00H01H02H03H04H05H06H07H08H09H 0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH往DDRAM里的00H地址处送一个数据,譬如

34、0x31(数字1的代码)并不能显示1出来。这是一个很容易出错的地方,原因就是如果想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即80H,依次类推。    1602液晶模块部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。      字符代码与PC中的字符代码是基本一致的。因此在向DDRAM写C51字符代码程序时甚至可以直接用P1'A'这样的方法

35、。PC在编译时就把“A”先转为41H代码了。      字符代码0x000x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。0x200x7F为标准的ASCII码,0xA00xFF为日文字符和希腊文字符,其余字符码(0x100x1F与0x800x9F)没有定义。      那么如何对DDRAM的容和地址进行具体操作呢,下面先说说HD44780的指令集与其设置说明,请浏览该指令集,并找出对DDRAM的容和地址进行操作的指令。共1

36、1条指令: 1.清屏指令清屏指令如表4.3。 表4.3 清屏指令表指令功能指令编码执行时间/nsRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏00000000011.64功能:<1> 清除液晶显示器,即将DDRAM的容全部填入"空白"的ASCII码20H;    <2> 光标归位,即将光标撤回液晶显示屏的左上方;      <3> 将地址计数器(AC)的值设为0。 2.光标归位指令 清屏指令如表4.4。表4.4 清屏指令表指令功能指令

37、编码执行时间/nsRSR/WDB7DB6DB5DB4DB3DB2DB1DB0光标位置000000001X1.64功能:<1> 把光标撤回到显示器的左上方;       <2> 把地址计数器(AC)的值设置为0;       <3> 保持DDRAM的容不变 3.进入模式设置指令 清屏指令如表4.5。 表4.5 清屏指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0计入模式设置00000001I/DS

38、40功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:     位名             设置     I/D              0=写入新数据后光标移左移  &#

39、160;                   1=写入新数据后光标右移      S=写入新数据后显示屏不移动                      

40、60;1=写入新数据后显示屏整体右移1个字 4.显示开关控制指令 显示开关控制指令如表4.6。 表4.6 显示开关控制指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0显示开光控制0000001DCB40功能:控制显示器开/关、光标显示/关闭以与光标是否闪烁。参数设定的情况如下:                 位名      

41、60;       设置                  D                0=显示功能关        

42、60;  1=显示功能开                  C                0=无光标              

43、; 1=有光标                  B                0=光标闪烁             1=光标不烁 5.

44、设定显示屏或光标移动方向指令 显示屏或光标移动方向指令如表4.7。表4.7 显示屏或光标移动方向指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定显示屏或光标移动方向000001S/CR/LXX40 功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下: S/C               R/L        &#

45、160;       设定情况 0                 0          光标左移1格,且AC值减1 0            

46、60;    1          光标右移1格,且AC值加1 1                 0          显示器上字符全部左移一格,但光标不动 1    

47、             1          显示器上字符全部右移一格,但光标不动 6.功能设定指令 功能设定指令如表4.8。表4.8 功能设定指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能设定00001DLNFXX40 功能:设定数据总线位数、显示的行数与字型。参数设定的情况如下:   位名&

48、#160;             设置    DL:             0=数据总线为4位                   &#

49、160; 1=数据总线为8位    N :             0=显示1行                     1=显示2行    F :    &#

50、160;        0=5×7点阵/每字符1=5×10点阵/每字符 7.设定CGRAM地址指令设定CGRAM地址指令如表4.9。表4.9 设定CGRAM地址指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地址0001CGRAM的地址(6位)40 功能:设定下一个要存入数据的CGRAM的地址。 8.设定DDRAM地址指令 设定DDRAM地址指令如表4.10。表4.10 设定DDRAM地址指令表指令功能指令编码执行时间/usR

51、SR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地址001CGRAM的地址(7位)40 功能:设定下一个要存入数据的CGRAM的地址。 (注意这里送地址的时候应该是0x80+Address。)9.读取忙信号或AC地址指令读取忙信号或AC地址指令如表4.11。表4.11 读取忙信号或AC地址指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0读取忙碌信号或AC地址00FBAC容(7位)40功能:<1> 读取忙碌信号BF的容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令; 当BF=0时,液晶显示器

52、可以接收单片机送来的数据或指令;      <2> 读取地址计数器(AC)的容。 10.数据写入DDRAM或CGRAM指令一览 数据写入DDRAM或CGRAM指令如表4.12。表4.12 数据写入DDRAM或CGRAM指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0数据写入到DDRAM或CGRAM10要写入的数据D7-D040功能:<1> 将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;       

53、60;<2> 将使用者自己设计的图形存入CGRAM。 11.从CGRAM或DDRAM读出数据的指令一览 CGRAM或DDRAM读出数据的指令如表4.13。表4.13 CGRAM或DDRAM读出数据的指令表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0从CGRAM或DDRAM读出数据11要读出的数据D7-D040功能:读取DDRAM或CGRAM中的容。 基本操作时序: 读状态           输入:RS=L,RW=H,E=H &#

54、160;                                    输出:DB0DB7=状态字 写指令           输入:RS=L

55、,RW=L,E=下降沿脉冲,DB0DB7=指令码                  输出:无 读数据           输入:RS=H,RW=H,E=H               

56、60;                                  输出:DB0DB7=数据 写数据           输入:RS=H,RW=L,E=下降沿脉冲,

57、DB0DB7=数据                  输出:无  从CGROM表上可以看到,在表的最左边是一列可以允许用户自定义CGRAM,从上往下看着是16个,实际只有8个字节可用。它的字符码000001这8个地址,表的下面还有8个字节,但因为这个CGRAM的字符码规定02位为地址,3位无效,47全为零。因此CGRAM的字符码只有最后三位能用也就是8个字节了。等效为0000X111,X为无效位,最后三位为000111共8个。

58、      如果想显示这8个用户自定义的字符,操作方法和显示CGROM的一样,先设置DDRAM位置,再向DDRAM写入字符码,例如“A”就是41H。现在要显示CGRAM的第一个自定义字符,就向DDRAM写入00000000B(00H),如果要显示第8个就写入00000111(08H)。  现在来看怎么向这八个自定义字符写入字模,找出设置CGRAM地址的指令。CGRAM地址的指令编码如表4.14。表4.14 CGRAM地址的指令编码表指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地

59、址0001CGRAM的地址(6位)40    从这个指令可以看出指令数据的高2位已固定是01,只有后面的6位是地址数据,而这6位中的高3位就表示这八个自定义字符,最后的3位就是字模数据的八个地址了。下面有几种可能出现的问题的情况:      通电之后,程序也烧写进去了,但是1602就是不显示,只显示一排黑块。其实出现这种问题的原因无非以下几种:硬件连线上的错误,这种错误一般用万用表仔细检查后很容易找出来。第二种情况就是硬件连接上是正确的,那么此时出问题最大的就是程序上了,如果用的是忙检测,看一下忙检测函数写对了没,

60、如果用的是延时函数,那么看看延时的时间是否够长。再就是看看时序图,这点很重要。如果硬件和软件都没有错,那么就要考虑1602是否坏了。      如要液晶显示ABC这三个字母,并且开光标,光标闪烁。可以在第一排的最后几位看到ABC和光标都已经显示出来了。但是为什么其它位会显示这么多8呢?出现这种情况的原因就是在初始化液晶的时候,要把清屏指令放在最后面,否则就会出现这种情况。其它的液晶可能不会有这种情况,不管是在一开始就清屏还是最后清屏。     1602液晶模块部的字符发生存储器(CGROM)已经存储了16

61、0个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,就能看到字母“A” 。1602液晶模块部的控制器共有11条控制指令: 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)。指令1:清显示,指令码01H,光标复位到地址00H位置 。指令2:光标复位,光标返回到地址00H 。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符 。指令7:字符发生器RAM地址设置 。指令8:DDRAM地址设置 。指令9:读忙

温馨提示

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

评论

0/150

提交评论