- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
八位七段动态数码管电路设计
实验四八位七段数码管动态显示电路的设计
一、 实验目的
1、了解数码管的工作原理。
2、学习七段数码管显示译码器的设计。
3、学习Verilog的CASE语句及多层次设计方法。
二、 实验原理
七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-1所示。
图4-1 静态七段数码管
由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
三、 实验内容
本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个开关做为输入,当四个开关置为一个二进制数时,在数码管上显示其十六进制的值。实验箱中的拨动开关与FPGA的接口电路,以及开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
数码管显示模块的电路原理如图4-2所示,表4-1是其数
码管的输入与FPGA的管脚连接表。
图4-2 数字时钟信号模块电路原理
信号名称 对应FPGA管脚名 说明 7SEG-A N4 七段码管A段输入信号 7SEG-B G4 七段码管B段输入信号 7SEG-C H4 七段码管C段输入信号 7SEG-D L5 七段码管D段输入信号 7SEG-E L4 七段码管E段输入信号 7SEG-F K4 七段码管F段输入信号 7SEG-G K5 七段码管G段输入信号 7SEG-DP H3 七段码管dp段输入信号 7SEG-SEL0 M4 七段码管位选输入信号 7SEG-SEL1 F3 七段码管位选输入信号 7SEG-SEL2 F4 七段码管位选输入信号
实验源代码:
module sev_seg_led( Clk,
Key_n,
Sev_Seg_Led_Data_n,
del
);
input Clk;
input [3:0] Key_n;
output [6:0] Sev_Seg_Led_Data_n;
output [2:0] del;
/*---------------------------------------------------*/
/*---------------------------------------------------*/
reg [6:0] Led1,Led2;
reg [31:0] Cout;
reg Clk_En;
reg [2:0] i;
reg [2:0] del;
always @(posedge Clk )
begin
Cout = (Cout == 32d50_000) ? 32d0 : (Cout + 32d1);
Clk_En = (Cout == 32d50_000) ? 1d1 : 1d0;
if(Clk_En) //==0.5s
begin
i = i + 3d1;
del=i;
end
end
always@(Key_n)
begin
case (Key_n)
4b0000: begin
Led1 = 7b0111_111;
Led2 = 7b0111_111;
end
4b0001:
begin Led1 = 7b0111_111;
Led2 = 7b0000_110;end
4b0010:
begin Led1 = 7b0111_111;
Led2 = 7b1011_011;end
4b0011:
begin Led1 = 7b0111_111;
Led2 = 7b1001_111;end
文档评论(0)