EDA设计课程实验报告数码管动态显示实验报告

  • 格式:docx
  • 大小:210.20 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA设计课程实验报告

实验题目:数码管动态显示实验

学院名称:

专业:电子信息工程

班级:

姓名:高胜学号

小组成员:

指导教师:

一、实验目的

学习动态扫描显示的原理;利用数码管动态扫描显示的原理编写程序,实现自己的学号的显示。

二、设计任务及要求

1、在SmartSOPC实验箱上完成数码管动态显示自己学号的后八个数字。

2、放慢扫描速度演示动态显示的原理过程。

三、系统设计

1、整体设计方案

数码管的八个段a,b,c,d,e,f,g,h(h是小数点)都分别连接到SEG0~SEG7,8个数码管分别由八个选通信号DIG0~DIG7来选择,被选通的数码管显示数据,其余关闭。如果希望8个数码管显示希望的数据,就必须使得8个选通信号DIG0~DIG7分别被单独选通,并在此同时,在段信号输入口SEG0~SEG7加上该对应数码管上显示的数据,于是随着选通信号的扫描就能实现动态扫描显示的目的。虽然每次只有1个数码管显示,但只要扫描显示速率足够快,利用人眼的视觉余辉效应,我们仍会感觉所有的数码管都在同时显示。

2、功能模块电路设

(1)输入输出模块框图(见图1)

图1

(2)模块逻辑表达(见表1)

表1(数码管显示真值表)

clk_1k dig seg

↑01111111 C0

↑10111111 F9

注:数码管显示为01180121

(3)算法流程图(见图2)

(4)Verilog源代码

module scan_led(clk_1k,d,dig,seg); //模块名scan_led

input clk_1k; //输入时钟

input[31:0] d; //输入要显示的数据output[7:0] dig; //数码管选择输出引脚

output[7:0] seg; //数码管段输出引脚

reg[7:0] seg_r; //定义数码管输出寄存器

reg[7:0] dig_r; //定义数码管选择输出寄存器reg[3:0] disp_dat; //定义显示数据寄存器

reg[2:0]count; //定义计数寄存器

assign dig = dig_r; //输出数码管选择

assign seg = seg_r; //输出数码管译码结果always @(posedge clk_1k) //定义上升沿触发进程

begin

count <= count + 1'b1;

end

always @(posedge clk_1k)

begin

case(count) //选择扫描显示数据3'd0:disp_dat = d[31:28]; //第一个数码管

3'd1:disp_dat = d[27:24]; //第二个数码管

3'd2:disp_dat = d[23:20]; //第三个数码管

3'd3:disp_dat = d[19:16]; //第四个数码管

3'd4:disp_dat = d[15:12]; //第五个数码管

3'd5:disp_dat = d[11:8]; //第六个数码管

3'd6:disp_dat = d[7:4]; //第七个数码管

3'd7:disp_dat = d[3:0]; //第八个数码管endcase

case(count) //选择数码管显示位3'd0:dig_r = 8'b01111111; //选择第一个数码管显示

3'd1:dig_r = 8'b10111111; //选择第二个数码管显示

3'd2:dig_r = 8'b11011111; //选择第三个数码管显示

3'd3:dig_r = 8'b11101111; //选择第四个数码管显示

3'd4:dig_r = 8'b11110111; //选择第五个数码管显示

3'd5:dig_r = 8'b11111011; //选择第六个数码管显示

3'd6:dig_r = 8'b11111101; //选择第七个数码管显示

3'd7:dig_r = 8'b11111110; //选择第八个数码管显示endcase

end

always @(disp_dat)

begin

case(disp_dat) //七段译码

4'h0:seg_r = 8'hc0; //显示0

4'h1:seg_r = 8'hf9; //显示1

4'h2:seg_r = 8'ha4; //显示2

4'h3:seg_r = 8'hb0; //显示3

4'h4:seg_r = 8'h99; //显示4

4'h5:seg_r = 8'h92; //显示5

4'h6:seg_r = 8'h82; //显示6

4'h7:seg_r = 8'hf8; //显示7

4'h8:seg_r = 8'h80; //显示8

4'h9:seg_r = 8'h90; //显示9

4'ha:seg_r = 8'h88; //显示a

4'hb:seg_r = 8'h83; //显示b

4'hc:seg_r = 8'hc6; //显示c

4'hd:seg_r = 8'ha1; //显示d

4'he:seg_r = 8'h86; //显示e

4'hf:seg_r = 8'h8e; //显示f

endcase

end

endmodule

四、系统调试

(1)仿真代码

相关主题