首页 数字电路实验报告

数字电路实验报告

举报
开通vip

数字电路实验报告PS/2 电信工程学院 05102 苏君 050051 17 设计制作一个PS/2键盘接口控制器。 1. 按照PS/2键盘接口标准设计一个控制器,接收PS/2键盘发送的数据,用数码管显示接收到的键值(只显示0~9,a~z,部分不便用数码管显示的字符可自行设定显示方式,接收到其他键值则不显示); 2. 选做:用8×8点阵做显示屏,显示所有按键的键值。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; USE IEEE.STD_LOGIC_ARITH.all;...

数字电路实验报告
PS/2 电信工程学院 05102 苏君 050051 17 设计制作一个PS/2键盘接口控制器。 1. 按照PS/2键盘接口标准设计一个控制器,接收PS/2键盘发送的数据,用数码管显示接收到的键值(只显示0~9,a~z,部分不便用数码管显示的字符可自行设定显示方式,接收到其他键值则不显示); 2. 选做:用8×8点阵做显示屏,显示所有按键的键值。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.all; USE IEEE.STD_LOGIC_ARITH.all; USE IEEE.STD_LOGIC_UNSIGNED.all; ENTITY ps2 IS Port( key_clk, data, reset: IN STD_LOGIC; --初始化ps2输入端口 TSCode: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); --将8个数据位转换成数码管 END ps2; ARCHITECTURE ps2_datatranslation OF ps2 IS SIGNAL COUNT : STD_LOGIC_VECTOR(3 DOWNTO 0); --定义一计数器来控制键盘八位数据传输到 Tscode中 SIGNAL Trans_Input : STD_LOGIC_VECTOR(8 DOWNTO 0); --包含初始位一直到应答位 SIGNAL Read : STD_LOGIC; --读取当前bit是否为数据彼特bit SIGNAL SCAN_CODE : STD_LOGIC_VECTOR(7 DOWNTO 0); --扫描8位数据比特 BEGIN PROCESS BEGIN WAIT UNTIL ( key_clk'EVENT AND key_clk = '0'); --下降沿触发 IF reset = '1' THEN COUNT <= "0000"; Read <= '0'; --按下复位键计数器和数据端口清零 ELSE IF data = '0' AND Read = '0' THEN Read<= '1'; --如果数据线为低电平,则开始读取数据流 ELSE IF Read = '1' THEN --开始处理8位数据流 IF COUNT < "1001" THEN --只处理9个从键盘传来的数据流 COUNT <= COUNT + 1; --计数器加一 Trans_Input(7 DOWNTO 0) <= Trans_Input(8 DOWNTO 1); --将新的数据传入 Trans_Input(8) <= data; --丛数据流读取新的数据 ELSE SCAN_CODE <= Trans_Input(7 DOWNTO 0); --将新的数据存储到变量中 Read <= '0'; --讲数据读取关闭 COUNT <= "0000"; --计数器置零 END IF; END IF; END IF; END IF; END PROCESS; PROCESS(SCAN_CODE) --将SCAN_CODE中的数据传送到TSCODE中 BEGIN CASE SCAN_CODE IS WHEN "01000101" => TSCode <= "11111100"; --0 WHEN "00010110" => TSCode <= "01100000"; --1 WHEN "00011110" => TSCode <= "11011010"; --2 WHEN "00100110" => TSCode <= "11110010"; --3 WHEN "00100101" => TSCode <= "01100110"; --4 WHEN "00101110" => TSCode <= "10110110"; --5 WHEN "00110110" => TSCode <= "10111110"; --6 WHEN "00111101" => TSCode <= "11100000"; --7 WHEN "00111110" => TSCode <= "11111110"; --8 WHEN "01000110" => TSCode <= "11110110"; --9 WHEN "00011100" => TSCode <= "11101110"; --A WHEN "00110010" => TSCode <= "00111110"; --B WHEN "00100001" => TSCode <= "10011100"; --C WHEN "00100011" => TSCode <= "01111010"; --D WHEN "00100100" => TSCode <= "10011110"; --E WHEN "00101011" => TSCode <= "10001110"; --F WHEN "00110100" => TSCode <= "10111111"; --G WHEN "00110011" => TSCode <= "00101110"; --H WHEN "01000011" => TSCode <= "01110000"; --I WHEN "00111011" => TSCode <= "11110000"; --J WHEN "01000010" => TSCode <= "10011101"; --K WHEN "01001011" => TSCode <= "00011100"; --L WHEN "00111010" => TSCode <= "11110011"; --M WHEN "00110001" => TSCode <= "11101100"; --N WHEN "01000100" => TSCode <= "00111010"; --O WHEN "01001101" => TSCode <= "11001110"; --P WHEN "00010101" => TSCode <= "11111101"; --Q WHEN "00101101" => TSCode <= "11101111"; --R WHEN "00011011" => TSCode <= "10110111"; --S WHEN "00101100" => TSCode <= "10001100"; --T WHEN "00111100" => TSCode <= "01111100"; --U WHEN "00101010" => TSCode <= "00111000"; --V WHEN "00011101" => TSCode <= "10011111"; --W WHEN "00100010" => TSCode <= "01101111"; --X WHEN "00110101" => TSCode <= "01110110"; --Y WHEN "00011010" => TSCode <= "11011011"; --Z WHEN OTHERS => TSCode <= "00000000"; END CASE; END PROCESS; END ps2_datatranslation; 按下ps/2键盘,在数码管显示接收到的键值,只显示0~9,a~z接受到其他 的不显示。 Ps/2接口键盘,实验开发板 在点击键盘过程中,实验板上的led始终无法显示,在查看了代码后,发现读取数据有错误,主要是循环判断出错,于是改变了循环的条件后,数据传送成功。 在本学期,我选择了ps/2接口实验,选择这项实验并非是出于爱好,而是想了解各种 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 是怎样通过具体语言来实现的。在刚开始时,对实验毫无头绪,面对各种资料,始终无法摸 清头绪。经过一周的查讯资料和同学交流,才知道ps/2的原理。于是自己便动手尝试编写了一些程序,同时参考vhdl实验手册中的接口技术部分。在完成后,立刻就烧入了实验板 中,结果以失败告终,但是通过林丰伟同学的帮助,我找到了自己程序中的错误,原先译码 的变量最终没有赋值给TSCode变量,这直接导致了实验板中始终接受不到任何信息。于是 在修改了代码之后,经过不断的试验,终于在Led上能显示按键的键值。接下来是要在数码管上显示,参阅了材料,原来只要把TSCode中的值相应做修改即可,从而最终成功的做出了实验。让我收获最大的还是通过本次实验,是我了解到了将协议转化成编程语言的过程。
本文档为【数字电路实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_266065
暂无简介~
格式:doc
大小:100KB
软件:Word
页数:0
分类:企业经营
上传时间:2017-09-05
浏览量:38