汽车尾灯发出的信号主要是给后面行驶汽车的司机看的,通常汽车驾驶室有刹车开关(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
  1. 测试文件
`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. 数电课设汽车尾灯控制电路

    1.设计任务与指标 假设汽车尾部左右两侧各有3个指示灯(用发光二极管模拟),设计并制作一个汽车尾 灯控制电路,要求如下. (1)汽车正常运行时指示灯全部熄灭. (2)右转弯时,右侧3个指示灯按右循环顺 ...

  2. 汽车尾灯控制电路(数电课设)

    汽车尾灯控制电路 1. 设计题目及要求 用3-8线译码器74LS138.D触发器74LS74设计汽车尾灯控制电路.要求:假设汽车尾部左右各有3个指示灯(用发光二极管模拟),a汽车正常运行时指示灯全灭; ...

  3. VHDL汽车尾灯控制器的设计

    主要内容: 本课程设计要求采用EDA技术设计简易的汽车尾灯控制器.系统设计要求采用自顶向下的设计方法,顶层设计采用原理图设计方式,它由时钟分频模块.汽车尾灯主控模块,左边灯控制模块和右边灯控制模块四部 ...

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

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

  5. 汽车车灯控制电路模型(转向灯/示廓灯/远近光灯/雾灯/日间行车灯)

    和之前的博客"汽车转向灯控制电路模型"不同的是, 这里除了对转向灯的设计外, 还加入了示廓灯.远近光灯.雾灯.日间行车灯的设计部分. 这里我感觉有必要对博客"汽车转向灯控 ...

  6. 汽车尾灯自动控制系统

    [Verilog实验作业] 1. 设计一个汽车尾灯自动控制系统 要求:根据汽车行驶状态自动控制汽车尾灯 直行:尾灯不亮 右转:右侧尾灯亮而且按秒闪烁,左侧尾灯不亮 左转:左侧尾灯亮而且按秒闪烁,右侧尾 ...

  7. 汽车计算机控制电路按功能分,新手篇—轻松看懂汽车电路图(下)

    第十四 节辅助电器 一.辅助电器概述 随着汽车电控技术在现代汽车上广泛的应用,汽车上安装的用电器越来越多,这些用电器除了应用于发动机控制外,绝大部分为汽车辅助电器,例如电动刮水器.电喇叭.电动车窗天窗 ...

  8. python汽车_Python 小车代码

    小车底盘结构 如封面一样,两轮 前后左右 只需要控制 两个驱动轮即可.舵机是用来控制 放置摄像头云台 转动的 具体小车部分的代码 #!/usr/bin/env python #coding: utf8 ...

  9. 汽车运行工况matlab代码,多个标准车辆行驶工况数据

    多个标准车辆行驶工况数据 matlab 2020-11-30 下载地址 https://www.codedown123.com/52359.html 多个标准车辆行驶工况数据,可用于车辆仿真过程 资源 ...

最新文章

  1. Android中Calendar类的用法总结
  2. Vue中的前后台交互
  3. 如何转换指定 波长 到 RGB 颜色?
  4. mysql版本号超买_MySQL处理高并发,防止库存超卖
  5. 【mark】linux 终端命令行下的快捷键(自己已验证所有)
  6. 机器学习(三十一)——Linear Discriminant Analysis
  7. Spring MVC:Trgger手动验证表单对象
  8. 2k16显示miui停止服务器,MIUI11停止内测,MIUI12真的来了,与小米MIX4同天发布,与ios13一样流畅丝滑...
  9. 二叉树总结(二)树的遍历
  10. 语言孪生素数问题_刘建亚教授讲述“素数的故事”
  11. 电力项目十--整合文本编辑器
  12. fill和memset的区别
  13. c#: Newtonsoft.Json 高级用法二(jsonpath)
  14. con和com开头单词规律_com与con 前缀的单词
  15. 文件夹怎么打包压缩?压缩包太大如何缩小?
  16. 牛客网 2018校招真题 吉比特 直线上的点
  17. setPositiveButton和setNegativeButton和setNeutralButton
  18. 用缠论做量化(买卖点/品种机会/策略应用全解读)
  19. J2SE-Java帝国的诞生
  20. Python练习题——初学Python记录

热门文章

  1. 安徽省《市民一卡通服务通则》
  2. 一个完整的大作业--广州市社会保障(市民)卡服务网
  3. QDateTime相关格式
  4. python3攻击服务器_Python服务器用套接字互相攻击
  5. 终端报错PTY allocation request failed on channel 0
  6. python导入库的简便方法
  7. Java实现 蓝桥杯 算法训练 Cowboys
  8. 淘宝主图SKU图采集下载
  9. ios隐私权限的使用及设置
  10. node+express+multer实现单个或多个图片文件,视频文件上传