交通灯系统设计 educoder实训项目 logisim实现


代码等文件下载

第1关:7段数码管驱动电路设计

实验内容
在 logisim 中打开实验资料包中的TrafficLight.circ 文件,在数码管驱动子电路中实现对应功能。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

​ 框架内数码管驱动测试

根据引脚绑定设置好真值表,然后生成电路。完成后利用文本编辑工具打开TrafficLight.circ 文件,将所有文字信息复制粘贴到 Educoder 平台代码区域,再点击评测按钮即可进行本关测试。

第2关:四位无符号比较器设计

实验内容

设计实现四位无符号比较器,该电路有8个输入,真值表表项256项,用真值表实现过于繁琐,且容易出错,所以对于这类电路只能通过构建逻辑表达式的方式实现,仔细思考四位无符号比较器的逻辑表达式,利用logisim自动生成电路功能自动生成该电路。

在这里插入图片描述

L1=X3~Y3+~(X3^Y3)X2~Y2+~(X3^Y3)~(X2^Y2)X1~Y1+~(X3^Y3)~(X2^Y2)~(X1^Y1)X0~Y0

L2=(~X3)Y3+~(X3^Y3)(~X2)Y2+~(X3^Y3)~(X2^Y2)(~X1)Y1+~(X3^Y3)~(X2^Y2)~(X1^Y1)(~X0)Y0

L3=~(X3^Y3)~(X2^Y2)~(X1^Y1)~(X0^Y0)

X3~Y3  :  X3比Y3大则输出为1
~(X3^Y3)  :  X3和Y3相等则输出为1

3关:8位无符号比较器设计

实验内容
利用已经设计完成的四位无符号比较器构建8位无符号比较器。

在这里插入图片描述

要注意每一个分线端口应该对应哪一位,可以通过测试看哪个端口对应的线亮了判断,与上图类似!

第4关:1位2路选择器设计

实验内容
利用基本逻辑门构成1位的2路选择器。

Y=~Sel D0 + Sel D1

在这里插入图片描述

第5关:8位2路选择器设计;

实验内容
利用一位的2路选择器构建8位的2路选择器,请认真思考如何进行电路并发,如何构建电路绘图最简单。

将1位选择信号Sel扩展到8位,然后根据表达式绘图
Y=~Sel D0 + Sel D1

在这里插入图片描述

第6关:双向BCD码计数器状态机设计

实验内容
设计BCD双向计数器的状态机。

C:\Users\lenovo\AppData\Roaming\Typora\typora-user-images\image-20210126204332097.png
)]

8421
0000,0001,0010,0011,0100
0101,0110,0111,1000,1001

余3码
0011~1100

2421
0000,0001,0010,0011,0100
1011,1100,1101,1110,1111

双向计数
Mode=0
0→1→2→3→4→5→6→7→8→9→0... 
Mode=1
9→8→7→6→5→4→3→2→1→0→9...

利用 BCD双向计数逻辑自动生成.xlsx 生成逻辑表达式,然后复制表达式自动生成电路
在这里插入图片描述在这里插入图片描述

N3 N2 N1 N0

~S3&S2&S1&S0&~Mode+S3&~S2&~S1&~S0&~Mode+S3&~S2&~S1&S0&Mode+~S3&~S2&~S1&~S0&Mode

~S3&~S2&S1&S0&~Mode+~S3&S2&~S1&~S0&~Mode+~S3&S2&~S1&S0&~Mode+~S3&S2&S1&~S0&~Mode+S3&~S2&~S1&~S0&Mode+~S3&S2&S1&S0&Mode+~S3&S2&S1&~S0&Mode+~S3&S2&~S1&S0&Mode

~S3&~S2&~S1&S0&~Mode+~S3&~S2&S1&~S0&~Mode+~S3&S2&~S1&S0&~Mode+~S3&S2&S1&~S0&~Mode+S3&~S2&~S1&~S0&Mode+~S3&S2&S1&S0&Mode+~S3&S2&~S1&~S0&Mode+~S3&~S2&S1&S0&Mode

~S3&~S2&~S1&~S0&~Mode+~S3&~S2&S1&~S0&~Mode+~S3&S2&~S1&~S0&~Mode+~S3&S2&S1&~S0&~Mode+S3&~S2&~S1&~S0&~Mode+S3&~S2&~S1&~S0&Mode+~S3&S2&S1&~S0&Mode+~S3&S2&~S1&~S0&Mode+~S3&~S2&S1&~S0&Mode+~S3&~S2&~S1&~S0&Mode

第7关:双向BCD码计数器输出函数设计

实验内容
设计BCD双向计数器的输出函数,生成计数器的进位借位信号,该输出信号与状态和输入信号有关。

利用 真值表自动生成表达式.xlsx 生成逻辑表达式,然后复制表达式自动生成电路

Cout
正向计数时进位输出,即Mode=0、Q=9时Cout=1
反向计数时借位输出,即Mode=1、Q=0时Cout=1

S3&~S2&~S1&S0&~Mode+~S3&~S2&~S1&~S0&Mode

在这里插入图片描述

在这里插入图片描述

第8关:双向BCD码计数器设计

实验内容
利用已经设计完成的BCD双向计数器的状态机、输出函数,采用D触发器构建最终的双向BCD计数器,该计数器支持异步预置功能,当预置控制位为1,直接将Din数据写入触发器中。

用Di去控制对应触发器的置1端和置0端完成异步预置

在这里插入图片描述

第9关:两位BCD码双向计数器设计

实验内容
利用已经设计完成的BCD双向计数器,级联构建双位十进制双向计数器。

低位计数到9,再次计数时,高位加一。高位计数一次应该由低位产生一次进位信号决定,即高位计数器的CLK信号上升沿是低位的进位由1变为0时!

在这里插入图片描述

第10关:交通灯核心状态机设计

实验内容
设计交通灯控制系统核心状态机。
在这里插入图片描述
该交通灯实现主道和辅道双向控制。
各状态切换条件为T1~T4和Emerg

利用 交通灯控制系统状态机逻辑自动生成.xlsx 生成逻辑表达式,然后复制表达式自动生成电路

状态用3位二进制数表示000 001 010 011 100 分别代表状态S0,S1,S2,S3,S4

在这里插入图片描述

~S2&~S1&~S0&EMERG+~S2&~S1&S0&EMERG+~S2&S1&~S0&EMERG+~S2&S1&S0&EMERG+S2&~S1&~S0&EMERG

~S2&~S1&S0&T2&~EMERG+~S2&S1&~S0&T3&~EMERG+~S2&S1&~S0&~T3&~EMERG+~S2&S1&S0&~T4&~EMERG

~S2&~S1&~S0&T1&~EMERG+~S2&S1&~S0&T3&~EMERG+~S2&~S1&S0&~T2&~EMERG+~S2&S1&S0&~T4&~EMERG

第11关:交通灯输出函数设计

实验内容
设计交通灯控制系统状态输出函数,根据状态机的状态生成主道辅道红绿灯控制信号,以及当前道路通行情况。

在这里插入图片描述

S0状态:主道绿灯、辅道红灯
S1状态:主道黄灯、辅道红灯
S2状态:主道红灯、辅道绿灯
S3状态:主道红灯、辅道黄灯
S4状态:主道红灯、辅道红灯

通过引脚绑定和各个状态的关系完成真值表,并利用交通灯状态输出函数真值表.xlsx生成逻辑表达式,然后复制表达式自动生成电路

在这里插入图片描述

R1 Y1 G1 R2 Y2 G2 Pass1 Pass2

~S2&S1&~S0+~S2&S1&S0+S2&~S1&~S0
~S2&~S1&S0
~S2&~S1&~S0
~S2&~S1&~S0+~S2&~S1&S0+S2&~S1&~S0
~S2&S1&S0
~S2&S1&~S0
~S2&~S1&~S0+~S2&~S1&S0
~S2&S1&~S0+~S2&S1&S0

第12关:交通灯系统集成设计

实验内容
基于已经设计完成交通灯控制系统和新状态机,状态输出函数,以及前面完成的组合逻辑电路:数码管驱动器、8位无符号比较器,8位多路选择器,双位十进制双向计数器,设计一个十字路口交通灯控制系统。
实验分析
该系统主道辅道轮流通行,其中主道通行20s,然后辅道通行10s,依次循环。
注意主道绿灯转红灯之前有3s的黄灯时间,同样辅道绿灯转黄灯之前也有3s的黄灯时间,倒计数时间应通过数码管部件进行显示。
如果按下紧急按键,双向红灯,关闭紧急按键,则系统重新进入S0状态,也就是主道通行模式开始循环。

实验步骤

构建核心状态机数据通路,将状态寄存器,状态机,输出函数连接起来构成核心控制器系统,控制红绿灯信号。
分别构建主道和辅道的倒计时电路,利用已经设计好的双位十进制双向计数器构建倒计时电路,要求利用系统复位信号自动预置通行时间,利用设计好的8位无符号比较器比较计数器输出值生成计时完成信号T1,T2,T3,T4,注意黄灯应该保持3秒,也就是三个时钟节拍。注意非当前道通行时,当前倒计时电路应该预置为初始值,当前道通行时,当前倒计时电路开始倒计时。
构建倒计时电路显示模块,由于主道辅道显示时间一致,所以只保留一个显示模块,但显示模块要根据当前是主道通行还是辅道通行显示不同计数器的值,这里需要使用前面已经实现的多路选择器,和数码管驱动电路。
系统联调,时钟频率调整为4HZ,ctrl+k驱动,测试系统功能。

紧急情况会导致什么显示器一直在初状态,应该使RST一直为1

主道倒计时初值在T4或者RST条件下会还原,辅道倒计时初值T2或者RST条件下会还原

主道辅道Mode=1时倒计时

模块,由于主道辅道显示时间一致,所以只保留一个显示模块,但显示模块要根据当前是主道通行还是辅道通行显示不同计数器的值,这里需要使用前面已经实现的多路选择器,和数码管驱动电路。
系统联调,时钟频率调整为4HZ,ctrl+k驱动,测试系统功能。

紧急情况会导致什么显示器一直在初状态,应该使RST一直为1

主道倒计时初值在T4或者RST条件下会还原,辅道倒计时初值T2或者RST条件下会还原

主道辅道Mode=1时倒计时

在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐