pld及数字系统设计实验报告.docVIP

  • 3
  • 0
  • 约1.26万字
  • 约 21页
  • 2018-12-03 发布于浙江
  • 举报
pld及数字系统设计实验报告

PAGE \* MERGEFORMAT1 PLD与数字系统设计实验报告 A组实验四:数字密码锁 1 实验要求 使用Xilinx公司的Spartan3S?400AN开发板上的相关模块,利用ISE开发软件完成数字密码锁的设计,要求实现如下功能: 利用实验板上的4×3小键盘,设计4位密码锁,当输入密码正确时,在液晶屏上显示“OK”,否则,显示“ERROR”,在输入过程中,显示输入的数据个数,当有错误的输入时,显示“ERROR”,当全部输入正确时,才显示OK。 2 实验原理 2.1 4×3数字键盘 数字键盘又叫行列式键盘。用带IO口的线组成行列结构,按键设置在行列的交点上。例如用4×3的行列式结构可以构成12个键的键盘。实验中所用到的数字键盘原理如图1所示。 图1 4×3数字键盘 例如设置此模块的列为输入端口,行为输出端口。那么在按下某一个键时,该键所在的开关接通,由输入端口向输出端口输出一个有效电平,继而触发其他模块。 2.2 LCD液晶显示模块 开发板上使用的是无字库的12864LCD显示器,12864LCD显示模块是由128*64个液晶显示点组成的一个128列*64行的阵列。每个显示点对应一位二进制数,1表示亮,0表示灭(但实验所用开发板上该模块实际是低电平表示亮、高电平表示灭)。存储这些点阵信息的RAM称为显示数据存储器。以下是关于显示屏的一些参数: 图2 128*64 LCD控制器结构框图 图3 128*64时序图 图4 指令功能表 图5 初始化指令流程 要显示某个图形就是将相应的点阵信息写入到相应的存储单元中。图形的点阵信息可以由自己设计也可借助字模软件,问题的关键就是显示点在液晶屏上的位置(行和列)与其在存储器中的地址之间的关系。 由于多数液晶显示模块的驱动电路是由一片行驱动器和两片列驱动器构成,所以12864液晶屏实际上是由左右两块独立的64*64液晶屏拼接而成,每半屏有一个512*8 bits显示数据RAM。左右半屏驱动电路及存储器分别由片选信号CS1和CS2选择。 显示点在64*64液晶屏上的位置由行号(line, 0~63)与列号(column, 0~63)确定。512*8 bits RAM中某个存储单元的地址由页地址(Xpage,0~7)和列地址(Yaddress, 0~63)确定。每个存储单元存储8个液晶点的显示信息。 为了使液晶点位置信息与存储地址的对应关系更直观关,将64*64液晶屏从上至下8等分为8个显示块,每块包括8行*64列个点阵。每列中的8行点阵信息构成一个8bits二进制数,存储在一个存储单元中。(需要注意:二进制的高低有效位顺序与行号对应关系因不同商家而不同)存放一个显示块的RAM区称为存储页。即64*64液晶屏的点阵信息存储在8个存储页中,每页64个字节,每个字节存储一列(8行)点阵信息。因此存储单元地址包括页地址(Xpage, 0~7)和列地址(Yaddress, 0~63)。 例如点亮128*64的屏中(50, 30)位置上的液晶点,因列地址30小于64,该点在左半屏第29列,所以CS1有效;行地址50除以8取整得6,取余得2,该点在RAM中页地址为6,在字节中的序号为2;所以将二进制数入Xpage=6,Yaddress=29的存储单元中即点亮(50, 30)上的液晶点。 3 实验仪器 1.XUP(FPGA:spartan3S400AN)实验开发板 2.安装ISE软件的电脑 4 实验主要操作步骤 4.1 实验设计思想 实验采用分层次设计的方法,用硬件描述语言分别实现数字键盘数据的发送接收功能及液晶显示的功能模块,具体方法如下: 1. 通过ISE开发工具,新建3个模块,分别为数字键盘模块,LCD12864液晶显示模块和LCD字库模块。 ?????????2.数字键盘模块:以一定频率按行扫描数字键盘,检测该行有无输入,若有则判断输入是什么,并传送相应信息给LCD模块;若无则继续扫描下一行。如此反复。 液晶显示模块:根据LCD显示模块的原理,将其控制分为指令控制部分和显示控制部分。其中使用状态机和分频器完成指令控制,每一个分频时钟周期到来时,执行状态机中的一个状态,即初始化命令或读写数据命令。 LCD字库模块:因为实验板上的12864LCD是无字库的,故利用字模软件将要用到的字模数据保存在模块中。 4.2 各模块设计实现 在理解数字键盘和LCD液晶显示的使用方法后,使用Verilog语言描述出各部分要实现的功能,完成实验的要求。 4.2.1 数字键盘模块的设计 下面是该模块功能实现的部分Verilog源程序: always @ ( posedge clk or negedge rst_s ) //产生周期为1ms的控制信号,占空时间为20ns begin

文档评论(0)

1亿VIP精品文档

相关文档