基于FPGA实现数据LCD显示 - 图文

发布时间 : 星期二 文章基于FPGA实现数据LCD显示 - 图文更新完毕开始阅读

桂林电子科技大学毕业设计(论文)报告用纸

号电流经过电磁线圈,从而使电磁线圈产生了磁场,在电磁线圈与磁铁的相互作用之下,振动膜片进行周期性地振动发声。多谐振荡器、压电蜂鸣片、阻抗匹配器、共鸣箱以及外壳等组成压电式蜂鸣器。晶体管或集成电路构成多谐振荡器,当电源接通之后(在1.5~15V直流工作电压之间),多谐振荡器开始起振,输出了在1.5KHZ和2.5kHZ之间的音频信号,进而阻抗匹配器推动压电蜂鸣片发出声音。

本次课题主要用到的是电磁式蜂鸣器:

蜂鸣器发声的原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。通过一个三极管C8550来放大驱动蜂鸣器。蜂鸣器的正极接到VCC(+5V)电源上面,蜂鸣器的负极接到三极管的发射极E,三极管的基级B经过限流电阻R1后由FPGA的PIN_64引脚控制,当PIN_64输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当PIN_64输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制PIN_64脚的电平来使蜂鸣器发出声音和关闭。程序中改变单片机PIN_64引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色、音调的声音。另外,改变PIN_64输出电平的高低电平占空比,则可以控制蜂鸣器的声音大小,这些我们都可以通过编程实验来验证。

3.6 按键控制模块的设计

图3-6 独立键盘图

以上的独立的按键是预留出来的,为以后增加功能设计预留的,比如说闹钟功能,报警功能等等。其中也可以用来控制调节LCD液晶显示器上的时间调节,与复位模块的复位键是分开的。

复位电路部分:

图3-6.1 复位电路图

第16页 共51页

桂林电子科技大学毕业设计(论文)报告用纸

复位电路如图3-6.1所示,其作用就是利用它把电路恢复到起始状态。在上电或复位过程中,控制CPU的复位状态:这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。。无论用户使用哪种类型的控制器,总要涉及到复位电路的设计。而复位电路设计的好坏,直接影响到整个系统工作的可靠性。许多用户在设计完系统,并在实验室调试成功后,在现场却出现了“死机”、“程序走飞”等现象,这主要是复位电路设计不可靠引起的。

第17页 共51页

桂林电子科技大学毕业设计(论文)报告用纸

4 系统软件详细设计

4.1 本课题系统设计的要求

根据该毕设的系统设计要求,我们使用的是VERILOG HDL语言,利用Altera所提供的FPGA/CPLD开发集成环境(QuartusⅡ)来调试和开发。要求是能够方便地采用所开发的LCD控制模块来实现显示功能,在LCD屏幕上的任意位置显示任意的中文以及英文字符,同时可以根据输入的动态数据进行动态输出,另外还可以显示此时此刻的时间和当前环境的实时温度。 4.2 系统设计总体框图

图4-2 系统设计总体框图

寄存器复位 显示开关的控制 功能设置 清屏 起始RAM地址设置 换行等控制 写数据状态 中文字符 英文字符 时钟信号 温度信号 初始化 显示控制 写入数据 系统设计总体框图如图4-2所示,当系统上电之后,FPGA首先会对系统进行了初始化操作,而且在初始化操作中最重要的一点是寄存器的复位、显示开关的控制、功能设置还有对显示屏幕进行清屏处理。然后再通过显示控制这一模块对LCD进行了显示控制。显示控制模块主要是负责在LCD上显示出多行字符时进行换行等操作,用户指定数据能够在屏幕的指定显示的位置时设置该位置所对应的RAM值,还有对LCD显示区域相对应的RAM进行写入的操作。其中的数据分别来自中英文字符模块,时钟模块和环境温度模块。对于此模块的设计中,主体结构是用状态机来实现的。 4.3 LCD工作方式

对12864的具体结构有了比较深入的了解,12864分左右两屏,像素点为128*64个像素点,行有128个像素点,列有64个像素点,行又设置为8页,在12864默认状态下中文字体都是16*16的大小,每个页包含8个像素行,所以要显示一个中文就需要2页;初始行的设定可以使得你要显示的字出现在任意你想要的位置。对液晶显示器的编程就是向DDRAM中写数据。在写DDRAM之前,需要先清除RAM,且左屏和右屏要分别进行清除。方法就是向RAM的所有单元写入0值。12864写驱动程序的时候需要写七个

第18页 共51页

桂林电子科技大学毕业设计(论文)报告用纸

指令分别是:“检忙”,“写指令”,“写数据”,“写显示开关”,“写页”,“写列”,“写初始行”。

图4-3.1 向LCD写显示数据的流程图

图4-3.2 液晶显示器的编程流程

Y 结束 页地址已设置8次 已显示64列 N Y 页地址加1 写入LCD右屏数据 写入LCD左屏数据 LCD工作忙 N 显示RAM 设置列地址 设置页地址 系统初始化 将起始页地址存入BL 开始 Y 清左屏RAM 清右屏RAM N 左右展开显示 向LCD写显示数据的流程如上图4-3.1所示,首先将起始页地址存入BL中去,然后进行页地址列地址的设置。设置后开始判断LCD的工作状态,如果处于空闲状态,继续往下执行显示数据,如果LCD处于忙碌状态的话,返回列地址的设置。继而,判断LXD是否显示64列,如果已经显示了64列,页地址就进行加1,如果不是,回到列地址的设置。进而判断页地址是否设置了8次,如果显示了8次,就结束,如果不是返回页地址的设置。详细步骤如下:

(1)将起始页存入BL中 (2)设置页地址

第19页 共51页

联系合同范文客服:xxxxx#qq.com(#替换为@)