- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Simulink逻辑电路仿真—交通灯设计
2014春季 Matlab系统仿真分析作业
完成日期 2014.04.29
目录
设计说明 1
设计思路 1
具体设计步骤 2
计数器的设计 2
计数器的仿真 10
交通灯电路设计。 15
交通灯仿真 17
设计说明
本文设计了一个简易的交通灯时序逻辑电路,该电路通过对输入时钟信号的分频,控制红黄绿三种交通灯的按顺序亮灭并循环,其中绿灯持续25s,黄灯持续5s,红灯持续35s。主要用到的器件为jk触发器,与门,与非门,或门,或非门。为了实现交通灯控制电路,首先设计并封装了4位计数器,在此基础上进一步搭建逻辑电路,实现交通灯的控制,并分别对这些模块进行了仿真。
设计思路
主要的设计思路是利用jk触发器串联的方式对输入的时钟进行分频,然后在相应的时刻产生控制脉冲信号,通过这个信号对信号灯的状态进行翻转。Jk触发器是一种边沿敏感器件,有对上升沿和下降沿敏感的两类,他们的符号如下:
其真值表如下:
在这个设计中,将jk触发器的j和k端都置1,从而Q端在每个时钟沿到来时进行翻转,然后将上一级的Q作为下一级的clk,这样达到对clk进行分频的目的。波形如下:
具体设计步骤
计数器的设计
打开matlab,这里使用的版本为R2014A.启动画面如下:
启动之后点击这里启动simulink
打开之后界面如下:
点击FileNewModel
打开界面如下:
下面的步骤为寻找仿真模型或原件,并摆放在上面的untiled文档中。首先将窗口切换到Simulink Library Browser窗口,展开Simulink ExtrasFlip Flops,左侧就会出现常用的触发器模型,其中就有jk触发器,用鼠标左键选中J-K Flip-Flop并拖到untiled文档中
一个jk触发器可以对时钟2分频,2个串联可以4分频,这里6个才能满足需求,但是为了便于扩展应用,这里将4个jk触发器作为一组串联起来。untiled文档中已经有一个,鼠标右键拖动这个jk触发器即可复制。调整四个jk触发器的位置,如图:
该窗口左上角标题右侧的*表示该文档有改动并且未保存。该窗口中按下鼠标滚轮键鼠标会变成手状,这时可以拖动整个视图,滚动鼠标滚轮可以放大缩小视图,左键选中模型按del键可以删除模型。模型中端口上的箭头表示信号流动方向,连线的时候必须按照箭头的方向进行,不能使信号流动方向和箭头方向相反,否则仿真时可能会报错。连线时为了在一条线上引出分支,可以用鼠标右键点击分支处即可引出。两个线相交的地方有黑点表示电气相连,没有黑点表示相交但不相连。
在前面的分析中提到这里要将jk出发器的jk端置1,这需要常量和数据类型转换模块,因为在matlab中大部分模型的输出是数值型的,比如为float或者double型的,这样如果输出了1,它可能是double或者int类型的,而逻辑电路中的1是一种逻辑电平,这两者的含义是不同的,因此如果要给触发器输入1,需要将一个常量1转换为逻辑1,这就是Data Type Conversion的作用,常量1的输出通过Constant实现,他们在Commonly Used Blocks中,如图,分别拖放两个模型到untiled文档中。
现在untitled文档中的模型如下:
双击Data Type Conversion1可以打开它的属性对话框,我们需要关心的是转换的类型,这个可以通过Output data type后面的下拉框来设置,其中就有boolean这种类型。默认为Inherit: Inherit via back propagation方式输出,意思为从输出端反向继承数据类型,也就是说输出端连接的端口需要什么类型就转化为相应的类型。这里需要改为boolean就可以实现给触发器输入高电平。
调整他们的位置并按下面的样子完成连线:
然后按ctrl+s保存文档,如下:
下面对这个模块进行封装,按下ctrl+A选中所有模型,再通过下面的方式进行封装(快捷键Ctrl+G)
封装之后变成这个样子:
双击进入该模块内部,可以看见自动为输入和输出添加了连接点并编号,如下:
上面这幅图片中出现了很多double,这是由于Data Type Conversion输出没有改成boolean而又进行了仿真造成的,如果不改也能仿真,但是数据类型不是逻辑电平,如果修改了就不会出现上面的那些字符。这里面部分端口不使用,摆放位置也比较乱,可以选中之后进行修改,修改之后如下:
然后按下ctrl+s进行保存,点击下面的位置返回到顶层视图
此时封装的模块变成了下面的样子:
我们可以双击模块下面的名称来改变它,因为这个模块可以进行0
您可能关注的文档
最近下载
- 述责述廉报告 述责述廉报告2020三篇.docx VIP
- 沪教版小学四年级语文第一学期全册课件.ppt
- [贾平凹废都柳月]贾平凹作品废都.pdf
- 营房安全知识.docx VIP
- 东华大学教职工各类俱乐部(文体类)协会管理规定.doc
- 安徽省合肥市第四十五中学2023-2024学年八年级上学期期中物理试题(含答案).docx VIP
- 小学数学教研组教研工作总结PPT.pptx
- 贸易安全标准培训教材PPT课件(精编)共42页PPT-课件有实际AEO企业案例.pptx VIP
- 18.4数学活动-折纸做60°-30°-15°的角省公开课获奖课件市赛课比赛一等奖课件.pptx
- 2024软件正版化培训.pptx VIP
文档评论(0)