键盘输入显示(2)

2019-09-01 13:02

1、运行Quartus II软件,新建工程和命名顶层文件。

2、建立文件Verilog HDL File。命名为ps2.v 。在文件中写入程序,保存,编译。 3、分配管脚。保存,编译。

4、先下载简单的程序,已确定实验箱可用。 5、之后将生成的.sof文件下载至FPGA实验箱中。

6、在键盘上一次输入0~9,a~f。观察数码管显示的数据是否与键盘的输入键值相同。 7、若不相同或不完全相同,则分模块调试。

调试现象:

1、分别输入0~9和a~f,数码管上均能正确显示,VGA正确显示。 2、输入其他的键值,数码管显示0,VGA显示0。

七.遇到的问题及解决方法

1.不会使用Quartus II软件及verilog HDL语言编写程序。

学习老师给的资料,并在图书馆借阅资料,尝试编写一些简单的verilog HDL程序,熟悉Quartus II软件及verilog HDL语言编写程序的方法。 2. 数码管显示不正确。

不会连接DE0的管脚,管脚配置不正确导致数码管显示异常。查看老师给的文件DE0_User_manual.pdf,学习DE0管脚接法。 3.VGA显示时,屏幕无显示,且出现‘闪屏’。

VGA的时钟控制信号要求为25M Hz,编程时为编写分频器模块,因此时钟输入为50M Hz。解决办法是利用DE0的锁相环二分频得到25M Hz 输入信号。

八.结论与心得

通过本次课程设计,让我对FPGA有了进一步的了解,虽然我们只做了一些最底层、最基本的设计,也只接触了那么一些小小的内容,但通过整个设计过程使我深深地了解了FPGA的强大功能,认识了一些单元的工作原理。

我们小组做的是键盘输入显示,能在DE0的七段数码显示管上显示,也能在VGA上显示键盘输入的字符,从头到尾让我对PS/2键盘、VGA显示原理都有了深刻的认识。在此过程中我们也遇到了许多困难,最开始不会使用

Quartus II软件及verilog HDL语言编写程序,我们就开始学习老师给的资料,并在图书馆借阅资料,尝试编写一些简单的verilog HDL程序,熟悉Quartus II软件及verilog HDL语言编写程序的方法,但是对所选的题没有思路,于是我们就看老师所给的程序,理解它的功能,从而得到编程的“灵感”。通过不断地努力,我们初步编写出程序。

在调试程序时出现了不少语法错误,在看了verilog HDL语言的书后,我们发现了

这些错误。总之,设计过程中困难是多种多样的,但我们没放弃,通过查阅资料、

询问老师、小组讨论、商量都一一解决了。在此过程中也让我们提高了真正地去发现问题、分析问题、解决问题的能力,获益匪浅。本次课程设计也让认识到只有真正的理解一个东西的工作原理过后,才知道如何下手去解决问题,盲目地写程序,摘抄别人的东西最终还是一无所获。

九.参考文献

【1】崔葛瑾.基于FPGA的数字电路系统设计.西安电子科技大学出版社.2008 【2】郭永贞.数字电路实验与EDA技术.东南大学出版.2010

附录一:

扫描码表:

KEY 0 1 2 3 4 5 6 7 8 9 a b c d e f 通码 45 16 1E 26 25 2E 36 3D 3E 46 1C 32 21 23 24 2B 断码 F0 45 F0 16 F0 1E F0 26 F0 25 F0 2E F0 36 F0 3D F0 3E F0 46 F0 1C F0 32 F0 21 F0 23 F0 24 F0 2B 附录二:

键盘数据接收部分:

`timescale 1ns / 1ps

/////////////////////////////////////////////////////////////////////////// module

ps2(clk,rst_n,ps2k_clk,ps2k_data,oSEG,hsync,vsync,vga_r,vga_g,vga_b);

input clk; //50M时钟信号 input rst_n; //复位信号,active_low

input ps2k_clk; //PS2接口时钟信号 input ps2k_data; //PS2接口数据信号 output [6:0] oSEG; //数码管显示值 output hsync; //行同步信号 output vsync; //场同步信号 output[2:0] vga_r; output[2:0] vga_g; output[1:0] vga_b; reg [6:0] oSEG; reg[7:0] ps2_asci; //1byte键值,只做简单的按键扫描,以

ASCII码保存。

//------------------------------------------

reg ps2k_clk_r0,ps2k_clk_r1,ps2k_clk_r2; //ps2k_clk状态寄存器

wire pos_ps2k_clk; // ps2k_clk上升沿标志位 wire neg_ps2k_clk; // ps2k_clk下降沿标志位

always @ (posedge clk or negedge rst_n) begin //去抖动

if(!rst_n) begin ps2k_clk_r0 <= 1'b0; ps2k_clk_r1 <= 1'b0; ps2k_clk_r2 <= 1'b0; end else begin //锁存状态,sequential execution ps2k_clk_r0 <= ps2k_clk; ps2k_clk_r1 <= ps2k_clk_r0; ps2k_clk_r2 <= ps2k_clk_r1; end end

assign neg_ps2k_clk = ~ps2k_clk_r1 & ps2k_clk_r2; //下降沿

//------------------------------------------ reg[7:0] ps2_byte_r; //接收来自PS2的一个字节数据存储器 reg[7:0] temp_data; //当前接收数据寄存器 reg[3:0] num; //计数寄存器

always @ (posedge clk or negedge rst_n) begin

if(!rst_n) begin

num <= 4'd0; temp_data <= 8'd0; end

else if(neg_ps2k_clk) begin //检测到ps2k_clk的下降沿 case (num) 4'd0: 4'd1:

//bit0 4'd2:

//bit1 4'd3:

//bit2 4'd4:

//bit3 4'd5:

//bit4 4'd6:

//bit5 4'd7: num <= num+1'b1; begin num <= num+1'b1; temp_data[0] <= ps2k_data; end begin num <= num+1'b1; temp_data[1] <= ps2k_data; end begin num <= num+1'b1; temp_data[2] <= ps2k_data; end begin num <= num+1'b1; temp_data[3] <= ps2k_data; end begin num <= num+1'b1; temp_data[4] <= ps2k_data; end begin num <= num+1'b1; temp_data[5] <= ps2k_data; end begin num <= num+1'b1;

//bit6

//bit7

temp_data[6] <= ps2k_data;

4'd8: end

begin num <= num+1'b1; temp_data[7] <= ps2k_data;

4'd9: end

begin num <= num+1'b1;//odd-even check bit

end 4'd10: begin num <= 4'd0; // num清零 end default: ; endcase end end

reg key_f0; //松键标志位,置1表示接收到键盘断码数据8'hf0,

再接收到下一个数据后清零

reg ps2_state_r; //键盘当前状态,ps2_state_r=1表示有键被按下

always @ (posedge clk or negedge rst_n) begin//接收数据的相应处理,

这里只对1byte的键值进行处理

if(!rst_n) begin key_f0 <= 1'b0; ps2_byte_r <= 8'h45; end

else if(num==4'd10)//刚传送完一个字节数据 begin if(temp_data == 8'hf0) key_f0 <= 1'b1; else begin if(!key_f0) begin //说明有键按下 ps2_state_r <= 1'b1; ps2_byte_r <= temp_data;//锁存当前键


键盘输入显示(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2001年全国硕士研究生入学统一考试数学三真题及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: