共阳极管的代码_《手把手教你学FPGA》第三章设计实例
设计实例
3.1.1 流水灯设计
3.1.1 试验任务
8个LED灯依次顺序点亮,产生流水效果,相邻LED灯发光时间间隔大约为0.5s,人眼可以明显感知到这个间隔。
3.1.2 程序设计
1、设计思路
通过控制1/O口的高低电平可以实现LED发光或者熄灭,但是该怎样使用计数器实现延时呢?
实验要求相邻的LED时间间隔为0.5s,FPGA开发板的晶振为50MHz,所以有0.5s/20ns=25000000(224<25000000<225),需要25位计数位宽。当有效位计数达到最大值时,实现翻转(全1变全0,往高一位进1)。
本实验使用两个计数器。第一个计数器实现延迟间隔,计数器位宽为25bit,计数器命名为counter;第二个计数器控制哪个LED灯亮,计数器位宽为3bit,计数器命名count。
counter会一直持续计数,计数到最大值后,会翻转为0.当counter每计数至0的时候, count加1;当count计数到最大值后,也会翻转为0。
2、源代码
module LED(
input sys_clk,
input sys_rst_n,
output reg[7:0] LED
);
reg [2:0] count;
reg [24:0] counter;
always @(posedge sys_clk or negedge sys_rst_n) begin
if (sys_rst_n == 1'b0)
counter <= 25'b0;
else
counter <= counter + 25'b1;
end
always @(posedge sys_clk or negedge sys_rst_n) begin
if(sys_rst_n == 1'b0)
count <=3'b0;
else if(counter == 25'd0)
count <= count + 3'b1;
else ;
end
always @(posedge sys_clk or negedge sys_rst_n) begin
if(sys_rst_n == 1'b0)
LED <= 8'b0;
else begin
case(count)
0:LED = 8'b00000001;
1:LED = 8'b00000010;
2:LED = 8'b00000100;
3:LED = 8'b00001000;
4:LED = 8'b00010000;
5:LED = 8'b00100000;
6:LED = 8'b01000000;
7:LED = 8'b10000000;
default:LED = 8'b00000000;
endcase
end
end
endmodule
3.2 按键控制LED实验
3.2.1 按键控制LED简介
按键是最常用的输入设备,广泛用于单片机/FPGA/DSP的输入控制,操作人员可以通过按键输人数据或者命令,实现简单的人机对话。FPGA开发板使用的按键是一种常开型的开关,通常按键的两个触点不按下时处于断开状态,按下时处于闭合状态。
本实验使用按键控制发光二极管。发光二极管输入为高时发光,按键默认未按下时由于上拉电阻原因输出高电平,所以需要将按键输入取反后赋值给发光二极管输入端,即可控制发光二极管发光。按键未按下时LED灯处于熄灭状态,按键按下时LED灯处于点亮状态。
3.2.3 实验任务
一个按键控制两个发光二极管,按下按键的可以使两个LED灯发光,未按下时两个LED灯不发光。
3.2.4 程序设计
1、设计思路
输入为4个按键,输出为8个LED,按键按下时按键输入为低电平,而LED需要驱动为高电平才能亮,所以需要对按键输入进行取反,作为LED的输入。
2、源代码
module KeyToLED(
input [3:0] key,
output wire [7:0] LED
);
assign LED = ~{key,key};
endmodule
3.3 七段数码管静态显示实验
3.3.1 数码管简介
数码管由7个条状和一个点状发光二极管制成,通过七段发光二极管亮暗的不同组合,可以显示多种数字,字母以及其他符号。
2.LED数码管分类
(1)共阴极接法(也叫共阴数码管)
把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输人高电平的段发光二极管就导通点亮,而输入低电平的段发光二极管则不点亮。
(2)共阳极接法(也叫共阳数码管)
把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V,这样阴极端输人低电平的段发光二极管就导通点亮,而输入高电平的段发光二极管则不点亮。
数码管的逻辑图如图3.8所示,全部由发光二极管组合构成。
本实验使用的是共阳极数码管,例如:假如要显示数字1,则b、c接低电平。
共阳极管的代码_《手把手教你学FPGA》第三章设计实例相关推荐
- python中字典的value可以为任意对象_手把手教你学Python之字典
字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...
- python数据预测代码_手把手教你用Python玩转时序数据,从采样、预测到聚类丨代码...
原标题:手把手教你用Python玩转时序数据,从采样.预测到聚类丨代码 原作 Arnaud Zinflou 郭一璞 编译 时序数据,也就是时间序列的数据. 像股票价格.每日天气.体重变化这一类,都是时 ...
- python股票直方图代码_手把手教你用直方图、饼图和条形图做数据分析(Python代码)...
云栖号资讯:[点击查看更多行业资讯] 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 导读:对数据进行质量分析以后,接下来可通过绘制图表.计算某些特征量等手段进行数据的特征分析. 其中 ...
- python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...
- js如何运行python代码_手把手教你如何使用Python执行js代码
前言 各位小伙伴,大家好,这次咱们来说一下关于爬虫方向的一个知识,Python如何执行js,快来看看吧!!! 为什么要引出Python执行js这个问题? 都说术业有专攻,每个语言也都有自己的长处和短处 ...
- python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...
- python 金融分析代码_手把手教你以python为工具进行量化金融分析
量化交易是指借助现代统计学和数学的方法,利用计算机技术进行投资交易的方式. 对于从未接触过量化的人来说,想要了解量化到底是做什么的,关键掌握四部份的内容:Python基础知识.金融知识.技术指标.量化 ...
- python实现人脸识别代码_手把手教你用1行代码实现人脸识别——Python Face_recogni...
摘要: 1行代码实现人脸识别,1. 首先你需要提供一个文件夹,里面是所有你希望系统认识的人的图片.其中每个人一张图片,图片以人的名字命名.2. 接下来,你需要准备另一个文件夹,里面是你要识别的图片.3 ...
- 人脸识别的python实现代码_手把手教你用1行代码实现人脸识别 --Python Face_recognition...
# filename : digital_makeup.py # -*- coding: utf-8 -*- # 导入pil模块 ,可用命令安装 apt-get install python-Imag ...
- python英文词云代码_手把手教你制作 中英文 词云 | python demo
以前做词云的时候网上看的python做词云的坑都很多,耗了很多时间才高清楚wordcloud制作词云的精髓和脉络,整理如下. 相关文章 准备Mac环境下直接pip install wordclou ...
最新文章
- 手写Spring-ioc 注入 jdk反射实现 绝对满足你的好奇心哦 解决怎么我写了一个注解就可以直接注入了?
- GARFIELD@02-19-2005
- c语言函数的三种调用方式是什么?
- c#中Excel数据的导入、导出
- java class isassignablefrom_Java之——Class的isAssignableFrom方法
- import threading线程进程
- java esclient query_elasticsearch 口水篇(4)java客户端 - 原生esClient
- 游戏版号重新发放,开发者可以松口气了!| 畅言
- 一个正在被API驱动的互联网时代
- SQL的主键和外键详解!
- 凸包算法(Convex Hull Algorithm)
- STM32连接射频si4438模块
- Label mx条码软件导入Excel处理异常解决方法
- ubuntu14.04自定义系统默认xp字体
- python转码时出现'illegal multibyte sequen'错误
- 微软搜索战略全盘革新 计划数月内发布“Kiev”
- GN_1_在Ubuntu22.04安装GN
- Python练习题:根据一段单词,找出其中的最长单词
- RSA生成公私钥并加解密
- Java:多态乃幸福本源