VHDL课程设计PS2键盘文档格式.docx

上传人:b****1 文档编号:13578221 上传时间:2022-10-11 格式:DOCX 页数:24 大小:337.58KB
下载 相关 举报
VHDL课程设计PS2键盘文档格式.docx_第1页
第1页 / 共24页
VHDL课程设计PS2键盘文档格式.docx_第2页
第2页 / 共24页
VHDL课程设计PS2键盘文档格式.docx_第3页
第3页 / 共24页
VHDL课程设计PS2键盘文档格式.docx_第4页
第4页 / 共24页
VHDL课程设计PS2键盘文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

VHDL课程设计PS2键盘文档格式.docx

《VHDL课程设计PS2键盘文档格式.docx》由会员分享,可在线阅读,更多相关《VHDL课程设计PS2键盘文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

VHDL课程设计PS2键盘文档格式.docx

下表为第二套PC键盘扫描码。

键 名

通 码

断 码

-

A

1C

F0,1C

 

46

F0,46

[

54

FO,54

B

32

F0,32

`

0E

F0,0E

INSERT

E0,70

E0,F0,70

C

21

F0,21

4E

F0,4E

HOME

E0,6C

E0,F0,6C

D

23

F0,23

=

55

FO,55

PGUP

E0,7D

E0,F0,7D

E

24

F0,24

\

5D

F0,5D

DELETE

E0,71

E0,F0,71

F

2B

F0,2B

BKSP

66

F0,66

END

E0,69

E0,F0,69

G

34

F0,34

SPACE

29

F0,29

PGDN

E0,7A

E0,F0,7A

H

33

F0,33

TAB

0D

F0,0D

UARROW

E0,75

E0,F0,75

I

43

F0,43

CAPS

58

F0,58

LARROW

E0,6B

E0,F0,6B

J

3B

F0,3B

LSHFT

12

FO,12

DARROW

E0,72

E0,F0,72

K

42

F0,42

LCTRL

14

FO,14

RARROW

E0,74

E0,F0,74

L

4B

F0,4B

LGUI

E0,1F

E0,F0,1F

NUM

77

F0,77

M

3A

F0,3A

LALT

11

F0,11

KP/

E0,4A

E0,F0,4A

N

31

F0,31

RSHFT

59

F0,59

KP*

7C

F0,7C

O

44

F0,44

RCTRL

E0,14

E0,F0,14

KP-

7B

F0,7B

P

4D

F0,4D

RGUI

E0,27

E0,F0,27

KP+

79

F0,79

Q

15

F0,15

RALT

E0,11

E0,F0,11

KPEN

E0,5A

E0,F0,5A

R

2D

F0,2D

APPS

E0,2F

E0,F0,2F

KP.

71

F0,71

S

1B

F0,1B

ENTER

5A

F0,5A

KP0

70

F0,70

T

2C

F0,2C

ESC

76

F0,76

KP1

69

F0,69

U

3C

F0,3C

F1

05

F0,05

KP2

72

F0,72

V

2A

F0,2A

F2

06

F0,06

KP3

7A

F0,7A

W

1D

F0,1D

F3

04

F0,04

KP4

6B

F0,6B

X

22

F0,22

F4

0C

F0,0C

KP5

73

F0,73

Y

35

F0,35

F5

03

F0,03

KP6

74

F0,74

Z

1A

F0,1A

F6

0B

F0,0B

KP7

6C

F0,6C

45

F0,45

F7

83

F0,83

KP8

75

F0,75

1

16

F0,16

F8

0A

F0,0A

KP9

7D

F0,7D

2

1E

F0,1E

F9

01

F0,01

]

5B

F0,5B

3

26

F0,26

F10

09

F0,09

;

4C

F0,4C

4

25

F0,25

F11

78

F0,78

'

52

F0,52

5

2E

F0,2E

F12

07

F0,07

41

F0,41

6

36

F0,36

PRNT

SCRN

E0,12,

E0,7C 

E0,F0,

7C,E0,

F0,12 

.

49

F0,49

7

3D

F0,3D

SCROLL

7E

F0,7E

/

4A

F0,4A

8

3E

F0,3E

PAUSE

E1,14,77,

E1,F0,14,

-NONE-

表2PC键盘第二套扫描码

2、设计思路

(1)PS2时钟的检测;

(2)PS2数据的接受并提取需要的8位数据;

(3)对PS2提取的8位数据进行解码,确定按键;

(4)通过LED灯显示按键的解码的结果;

(5)设置多个按键,多种LED显示方式;

对于PS2键盘扫描程序,我的设计思路是一个模块一个功能,这样能清晰分辨模块,同时易于修改代码。

代码条理清晰,便于解读。

而对于多个模块则使用层次化的形式来编写,顶层文件并不包含功能的设定,只包含各个子功能模块。

3、模块设计

PS2键盘扫描分为:

电平检测,PS2解码,PS2组合,LED控制和总PS组合六个模块。

下面为各个模块的简易模块图。

(1)PS2时钟检测模块:

图3电平检测模块图

(2)PS2解码模块:

图4PS2解码模块图

(3)PS2组合模块:

图5PS2组合模块图

(4)控制LED模块:

图6LED控制模块图

(5)PS2总的组合模块:

图7PS2模块图

4、各模块分析

(1)PS2时钟检测模块

PS2电平检测模块主要的作用是检测PS2接口键盘的时钟信号,因为PS2的协议规定数据是在时钟的下降沿读取的。

所以电平检测模块要检测PS2时钟的下降沿,有下降沿来临时,要做相应的数据读取动作。

下面是代码的分析。

LIBRARYIEEE;

--库

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

------------------------------------------------------------------------------------------------------------------------------------------

ENTITYPS2_detect_moduleIS--实体声明

PORT(

CLK,RSTn:

INSTD_LOGIC;

PS2_CLK_Pin_In:

H_L_Sig:

OUTSTD_LOGIC;

--电平由高变低,输出一个信号

L_H_Sig:

OUTSTD_LOGIC--电平由低变高,输出一个信号

);

ENDENTITYPS2_detect_module;

ARCHITECTUREPS2_detectOFPS2_detect_moduleIS--结构体声明

SIGNALH_L_F1:

STD_LOGIC:

='

1'

--声明4个信号,用于电平输入的变化

SIGNALH_L_F2:

--4个信号都赋了初值

SIGNALL_H_F1:

0'

SIGNALL_H_F2:

BEGIN

PROCESS(CLK,RSTn)

BEGIN

IF(CLK'

eventANDCLK='

)THEN--同步进行

IF(RSTn='

)THEN--同步复位动作

H_L_F1<

='

H_L_F2<

L_H_F1<

L_H_F2<

ELSE

=PS2_CLK_Pin_In;

=H_L_F1;

L_H_F1<

=L_H_F1;

ENDIF;

ENDIF;

ENDPROCESS;

H_L_Sig<

=H_L_F2AND(NOTH_L_F1);

--输出信号

L_H_Sig<

=L_H_F1AND(NOTL_H_F2);

ENDARCHITECTUREPS2_detect;

--结构体结束

在结构体中声明了4个信号,用于电平的检测F2信号是接着F1信号的,如果F1信号变化了,F2信号还不会立即变化,F2还会保持F1的前一个状态,以两者的逻辑关系,可以判断输入的是上升沿还是下降沿。

结果如表格3。

时间

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 广告传媒

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1