基于FPGA实现数据LCD显示.docx

上传人:b****8 文档编号:10200498 上传时间:2023-02-09 格式:DOCX 页数:64 大小:1.83MB
下载 相关 举报
基于FPGA实现数据LCD显示.docx_第1页
第1页 / 共64页
基于FPGA实现数据LCD显示.docx_第2页
第2页 / 共64页
基于FPGA实现数据LCD显示.docx_第3页
第3页 / 共64页
基于FPGA实现数据LCD显示.docx_第4页
第4页 / 共64页
基于FPGA实现数据LCD显示.docx_第5页
第5页 / 共64页
点击查看更多>>
下载资源
资源描述

基于FPGA实现数据LCD显示.docx

《基于FPGA实现数据LCD显示.docx》由会员分享,可在线阅读,更多相关《基于FPGA实现数据LCD显示.docx(64页珍藏版)》请在冰豆网上搜索。

基于FPGA实现数据LCD显示.docx

基于FPGA实现数据LCD显示

毕业设计(论文)说明书

题目:

基于FPGA实现数据LCD显示

院(系):

信息与通信学院

专业:

电子信息工程

学生姓名:

农忠京

学号:

0961170124

指导教师:

肖海林

职称:

教授

 

题目类型:

理论研究实验研究工程设计工程技术研究软件开发

 

2013年5月10日

摘要

本次课题的主要任务是设计一个基于FPGA实现数据LCD显示,顾及好程序的易用性,以致方便后面模块的移植和应用。

本次设计以Altera公司研发的cycloneII系列EP2C5T144C8来作为本次课题的核心控制器,以12864-12作为液晶显示器,使用了VerilogHDL语言编写的控制器,主要控制方式为主体程序采用的状态机。

该控制器主要分为两个主要部分:

字符显示模块以及图片显示模块。

字符的显示功能方面上其采用的是显示控制模块和字符调用RAM相结合的方式来完成,这样能让用户能比较方便地调用液晶显示器自带的字库来显示所需要的字符。

本次课题实现用FPGA在液晶显示器上的任意位置上显示任意需要的16*16像素的中文字符和16*8的英文字符,而且还要能够根据用户输入数据的变化的同时显示内容也能同步变化。

该课题的研究在一定的程度上有助于FPGA的系列产品的开发和改善,特别是在使用到LCD得采用FPGA的产品的开发上。

同时也可以大大得缩短了FPGA的开发时间。

而且,因为看在模块的易用性,也将会使得更多使用FPGA的产品搭配上出现液晶显示器,促进了人机之间的友好型,为这方面的行业和我们的生活带来新的创新与发展。

关键词:

FPGA;万年历;LCD;温度传感器;状态机

 

Abstract

ThemaintaskofthissubjectistodesignFPGAdataLCDdisplaybasedonagoodprogram,foreaseofuse,soastofacilitatethetransferandapplicationofthebackmodule.Thisdesignusesthe12864-12liquidcrystaldisplay,andtheuseoftheAlteracompanydevelopedcycloneIIseriesEP2C5T144C8asthecorecontrollerofthesubject.TheuseofVerilogcontrollerinHDLlanguage,themaincontrolmethodasthemainprogramusesthestatemachine.Thecontrollerconsistsoftwomainparts:

thecharacterdisplaymoduleandimagedisplaymodule.DisplaycharactersonthedisplaycontrolmoduleandacharactercalledRAMcombinationtocomplete,souserscanconvenientlycallliquidcrystaldisplayownfontstodisplaytherequiredcharacter.Theimplementationof16*16pixelanyneedofChinesecharactersandEnglish16*8characterdisplayanypositionbyFPGAintheLCD,butalsoabletochangeaccordingtotheuserinputdataatthesametimedisplaycontentcanalsochange.

ThedevelopmentofseriesproductsofthisresearchwillbehelpfultousingFPGA,especiallytheneedtousetheLCDproduct.AtthesametimecangreatlyshortenthedevelopmenttimeofFPGA.Inaddition,becauseofthemodule,willalsomakemoreuseoftheFPGAproductLCD,increasebetweenhumaninteraction,bringsnewchangesfortheindustryandourlife.

KeyWords:

FPGA;Permanent;Calendar;LCD;TemperatureSensor;StateMachaine

 

目录

1引言1

1.1本课题的背景和意义1

1.2本课题研究的主要内容、重点以及难点1

1.2.1主要研究内容与重点1

1.2.2主要难点1

1.3该系统的需求分析1

1.3.1预期达到目标2

1.3.2预期理论达到目标2

1.3.3预期技术达到目标2

2系统概要设计3

2.1核心控制方案的选择3

2.2显示部分方案的选择3

2.3总体方案框图4

3系统硬件详细设计7

3.1电源模块的设计7

3.2显示电路模块的设计8

3.3DS1302时钟模块的设计12

3.4DS18B20温度模块的设计14

3.5蜂鸣器模块的设计15

3.6按键控制模块的设计16

4系统软件详细设计18

4.1本课题系统设计的要求18

4.2系统设计总体框图18

4.3LCD工作方式18

5系统各模块的设计21

6系统开发所需资源以及所有语言的简述23

6.1FPGA的发展历程23

6.1.1FPGA的实现原理24

6.1.2查找表的工作原理24

6.1.3基于FPGA逻辑实现的原理24

6.1.4FPGA的设计方法25

6.1.5FPGA的设计流程25

6.2液晶显示器的选用27

6.2.1TN-LCD以及STN-LCD原理27

6.2.2STN-LCD技术驱动方法27

6.3时钟芯片DS1302简介28

6.4温度传感器DS18B20简介28

6.5硬件描述语言(VerilogHDL)简介29

6.6QuartusII软件综述30

系统制作及调试过程中的问题32

总结33

谢辞34

参考文献:

35

附录36

引言

1.1本课题的背景和意义

钟表给人们生产生活带来了极大的方便。

万年历是一种基于FPGA实现的作品,和机械式时钟相比具有更高的准确性以及直观性,不仅无机械装臵,还有更长的使用寿命,所以得到了广泛的使用。

万年历从原理上讲是一种典型的数字电路,包括了组合逻辑电路和时序电路[1]。

此次设计和制做电子万年历是为了了解一些相关数字钟的原理,从而学会动手制作万年历。

并且通过万年历的制作进一步了解在制作中用到的中小规模集成电路的作用、原理及使用方法,且通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理和使用方法。

本课题主要的任务是设计基于FPGA实现数据的LCD显示,顾及好程序的易用性,以致方便后面模块的移植和应用。

最后能在LCD上的任意位置可以显示任意的16*16D的中文字符以及16*8的英文字符等等,另外还要能依据输入数据的变化而变化LCD上显示相应的内容。

还要能将储存在模块中的图片数据可以正常地显示在LCD上。

该课题的研究在一定的程度上有助于FPGA的系列产品的开发和改善,特别是在使用到LCD得采用FPGA的产品的开发上。

同时也可以大大得缩短了FPGA的开发时间。

另外,看在模块的易用性,也将会使得更多采用FPGA的产品开发上出现LCD,增加了人机之间的交互性,为这一行业和我们以后得生活带来新的进展。

1.2本课题研究的主要内容、重点以及难点

1.2.1主要研究内容与重点

本课题的主要内容是基于FPGA实现数据LCD显示的研究,并顾及程序的易用性以方便以后模块的移植与应用。

该课题设计关联到FPGA的应用与选择、LCD驱动选择、字符显示模式的研究等知识。

并利用QUARTUSII软件实现相关各个模块的设计,在FPGA上实现对LCD的显示控制,显示任意字符、温度以及时钟。

1.2.2主要难点

(1)12864-12的液晶模块指令集比较复杂,使用FPGA来设计需要定义的变量以及状态将会比较多;

(2).在中英文字符的显示部分程序中要考虑程序的易用性,方便以后移植后的应用;

1.3该系统的需求分析

从用户的角度上来看,能够方便直接的显示所需要显示的信息,有中文字符、英文字符、实时时间、实时温度等等,而且稳定、清晰无串扰,LCD显示屏各亮度均匀、充足。

从功能的角度上来看,能够使用程序来控制所需要显示的信息,中文字符、英文字符、实时时间、实时温度等等,往后还可以根据需求进行添加所需要的功能,如闹钟功能、报警功能等等。

从管理的角度上来看,能够方便的控制所需要改变的信息。

比如本次设计所显示的时间,可通过按键来管理调节。

1.3.1预期达到目标

本课题研究的目标主要有以下这些功能:

采用FPGA来控制LCD在任意位置显示出任意中文和英文字符,然后在这两个基本的功能之上再添加一些创新性的功能,人类每天都在进步着,然而进步的过程中脱离不了时间和温度。

可想而知,这两样东西在日常生活中是必不可少的。

所以我在显示中英文字符的基础上添加了万年历及所在环境的温度。

这给人们的日常生活带来了很多方便。

1.3.2预期理论达到目标

(1)学会FPGA对LCD的控制原理,为课题研究做好充分准备;

(2)掌握FPGA对LCD的显示控制,让所有开发者都能够较为容易地通过这些显示控制模块,在液晶显示屏上显示预期的内容;

1.3.3预期技术达到目标

(1)使中文字符在LCD上能够正常显示;

(2)使英文字符在LCD上能够正常显示;

(3)输入变动的数据能够在LCD上的同步刷新显示;

(4)使万年历在LCD上能够正常显示;

(5)使当时环境的温度系数在LCD上能够正常显示;

2系统概要设计

2.1核心控制方案的选择

方案一:

使用单片机作为核心控制芯片

用单片机实现,可以用AT89S52单片机实现128*64液晶显示屏显示。

程序方面可以用C语言来完成,也可用汇编语言来完成。

方案二:

使用FPGA作为核心控制芯片

采用EDA的自顶向下的思想,使用的软件是QUARTUSII9.1,可以使用Verilog语言,可以用VHDL语言。

以EP2C8T1448作为核心的控制芯片。

方案三:

使用DSP作为核心控制芯片

系统采用TMS320F2812 DSP芯片来实现系统的控制。

TMS320F2812 DSP有多达56个通用数字量输入输出端口(GPIO),其中绝大部分是通用I/O和专用功能复用引脚。

通常情况下,TMS320F2812的大多数I/O引脚都用作专用功能引脚。

数字量I/O端口模块采用了一种灵活的配置方法控制复用引脚的功能,GPIO Mux寄存器用来选择F281x和C281x引脚的操作模式,可以通过该寄存器独立设置每个引脚的功能(数字量I/O或外设专用I/O)。

如果选择数字量I/O模式,可以通过GPxDIR寄存器配置数字量I/O的方向,并通过寄存器GPxQUAL进一步消除数字量I/O引脚的噪声信号。

此外,处理器提供GPxSET和GPxCLEAR寄存器对数字量进行置位或清零,还可以GPxDAT寄存器独立读/写I/O信号。

方案四:

使用CPLD作为核心控制芯片

采用的是CPLD+SRAM的方案来实现通用液晶驱动电路的设计。

由于CPLD操作灵活、开发迅速、适用范围广、投资风险低、可多次编程擦写并可在系统编程,同时可针对特定型号的液晶模块进行编程,故可实现特定效果和参数的底层驱动[3]。

这四种方法都能实现汉字的显示,尽管设计的思路不同,但最终的效果是一样的。

考虑到单片机的设计方法更适合用点阵LED的显示设计方面,而FPGA的设计方法明显更适合用于LCD的汉字显示。

应用到实际当中去,本系统要求能够同时处理三路的信号(RBC,WBC,PLT),而且从前面的每路A/D转换电路出来的脉冲信号周期大概为40μs。

所以,如果想要实时地、不失真地对所需信号进行采集和处理,必须使用处理速度较高的信号处理芯片。

然而普通单片机的处理速度已经不在满足系统的需求,因此必须采用以DSP、FPGA或者CPLD为核心的处理器。

但是,由于我们对DSP不是很熟悉,如果采用DSP有可能会加大编程或者调试难度,延长了研发的周期,所以我们也不采用该芯片;其他方面,如系统中对脉冲统计的部分需用到RAM,CPLD并没有自带的RAM模块,对外部的RAM操作处理起来比较麻烦,而FPGA采用VERILOGHDL语言和图形输入,DSP-Builder等混合编程的方式,又具有自带的RAM模块,操作也比较灵活。

故,本系统自然采用FPGA中CycloneII芯片EP2C5T144C8来实现。

2.2显示部分方案的选择

方案一:

使用数码管显示

使用多位数码管显示,显示不灵活。

方案二:

使用LCD1602液晶显示

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。

虽然功能跟LCD12864的功能基本上一样,但是不能显示本课题所需要显示的中文字符。

方案三:

使用LCD12864-12液晶显示

液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点。

本方案采用LCD12864-12,液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。

可与CPU直接接口,提供两种界面来连接微处理机:

8-位并行及串行两种连接方式。

具有多种功能:

光标显示、画面移位、睡眠模式等。

采用单+5V供电,外围电路简单,价格便宜,具有很高的性价比。

而数码管虽然便宜,但显示单调。

占用过多的I/O。

2.3总体方案框图

复位电路模块

电源部分

FPGA系统

DS1302时钟芯片

LCD显示

DS18B20数字温度传感器

下载模块

按键控制模块

图2-3系统总框图

系统的总体框图如图3-2所示,以FPGA以系统的核心,分以上几个模块:

电源模块、时钟模块、温度模块、下载模块、按键模块、复位电路模块以及显示模块。

本次毕业设计采用AltiumDesigner10设计PCB版图,设计出的硬件部分没有那么的难,其中主要的元器件有以下这几种:

EP2C8T144C8、12864-12液晶模块、DS1302时钟芯片模块以及DS18B20温度传感器。

电源模块的作用是为该系统提供可用电源。

时钟模块的作用是为该系统提供时钟信号,使系统能够准确的显示实时时间。

温度模块的作用是为该系统采集周围环境的温度信号,使系统能够准确的显示周围环境的实时温度。

下载模块是将程序现在至系统中去,是系统能够按照程序的命令来运行。

按键控制模块的作用是可以预留,也可以用来控制显示的时间信号的调节。

LCD显示模块的作用是显示系统所需要显示的内容。

系统流程图:

开始

 

端口定义

传递显示的数据

驱动12864的底层文件

结束

 

底层文件

状态设置,40个状态

 

时钟分频

 

图2-3.1系统流程图

具体的步骤如下:

(1)开始

(2)定义端口

(3)传递显示的数据

(4)驱动12864的底层文件

(5)底层文件的运行

(6)状态设置

(7)时钟分频

(8)状态机,进程1状态机的初始化

(9)设置初始状态

(10)判断是否复位,如果复位了,继续往下执行,如果不是,返回第9步,初始状态的设置。

(11)状态机,进程2

(12)判断当前的状态

(13)状态机,进程3

(14)判断是否复位,如果复位了,写指令,复位任意数据,如果没有复位,就往下执行

(15)判断当前状态

(16)根据当前状态决定是写指令还是写数据

(17)分频后时钟赋值给液晶使能端

(18)读写端赋为0,即一直写数据

(19)写完数据

(20)结束

3系统硬件详细设计

3.1电源模块的设计

 

图3-1电源模块图

如上图3-1所示,该模块的输入电压为5V,经过二极管的单项导通性来保护电源。

再经过两个LM1117抵押差线性调压器之后分别调成3.3V和1.2V。

因为该系统所需的电源不仅仅是5V,还有3V和1.2V。

故,该电源模块很集全,集成度很高。

LM1117是一个低压差电压调节器系列。

其压差在1.2V输出负载电流为800mA时为1.2V。

它与国家半导体的工业标准器件LM317有相同的管脚排列。

LM1117有可调电压的版本通过2个外部电阻可实现1.25V到13.8V输出电压范围。

另外还有5个固定电压输出1.8V、2.5V、2.85V、3.3V和5V的型号。

LM1117提供电流限制和热保护。

电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在±1%以内。

LM1117系列具有LLP、TO-263、SOT-223、TO-220和TO-252D-PAK封装。

输出端需要一个至少10uF的钽电容来改善瞬态响应和稳定性。

滤波和稳压电路部分:

图3-1.1滤波稳压电路图

由上图3-1.1所示,3.3V的滤波稳压电路是通过16个电容来进行滤波和稳压过程,而1.2V的滤波稳压电路时通过8个电容来进行滤波和稳压过程的。

该电路的作用是把交流电压变成稳定的大小合适的直流电压。

电源滤波电容的大小,平时做设计,前级用4.7u,用于滤低频,二级用0.1u,用于滤高频,4.7uF的电容作用是减小输出脉冲和低频干扰。

0.1uF的电容作用是减小由于负载电流瞬时变化引起的高频干扰。

一般前面那个越大越好,两个电容值相差大概100倍左右。

电源滤波,开关电源,要看你的ESR(电源的等效串联电阻)有多大,而高频电容的选择最好在其自谐振频率上。

大电容是防止浪涌,机理就好比大水库防洪能力更强一样;小电容滤高频干扰,任何器件都可以等效成一个电阻、电感、电容的串并联电路,也就有了自谐振,只有在这个自谐振频率上,等效电阻最小,所以滤波最好。

3.2显示电路模块的设计

 

图3-2显示电路模块图

显示电路如上图3-2所示,该模块的主要芯片是12864-12LCD显示器,通过电位器可以调节液晶显示器的亮度问题。

该电路的作用能够稳定、清晰无干扰、亮度均匀、充足。

液晶显示器LCD12864模块管脚和FPGA的相关连接如下:

时钟CLK17

LCD12864数据位第8位LCD_D[7]30

LCD12864数据位第7位LCD_D[6]31

LCD12864数据位第6位LCD_D[5]32

LCD12864数据位第5位LCD_D[4]52

LCD12864数据位第4位LCD_D[3]40

LCD12864数据位第3位LCD_D[2]41

LCD12864数据位第2位LCD_D[1]42

LCD12864数据位第1位LCD_D[0]43

LCD12864使能端LCD_E44

LCD12864指令数据选择端LCD_RS47

LCD12864读写端LCD_RW45

系统复位端RST_N65

图3-2.1液晶显示器LCD12864模块管脚和FPGA的连接图

本次设计我选用了带有ST7920驱动的LCD12864-12模块来实现设计以及调试。

该模块自带有字库。

制作的过程中,在12864-12汉字图形点阵液晶显示模块当中,可显示有汉字和图形,内置了8192个中文汉字(16X16点阵)、128个相应的字符(8X16点阵)以及64X256点阵显示RAM(GDRAM)。

采用单+5V供电,外围电路简单。

(1)主要的技术参数和显示特性如下所示:

电源:

VDD3.3V到+5.5V之间(内置有升压电路,不需负压)

显示的内容:

128X64=8192行

显示的颜色:

黄和绿

显示的角度:

6:

00种直视

LCD的类型:

超扭曲向烈型

与FPGA的接口:

8位或者4位并行/3位串行

配置有LED背光

(2)外形的尺寸如下:

外观的尺寸:

93×70×12.5mm视域的尺寸:

72×40mm

表3-2.1外形的尺寸

ITEM

NOMINALDIMEN

UNIT

模块体积

93x70x12.5

mm

视域

72.0x40.0

mm

行列点阵数

128x64

dots

点距离

0.52x0.52

mm

点大小

0.48x0.48

mm

(3)模块各个引脚的说明如下表:

表3-2.2模块的引脚

逻辑工作的电压(VDD):

3.3V到5.5V之间

接地(GND):

0V

工作环境的温度(Ta):

0到+50℃(常温)之间/-20到70℃(宽温)之间

(4)、接口时序如下:

模块存在并行连接和串行连接两种连接方法(时序图如下所示):

1)8位并行连接的时序图:

 

图3-2.2MPU写资料到模块中去

 

图3-2.3MPU从模块中读取出资料

12864串口的连接方式如下图3-2.4所示:

 

图3-2.412864串口的连接方式

串行数据传送过程共分为三个字节来完成:

首先第一字节是:

串口控制——格式为11111ABC

A是数据传送方向的控制:

H是表示数据从LCD到MCU,而L是表示数据从MCU到LCD。

B是数据类型的选择:

H是表示数据室显示的数据,而L是表示数据室控制的指令

C为固定值,为0

其次第二字节是:

(并行)8位数据中的高4位——格式为DDDD0000

最后第三字节是:

(并行)8位数据中的低4位——格式为DDDD0000

串行接口的时序参数有:

(测试环境条件:

T=25℃VDD=4.5V)

注意:

首先当模块在接受指令之前,这时微处理器首先得确认自己内部是否处于非忙碌状态,即读BF的标志时BF必须为0,才可以接受新一条指令;如果在送出指令之前并没有检查BF的标志,那么就会在前一个指令与这个指令的中间必须延迟存在一段比较长时间,就是等待前一个指令确定执行完成,每个指令的执行时间可以参考指令表中的个别指令说明。

其次“RE”是基本指令集和扩充指令集的选择控制元,每当你变更“RE”位元之后,后面的指令集将会维持在最后的状态中,除非你再次变更了“RE”位元,不然使用同意指令集时,不需要每次都重新设置“RE”位元。

3.3DS1302时钟模块的设计

 

图3-3DS1302时钟电路图

该时钟模块以DS1302为核心,使用的晶振的大小是32.768KHZ。

其中晶振的作用是给系统正常工作提供了稳定的时钟信号。

该模块与其他模块不同的地方是它的电源是独立的,不受其他电源的影响,蓄电池为DS1302提供电源,保持实时时钟,即使总电源断开了,DS1302仍然保持工作,所以该时钟的精确度很高,10年左右的误差仅为几秒的时间,很受欢迎。

DS1302模块管脚和FPGA的相关连接如下:

时钟芯片DS1302时钟端SPI_cl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1