《实验十二SOPC的键盘与LCD显示控制实验.doc》由会员分享,可在线阅读,更多相关《实验十二SOPC的键盘与LCD显示控制实验.doc(3页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流实验十二SOPC的键盘与LCD显示控制实验.精品文档.实验3 SOPC的键盘与LCD显示控制实验【实验目的】1. 熟悉矩阵键盘的工作特性。2. 学会使用VHDL语言描述一个矩阵键盘的电路功能。3. 了解字符型液晶显示控制器。4. 掌握1602液晶的操作方法。5. 学会使用VHDL语言描述一个1602液晶控制的电路功能。【实验内容】1. 使用VHDL语言描述一个矩阵键盘的电路功能,程序实现的功能是测试4X4矩阵按键;具体的键值通过FPGA核心板上的数码管来显示。如按下K1,数码管就显示0,按下K16,数码管就显示F。2. 使用VHDL语言描述一
2、个1602液晶显示屏控制的电路功能,使1602液晶屏可以显示你自己的名字(拼音)。【实验器材】1. HS-EDA5.1实验箱2USB-BLASTER烧写器3. Quartus II 8.0【实验原理】本实验需要使用VHDL语言描述一个矩阵键盘以及1602液晶控制的电路功能,下面我们先来介绍一下矩阵键盘和1602液晶显示屏。1. 矩阵键盘:键盘分编码键盘和非编码键盘。键盘上闭合键的识别由专用的硬件编码器实现,并产生键编码号或键值的称为编码键盘,如计算机键盘.而靠软件编程来识别的称为非编码键盘;在一般常用系统中,用的最多的是非编码键盘。也有用到编码键盘的。非编码键盘有分为:独立键盘和行列式(又称为
3、矩阵式)键盘。矩阵键盘结构图如上图矩阵键盘的读取都经历一个扫描的过程,程序先将L1输出低电平,即端口输入11111110,即十六进制0FEH,然后读回端口的数据,此时如果 L1 上的四个按键没有按下,读到的P0 口的数据还是11111110,如按下了按键 8,H2 便被拉成低电平,读回的端口数据11011110(十六进制:0DEH),程序就根据读回的数据来判断某个按键按下了,如果没有按键按下,则再将 L2 输出低电平(P0=11111101,十六进制:0FDH),然后也一样读回端口数据,判断有按键按下否,如此下去,到 L4 的完成,为一个扫描过程。刚才按键 8 按下读回的数值是 0DEH,如果
4、做为简单的程序,可以直接用0DEH 来认定是 8 键的键值码,也可以认为它是一个无名键的键值码,所以上面写的 8 不是特定的,而只是序号,你怎么排列键序都可以,甚至认为是游戏手柄的上下左右出拳踢腿键都没问题,问题是按下某下按键后,你知道读回的键值是多少就可以了,键值才有用。2.1602液晶显示屏:工业字符型液晶,能够同时显示16x02即32个字符,每个字符是5X7的点阵。1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(4
5、1H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,实验可以用ASCII码直接赋值。管脚说明如下图时序图地址映射图主要时序结构如下图:【实验步骤】1. 打开Quartus II 软件,建立一个key44的工程.。并将keyboarddeco.v和led_disp的文件加入到工程中,并新建一个Block Diagram的文件。(软件代码过长,程序附在主机上)2. 在Project Navigator框中选择file栏,右键点击keyboarddeco.v选择create symbol files for current file生成s
6、ymbol,也对led_disp.vhdl生成symbol,生成以后我们就能在图形界面编程时就能选择我们自定义的接口程序。如图:3. 在图形编程中编译如下:(图中的管脚标注是定义pins后编译在图中生成)4. 点击processing/start compilation编译文件。定义管脚如下:5. 点击processing/start compilation编译生成文件,下载至FPGA,具体的键值就能通过板上的数码管来显示。按下K1就显示0,K2就显示1。6. 建立一个新的工程,并将div_256.v,div16.v ,ps2_keyboard.v和lcd.v文件加入工程,并create symbol files for current file。7. 建立图形编程界面如下:8. 编译并定义管脚如下图:9. 编译生成文件,下载至FPGA,ps/2键盘输入,稍等可以在lcd1602上显示输入的字符。【实验要求】1. 掌握4x4矩阵键盘的扫描方法。2. 掌握1602的操作方式。3. 进一步学习VHDL语言编写程序。4. 完成思考题。【思考题】1. 分析电路原理图,思考如果要用SOPC板上的ps/2接口,应该如何定义pins?2. 尝试采用Verilog HDL语言编写程序。(选做)