首页 FPGA入门数码管动态显示

FPGA入门数码管动态显示

举报
开通vip

FPGA入门数码管动态显示 艾米电子工作室—让开发变得更简单 http://www.amy-studio.com FPGA 入门系列实验教程——数码管动态显示 1. 实验任务 实现开发板上 8 个数码管动态显示 0~7。通过这个实验,掌握采用 Verilog HDL 语言编程实现 7 段数码管显示译码器以及数码管动态扫描显示的方法。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8 增强版开发套件。 软件实验环境为 Quartus II 8.1 开发软件。 3. 实验原理 由于LED静态显示需要占用较多...

FPGA入门数码管动态显示
艾米电子工作室—让开发变得更简单 http://www.amy-studio.com FPGA 入门系列实验教程——数码管动态显示 1. 实验任务 实现开发板上 8 个数码管动态显示 0~7。通过这个实验,掌握采用 Verilog HDL 语言编程实现 7 段数码管显示译码器以及数码管动态扫描显示的方法。 2. 实验环境 硬件实验环境为艾米电子工作室型号 EP2C8Q208C8 增强版开发套件。 软件实验环境为 Quartus II 8.1 开发软件。 3. 实验原理 由于LED静态显示需要占用较多的I/O口,且功耗较大,因此在大多数场合通 常不采用静态显示,而采用动态扫描的方法来控制LED数码管的显示。动态 显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位 数码管有效。点亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各 位数码管送出字形码和相应的位选,只要扫描显示速度够快,利用发光管的 余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态 显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示 电路中的。动态扫描显示时刷新频率最好大于50HZ,即没显示一轮的时间不 超过20ms,每个数码管显示时间不能太长也不能太短,时间太长会影响刷新 率,导致总体显示呈现闪烁的现象,时间太短发光二极管的电流导通时间也 就短,会影响总体的显示亮度。一般控制在1ms左右最佳。 4. 实验程序 module scan_led(clk,rst,sm_seg,sm_bit); input clk,rst; output[7:0] sm_seg; //数码管段选择输出 output[7:0] sm_bit; //数码管位选择输出 reg[7:0] sm_seg; //数码管段选择输出寄存器 reg[7:0] sm_bit; //数码管位选择输出寄存器 艾米电子工作室—让开发变得更简单 http://www.amy-studio.com reg[15:0] cnt_scan;//扫描频率计数器 reg[4:0] dataout_buf; always@(posedge clk or negedge rst) begin if(!rst) begin cnt_scan<=0; end else begin cnt_scan<=cnt_scan+1'b1; end end always @(cnt_scan) begin case(cnt_scan[15:13]) 3'b000 : sm_bit = 8'b1111_1110; 3'b001 : sm_bit = 8'b1111_1101; 3'b010 : sm_bit = 8'b1111_1011; 3'b011 : sm_bit = 8'b1111_0111; 3'b100 : sm_bit = 8'b1110_1111; 3'b101 : sm_bit = 8'b1101_1111; 3'b110 : sm_bit = 8'b1011_1111; 3'b111 : sm_bit = 8'b0111_1111; default : sm_bit = 8'b1111_1110; endcase end 艾米电子工作室—让开发变得更简单 http://www.amy-studio.com always@(sm_bit) begin case(sm_bit) 8'b1111_1110: dataout_buf=0; 8'b1111_1101: dataout_buf=1; 8'b1111_1011: dataout_buf=2; 8'b1111_0111: dataout_buf=3; 8'b1110_1111: dataout_buf=4; 8'b1101_1111: dataout_buf=5; 8'b1011_1111: dataout_buf=6; 8'b0111_1111: dataout_buf=7; default: dataout_buf=8; endcase end always@(dataout_buf) begin case(dataout_buf) 4'h0: sm_seg = 8'hc0; // "0" 4'h1 : sm_seg = 8'hf9; // "1" 4'h2 : sm_seg = 8'ha4; // "2" 4'h3 : sm_seg = 8'hb0; // "3" 4'h4 : sm_seg = 8'h99; // "4" 4'h5 : sm_seg = 8'h92; // "5" 4'h6 : sm_seg = 8'h82; // "6" 4'h7 : sm_seg = 8'hf8; // "7" 4'h8 : sm_seg = 8'h80; // "8" 4'h9 : sm_seg = 8'h90; // "9" 4'ha : sm_seg = 8'h88; // "a" 4'hb : sm_seg = 8'h83; // "b" 4'hc : sm_seg = 8'hc6; // "c" 4'hd : sm_seg = 8'ha1; // "d" 4'he : sm_seg = 8'h86; // "e" 4'hf : sm_seg = 8'h8e; // "f" endcase end endmodule 艾米电子工作室—让开发变得更简单 http://www.amy-studio.com 5. 实验步骤 (1)建立新工程项目: 打开 Quartus II 软件,进入集成开发环境,点击 File→New project wizard 建立一个工程项目 scan_led。 (2)建立文本编辑文件: 点击 File→New..在该项目下新建 Verilog HDL 源程序文件 scan_led.v, 输入试验程序中的源程序代码保存后选择工具栏中的 按钮启动编 译,若在编译中发现错误,则找出并更正错误,直到编译成功为止。 (3)选择器件型号及引脚的其他设置: 选择所用的 FPGA 器件----EP2C8Q208C8,以及进行一些配置。选择配置 器件 EPCS4,设置不需要使用的 IO 功能为 As inputs,tri-stated。点击两 次 ok,回到主界面。 (4)配置 FPGA 引脚: 在 Quartus II 软件主页面下,选择 Assignments→Pins 或选择工具栏上 按钮,配置 rst,sm_seg,sm_bit 以及 clk 的引脚。 (5)编译工程项目: 在 Quartus II 主页面下,选择 Processing→Start Compilation 或点击工具 栏上的 按钮启动编译,直到出现“Full Compilation Report”对话框,点 击 OK 即可。 (6)波形仿真:由于本次试验比较简单,波形仿真将在后面实验详细讲解。 (7)下载设计程序.sof 文件到目标 FPGA,下载采用 JTAG 方式(由于配置芯 片擦写次数有限,实验均采用 JTAG 下载方式)。 6. 实验现象 开发板 8 个数码管动态显示 0~7。大家可以试着改写程序让数码管动态显示 其他任意数字。 艾米电子工作室—让开发变得更简单 http://www.amy-studio.com 实验教程配套开发板一览: 了解详情登陆淘宝店铺: 艾米电子淘宝店:http://shop33537127.taobao.com/
本文档为【FPGA入门数码管动态显示】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_635022
暂无简介~
格式:pdf
大小:331KB
软件:PDF阅读器
页数:5
分类:工学
上传时间:2011-06-29
浏览量:115