汽车尾灯控制电路代码
汽车尾灯发出的信号主要是给后面行驶汽车的司机看的,通常汽车驾驶室有刹车开关(HAZ)、左转弯开关(LEFT)和右转弯开关(RIGHT),司机通过操作这3个开关给出车辆的行驶状态。假设在汽车尾部左、右两侧各有3个指示灯,分别用LA、LB、LC、RA、RB、RC表示。这些灯的亮、灭规律如下:
1)汽车正常行驶时,尾部两侧的6个灯全部熄灭。
2)刹车时,汽车尾灯工作在告警状态,所有6个灯按一定频率闪烁。
3)左转弯时,左侧3个灯轮流顺序点亮,其规律如图(a)所示,右侧灯全灭。
4)右转弯时,右侧3个灯轮流顺序点亮,其规律如图(b)所示,左侧灯全灭。
假设电路的输入时钟信号为CP,CP的频率对应于汽车尾灯所要求的闪烁频率。试根据上述要求设计出一个时钟同步的状态机来控制汽车的尾灯,并进行仿真测试。
采用三段式状态机
汽车尾灯控制电路代码
module carlight_541_V3(CP,nCR,HAZ,LEFT,RIGHT,LA,LB,LC,RA,RB,RC);
input nCR,CP;
input HAZ,LEFT,RIGHT;
output reg LA,LB,LC,RA,RB,RC;reg [2:0]Current_state,Next_state;
parameter [2:0]IDLE=3'b000,L1=3'b001,L2=3'b010,L3=3'b011,R1=3'b100,R2=3'b101,R3=3'b110,LR3=3'b111;
//时序逻辑
always @(posedge CP or negedge nCR)
beginif (~nCR) Current_state<=IDLE;elseCurrent_state<=Next_state;
end
//组合逻辑
always @(Current_state or HAZ or LEFT or RIGHT)
beginNext_state=3'bxxx;case(Current_state)IDLE:begin if(LEFT&&(!HAZ)&&(!RIGHT)) Next_state=L1;else if (HAZ+LEFT&&RIGHT) Next_state=LR3;else if (RIGHT&&(!HAZ)&&(!LEFT)) Next_state=R1;else Next_state=IDLE; //endL1:begin if(!HAZ) Next_state=L2;else Next_state=LR3;endL2:begin if(!HAZ) Next_state=L3;else Next_state=LR3;endL3:begin Next_state=IDLE; endR1:begin if(!HAZ) Next_state=R2;else Next_state=LR3;endR2:begin if(!HAZ) Next_state=R3;else Next_state=LR3;endR3:begin Next_state=IDLE; endLR3:begin Next_state=IDLE;endendcase
end//输出逻辑
always @(posedge CP or negedge nCR)
beginif(~nCR) beginLC=1'b0;LB=1'b0;LA=1'b0;RC=1'b0;RB=1'b0;RA=1'b0;endelse beginLC=1'b0;LB=1'b0;LA=1'b0;RC=1'b0;RB=1'b0;RA=1'b0;
case(Current_state)IDLE:begin LC=1'b0;LB=1'b0;LA=1'b0;RC=1'b0;RB=1'b0;RA=1'b0; endL1:begin LC=1'b0;LB=1'b0;LA=1'b1;RC=1'b0;RB=1'b0;RA=1'b0; endL2:begin LC=1'b0;LB=1'b1;LA=1'b1;RC=1'b0;RB=1'b0;RA=1'b0; endL3:begin LC=1'b1;LB=1'b1;LA=1'b1;RC=1'b0;RB=1'b0;RA=1'b0; endR1:begin LC=1'b0;LB=1'b0;LA=1'b0;RC=1'b0;RB=1'b0;RA=1'b1; endR2:begin LC=1'b0;LB=1'b0;LA=1'b0;RC=1'b0;RB=1'b1;RA=1'b1; endR3:begin LC=1'b0;LB=1'b0;LA=1'b0;RC=1'b1;RB=1'b1;RA=1'b1; endLR3:begin LC=1'b1;LB=1'b1;LA=1'b1;RC=1'b1;RB=1'b1;RA=1'b1; endendcaseend
end endmodule
- 测试文件
`timescale 1ns/1ns
module carlight_541_V3_test;
reg CP,nCR,HAZ,LEFT,RIGHT;
wire LA,LB,LC,RA,RB,RC;
carlight_541_V3 u0(CP,nCR,HAZ,LEFT,RIGHT,LA,LB,LC,RA,RB,RC);initial
begin
nCR=1'b0;
nCR= #20 1'b1;
HAZ=1'b0;LEFT=1'b0;RIGHT=1'b0;#200 HAZ=1'b0;LEFT=1'b0;RIGHT=1'b0;#200 HAZ=1'b0;LEFT=1'b0;RIGHT=1'b1; //RIGHT#200 HAZ=1'b0;LEFT=1'b1;RIGHT=1'b0; //LEFT#200 HAZ=1'b0;LEFT=1'b1;RIGHT=1'b1; #200 HAZ=1'b1;LEFT=1'b0;RIGHT=1'b0; //HAZ#200 HAZ=1'b1;LEFT=1'b0;RIGHT=1'b1;#200 HAZ=1'b1;LEFT=1'b1;RIGHT=1'b0;#200 HAZ=1'b1;LEFT=1'b1;RIGHT=1'b1;
#200 $stop;
endalways begin
CP=1'b0;
CP= #10 1'b1;
#10;end
endmodule
3.仿真结果
汽车尾灯控制电路代码相关推荐
- 数电课设汽车尾灯控制电路
1.设计任务与指标 假设汽车尾部左右两侧各有3个指示灯(用发光二极管模拟),设计并制作一个汽车尾 灯控制电路,要求如下. (1)汽车正常运行时指示灯全部熄灭. (2)右转弯时,右侧3个指示灯按右循环顺 ...
- 汽车尾灯控制电路(数电课设)
汽车尾灯控制电路 1. 设计题目及要求 用3-8线译码器74LS138.D触发器74LS74设计汽车尾灯控制电路.要求:假设汽车尾部左右各有3个指示灯(用发光二极管模拟),a汽车正常运行时指示灯全灭; ...
- VHDL汽车尾灯控制器的设计
主要内容: 本课程设计要求采用EDA技术设计简易的汽车尾灯控制器.系统设计要求采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由时钟分频模块.汽车尾灯主控模块,左边灯控制模块和右边灯控制模块四部 ...
- Verilog HDL 模拟 汽车尾灯自动控制系统
Verilog HDL 模拟 汽车尾灯自动控制系统 文章目录 Verilog HDL 模拟 汽车尾灯自动控制系统 一.要求介绍: 二.代码实现 1.主模块的代码 2.时钟分频模块 三.效果展示 一.要 ...
- 汽车车灯控制电路模型(转向灯/示廓灯/远近光灯/雾灯/日间行车灯)
和之前的博客"汽车转向灯控制电路模型"不同的是, 这里除了对转向灯的设计外, 还加入了示廓灯.远近光灯.雾灯.日间行车灯的设计部分. 这里我感觉有必要对博客"汽车转向灯控 ...
- 汽车尾灯自动控制系统
[Verilog实验作业] 1. 设计一个汽车尾灯自动控制系统 要求:根据汽车行驶状态自动控制汽车尾灯 直行:尾灯不亮 右转:右侧尾灯亮而且按秒闪烁,左侧尾灯不亮 左转:左侧尾灯亮而且按秒闪烁,右侧尾 ...
- 汽车计算机控制电路按功能分,新手篇—轻松看懂汽车电路图(下)
第十四 节辅助电器 一.辅助电器概述 随着汽车电控技术在现代汽车上广泛的应用,汽车上安装的用电器越来越多,这些用电器除了应用于发动机控制外,绝大部分为汽车辅助电器,例如电动刮水器.电喇叭.电动车窗天窗 ...
- python汽车_Python 小车代码
小车底盘结构 如封面一样,两轮 前后左右 只需要控制 两个驱动轮即可.舵机是用来控制 放置摄像头云台 转动的 具体小车部分的代码 #!/usr/bin/env python #coding: utf8 ...
- 汽车运行工况matlab代码,多个标准车辆行驶工况数据
多个标准车辆行驶工况数据 matlab 2020-11-30 下载地址 https://www.codedown123.com/52359.html 多个标准车辆行驶工况数据,可用于车辆仿真过程 资源 ...
最新文章
- Android中Calendar类的用法总结
- Vue中的前后台交互
- 如何转换指定 波长 到 RGB 颜色?
- mysql版本号超买_MySQL处理高并发,防止库存超卖
- 【mark】linux 终端命令行下的快捷键(自己已验证所有)
- 机器学习(三十一)——Linear Discriminant Analysis
- Spring MVC:Trgger手动验证表单对象
- 2k16显示miui停止服务器,MIUI11停止内测,MIUI12真的来了,与小米MIX4同天发布,与ios13一样流畅丝滑...
- 二叉树总结(二)树的遍历
- 语言孪生素数问题_刘建亚教授讲述“素数的故事”
- 电力项目十--整合文本编辑器
- fill和memset的区别
- c#: Newtonsoft.Json 高级用法二(jsonpath)
- con和com开头单词规律_com与con 前缀的单词
- 文件夹怎么打包压缩?压缩包太大如何缩小?
- 牛客网 2018校招真题 吉比特 直线上的点
- setPositiveButton和setNegativeButton和setNeutralButton
- 用缠论做量化(买卖点/品种机会/策略应用全解读)
- J2SE-Java帝国的诞生
- Python练习题——初学Python记录