基于CPLD的液晶等精度频率计_第1页
基于CPLD的液晶等精度频率计_第2页
基于CPLD的液晶等精度频率计_第3页
基于CPLD的液晶等精度频率计_第4页
基于CPLD的液晶等精度频率计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、本科毕业设计论文题 目 基于CPLD的液晶等精度频率计系 别 电气与信息工程系 专 业 电气工程及其自动化 班 级 学生姓名 指导教师 2012年5月摘要摘 要频率计是实验室和科研、生产中最常用的测量仪器之一。本文介绍了一种基于CPLD芯片设计的等精度频率计。利用的等精度测量原理,通过在CPLD芯片上烧写等精度测量原理图进行测量,以MCS-52单片机进行控制和数据运算处理,利用液晶显示器对测量的频率进行实时显示,可读性好。系统测量精度高,实时性好。 本频率测量仪是以Altera公司生产的EMP7160SLC84-15器件为核心实现高精度计数功能。整个电路采用模块化设计,PCB工艺,通过C语言程

2、序控制能够实现等精度测频功能,频率测量范围为10HZ-10MHZ。关键词:等精度,频率计,CPLD,单片机,液晶27西安交通大学城市学院本科生毕业设计(论文)ABSTRACTThe frequency meter laboratory and scientific research, one of the most commonly used in the production of measuring instruments. This article describes a CPLD chip design precision frequency meter. Equal precisio

3、n measurement method, by Figure programmed in the CPLD chip precision measurement principle to measure, control and data operations to the MCS-52 microcontroller processing, liquid crystal display real-time display of the measurement frequency, readable. System, high accuracy, real-time.The frequenc

4、y meter is based on Altera company EMP7160SLC84-15 devices to achieve high-precision counting function as the core. The entire circuit is modular in design, PCB plate making, and can be achieved through the C-language program control and precision frequency measurement function, the frequency measur

5、ement range 10HZ - 10MHZ.KEY WORDS:Equal precision measurement,Frequency meter,CPLD,SCM, Liquid crystal目录目录目 录前 言11 绪 论31.1 课题提出的意义31.2 国内外发展现状32 EDA技术CPLD简介52.1 CPLD概述52.1.1 CPLD简介52.1.2 发展历史及应用领域52.1.3 器件特点52.1.4 如何使用52.2 CPLD的基本结构52.2 Quartus II介绍62.3 EDA的具体开发流程72.3.1设计输入82.3.2综合82.3.3 适配82.3.4 仿

6、真92.3.5 编程下载和硬件测试93 等精度测量原理113.1等精度测量原理113.2 本设计所用原理124 测量方案的比较与选择154.1测量频率的方法154.1.1 直接测频法154.1.2 间接测频法154.1.3 等精度测频法164.2测频方案164.2.1基于单片机的测频方案164.2.2基于CPLD的测频方案165 基于CPLD等精度频率计的硬件模块设计195.1 CPLD模块设计195.2 MCS-52单片机模块设计205.3液晶模块设计215.3.1液晶芯片的管脚与功能215.3.2液晶模块与单片机的接口225.4 RS232串口通信模块225.5 辅助键盘模块226 基于C

7、PLD等精度频率计的软件模块设计256.1计数模块256.2 锁存模块266.3 译码器模块286.4 液晶控制模块307系统的调试与整体测试317.1液晶的调试318结 论41致 谢43参考文献45前言前 言 频率计是当今实验测量设备中比较普遍的仪器。然而随着科技的发展,对测量数据的精度要求越来越高,传统的频率计受到各方面的制约,无法达到理想的精度,为推进工业发展,必须寻找新的方法来测频。恰巧最近EDA技术得到推广,我们利用CPLD可编程芯片的强大功能来探讨等精度测频问题,本设计就是围绕这一思想展开的。本设计用的CPLD芯片EMP7160SLC84具有很大的容量,计数范围远远大于传统的单片机

8、计数。通过JTAG下载线对CPLD芯片中下载测量原理图,原理图中含有32为计数器,完全可以满足精度要求,利用原理图进行计数,其中计数需要的标准信号由外部接的50MHz的晶体振荡器提供,整个计数过程均在CPLD芯片内部完成,速度快,精度高。CPLD计数完成后通过PCB板上的线路和一定的控制程序将结果传送给单片机处理,单片机模块在此设计中主要起处理运算结果和控制作用,单片机处理完结果后,经过一定的控制程序控制液晶,使液晶模块实时显示测量结果。键盘模块通过程序赋予一定的功能,更好进行人机沟通,跟人性化。整个系统的硬件CPLD模块、单片机模块和液晶模块通过在布线电路板上连接组成,协调完成测频,处理,显

9、示等功能。整个系统的软件由计数模块、锁存模块、译码模块以及液晶控制模块等组成。各个模块完成计数、传送数据等功能。在软硬件的结合下,通过一定的控制程序,完成所要求的功能。1 绪论1 绪 论1.1 课题提出的意义基于PLD的等精度频率计有运算速度快、系统较稳定、测量范围广操作预先修改方便等特点。其中主要应用到EDA(电子设计自动化)技术。伴随着集成电路技术的发展,PLD(可编程逻辑器件)逐渐成为重要的设计工具。PLD在设计过程中为客户提供了更大的灵活性,因为对于PLD来说,设计反复只需要简单地改变编程文件就可以了,而且设计改变的结果可立即在工作器件中看到。且PLD不需要漫长的前置时间来制造原型或正

10、式产品。在设计阶段中客户可根据需要修改电路,直到对设计工作感到满意为止。常用的频率测量方法有两种:频率测量法和周期测量法。频率测量法是在时间t内对被测信号的脉冲数N进行计数,然后求出单位时间内的脉冲数,即为被测信号的频率。周期测量法是先测量出被测信号的周期T,然后根据频率f=1T求出被测信号的频率。但是上述两种方法都会产生±1个被测脉冲的误差,在实际应用中有一定的局限性。根据测量原理,很容易发现频率测量法适合于高频信号测量,周期测量法适合于低频信号测量,但二者都不能兼顾高低频率同样精度的测量要求。本设计利用PLD进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设

11、计方法,克服了基于测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。等精度的测量方法不但具有较高的测量精度,而且在整个测频区域内保持恒定的测试精度。并采用液晶显示器显示测量频率。1.2 国内外发展现状电子设计用的可编程逻辑器件发展很快,已经从20年前几百门的PAL/GAL发展到现在的超过300万门的可编程逻辑器件,已拥有可以提供足够系统集成容量的密度、增强的嵌入系统能力、功能集合及许多其他特性的新器件。 编程逻辑供应商取得了巨大的技术进步,以致现在PLD被众多设计人员视为是逻辑解决方案的当然之选。先进的工艺技术在一系列关键领域为PLD提供了帮助:更快的性能、集成更多功能、降低功耗和成

12、本等。 目前Xilinx采用先进的0.13um 低K铜金属工艺生产可编程逻辑器件,这也是业界最好的工艺之一。二十年前,PLD销售额的增长速度已经超过基于传统门阵列技术的固定逻辑器件的销售增长速度。 而且,高性能FPGA现在已开始从采用最先进的标准单元技术制造的固定逻辑器件那儿赢得市场份额。本设计利用PLD进行测频计数,单片机实施控制实现频率计的设计过程。该频率计利用等精度的设计方法,克服了基于传统测频原理的频率计的测量精度随被测信号频率的下降而降低的缺点。将先进器件应用于测频,现在这类课题是研究的热点。2 EDA技术CPLD简介2 EDA技术CPLD简介2.1 CPLD概述 2.1.1 CPL

13、D简介CPLD主要是由可编程逻辑宏单元 (MC,Macro Cell)围绕中心的可编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。2.1.2 发展历史及应用领域20世纪70年代,最早的可编程逻辑器件-PLD诞生了。其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性,但其过于简单的结构也

14、使它们只能实现规模较小的电路。为弥补PLD只能设计小规模电路这一缺陷,20世纪80年代中期,推出了复杂可编程逻辑器件-CPLD。目前应用已深入网络、仪器仪表、汽车电子、数控机床、航天测控设备等方面。2.1.3 器件特点它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成

15、为电子工程师必备的一种技能。2.1.4 如何使用CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。2.2 CPLD的基本结构CPLD主要由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块构成(1)可编程逻辑单元作用与FPGA的基本I/O口相同,但是CPLD应用范围局限性较大,I/O的性能和复杂度与FPGA相比有一定的差距,支撑的I/O标准较少,频率也较低。(2)基本逻辑单元CPLD中基本逻辑单元是宏单元。所谓宏单

16、元就是由一些与、或阵列加上触发器构成的,其中“与或”阵列完成组合逻辑功能,触发器用以完成时序逻辑。与CPLD基本逻辑单元相关的另外一个重要概念是乘积项。所谓乘积项就是宏单元中与阵列的输出,其数量标志了CPLD容量。乘积项阵列实际上就是一个“与或”阵列,每一个交叉点都是一个可编程熔丝,如果导通就是实现“与”逻辑,在“与”阵列后一般还有一个“或”阵列,用以完成最小逻辑表达式中的“或”关系。(3)布线池、布线矩阵CPLD中的布线资源比FPGA的要简单的多,布线资源也相对有限,一般采用集中式布线池结构。所谓布线池其本质就是一个开关矩阵,通过打结点可以完成不同宏单元的输入与输出项之间的连接。由于CPLD

17、器件内部互连资源比较缺乏,所以在某些情况下器件布线时会遇到一定的困难。由于CPLD的布线池结构固定,所以CPLD的输入管脚到输出管脚的标准延时固定,被成为Pin to Pin延时,用Tpd表示,Tpd延时反映了CPLD器件可以实现的最高频率,也就清晰地表明了CPLD器件的速度等级。(4)其他辅助功能模块如JTAG编程模块,一些全局时钟、全局使能、全局复位/置位单元等。2.2 Quartus II介绍Quartus II是Altera提供的FPGA/CPLD开发集成环境,Altera是世界最大可编程逻辑器件供应商之一。Quartus II在21世纪初推出,是Altera前一代FPGA/CPLD集

18、成开发环境Max+plus II的更新换代产品,其界面友好,使用便捷。在Quartus II上可以完成FPGA开发的整个流程,它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。Altera的Quartus II提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。Quartus II也可以利用第三方的综

19、合工具,如Leonardo Speetrum、SynplifyPro、FPGA Compi1er II,并能直接调用这些工具。同样,Quartus II具备仿真功能,同时也支持第三方的仿真工具,如Modelsim。此外,Quartus II与MATLAB和DSP Builder结合,可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具。Quartus II包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis & Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块

20、(Design Assistant)、EDA网表文件生成器(EDA Netlist Writer)和编辑数据接口(Compsler Database Interfaee)等。可以通过选择Start Colnpilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。还可以通过选择Compiler Tool(Too1s菜单),在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。此外,Quartus II还包含许多十分有用的LPM(Library of Parameteriz

21、ed Modules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可在Quartus II普通设计文件一起使用。Altera提供的LPM函数均基于Altera器件的结构做了优化设计。在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能。例如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。Quartus II编译设计主控界面,它显示了Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编(装配)、时序参数提取以及编程下载几个步骤。在图2-1下排

22、的流程框图,是与上面的Quartus II设计流程相对照的标准的EDA开发流程。 Quartus II编译器支持的硬件描述语言有VHDL(支持VHDL87及VHDL97标准)、Verizog HDL及AHDL(Altera HDL),AHDL是Altera公司自己设计、制定的硬件描述语言,是一种以结构描述方式为主的硬件描述语言,只有企业标准。Quartus II允许来自第三方的EDIF文件输入,并提供了很多EDA软件的接口,Quartus II支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。在设计输入之后

23、,Quartus II的编译器将给出设计输入的错误报告。 Quartus II拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。对于使用HDL的设计,可以使用Quartus II带有的RTL Viewer观察综合后的RTL图。在进行编译后,可对设计进行时序仿真。在作仿真前,需要利用波形编辑器编辑一个波形激励文件,用于仿真验证时的激励。编译和仿真经检测无误后,便可以将下载信息通过Quartus II提供的编程器下载入目标器件中了。2.3 EDA的具体开发流程基于CPLD器件实现数字系统的流程如图2-1所示。图2-1 基于FPGA/CPLD的EDA设计流程图基于CPLD器件的开发流程主

24、要包含设计输入、综合、FPGA适配、仿真和编程下载。2.3.1设计输入设计输入是设计者将所要设计的电路以开发软件要求的某种形式表达出来,并输入到相应软件中的过程。设计输入有多种方式,最常用的是图形输入和HDL文本输入两种方法。 图形输入主要包括状态图输入,波形图输入和原理图输入等。在HDL文本输入中,最常用的硬件描述语言有Verilog HDL和VHDL等,Verilog HDL和VHDL的功能比较强大,属于行为描述语言,能描述和仿真复杂的逻辑设计。2.3.2综合综合是将设计者在EDA平台上编辑输入的HDL文本、图形描述,依据给定的硬件结构和约束可知条件进行编译、优化、转换和综合,最终获得门级

25、电路甚至更底层的电路描述网表文件的过程。综合器就是能够自动实现上述转换的软件工具。 综合的方式有三种分别是行为综合,逻辑综合,版图综合(结构综合)。2.3.3 适配 适配是将由综合器产生的网表文件配置于指定的目标器件中,并产生最终的可下载文件的过程。 利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线等。2.3.4 仿真 仿真,也称为模拟,是对所设计的电路的功能验证。用户可以在设计的过程中对整个系统和各个模块进行仿真,即在计算机上用软件验证功能是否正确,各部分的时序配合是否准确。若出现问题,则可以随时修改,从而避免了逻辑错误。

26、高级的仿真软件还可以对整个系统设计的性能进行估计。规模越大的设计,越需要进行仿真。仿真不消耗硬件资源,不浪费时间,这样就可避免不必要的损失。仿真包括功能仿真和时序仿真。2.3.5 编程下载和硬件测试把适配后生成的编程文件装入到PLD器件中的过程称为下载。通常将对基于EEPROM工艺的非易失结构PLD器件的下载称为编程(Program),而将基于SRAM工艺结构的PLD器件的下载称为配置(Configure)。最常用的编程方式有两种分别是在系统编程(ISP,In System Programmable)和用专用的编程器编程。需要全文请联系QQ8692608006 基于等精度频率计的软件模块设计7

27、 系统的调试与整体测试7系统的调试与整体测试7.1液晶的调试液晶的调试可以检查CPLD芯片内部原理图的存在与否,以及分析地址的正确性;还可以验证液晶是否正常工作,即液晶的好坏等等作用。下面给出一个液晶的完整的调试程序。#include <reg52.h>#define IR1 0xFFF2; /A1=1,A0=0,为左半屏工作,显示为指令#define DR1 0xFFF3; /A1=1,A0=1,为左半屏工作,显示为数据#define IR2 0xFFF0; /A1=0,A0=0,为右半屏工作,显示为指令#define DR2 0xFFF1; /A1=0,A0=1,为右半屏工作,

28、显示为数据#define lcd_off 0x3E;/液晶的指令集,用于关闭液晶显示器#define lcd_on 0x3F;/ 液晶的指令集,用于打开液晶显示void delay_10us(void);/声明延时程序,延时时间为10微秒void dmsec (unsigned int count);/声明延时程序,延时时间count毫秒,void clear_screen(unsigned char *p); /声明清屏程序,p=lift时清除左半屏, or right清除右半屏。unsigned char xdata *lcd_lift;/定义指针变量,全局变量,使指针指向左半屏unsig

29、ned char xdata *lcd_right;/ 定义指针变量,全局变量,使指针指向右半屏unsigned char code hzdot192 = /*西 CCEF7 */0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00,0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,/*安 CB0B2 */0x80,0x90,0x8C,0x84,0x84,0xF4,0xA5,0x8

30、6,0x84,0x84,0x84,0x84,0x94,0x8C,0x84,0x00,0x80,0x80,0x80,0x40,0x47,0x28,0x28,0x10,0x28,0x24,0x43,0xC0,0x40,0x00,0x00,0x00,/*交 CBDBB */0x00,0x08,0x88,0x48,0x38,0x28,0x09,0x0E,0x0C,0x08,0x98,0x28,0x68,0x48,0x08,0x00,0x00,0x80,0x80,0x40,0x41,0x22,0x14,0x18,0x0C,0x16,0x23,0x61,0xC0,0x40,0x00,0x00,/*通 CC

31、DA8 */0x40,0x41,0xC6,0x00,0x00,0xF2,0x52,0x52,0x56,0xFA,0x5A,0x56,0xF2,0x00,0x00,0x00,0x40,0x20,0x1F,0x20,0x40,0x5F,0x42,0x42,0x42,0x5F,0x4A,0x52,0x4F,0x40,0x40,0x00,/*大 CB4F3 */0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,0xA0,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x80,0x40,0x20,0x10,0x0C,0x03,0x00,0x

32、01,0x06,0x08,0x30,0x60,0xC0,0x40,0x00,/*学 CD1A7 */0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00;sbit clk=P34;main() unsigned char x,y,i; /定义变量x,y,i供以后用lcd_lift = IR1;/液晶左半屏工作,且显示为指令lcd_r

33、ight= IR2;/液晶左半屏工作,且显示为指令clear_screen(lcd_lift);/调用清屏函数,对液晶左半屏进行清零 clear_screen(lcd_right);/ 调用清屏函数,对液晶右半屏进行清零*lcd_lift=lcd_on;/利用液晶指令集的指令,打开液晶左半屏,使工作*lcd_right=lcd_on;/ 利用液晶指令集的指令,打开液晶右半屏,使工作/*lcd_lift=0xb8;/利用液晶的指令集指令,页起始地址的行设置,设置为第一行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40;/ 利用液晶的指令集指令,页起始地址的列设置,设

34、置为第一列for(i=0x00;i<=0x0f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字西的前16个字符到1至16列*lcd_lift=0xb9;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第二行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40;/ 利用液晶的指令集指令,页起始地址的列设置,设置为第一列for(i=0x10;i<=0x1f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字西的后16个字符到1至16列delay_10us();/调用延时程序,进行延时/*综上所述,上述程序是将汉字

35、西在液晶左的第一和第二行的第1至16列这个区域内显示出来*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第一行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40+0x10;/* 利用液晶的指令集指令,页起始地址的列设置,设置为第17列*/for(i=0x20;i<=0x2f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字安的前16个字符到17至32列*lcd_lift=0xb9;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第二行delay_10us();/调用延时程序,进行延时*lcd_li

36、ft=0x40+0x10;/* 利用液晶的指令集指令,页起始地址的列设置,设置为第17列*/for(i=0x30;i<=0x3f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字安的后16个字符到17至32列delay_10us();/调用延时程序,进行延时/*综上所述,上述程序是将汉字安在液晶左的第一和第二行的第17至32列这个区域内显示出来*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第一行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,页起始地址的列设

37、置,设置为第33列*/for(i=0x40;i<=0x4f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字交的后16个字符到33至48列*lcd_lift=0xb9;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第二行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40+0x20;/* 利用液晶的指令集指令,页起始地址的列设置,设置为第33列*/for(i=0x50;i<=0x5f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字交的后16个字符到33至48列delay_10us();/调用延时程序,进行

38、延时/*综上所述,上述程序是将汉字交在液晶左半屏的第一和第二行的第33至48列这个区域内显示出来*/*lcd_lift=0xb8;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第一行delay_10us();/调用延时程序,进行延时*lcd_lift=0x40+0x30;/*利用液晶的指令集指令,页起始地址的列设置,设置为第49列*/for(i=0x60;i<=0x6f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字通的前16个字符到第一行的49至64列*lcd_lift=0xb9;/ 利用液晶的指令集指令,页起始地址的行设置,设置为第二行delay_10u

39、s();/调用延时程序,进行延时*lcd_lift=0x40+0x30; /*利用液晶的指令集指令,页起始地址的列设置,设置为第49列*/for(i=0x70;i<=0x7f;i+)*(lcd_lift+1)=hzdoti;/利用循环语句载入汉字通的后16个字符到第二行的49至64列delay_10us();/调用延时程序,进行延时/*综上所述,上述程序是将汉字通在液晶左半屏的第一和第二行的第49至64列这个区域内显示出来*/*lcd_right=0xb8;/* 利用液晶的指令集指令,页起始地址的行设置,设置为右半屏第一行*/delay_10us();/调用延时程序,进行延时*lcd_r

40、ight=0x40;/ 利用液晶的指令集指令,页起始地址的列设置,设置为第1列for(i=0x80;i<=0x8f;i+)*(lcd_right+1)=hzdoti;/利用循环语句载入汉字大的前16个字符到右半屏的第一行的1至16列*lcd_right=0xb9;/* 利用液晶的指令集指令,页起始地址的行设置,设置为第二行*/delay_10us();/调用延时程序,进行延时*lcd_right=0x40;/* 利用液晶的指令集指令,页起始地址的列设置,设置为第1列*/for(i=0x90;i<=0x9f;i+)*(lcd_right+1)=hzdoti;/利用循环语句载入汉字通的

41、后16个字符到右半屏的第二行的1至16列delay_10us();/调用延时程序,进行延时/*综上所述,上述程序是将汉字大在液晶右半屏的第一和第二行的第1至16列这个区域内显示出来*/*lcd_right=0xb8;/*利用液晶的指令集指令,页起始地址的行设置,设置为右半屏第一行*/delay_10us();/调用延时程序,进行延时*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,页起始地址的列设置,设置为右半屏第17列*/for(i=0xa0;i<=0xaf;i+)*(lcd_right+1)=hzdoti;/利用循环语句载入汉字大的前16个字符到右半屏的第一行的17至32列*lcd_right=0xb9;/* 利用液晶的指令集指令,页起始地址的行设置,设置为右半屏的第二行*/delay_10us();/调用延时程序,进行延时*lcd_right=0x40+0x10;/* 利用液晶的指令集指令,页起始地址的列设置,设置为右半屏的第

温馨提示

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

最新文档

评论

0/150

提交评论