欢迎来到天天文库
浏览记录
ID:37284495
大小:676.31 KB
页数:6页
时间:2019-05-20
《FPGA实验三 七段数码管静态与动态显示实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、得分:数字系统设计课程实验实验三七段数码管静态与动态显示实验项目三实验名称:七段数码管静态与动态显示实验目的:通过一个七段数码管显示器的设计,让学生掌握组合逻辑电路的设计方法;掌握组合逻辑电路的静态测试方法;再次基础上扩展了解数码管动态驱动方法并实现,要求在数码管上动态显示4个不同数字。实验类型:设计、验证实验学时:2学时每组人数:1人实验内容及方法:用七段数码显示器显示0-F16个数字。设计部分采用VHDL语言完成。在完成静态显示后思考如何完成动态显示。实验仪器设备:计算机,红芯开发板。注意:实验板所用的数码管是共阳极。原来PPT上讲的例子是共阴极。在程序编写时注意频率的问题。通过
2、数码管片选信号选通数码管,以控制输出。段选时0有效一、VHDL代码:--七段数码管静态与动态显-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.
3、std_logic_unsigned.all;---------------------------------------------------------entitydecl7isgeneric(DWIDTH:integer:=18);port(clk,en:instd_logic;led7s:outstd_logic_vector(6downto0);bitsele:outstd_logic_vector(3downto0));enddecl7;---------------------------------------------------------architect
4、urebehaveofdecl7issignalkey:std_logic_vector(3downto0);signaltemp:std_logic_vector(DWIDTH-1downto0);signalcount:std_logic_vector(1downto0);signalfp:std_logic;signalclkout:std_logic;------------------------------------------------------------------------------------------------------------------
5、begin---------------------------------------------------------P1:process(clk)--时钟进行18次分频(引脚上接的是50MHZ时钟);beginifen='1'thenifclk'eventandclk='1'thentemp<=temp+'1';elseNULL;endif;elseNULL;endif;endprocess;clkout<=temp(DWIDTH-1);---------------------------------------------------------P2:process(cl
6、kout)--分频后的时钟作为位选时钟;beginifclkout'eventandclkout='1'thenifcount="11"thencount<="00";elsecount<=count+"01";endif;elsenull;endif;endprocess;---------------------------------------------------------P3:process(count)--位选(片选)的同时跳转到段,位选(片选)0有效;begincasecountiswhen"00"=>bitsele<="1110";key<="0010";--数
7、码管最后一位显示2;when"01"=>bitsele<="1101";key<="0001";--数码管倒数第二位显示1;when"10"=>bitsele<="1011";key<="0100";--数码管第二位显示4;when"11"=>bitsele<="0111";key<="1001";--数码管第一位显示9;whenothers=>null;endcase;endprocess;--------------------------------
此文档下载收益归作者所有