基于FPGA的电风扇控制器verilog,视频/代码

news2024/11/21 2:27:26

名称:基于FPGA的电风扇控制器verilog

软件:QuartusII

语言:Verilog

代码功能:

基于FPGA的电风扇控制器

 运用 EDA SOPO实验开发系统设计一个基于FPGA的电风扇定时开关控制器,能实现手动和自动模式之间的切换。要求: 

(1)KI为电源开关由电源开关控制电风扇的开关,即当K1为高电平“1”时,风扇工作:K1为低 电平“0”时,风扇停止工作 

(2)K2为模式选择开关 用户可以选择工作模式,由模式切换开关实现手动或自动模式。K2为“0”时手 动工作,K2为“1”时自动工作 

(3)K3为时间选择开关 自动模式时,由开关选择自动工作时间,K3为“0”时,工作时间为20分钟 K3为“1”时,工作时间为30分钟:工作时间结束时,风扇自动关闭。手动模式时 开关无效

(4)K4为风扇摇头选择开关 K4为“0”时,风扇不摇头,K4为“1”时,风扇摇头

(5)四个数码管 在手动工作时,四个数码管显示“9999,在自动工作时,左边两位显示总时间

(6)发光二极管D1,D2 D1表示电风扇,电风扇工作时,输高电平,二极管亮,电风扇不工作时,输出 低电平,二极管不亮:D2是电风扇摇头指示灯,摇头时点亮。 

电风扇.png

演示视频:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=214

FPGA代码Verilog/VHDL代码资源下载网:www.hdlcode.com

代码下载:

电风扇基于FPGA的电风扇控制器verilog(代码在文末付费下载)软件:QuartusII语言:Verilog代码功能:基于FPGA的电风扇控制器 运用 EDA SOPO实验开发系统设计一个基于FPGA的电风扇定时开关控制器,能实现手动和自动模式之间的切换。要求: (1)KI为电源开关由电源开关控制电风扇的开关,即当K1为高电平“1”时,风扇工作:K1为低 电平“0”时,风扇停止工作 (2)K2名称:基于FPGA的电风扇控制器verilog(代码在文末付费下载)软件:QuartusII语言:Verilog代码功能:基于FPGA的电风扇控制器 运用 EDA SOPO实验开发系统设计一个基于FPGA的电风扇定时开关控制器,能实现手动和自动模式之间的切换。要求: (1)KI为电源开关由电源开关控制电风扇的开关,即当K1为高电平“1”时,风扇工作:K1为低 电平“0”时,风扇停止工作 (2)K2icon-default.png?t=N7T8http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=214

部分代码展示

module electric_fan(
input clk,//1000Hz
input K1,//电源,1时工作,0时停止
input K2,//模式,0时手动,1时自动
input K3,//时间选择,自动模式,0时20分钟,1时30分钟
input K4,//摇头选择,1时摇头
output D1,//工作指示
output D2,//摇头指示
//手动显示9999,自动显示左总时间,右剩余时间
output [7:0] DS1,
output [7:0] DS2,
output [7:0] DS3,
output [7:0] DS4
);
wire clk_1Hz;
wire [3:0] data1;
wire [3:0] data2;
wire [3:0] data3;
wire [3:0] data4;
//分频模块
div i_div(
. clk(clk),//1000Hz
. clk_1Hz(clk_1Hz)
);
//控制模块
control i_control(
. clk_1Hz(clk_1Hz),//1Hz
. K1(K1),//电源,1时工作,0时停止
. K2(K2),//模式,0时手动,1时自动
. K3(K3),//时间选择,自动模式,0时20分钟,1时30分钟
. K4(K4),//摇头选择,1时摇头
. D1(D1),//工作指示
. D2(D2),//摇头指示
//手动显示9999,自动显示左总时间,右剩余时间
. data1(data1),
. data2(data2),
. data3(data3),
. data4(data4)
);
//译码模块
display i_display(
. clk(clk),//1000Hz
. data1(data1),
. data2(data2),
. data3(data3),
. data4(data4),
//手动显示9999,自动显示左总时间,右剩余时间
. DS1(DS1),
. DS2(DS2),
. DS3(DS3),
. DS4(DS4)
);
endmodule

设计文档:

设计文档.doc

1. 工程文件

2. 程序文件

3. 程序编译

4. 管脚分配

5. RTL图

6. 仿真图

整体仿真图

分频模块仿真图

控制模块仿真图

显示模块仿真图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1137597.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PLM如何与MES管理系统协同工作

产品生命周期管理(PLM)和MES生产管理系统是现代企业中不可或缺的生产管理工具。它们分别负责产品的设计和制造过程,对于提高企业的生产效率和产品质量具有重要作用。然而,要实现高效的生产管理,PLM和MES需要进行协同工…

Python---练习:使用for循环嵌套实现打印九九乘法表

思考: 外层循环主要用于控制循环的行数,内层循环用于控制列数。 基本语法: # 外层循环 for i in 序列1:# 内层循环for j in 序列2:循环体 序列1 序列2 ,就可以是range(1, 10) -----也就是从1,到9。 参考while循环…

笔记43:ResNet 结构详解

笔记本地地址:D:\work_file\DeepLearning_Learning\03_个人笔记\2.图像处理任务\ResNet网络学习 a a a a a a a a a a a a a a a a a a a a a a a a a a a a a

DTO、VO、BO、PO等各种XO汇总

贫血模型和富领域模型 1.POJO对象(Plain Old Java Object) Plain Old Java Object(POJO),它的本来含义是指一个常规的、不受任何框架、平台的约束和限制的Java对象。可以认为,如果一个模块定义的对象皆为POJO,那么除了依赖JDK,它…

聚团队之力,学领军之道——麒麟信安组织开展卓越领导力主题培训

为提升高层次管理人员的领导力水平,为企业上市后高速发展以及高效运营提供更好支撑,日前,麒麟信安组织开展卓越领导力主题培训,公司领导层、各部门负责人以及各项目、技术骨干共同参加。 麒麟信安总裁刘文清作开训致辞。刘总指出&…

Python---练习:使用for循环实现用户名+密码认证

案例: 用for循环实现用户登录 ① 输入用户名和密码 ② 判断用户名和密码是否正确(usernamelaowang,passwordlw123) ③ 登录仅有三次机会,超过3次会报错 思考: 用户登陆情况有3种: ① 用户名错误(此时…

Ctrl+Alt+L或Ctrl+Alt+M或Ctrl+Alt+S热键无法启用(华硕天选)与armoury creat冲突

其实就是冲突了,但是就是检测不到(spy测不到,其他哪个open啥啥啥的直接进不去内核模式)。然后去找了个按键检测,发现都是找不到按键按下的事件,能检测到按键抬起事件,判断要么是应用占用&#x…

常见面试题-MySQL专栏(一)

为什么 mysql 删了行记录,反而磁盘空间没有减少? 答: 在 mysql 中,当使用 delete 删除数据时,mysql 会将删除的数据标记为已删除,但是并不去磁盘上真正进行删除,而是在需要使用这片存储空间时&…

vue源码分析(二)——vue的入口发生了什么

文章目录 前言(1)vue 项目构建的时候,通过package.json文件看到构建入口(2) 构建入口页面:导入同级模块config的getAllbuilds方法(3) 通过传入参数中的builds对象使用map获取&#x…

Python---for循环嵌套

for循环嵌套,就是一个for循环里面嵌套另外一个for循环的写法。 当循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。 基本语法: # 外层循环 for i in 序列1:# 内层…

Typecho 添加 Emoji 表情报错「解决方案」

Typecho 添加 Emoji 表情报错 文章目录 Typecho 添加 Emoji 表情报错前言Emoji 表情utf8mb4 与 UTF8 解决方案[1] 数据库编码更改[2] 数据库配置文件更改 前言 Typecho 添加 Emoji 表情不支持,报错 Database Query Error Emoji 表情 Emoji 就是表情符号&#xff0c…

VMware Workstation提示:另一个程序已锁定文件的一部分,进程无法访问,删除.lck文件夹和文件

一、如图 二、原因 因为虚拟机在运行的时候,会锁定文件,防止被修改,而如果系统突然崩溃,虚拟机就来不急把已锁定的文件解锁。当你再次启动虚拟机的时候,会提示这类错误信息。 三、解决 进入虚拟机文件夹,…

node模块导出引入两种方式和npm包管理

模块化的好处 在 Node.js 中每个文件都被当做是一个独立的模块,模块内定义的变量和函数都是独立作用域的,因为 Node.js 在执行模块代码时,将使用如下所示的函数封装器对其进行封装 (function(exports,require,module,__filename,_dirname){//…

JavaScript-2-菜鸟教程

字符串 可以使用 索引 位置访问字符串中的每个字符 可以使用内置属性 length 来计算字符串的长度 var txt "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var sln txt.length;<script>var x "John"; // x是一个字符串// 使用 new 关键字将字符…

p5.js 变换操作

本文简介 带尬猴&#xff0c;我嗨德育处主任 在 canvas 里&#xff0c;变换是基础功能。很多基于 canvas 封装的库都有这功能&#xff0c;比如 《Fabric.js 变换视窗》。 变换是针对画布进行全局调整的一种能力&#xff0c;它可以对画布进行全局移动、缩放、旋转等操作。 p5…

hibernate源码(2)--- springboot-jpa是如何引入的

starter引入 要想看jpa是如何将hibernate引入容器&#xff0c;首先要看的是 spring-boot-starter-data-jpa 如何引入依赖&#xff1a; 如果注意的话&#xff0c;starter的包内容其实没有什么实质的内容&#xff0c;关键是pom里的依赖 pom中规定了各依赖和依赖的版本&#xf…

python 过滤曲线噪点(滤波)

import numpy as np import matplotlib.pyplot as plt from scipy import signal# 生成示例信号 t np.linspace(0, 1, 1000) x np.sin(2 * np.pi * 5 * t) np.sin(2 * np.pi * 20 * t) np.random.randn(len(t)) * 0.2# 设计低通滤波器 order 3 # 滤波器阶数 cutoff_freq …

Linux--进程等待

1.什么是进程等待 1.通过系统调用wait/waitid,来对子进程进行进行检测和回收的功能。 2.为什么有进程等待 1.对于每个进程来说&#xff0c;如果子进程终止&#xff0c;父进程没有停止&#xff0c;就会形成僵尸进程&#xff0c;导致内存泄露&#xff0c;为了防止僵尸进程的形成…

【组合计数】CF1866 H

Problem - H - Codeforces 题意 思路 不知道这种trick叫什么&#xff0c;昨天VP刚遇到过 设 f[x] 为恰好有一个最大值为 x 的方案数&#xff0c;我们要求这个&#xff0c;那就设 g[x] 为 至少有一个最大值为 x 的方案数&#xff0c;那么答案就是 f[x] g[x] - g[x - 1] 这里…

等高度结构的顺序一致性

3( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 4( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 5( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 做3个网络,让网络的输入都只有3个节点&#xff0c; 一个网络的训练集有3张图片&#xff0c;一个网络的训练集有4张图片&#xff0c;一个网络的训练集有…