欢迎来到天天文库
浏览记录
ID:58427422
大小:680.50 KB
页数:7页
时间:2020-09-03
《实验二 用七段LED显示8421BCD码的VHDL设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、EDA实验报告(二)实验地点:211大楼606&609任课教师:窦衡学生姓名:李志学号:实验二用七段LED显示8421BCD码的VHDL设计一、预习内容1、结合附录一了解EDA实验箱的原理;2、七段LED显示原理;3、怎样用VHDL实现8421BCD码在七段LED数码管上显示。二、实验目的实验目的1.了解VHDL进行EDA设计的基本步骤;2.学会用MAX+PLUSⅡ进行时序仿真;3.了解EDA实验箱的基本功能;三、实验器材验器材PC机一台、EDA教学实验系统一台、下载电缆一根(已接好)、导线若干四、实验
2、内容1.用VHDL设计具有清除端、使能端,计数范围为0~999的计数器设计。输出为8421BCD码;2.用VHDL设计七段LED译码显示电路;3.MAX+PLUSⅡ进行时序仿真;4.下载该程序验证程序是否正确;5.请事先准备一个软盘或优盘,本实验程序需要保存,后面实验需要用到。五、实验步骤1、写出七段译码器和具有清除端、使能端,计数范围为0~999的计数器的VHDL源程序,编译通过;2、进行波形仿真;3、选定器件、映射管脚、编译、下载。六、实验原理和设计1、8421BCD编码在数字系统中常用四位二进制代
3、码来表示一位十进制数字0、1、2、﹒﹒﹒、9,称之为二-十进制代码,即BCD码。将十进制数编成BCD码的电路,称为称二-十进制(BCD)编码器。二-十进制编码的方案很多,若BCD编码器采用8421编码方案,称为8421BCD编码器。2、七段译码器下图为译码器逻辑图,请按图进行连线。其中A,B,C,D接拨号开关,a,b,c,d,e,f,g接数码显示接口,管脚映射均为I/O口,映射后,通过拨号开关改变输入二进制码,则输出数码管上显示相应的数值。译码器真值表数值输入输出ABCDabcdefg000001111
4、110100010110000200101101101300111111001401000110011501011011011601101011111701111110000810001111111910011111011A10101110111B10110011111C11001001110D11010111101E11101001111F111110001113、实现框图4、VHDL源程序:--0-999BCD码计数器描述LIBRARYIEEE;useieee.std_logic_1164.all;
5、useieee.std_logic_unsigned.all;EntityCOUNT100IsPort(Clk,Rst,En,Load:instd_logic;data1,data2,data3:instd_logic_vector(3downto0);conl,conm,conh:bufferstd_logic_vector(3downto0));EndCOUNT100;ArchitectureCOUNTofCOUNT100IsBeginprocess(Rst,Clk)beginifRst='1'th
6、enconl<="0000";conm<="0000";conh<="0000";elsifrising_edge(Clk)thenifEn='1'thenconl<=conl;conh<=conh;conm<=conm;elsifLoad='1'thenconl<=data1;conm<=data2;conh<=data3;elsif(conl="1001"andconm="1001"andconh="1001")thenconl<="0000";conm<="0000";conh<="0000";e
7、lsifconl="1001"thenifconm="1001"thenconl<="0000";conm<="0000";conh<=conh+1;elseconm<=conm+1;conl<="0000";endif;elseconl<=conl+1;endif;endif;endprocess;EndCOUNT;--七段译码器描述libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityseven_cod
8、eisport(count:instd_logic_vector(3downto0);scode:outstd_logic_vector(6downto0));endseven_code;architecturebehaveofseven_codeisbeginprocess(count)begincasecountiswhen"0000"=>scode<="";when"0001"=>scode<="";when"0010"=>scode
此文档下载收益归作者所有