【FPGA——Cyclone Ⅳ学习笔记】五.数码管静态显示(EP4CE6F17C8)
一.原理图
通过第一张数码管的原理图可知,6根位选的信号线与PNP三极管相连然后再控制数码管的位选。当位选的I/O口为低电平
时,三极管导通,数码管对应的位被点亮。如果了解数码管的结构原理便可通过位选的电路结构知道,此数码管为共阳极,因此段选的I/O口为低电平
时,数码管对应的段会被点亮。
注:此开发板连接方式是位选的低位在左,高位在右。
二.代码和注释
此代码用于实现数码管的静态显示,即六个位显示的数字相同。每经过0.5s数码管显示加1(0~F)。
顶层结构图:
1.time_count.
定时器模块。
module time_count
(input sys_clk,input sys_rst_n,output reg change_flag //数码管改变信号,每0.5秒给出一个信号
);parameter max_count = 25'd25_000_000; //定时0.5sreg[24:0] count; //计数器always @(posedge sys_clk or negedge sys_rst_n)
beginif(sys_rst_n==0)beginchange_flag <= 1'b0;count <= 24'b0;end else if(count<max_count-1'b1)begincount <= count + 1'b1;change_flag <= 1'b0; end elsebegincount <= 24'b0;change_flag <= 1'b1; //0.5s给出高电平的数码管改变信号end
end
endmodule
2.smg_display.v
数码管显示模块:默认情况下6个位全部打开,并显示相同的数字
module smg_display
(input sys_clk,input sys_rst_n,input change_flag, //由定时器模块输出的数码管改变信号output reg [5:0] smg_wei, //数码管位选输出 output reg [7:0] smg_duan //数码管段选输出
);reg [4:0] num; //数码管显示的数(0~F)always @(posedge sys_clk or negedge sys_rst_n)
beginif(sys_rst_n==0)smg_wei <= 6'b111111;elsesmg_wei <= 6'b000000; //数码管6个位全部打开
endalways @(posedge sys_clk or negedge sys_rst_n)
beginif(sys_rst_n==0)num <= 4'h0;else if(change_flag)beginif(num < 4'hf)num <= num + 1'b1; //每个数码管改变信号到来显示数值加1elsenum <= 4'h0; //大于F后从0重新开始endelsenum <= num;
endalways @(posedge sys_clk or negedge sys_rst_n)
beginif(sys_rst_n==0)smg_duan <= 8'b0;else begincase(num) //数字所对应的段码4'h0 : smg_duan <= 8'b1100_0000;4'h1 : smg_duan <= 8'b1111_1001;4'h2 : smg_duan <= 8'b1010_0100;4'h3 : smg_duan <= 8'b1011_0000;4'h4 : smg_duan <= 8'b1001_1001;4'h5 : smg_duan <= 8'b1001_0010;4'h6 : smg_duan <= 8'b1000_0010;4'h7 : smg_duan <= 8'b1111_1000;4'h8 : smg_duan <= 8'b1000_0000;4'h9 : smg_duan <= 8'b1001_0000;4'ha : smg_duan <= 8'b1000_1000;4'hb : smg_duan <= 8'b1000_0011;4'hc : smg_duan <= 8'b1100_0110;4'hd : smg_duan <= 8'b1010_0001;4'he : smg_duan <= 8'b1000_0110;4'hf : smg_duan <= 8'b1000_1110;default : smg_duan <= 8'b1100_0000;endcaseend
end
endmodule
3.smg_test.v
主模块
module smg_test
(input sys_clk,input sys_rst_n,output [5:0] smg_wei, //位选输出output [7:0] smg_duan //段选输出
);parameter MAX_TIME = 25'd25_000_000; //定时器定时时间:25_000_000*0.02us=0.5s
wire change_flag; //数码管显示改变标记//实例化
time_count
#(.max_count (MAX_TIME)
)
u_time_count
(.sys_clk (sys_clk),.sys_rst_n (sys_rst_n),.change_flag (change_flag)
);smg_display u_smg_display
(.sys_clk (sys_clk),.sys_rst_n (sys_rst_n),.change_flag (change_flag),.smg_wei (smg_wei),.smg_duan (smg_duan)
);endmodule
引脚配置:
【FPGA——Cyclone Ⅳ学习笔记】五.数码管静态显示(EP4CE6F17C8)相关推荐
- 【FPGA——Cyclone Ⅳ学习笔记】一.LED流水灯(EP4CE6F17C8)
一.原理图 此黑金开发板的LED灯为共阴级连接,即I/O口输出高电平为亮. 二.Verilog HDL代码及讲解 Verilog的语法和C语言有些相似,如果有C的基础则更容易理解. `timescal ...
- 达芬奇PRO板的FPGA功能学习笔记(一)
达芬奇PRO板的FPGA功能学习笔记(一) 从编译到实现需要五个步骤: 1.写代码(verilog语言) 2.综合分析 3.写约束文件 约束文件主要是定义接口,命令第一个关键字代表命令的名称,其后的每 ...
- 数字设计FPGA应用学习笔记
转载https://blog.csdn.net/chinkwoyu/article/details/80259064 数字设计FPGA应用学习笔记 数字设计FPGA应用学习笔记 第一章 FPGA基础及 ...
- AC620FPGA学习笔记——BCD数码管
AC620FPGA学习笔记--BCD数码管 BCD数码管 硬件结构 整体框架 BCDDisplay模块 device_74hc595模块 代码部分 device_74hc595 BCDdecoder ...
- python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用
本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...
- Ethernet/IP 学习笔记五
Ethernet/IP 学习笔记五 Accessing data within a device using a non-time critical message (an explicit mess ...
- StackExchange.Redis学习笔记(五) 发布和订阅
StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...
- 吴恩达《机器学习》学习笔记五——逻辑回归
吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...
- 好程序员教程分析Vue学习笔记五
好程序员教程分析Vue学习笔记五,上次我们学习了Vue的组件,这次我们来学习一下路由的使用.在Vue中,所谓的路由其实跟其他的框架中的路由的概念差不多,即指跳转的路径. 注意:在Vue中,要使用路由, ...
最新文章
- 大数据的“平民化”、“流动化”、“商业化”推动企业升级与转型
- 刘未鹏谈如何学习算法
- python flask服务_在python中Flask配置服务
- 北斗导航 | GPS原理与接收机设计——青冥剑(金码、C/A码、P码)
- 内置函数(面向对象)
- C++ 自定义调试信息的输出
- 10分钟带你逆袭kafka之路
- 互联网晚报 | 9月13日 星期一 | 美赞臣中国易主春华资本;美团外卖首次公开骑手配送时间算法;北京教培行业开展同业互助...
- CSDN中巧用< >符号显示
- codevs3732==洛谷 解方程P2312 解方程
- Numpy系列(二)对数组按索引查询
- 如何制作频数折线图(详细)
- 机器学习算法应用_机器学习:定义,类型,算法,应用
- Linux文件打包成不同后缀的压缩文件
- kettle 简介及入门
- 读懂K线,就能理解期货股票交易中人性的期望、猜疑、幻想、贪婪、恐惧...
- 完美幻灯片设计的黄金法则
- JVM:JVM常见参数配置
- ubuntu命令行 播放音乐
- 练习------复仇者联盟(设置一个立体盒子)
热门文章
- iOS DLNA Cyberlink,PlatinumKit库完成DLNA功能
- 【涨知识】4大名妓、4大美女、4大才子、4大才女,太齐全了!
- Skipper自动获取gds里的pad坐标和label
- Linux IOCTL
- 【深度首发】畅圣科技毛骏:寻找打通银行和保险业数据的完美入口丨Xtecher 封面
- 剑指 Offer(专项突击版)Java 持续更新....
- deep nostalgia怎么用?Deep nostalgia操作方法步骤(图文教程)
- hyperledger fabric 1.0.5 分布式部署 (一)
- [DLX重复覆盖] hdu 3498 whosyourdaddy
- LeeCode LCP.13 寻宝【python】