Verilog HDL 模拟 汽车尾灯自动控制系统

Verilog HDL 模拟 汽车尾灯自动控制系统

文章目录

    • Verilog HDL 模拟 汽车尾灯自动控制系统
      • 一、要求介绍:
      • 二、代码实现
        • 1、主模块的代码
        • 2、时钟分频模块
      • 三、效果展示

一、要求介绍:

设计一个汽车尾灯自动控制系统

要求:根据汽车行驶状态自动控制汽车尾灯
直行:尾灯不亮
右转:右侧尾灯亮而且按秒闪烁,左侧尾灯不亮
左转:左侧尾灯亮而且按秒闪烁,右侧尾灯不亮
临时停车或故障:两侧尾灯同时闪烁
倒车显示(可选)

注:用三色 LED 代表左右汽车尾灯,用拨码开关控制汽车行驶状态,还可以考虑用七段数码管和单色 LED 显示汽车状态

二、代码实现

1、主模块的代码

module car(rst, clk, start, left, right, error, back, 
led11, led12, led13, led21, led22, led23);input rst; // reset.input clk;// clock.input start;// strat the car.input left;// go left.input right;// go right.input error;// if error.input back;// go back.output reg led11;output reg led12;output reg led13;output reg led21;output reg led22;output reg led23;// lights.wire clkout1;wire clkout2;time_split #(.N(6000000),.WIDTH(23)) t1 (.clk(clk),.rst_n(rst),.clkout(clkout1));// time_split 1.// 2 Hz.time_split #(.N(3000000),.WIDTH(23)) t2 (.clk(clk),.rst_n(rst),.clkout(clkout2));// time_split 2.	// 4 Hz.always@(posedge clk)beginif(start)// the car has started.beginif(~left && ~right && ~error && back)// no other operators.begin		led11 <= 1;led12 <= 1;led13 <= 1;led21 <= 1;led22 <= 1;led23 <= 1;// all the lights are closed.end// four situations.elsebeginif(left)// turn left.beginled11 <= 1;led12 <= clkout1;// turn left.// 2 Hz.led13 <= 1;led21 <= 1;led22 <= 1;led23 <= 1;endif(right)// turn right.beginled11 <= 1;led12 <= 1;led13 <= 1;led21 <= 1;led22 <= clkout1;// turn right.// 2 Hz.led23 <= 1;endif(error)// if there is an error or stop the car.beginled11 <= clkout2;// if there is an error or stop the car.// 4 Hz.led12 <= 1;led13 <= 1;led21 <= clkout2;// if there is an error or stop the car.// 4 Hz.led22 <= 1;led23 <= 1;endif(~back)// if go backbeginled11 <= 1;led12 <= 1;led13 <= clkout1;// if go back// 2 Hz.led21 <= 1;led22 <= 1;led23 <= clkout1;// if go back// 2 Hz.endendendelse// do not start.beginled11 <= 1;led12 <= 1;led13 <= 1;led21 <= 1;led22 <= 1;led23 <= 1;// all the lights are closed.endendendmodule

2、时钟分频模块

// ********************************************************************
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<
// ********************************************************************
// File name    : divide.v
// Module name  : divide
// Author       : STEP
// Description  : clock divider
// Web          : www.stepfpga.com
// 
// --------------------------------------------------------------------
// Code Revision History : 
// --------------------------------------------------------------------
// Version: |Mod. Date:   |Changes Made:
// V1.0     |2017/03/02   |Initial ver
// --------------------------------------------------------------------
// Module Function:任意整数时钟分频module time_split (	clk,rst_n,clkout);input 	clk,rst_n;                       //输入信号,其中clk连接到FPGA的C1脚,频率为12MHzoutput	clkout;                          //输出信号,可以连接到LED观察分频的时钟//parameter是verilog里常数语句
//	parameter	WIDTH	= 3;             //计数器的位数,计数的最大值为 2**WIDTH-1
//	parameter	N	= 5;             //分频系数,请确保 N < 2**WIDTH-1,否则计数会溢出
//	parameter N=12000000;parameter WIDTH=24;reg 	[WIDTH-1:0]	cnt_p,cnt_n;     //cnt_p为上升沿触发时的计数器,cnt_n为下降沿触发时的计数器reg			clk_p,clk_n;     //clk_p为上升沿触发时分频时钟,clk_n为下降沿触发时分频时钟//上升沿触发时计数器的控制always @ (posedge clk or negedge rst_n )         //posedge和negedge是verilog表示信号上升沿和下降沿//当clk上升沿来临或者rst_n变低的时候执行一次always里的语句beginif(!rst_n)cnt_p<=0;else if (cnt_p==(N-1))cnt_p<=0;else cnt_p<=cnt_p+1;             //计数器一直计数,当计数到N-1的时候清零,这是一个模N的计数器end//上升沿触发的分频时钟输出,如果N为奇数得到的时钟占空比不是50%;如果N为偶数得到的时钟占空比为50%always @ (posedge clk or negedge rst_n)beginif(!rst_n)clk_p<=0;else if (cnt_p<(N>>1))          //N>>1表示右移一位,相当于除以2去掉余数clk_p<=0;else clk_p<=1;               //得到的分频时钟正周期比负周期多一个clk时钟end//下降沿触发时计数器的控制        	always @ (negedge clk or negedge rst_n)beginif(!rst_n)cnt_n<=0;else if (cnt_n==(N-1))cnt_n<=0;else cnt_n<=cnt_n+1;end//下降沿触发的分频时钟输出,和clk_p相差半个时钟always @ (negedge clk)beginif(!rst_n)clk_n<=0;else if (cnt_n<(N>>1))  clk_n<=0;else clk_n<=1;                //得到的分频时钟正周期比负周期多一个clk时钟endassign clkout = (N==1)?clk:(N[0])?(clk_p&clk_n):clk_p;      //条件判断表达式//当N=1时,直接输出clk//当N为偶数也就是N的最低位为0,N(0=0,输出clk_p//当N为奇数也就是N最低位为1,N(0=1,输出clk_p&clk_n。正周期多所以是相与
endmodule     

然后,我们进行管脚的分配:

在这里插入图片描述
接下来就是进行编译:

在这里插入图片描述
最后进行烧录:

在这里插入图片描述

三、效果展示

我们还是采用视频的方法来进行效果的展示与呈现:

(如果你喜欢的话就去点个赞吧)

https://www.bilibili.com/video/BV1JL411778U?spm_id_from=333.999.0.0

Verilog HDL 模拟 汽车尾灯自动控制系统

最后,谢谢大家的支持了啦。

喜欢的话就点个赞吧。

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

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

相关文章

交通信号灯设计

** 设计说明&#xff1a; ** 此信号灯主要应用在主路与次路相交的交叉口处&#xff0c;信号灯共分为4个不同的状态&#xff0c;利用Moore型状态机实现&#xff0c;用六个灯代表主路与次路的六个信号灯&#xff08;红、绿、黄&#xff09;&#xff0c;高电平时信号灯亮&#x…

图解在VC里使用graphics.h绘图(类似TC)

1 www.easyx.cn 下载 EasyX 库 我下的2014;解压后如下图&#xff1b; 2 根据自己的VC 版本进行安装 3 在控制台画一个圆 #include <graphics.h> // 引用图形库 #include <conio.h> void main() {initgraph(640, 480); // 初始化绘图窗口circle(200, 200, 100); //…

可编程逻辑器件之汽车仪表盘设计

一、 实验目标 熟练掌握 Verilog HDL 硬件描述语言&#xff0c;能够在实际工程中熟练使用Quartus II 软件进行可编程逻辑器件的基本开发&#xff0c; 能够熟练使用 Modelsim 软件进行系统的功能仿真验证&#xff0c; 能够正确的使用实验室各种实验仪器设备如示波器、信号发生器…

TeeChart替代品,MFC下好用的高速绘图控件-(Hight-Speed Charting)

相关链接&#xff1a; C GUI 绘图控件目录 MFC VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入VS2010 使用TeeChart绘图控件 - 之二 - 绘制图形&#xff08;折线图&#xff0c;柱状图&#xff09;TeeChart绘图控件 - 之三 - 提高绘图的效率MFC下好用的高速绘图控件-(Hi…

PLC设计交通信号灯

一、实验目的 1、熟练掌握AB的PLC编程软件CCW的使用 2、加深对PLC编程原理的理解 3、了解PLC的实际使用过程 二、实验内容及要求 三、实验程序及结果 实验程序: 1、首先设置一个启动按钮DI02&#xff0c;一个暂停复位按钮DI03&#xff0c;设置中间变量M0自锁电路。 2、当启动…

Qt自绘汽车仪表盘-1

一、效果图 二、效果图拆解 根据效果图上显示&#xff0c;最外层一共是13个小点&#xff0c;这些小点有点像子弹头一样&#xff0c;头部是尖的&#xff0c;底部是平的。靠近一层是表盘码值表&#xff0c;数字是的底部朝向表盘圆心。再近一层是一个渐变圆环&#xff0c;颜色有黑…

【车牌识别】模板匹配新能源、轿车、货车车牌识别【含GUI Matlab源码 2169期】

⛄一、模板匹配车牌识别简介 1 系统整体设计 车牌识别系统包括4个步骤:车牌定位 (包括识别图像中的车牌位置并将其分割) 、图像处理、字符分割与字符识别, 如图1所示。车牌定位的主要功能是从图像中可能包含车牌的候选区域中定位车牌区域;图像处理的功能是强化车牌关键特征;字…

做毕业设计,前端部分你需要掌握的6个核心技能

其实前端新手如果想要自己实现一套毕业设计项目并非简单的事,因为之前很多人一直还停留在知识点的阶段,而且管理系统和C端网站都需要开发,但现在需要点连成线了。所以在启动项目开发之前呢,针对前端部分,我列举一些非常必要的前端核心技能,希望你已掌握。 《Vue + Sprin…

【中创】ChatGPT技术被滥用,安全治理亟需政府、企业共同努力!

眼见为实&#xff1f;耳听为真&#xff1f;当心AI诈骗&#xff01; 只需要提供一张带脸的照片&#xff0c;就可以置换成明星&#xff0c;拟真度非常高&#xff0c;毫无违和感&#xff0c;一个软件就能直接将杨颖整成迪丽热巴&#xff01; 只要迪丽热巴的泪痣和嘴&#xff1f;没…

不信谣、不传谣?ChatGPT 技术滥用,浙江首个虚假制作团伙被抓获

根据绍兴公安群蓝星官方公众号的消息&#xff0c;绍兴上虞区公安分局最近成功打击了一个使用 ChatGPT技术制作虚假视频并在网络上散播谣言的犯罪团伙&#xff0c;已逮捕了3名嫌疑人。这是浙江省首个虚假视频制作团伙案件。 6月2日&#xff0c;上虞警方在网络巡查中注意到一个名…

医院在线预约挂号系统开源

小程序部分 开源地址&#xff1a;https://github.com/moyuc1966/Registerhttps://github.com/moyuc1966/Register 整体功能有&#xff1a; 用户注册部分、就诊人部分、就诊人管理、对预约记录&#xff0c;缴费充值退款记录的管理 意见反馈、医院公告&#xff08;文章&#x…

ChatGPT常用的指令(十二)——AI辅助医生、厨师、机械师

系列文章目录 内容翻译自&#xff1a;https://github.com/f/awesome-chatgpt-prompts&#xff0c;并加入自己的实践内容 1、 ChatGPT常用的提示语&#xff08;prompts&#xff09;系列一 2、 ChatGPT常用的提示语&#xff08;prompts&#xff09;系列二 3、 ChatGPT常用的提示语…

AI与医学辅助诊断

人工智能一词越来越频繁的出现在日常生活中。一种事物的时髦&#xff0c;必然有其背后的原因。而对于这样一个大的话题&#xff0c;从整体上来叙述总显得有些不接地气。作为跟AI沾过一些边的博主将以自己接触的方面来发表一点看法。 首先介绍一下&#xff0c;博主在研究生期间从…

马斯克亲吻美女机器人,AI时代要来了吗?

马斯克亲了一个机器人&#xff01; 你印象中的机器人是长什么样的呢&#xff1f;钢铁骨骼&#xff0c;机械四肢&#xff1f;一拳下去梆梆硬&#xff0c;我们自己还反而痛得飞起的材质&#xff1f;运气好的话有些机器人长得跟人类一样有脑袋有四肢、有个人体的大概轮廓&#xf…

Chat GPT原理

ChatGPT一经发布就在科技圈火得不行&#xff0c;这两天也是被传得神乎其神&#xff0c;听说它写得了代码、改得了 Bug&#xff0c;小说、段子统统不再话下&#xff01;那他到底是怎么训练成现在这样的呢&#xff1f;本文介绍李宏毅老师的分析。 那么接下来我们就来介绍Chat GPT…

探索 Apple 公司股价数据-Python实现

探索 Apple 公司股价数据 环境和数据题目代码详解这个例子比较适合数据挖掘入门一段时间。都还是比较基础的一些函数的应用。 环境和数据 这里使用的是pycharm2020.1.1 x64的 一般都是用的是Python 3.7.3 一些包就自己看着下 处理的数据 -appl_1980_2014.csv,如下图 题目 …

ChatGPT老板的核能公司要上市了,估值61亿

尚恩 发自 凹非寺量子位 | 公众号 QbitAI OpenAI CEO的核能公司&#xff0c;宣布上市&#xff01; Sam Altman旗下的核裂变初创公司Oklo Inc.已官宣&#xff0c;与空壳公司AltC Acquisition Corp.达成最终业务合并协议。 合并交易预计将于今年底或2024年初完成&#xff0c;合并…

【历史上的今天】2 月 24 日:乔布斯出生;苹果推出 Thunderbolt 接口;WhatsApp 创始人诞生

整理 | 王启隆 透过「历史上的今天」&#xff0c;从过去看未来&#xff0c;从现在亦可以改变未来。 今天是 2022 年 2 月 24 日&#xff0c;在 2010 年的今天&#xff0c;苹果公司宣布 iTunes 上面的音乐曲目下载量超过了 100 亿首&#xff0c;创下一大辉煌纪录&#xff1b;苹…

[苹果解密]创新是伟大公司诞生的源泉--Apple再度成为美国最大上市公司

近日不论美股还是A股&#xff0c;都是跌落的入水声一片&#xff0c;夹杂着小民的眼泪声和割肉声。但其中也发现了一个令人激动的消息&#xff1a;苹果已经成为美国最大上市公司&#xff01;大概在去年&#xff0c;苹果就已经是美股IT业最大市值的上市公司了&#xff0c;而今天&…

分析师意外下调评级为中性,苹果财报能否改变科技股走向?

新年的投资热情为苹果市值短暂达到3万亿美元铺平了道路&#xff0c;这是有史以来第一家跨过这一门槛的美国公司。尽管许多华尔街分析师和投资者对苹果的评级为看涨&#xff0c;但目前Seeking Alpha的量化评级给苹果的评级为中性(HOLD)。 苹果将于1月27日公布2022财年第一季度财…