找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9603|回复: 1
打印 上一主题 下一主题
收起左侧

七段数码管显示电路

[复制链接]
跳转到指定楼层
楼主
本帖最后由 WeTiGY 于 2016-11-25 23:26 编辑

实验四  七段数码管显示电路
一、实验目的
实现十六进制计数显示。
二、硬件需求
    EDA/SOPC实验箱一台。
三、实验原理
七段数码管分共阳极与共阴极两种。共阳极数码管其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极数码管则与之相反,它是将发光二极管的阴极短接后作为公共阴极,当驱动信号为高电平、公共阴极接低电平时,才能发光。图2-13为共阳极数码管和共阴极数码管的内部结构图。

2-13  共阳极数码管和共阴极数码管的内部结构图
用七段数码管除了可以显示0~9的阿拉伯数字外,还可以显示一些英语字母。下表是常见的字母与7段显示关系(共阴极数码管)。
  
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.gif        
  
字母
  
a
b
c
d
e
f
g
A
0
0
0
1
0
0
0
B
1
1
0
0
0
0
0
C
0
1
1
0
0
0
1
D
1
0
0
0
0
1
0
E
0
1
1
0
0
0
0
F
1
0
0
0
1
1
1
H
0
1
1
0
1
1
1
四、实验内容
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.giffile:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif编写一个0F轮换显示的电路注意:选用实验箱中的共阳数码管DP1AFPGAP25引脚连接50MHz时钟。实验时为了便于观察,要将50MHz时钟经过分频得到1Hz时钟第一个为分频模块:
  1. module divider_module
  2. (
  3.        CLK,f_Out
  4. );

  5.        input CLK;
  6.        output f_Out;
  7.    

  8.        parameter T1s=26'd50_000_000;
  9.        reg [25:0]Count1;
  10.    
  11.       always @ ( posedge CLK )
  12.                  if( Count1 == T1s)
  13.                       Count1 <= 26'd0;
  14.                 else
  15.                       Count1 <= Count1 + 1'b1;
  16.         
  17.        reg rf_Out;        
  18.        always @ ( posedge CLK )
  19.                    if( Count1 >= 26'd0 && Count1 <= 26'd25_000_000)
  20.                         rf_Out <= 1'b0;
  21.                   else
  22.                         rf_Out <= 1'b1;     
  23.       assign f_Out = rf_Out;

  24. endmodule
复制代码


第二个为数码管模块:
  1. module hex_module
  2. (
  3.    f_out,hex
  4. );
  5.    input  f_out;
  6.    output [6:0] hex;
  7.         
  8.    parameter _0=7'b0000001, _1=7'b1111001, _2=7'b0010010, _3=7'b0000011, _4=7'b1001100, _5=7'b0100100,
  9.              _6=7'b0100000, _7=7'b0001111, _8=7'b0000000, _9=7'b0000100,  _A=7'b0001000, _B=7'b1100000,
  10.              _C=7'b0110001, _D=7'b1000010, _E=7'b0110000, _F=7'b0111000;
  11.         
  12.     reg [4:0] i;
  13.     reg [6:0] rhex;
  14.     always@(posedge f_out)
  15.            case(i)
  16.              5'd0 : begin rhex<=_0; i<=i+1'b1; end    //0
  17.              5'd1 : begin rhex<=_1; i<=i+1'b1; end    //1
  18.              5'd2 : begin rhex<=_2; i<=i+1'b1; end    //2
  19.              5'd3 : begin rhex<=_3; i<=i+1'b1; end    //3
  20.              5'd4 : begin rhex<=_4; i<=i+1'b1; end    //4
  21.              5'd5 : begin rhex<=_5; i<=i+1'b1; end    //5
  22.              5'd6 : begin rhex<=_6; i<=i+1'b1; end    //6
  23.              5'd7 : begin rhex<=_7; i<=i+1'b1; end    //7
  24.              5'd8 : begin rhex<=_8; i<=i+1'b1; end    //8
  25.              5'd9 : begin rhex<=_9; i<=i+1'b1; end    //9
  26.              5'd10: begin rhex<=_A; i<=i+1'b1; end    //A
  27.              5'd11: begin rhex<=_B; i<=i+1'b1; end    //B
  28.              5'd12: begin rhex<=_C; i<=i+1'b1; end    //C
  29.              5'd13: begin rhex<=_D; i<=i+1'b1; end    //D
  30.              5'd14: begin rhex<=_E; i<=i+1'b1; end    //E
  31.              5'd15: begin rhex<=_F; i<=i+1'b1; end    //F
  32.                  
  33.            default: begin rhex<=_F; i<=1'b0; end     //F
  34.            endcase
  35.                
  36.    assign hex=rhex;

  37. endmodule
复制代码


第三个为顶层模块,即将分频模块和数码管模块连接一起
  1. module top_module
  2. (
  3.   CLK,hex
  4. );
  5.   input  CLK;
  6.   output [6:0] hex;
  7.   
  8.   wire f_out;
  9.   divider_module u1
  10.   (
  11.     .CLK(CLK),
  12.          .f_out(f_out)
  13.   );
  14.   
  15.   hex_module u2
  16.   (
  17.     .f_out(f_out),
  18.          .hex(hex)
  19.   );
  20.   
  21. endmodule
复制代码



注:仿真使用20分频
仿真图:




分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:347509 发表于 2018-6-8 12:22 | 只看该作者
如果是20mhz分频为1hz 第一段代码应该怎么修改??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表