EDA课程设计键盘扫描电路设计文档格式.docx
- 文档编号:17607402
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:8
- 大小:26.46KB
EDA课程设计键盘扫描电路设计文档格式.docx
《EDA课程设计键盘扫描电路设计文档格式.docx》由会员分享,可在线阅读,更多相关《EDA课程设计键盘扫描电路设计文档格式.docx(8页珍藏版)》请在冰豆网上搜索。
二、功能模块
图3模块delta
其VHDL语言如下:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_unsigned.all;
entitykeyboard4_4is
port(
rst:
instd_logic;
clk_in:
keyin:
instd_logic_vector(3downto0);
scan:
outstd_logic_vector(3downto0);
leds:
state:
outstd_logic;
VGA:
outstd_logic_vector(3downto0)
);
endkeyboard4_4;
architecturekeyboard4_4_archofkeyboard4_4is
--
--*********************************************
componentdebouncing
port(key:
INSTD_LOGIC;
clk,clr:
dly_out:
OUTSTD_LOGIC);
endcomponent;
signalclkfrq:
std_logic;
signalcntscn:
std_logic_vector(1downto0);
signalscnlin:
std_logic_vector(3downto0);
signalcntfrq:
std_logic_vector(14downto0);
--signalcntfrq:
signallednum:
std_logic_vector(7downto0);
signalkey_tmp:
signalclk:
signalcntfrq1:
std_logic_vector(5downto0);
begin
VGA<
="
0101"
;
--键盘功能选择
scan<
=notscnlin;
lednum<
=scnlin&
(notkey_tmp);
--key_tmp<
=keyin;
--debounuingckt
debounuing:
block
U1:
debouncingPORTMAP(
KEY=>
keyin(0),
DLY_OUT=>
key_tmp(0),
clr=>
rst,
clk=>
CLK
);
U2:
keyin
(1),
dly_out=>
key_tmp
(1),
U3:
key=>
keyin
(2),
key_tmp
(2),
clk=>
CLK
U4:
keyin(3),
key_tmp(3),
ENDblockdebounuing;
--******************************************************
process(rst,clk_in)--晶振为40MHz,进行40000分频产生去抖时钟(1000Hz)
begin
ifrst='
0'
then
cntfrq<
=(others=>
'
);
elsifrising_edge(clk_in)then
if(cntfrq="
111"
ornot(key_tmp="
1110"
orkey_tmp="
1101"
1011"
0111"
))then
--if(cntfrq="
1111"
)then
--ifcntfrq="
then
clk<
=notclk;
--去抖时钟
else
=cntfrq+1;
endif;
endprocess;
process(rst,clk)--去抖时钟,50分频,形成扫描时钟
ifrst='
clkfrq<
='
cntfrq1<
elsifrising_edge(clk)then
ifcntfrq1="
11000"
cntfrq1<
clkfrq<
=notclkfrq;
else
=cntfrq1+1;
endif;
endif;
process(rst,clkfrq)--根据扫描时钟产生扫描线
cntscn<
00"
elsifrising_edge(clkfrq)then
ifcntscn="
11"
=cntscn+1;
casecntscnis
when"
=>
scnlin<
0001"
01"
0010"
10"
0100"
1000"
whenothers=>
null;
endcase;
process(rst,clkfrq)--根据按键点亮相应的leds
if(rst='
)then
leds<
=not"
elsifclkfrq'
eventandclkfrq='
caselednumis
00010001"
--1
00010010"
--2
00010100"
0011"
--3
00011000"
leds<
1010"
--A
00100001"
--4
00100010"
--5
00100100"
0110"
--6
00101000"
--B
01000001"
--7
01000010"
--8
01000100"
1001"
--9
01001000"
1100"
--C
10000001"
--*
10000010"
0000"
--0
10000100"
--#
10001000"
--D
null;
process(rst,key_tmp)
if(rst='
state<
1'
elsif(key_tmp="
)then
endkeyboard4_4_arch;
三、心得体会
经过两周的课程设计,由于是第一次,过程有点曲折,有点累,但最后能得到理想的结果,心里感到特别高兴。
因为是课程设计,需要制定一个最合理的方案。
这就锻炼了我们理论分析、比较,联系实际情况的能力。
由于需要各个方面的材料和数据,我们需要运用各种手段去查找资料,这增长了我们自学的能力。
在电路的生成和调试过程中,我们遇到了各种问题,经过对种种问题的解决,我们在工程实际的层次上更进一步理解理论知识。
我们不但更好地理解了所学的理论知识,更重要的是把知识从书中提炼出来运用到生活当中,这是一种质的飞跃。
在这次课程设计当中也离不开老师的帮助,她们尽心尽责给了我很大的帮助,非常感谢。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 课程设计 键盘 扫描 电路设计