实验四 FPGA 使用Verilog HDL设计电机运动控制程序

 实验目的

1.掌握使用GPIO控制直流电机的原理。

2.掌握使用Verilog HDL设计电机运动控制程序的方法。

 实验要求

采用Verilog HDL语言设计直流电机运动控制程序,实现直流电机的运动控制,并通过数码管显示当前输出的PWM波的占空比。通过按键或拔位开关可改变电机的转速及转向。

 实验过程

1.模块代码如下:

module exp4(input clk,input rst,input [3:0] speed,//档位input dir,//方向output reg out, //PWM波output wire DIR, //方向控制output reg [6:0] print, //数码管输出output reg [7:0] select, //位选//使能output reg CS,output reg RD,output reg WE,output reg [3:0] A1, output reg [4:0] A2,inout wire [7:0] data );reg [31:0] counts; //分频
reg [31:0] h = 1000; //占空比计数//数码管
reg [20:0] n;
reg [1:0] second;//初始化
assign DIR = dir;reg [7:0] D;
assign data = D;    parameter max = 10000;always @(posedge clk)beginif(!rst)begin CS <= 1;D <= 0;end    else beginCS <= 0; D <= 8'b00000001;endendalways@(posedge clk)begincase(speed)4'b0000:beginh <= 0;end4'b0001:beginh <= 1000;end4'b0010:beginh <= 2000;end4'b0011:beginh <= 3000;end4'b0100:beginh <= 4000;end4'b0101:beginh <= 5000;end4'b0110:beginh <= 6000;end4'b0111:beginh <= 7000;end4'b1000:beginh <= 8000;end4'b1001:beginh <= 9000;enddefault:beginh <= 10000;endendcaseendalways@(posedge clk)beginif(counts <= max)counts <= counts + 1;elsecounts <= 0;out <= (counts < h) ? 1 : 0;end
//十进制
always@(h)begincase(h/100)8'd100: n <= 21'b0110000_1111110_1111110;8'd90: n <= 21'b0000000_1111011_1111110;8'd80: n <= 21'b0000000_1111111_1111110;8'd70: n <= 21'b0000000_1110000_1111110;8'd60: n<= 21'b0000000_1011111_1111110;8'd50: n <= 21'b0000000_1011011_1111110;8'd40: n <= 21'b0000000_0110011_1111110;8'd30: n <= 21'b0000000_1111001_1111110;8'd20: n <= 21'b0000000_1101101_1111110;8'd10: n <= 21'b0000000_0110000_1111110;default: n <= 0;endcaseend
//位选
always@(posedge clk)beginif (second < 2)second <= second + 1;elsesecond <= 0;case (second)0:beginselect <= 8'b11111110;print <= n[6:0];end1:beginselect <= 8'b11111101;print <= n[13:7];end2:beginselect <= 8'b11111011;print <= n[20:14];enddefault:beginselect <= 0;print <= 0;endendcaseend
endmodule

 2.仿真代码如下:

`timescale 1ns / 1psmodule exp4simulation;reg clk;always #10 clk<=~clk;reg rst;reg [3:0] speed;reg dir;wire out;wire DIR;wire [6:0] print;wire [7:0] select;wire CS;wire RD;wire WE;wire [3:0] A1;wire [4:0] A2;wire [7:0] data;exp4 expt(.clk(clk),.rst(rst),.speed(speed),.dir(dir),.out(out),.DIR(DIR),.print(print),.select(select),.CS(CS),.RD(RD),.WE(WE),.A1(A1),.A2(A2),.data(data));initial beginclk = 0;rst = 1;speed = 4'b0011;dir = 0;speed=4'b0101;#400000speed=4'b1000;#400000$stop;end
endmodule

引脚绑定看我实验一

实验结果 

总结

无 

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

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

相关文章

ArcGIS Pro不能编辑ArcGIS10.X的注记的解决办法

​ 点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 一、问题 我们利用ArcGIS Pro编辑ArcGIS10.X系列软件生成的注记要素类的时候&#xff0c;会提示不…

Apache POI-Excel入门与实战

目录 一、了解Apache POI 1.1 什么是Apache POI 1.2 为什么要使用ApaChe POI 1.3 Apache POI应用场景 1.4 Apache POI 依赖 二、Apache POI-Excel 入门案例 2.1 写入Excel文件 2.2 读取文件 四、Apache POI实战 4.1 创建一个获取天气的API 4.2高德天气请求API与响应…

怎样使用 Juicer tools 的 dump 命令将.hic文件转换为交互矩阵matrix计数文件 (Windows)

创作日志&#xff1a; 万恶的生信…一个scHiC数据集没有提供处理好的计数文件&#xff0c;需要从.hic转换。Github一个个好长的文档看了好久才定位到 juicer tools 的dump命令&#xff0c;使用起来比想象中简单。 一、下载Juicer tools 注意&#xff1a;使用Juicer tools的前提…

邮件安全篇:邮件反垃圾系统运作机制简介

1. 什么是邮件反垃圾系统&#xff1f; 邮件反垃圾系统是一种专门设计用于检测、过滤和阻止垃圾邮件的技术解决方案。用于保护用户的邮箱免受未经请求的商业广告、诈骗信息、恶意软件、钓鱼攻击和其他非用户意愿接收的电子邮件的侵扰。 反垃圾系统的常见部署形式 2. 邮件反垃圾…

day6 io线程

获取终端输入的字符

深入探究 Golang 反射:功能与原理及应用

Go 出于通用性的考量&#xff0c;提供了反射这一功能。借助反射功能&#xff0c;我们可以实现通用性更强的函数&#xff0c;传入任意的参数&#xff0c;在函数内通过反射动态调用参数对象的方法并访问它的属性。举例来说&#xff0c;下面的bridge接口为了支持灵活调用任意函数&…

python一维表转二维表

一维表转二维表 import pandas as pd # 读取数据 product_df pd.read_csv(rD:\excelFile\practice\物品属性值一维表.csv,encodingutf-8) # print(product_df)# 将一维表转变二维 s pd.Series(list(product_df[属性值]),index[product_df[物品编号],product_df[属性名]]) …

GMSSL2.x编译鸿蒙静态库和动态库及使用

一、编译环境准备 1.1 开发工具 DevEco-Studio下载。 1.2 SDK下载 ​ 下载编译第三方库的SDK有两种方式&#xff0c;第一种方式从官方渠道根据电脑系统选择对应的SDK版本&#xff0c;第二种方式通过DevEco-Studio下载SDK。本文只介绍通过DevEco-Studio下载SDK的方式。 安装…

centos中zabbix安装、卸载及遇到的问题

目录 Zabbix简介Zabbix5.0和Zabbix7.0的区别监控能力方面模板和 API 方面性能、速度方面 centos7安装Zabbix(5.0)安装zabbix遇到的问题卸载Zabbix Zabbix简介 Zabbix 是一个基于 WEB 界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix 能监视各种网络参…

大数据架构体系演进

传统离线大数据架构 ​ 21世纪初随着互联网时代的到来&#xff0c;数据量暴增&#xff0c;大数据时代到来。Hadoop生态群及衍生技术慢慢走向“舞台”&#xff0c;Hadoop是以HDFS为核心存储&#xff0c;以MapReduce&#xff08;简称MR&#xff09;为基本计算模型的批量数据处理…

MATLAB实验五:MATLAB数据分析

1. 某线路上不同时间对应的电压如下表所示&#xff1a; 1&#xff09;用 3 次多项式拟合(polyfit)该实验曲线&#xff0c;要求绘制 2 原始采样 点&#xff0c;并在 1~8 范围内&#xff0c;使用时间间隔为 0.2 的数据绘制拟合曲线。 建立一个脚本文件&#xff1a;text5_1.m 如下…

黑马JavaWeb企业级开发(知识清单)01——前端介绍,HTML实现标题:排版

文章目录 前言一、认识web前端、HTML、CSS二、VS Code开发工具&#xff08;插件弃用问题&#xff09;三、HTML结构标签介绍1. 标签页标题< title >2. 图片标签< img >1) 常见属性2) src路径书写方式 3. 标题标签< h >4. 水平分页线标签< hr > 四、用Vs…

安全的备忘录工具有哪些 安全好用的备忘录

在这个数字化的时代&#xff0c;我们的生活中充斥着各种各样的信息&#xff0c;从工作计划到个人琐事&#xff0c;从账号密码到重要日期&#xff0c;这些信息都需要我们牢记。然而&#xff0c;人的记忆毕竟有限&#xff0c;于是&#xff0c;备忘录工具成为了我们日常生活中不可…

运行 npm install 报错-4048

我在已经开发中的项目&#xff0c;执行 npm install 命令时&#xff0c;出现报错&#xff1a; 并且之前在帖子中提到的报错类型还不一样&#xff08;帖子内容如下&#xff09;&#xff1a; 运行 npm run dev 总报错_运行npm run dev报错-CSDN博客 该报错内容主要为权限导致的&…

C# 编程机器人

右边写代码&#xff0c;控制左边机器人移动 冯腾飞/编程机器人 - Gitee.com

SpringBoot框架学习笔记(五):静态资源访问、Rest风格请求处理、配置视图解析器、接收参数的相关注解详解

1 WEB开发-静态资源访问 1.1 基本介绍 &#xff08;1&#xff09;只要静态资源放在类路径的以下目录&#xff1a;/static、/public、/resources、/META-INF/resources 可以被直接访问。maven项目的类路径即为main/resources目录--对应SpringBoot源码为WebProperties.java类 …

基于STM32的PM2.5监测系统设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 &#x1f91e;大家好&#xff0c;这里是5132单片机毕业设计&#xff0c;今天给大家分享的是《基于STM32的PM2.5监测系统设计》。 设备的详细功能见网…

Nginx 怎样处理请求的重试机制?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 Nginx 怎样处理请求的重试机制&#xff1f;一、为何需要重试机制&#xff1f;二、Nginx 中的重试机制原理三、Nginx 重试机制的配置参数四、Nginx 重试机制的实际…

GPT盘新增容量后如何扩容?

场景&#xff1a;一块5T的GPT盘&#xff0c;现有需求再加10T&#xff0c; 在虚拟化平台加10T盘后&#xff0c;机器不重启&#xff0c;执行命令 echo 1 > /sys/block/sdb/device/rescan刷新磁盘容量&#xff0c;可看到容量已刷出。 但执行fdisk /dev/sdb时&#xff0c;发现创…

《0基础》学习Python——第二十二讲__网络爬虫/<5>爬取豆瓣电影封面图

一、爬取豆瓣电影的图片封面 1、经过上节课我们所爬取的豆瓣电影的电影名、年份、国家、导演、主演、剧情&#xff0c;那么接下来我们将学习如何去爬取这些电影的图片&#xff0c;并将这些图片存放在文件夹中。 2、过程实现&#xff1a; 2.1、获取网页源码 首先还是和爬取电影名…