buff7<=buff8; end if; end if;
end process; process(Clk) -- 获取键值 begin
if(Clk'event and Clk='1') then
if(kflag1='1' and kflag2='0') then if(keyr=\ case keyc is
when \ when \ when \ when \
when others=>buff8<=buff8; --no change end case;
elsif(keyr=\ case keyc is
when \ when \ when \ when \
when others=>buff8<=buff8; --no change end case;
elsif(keyr=\ case keyc is
when \ when \ when \ when \
when others=>buff8<=buff8; --no change end case;
elsif(keyr=\ case keyc is
when \ when \ when \ when \
when others=>buff8<=buff8; --no change end case; end if;
end if; end if;
15
end process;
process(dcount) begin
case (dcount) is
when \ when \ when \ when \ when \ when \ when \
when \ end case; end process;
process(Clk) begin
if(Clk'event and Clk='1') then --扫描累加 dcount<=dcount+1; a<=Disp_Decode(0); b<=Disp_Decode(1); c<=Disp_Decode(2); d<=Disp_Decode(3); e<=Disp_Decode(4); f<=Disp_Decode(5); g<=Disp_Decode(6); sa<=dcount(0); sb<=dcount(1); sc<=dcount(2);
end if; end process;
process(Disp_Temp) --显示转换 begin
case Disp_Temp is
when 0=>Disp_Decode<=\ when 1=>Disp_Decode<=\ when 2=>Disp_Decode<=\ when 3=>Disp_Decode<=\ when 4=>Disp_Decode<=\ when 5=>Disp_Decode<=\ when 6=>Disp_Decode<=\ when 7=>Disp_Decode<=\
16
when 8=>Disp_Decode<=\ when 9=>Disp_Decode<=\ when 10=>Disp_Decode<=\ when 11=>Disp_Decode<=\ when 12=>Disp_Decode<=\ when 13=>Disp_Decode<=\ when 14=>Disp_Decode<=\ when 15=>Disp_Decode<=\
when others=>Disp_Decode<=\全灭 end case; end process; end behave;
4、编写完VHDL程序后,保存起来。
5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进
行全编译一次,以使管脚分配生效。
7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接
起来。
如果是调用的本书提供的VHDL代码,则实验连线如下:
Clk:FPGA工作时钟信号,接数字时钟CLOCK3,并设为1024HZ。 Kr[0:3]:分别接4×4键盘部分的R1、R2、R3和R4。 Kc[0:3]:分别接4×4键盘部分的C1、C2、C3和C4。 Sa、Sb、Sc:接七段码显示区的Sel0、Sel1和Sel2。
A、B、C、D、E、F、G:接七段码显示区的A、B、C、D、E、F和G 8、用下载电缆将对应的sof文件加载到FPGA中。观察实验结果是否与自己的编程思想一致。
四、 实验结果与现象
以设计的参考示例为例,当设计文件加载到目标器件后,按下矩阵键盘的某一个键,则在数码管上显示对应的这个键标识的键值,当再按下第二个键的时候前一个键的键值在数码管上左移一位。
五、 实验报告
17
1、绘出不同的键值时的数码管的仿真波形,并作说明。
2、根据自己的思路,找一找还有没有其它方法进行键盘的扫描显示。并画出流程图。
1、 将实验原理、设计过程、编译仿真波形和分析结果、硬件测试结果记录下来。
18
实验五 多功能数字钟的设计
一、实验目的
1、了解数字钟的工作原理。
2、进一步熟悉用VHDL语言编写驱动七段码管显示的代码。 3、掌握VHDL编写中的一些小技巧。
二、实验原理
多功能数字钟应该具有的功能有:显示时-分-秒、整点报时、小时和分钟可调等基本功能。首先要知道钟表的工作机理,整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,但是需要注意的是,小时的范围是从0~23时。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为它的范围是从0~23,所以可以用一个2位的二进制码显示十位,用4位二进制码(BCD码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描确需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟进行分频。
对于整点报时功能,用户可以根据系统的硬件结构和自身的具体要求来设计。本实验设计的是当进行整点的倒计时5秒时,让LED来闪烁进行整点报时的提示。
三、实验内容
本实验的任务就是设计一个多功能数字钟,要求显示格式为 小时-分钟-秒钟,整点报时,报时时间为10秒,即从整点前10秒钟开始进行报时提示,喇叭开始发声,直到过整点时,在整点前5秒LED开始闪烁,过整点后,停止闪烁。系统时钟选择
19
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库14电气EDA实验指导书(1)(4)在线全文阅读。
相关推荐: