电路设计与实现
2020年4月19日
1
放光二极管走马灯文档仅供参考
放光二极管走马灯电路设计与实现
班级: 姓名: 学号:
一.实验目的
1.进一步了解时序电路描述方法 2.熟悉状态机的设计方法
2020年4月19日
2
文档仅供参考
二.实验所用仪器及元器件 1. 计算机;
2. 直流稳压电源;
3. 数字系统与逻辑设计实验开发板。
三.实验内容
设计并实现一个控制8个发光二极管亮灭的电路,仿真验证其功能,并下载到实验板测试。
1. 单点移动模式:一个点在8个发光二极管上来回的亮 2. 幕布式:从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复。
四.设计思路
第
一
题
设
了
两
个
状
态
type
all_state
is(s0,s1,s2,s3,s4,s5,s6,s7)和 type f is(f1,f0),其中all_state 表示灯亮的状态,f表示灯向左亮与向右亮的不同状态。
第二题按照题目要求对输出q进行控制即可。即用case-when语句。
当a为0时为单点移动式, a为1时为幕布式移动,。最后
3
2020年4月19日
文档仅供参考
下载的时候把输出q和8个灯对应,a和一个能够在0和1之前切换的按钮对应,clk引脚为18.。
仿真时要注意
1. 2. 3.
设置仿真时间轴,100us左右。
保存波形文件时,文件名要与工程名一致。
设置复位的时间要合理。既要看到复位的效果,又不能影响到正常的波形分析,而且复位信号不能为周期。
仿真波形为
其中仿真总时间为100us,
前50us a = 0,即进行的是单点移动的仿真,由图知,
4
2020年4月19日
文档仅供参考
q[1]~q[7]交替出现高电平,然后q[7]~q[1]又交替出现高电平,因此可见程序实现了一个点在8个发光二极管上来回的亮的功能。
后50us a = 1,即进行幕布式的仿真:由图知,先是中间的两个灯q[3], q[4]亮,下一下阶段是q[2], q[3], q[4], q[5]亮,接下来是q[1], q[2], q[3], q[4], q[5], q[6]亮,最后全亮,接着q[0],q[7]灭,继而循环下去。高电平从中间依次向两边扩展,全亮后又从边缘依次两个两个变为低电平,依次往复。因此满足题目从中间两个点,同时向两边依次点亮直到全亮,然后再向中间点灭,依次往复的要求。
五.实验中所遇到的问题及解决方法
这次实验学习的是状态机的设计,遇到的问题主要有两个。 第一,刚开始编第一个题目时,对于一个点在8个发光二极管上来回的亮理解有误,一开始把题目的意思当成了,第一个灯到第八个灯依次亮后,再从第一个灯到第八个灯依次亮,但后来觉得应该是第一个灯到第八个灯依次亮后,再从第八个灯到第一个灯依次亮,因此便在程序设置一个变量flag,用于标志灯向左依次亮还是向右依次亮。
第二.我原来是将两个小题写成了两个程序,但后来发现应该是放在一个里,因此又设置了一个输入变量a, a为0时为单点移动式, a为1时为幕布式移动。
5
2020年4月19日