【流水灯论文】 单片机流水灯论文
综合设计性实验报告
题 目: 流水灯的设计与实现 学生姓名: 翟娟红 学 号: [1**********]7 班 级: 电本0802班 指导教师: 王爱珍 学 期: 2010——2011第2学期
忻州师范学院
2011年06月02日
目录
一.摘要…………………………………………………………………3
二.课程意义……………………………………………………………3
1.1设计任务…………………………………………………………3
1.2设计目的…………………………………………………………3
三.关键词………………………………………………………………4
四.正文…………………………………………………………………4
第一章 总体方案设计
第二章 74LS194于74LS160 芯片介绍
第三章 EWB 仿真图
第四章 用VHDL 语言实现的流水灯
五.总结………………………………………………………………10
六.参考文献…………………………………………………………11
一.摘要
本论文设计的方案中采用了74LS160十进制计数器和74194双向移位寄存器来组成时序逻辑电路。最后通过在EWB 软件上进行仿真来确定实验结果是否正确。
其中的EWB 软件全称为ELECTRONICS WORKBENCH EDA ,是交互图像技术有限公司在九十年代初推出的EDA 软件,用于模拟电路和数字电路的混合仿真,利用它可以直接从屏幕上看到各种电路的输出波形。EWB 是一款小巧,但是仿真功能十分强大的软件。 它采用直观的图形界面创建电路:在计算机屏幕上模仿真实实验室的工作台,绘制电路图需要的元器件、电路仿真需要的测试仪器均可直接从屏幕上选取;软件仪器的控制面板外形和操作方式都与实物相似,可以实时显示测量结果。EWB 软件带有丰富的电路元件库,提供多种电路分析方法。作为设计工具,它可以同其它流行的电路分析、设计和制板软件交换数据。EWB 还是一个优秀的电子技术训练工具,利用它提供的虚拟仪器可以用比实验室中更灵活的方式进行电路实验,仿真电路的实际运行情况,熟悉常用电子仪器测量方法。
二.课程意义
1.1设计任务
a. 设计分频电路,使之产生10HZ 的时钟信号。(提供1KHZ 的时钟信号)
b. 设计能使实验台上的8个小灯循环点亮的序列信号发生电路,并使之能够自启动。
1.2设计目的
通过本实验了解和掌握时序电路的设计原理和方法,了解TTL 芯片的特性及使用并且掌握彩灯循环控制器的设计方法
三.关键词
流水灯 74194移位寄存器 74LS160十进制计数器
四.正文
第一章 总体方案设计
1. 本设计电路主要由三部分组成,其整体框图如下图所示
1 . 74LS194 其中分频器是将1KHZ 的时钟信号分频为10HZ 的时钟信号。 第二章 74LS194与74LS160芯片介绍
74194双向移位寄存器是一个具有双向移位功能的寄存器,是指寄存器中所存的代码能够在移位脉冲的作用下依次实现左移或右移。只需要改变左,右的控制信号便可实现双向移位要求。根据移位寄存器存取信息的方式不同分为:串入串出,串入并出,并入串出,并入并出四种形式。74ls194芯片是双向通用移位寄
存器。其逻辑符号及引脚排列如图:
其功能为,A,B,C,D 为并行输入QA,QB,QC,QD 为并行输出端;SR 为右移串行输入端;SL 为左移串行输入端;S1,S0为操作模式控制端;CLR ’为直接无条件清零端;CLK 为时钟脉冲输入端。74LS194有5种不同操作模式:并行送数寄存:右移(方向由QC —QA ), 左移(方向由QA —QC ), 保持及清零。如图真值表:
2 . 74LS160
同步十进制计数器74LS160兼有异步置零和预置数功能。
分频器的输入脉冲是1kHz 、输出脉冲是10Hz ,所以其分频数N 是100,可以采用2片十进制计数器串接实现N =100的分频功能。
如图所示电路是串行进位方式的连接方法。两片74LS160的EP 和ET 恒为1,都工作在计数状态。第一片每计到9时端输出变为高电平,经反相器后使得第2片的CP 端为低电平。下个计数输入脉冲到达后,第1片计成0状态,C 端跳回低电平,经反向后使第2片的输入端产生一个正跳变,于是第2片计入1,可见,在这种接法下两片74LS160不是同步工作的。
第三章 EWB 仿真图
第四章 用VHDL 语言实现的流水灯
分频模块源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY FENGPIN IS
PORT(CLK0:IN STD_LOGIC;
FOUT:OUT STD_LOGIC);
END FENGPIN;
ARCHITECTURE ONE OF FENGPIN IS
BEGIN
PROCESS(CLK0)
V ARIABLE CNT:STD_LOGIC_VECTOR(7 DOWNTO 0);
V ARIABLE FULL :STD_LOGIC;
BEGIN
IF CLK0"EVENT AND CLK0="1" THEN
IF CNT="01100011" THEN
CNT:="00000000" ;
FULL:="1";
ELSE
CNT:=CNT+1;
FULL:="0";
END IF;
END IF;
FOUT
END PROCESS;
END ONE;
流水灯模块源程序:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY LIUSHUI IS
PORT (CLK:IN STD_LOGIC;
SG:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END;
ARCHITECTURE ONE OF LIUSHUI IS
SIGNAL CNT8:STD_LOGIC_VECTOR(2 DOWNTO 0);
BEGIN
PROCESS(CLK)
BEGIN
IF CLK"EVENT AND CLK="1" THEN
IF CNT8="111" THEN CNT8
ELSE
CNT8
END IF;
END IF;
CASE CNT8 IS
WHEN "000"=>SG
WHEN "001"=>SG
WHEN "010"=>SG
WHEN "011"=>SG
WHEN "100"=>SG
WHEN "101"=>SG
WHEN "110"=>SG
WHEN "111"=>SG
WHEN OTHERS =>NULL;
END CASE;
END PROCESS ;
END ONE;
分频模块仿真波形:
流水模块仿真波形
流水灯原理图
五.总结
在通过为期一个星期认真完成这次实验之后, 我们感觉收获良多主要可以分为以下几个方面:
1. 让我们对数字电路知识进行了进一步的巩固与提高, 尤其是对时
序逻辑电路有了更加深刻的了解, 并对TTL 芯片的使用及它的一些特性更加熟悉。对我们今后的设计奠定了很好的基础。
2. 我觉得做课程设计同时也是对课本知识的巩固和加强,使我们深
刻体会到理论与实践相结合的重要性。由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。平时看课本时,有时问题老是弄不懂,做完课程设计,那些问题就迎刃而解了。而且还可以记住很多东西。比如一些芯片的功能,平时看课本,这次看了,下次就忘了,通过动手实践让我们对各个元件映象深刻。认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。所以这个期末测试之后的课程设计对我们的作用是非常大的。
3. 我深刻体会到一个实验可以有多种方法来实现。在本实验时联系本学期所学知识,我们发现除了可以用时序组合逻辑电路来完成外,通过EDA 运用VHDL 语言编辑程序来实现特定功能,不仅较时序电路简单而且更加方便,这就告诉我们在未来由计算机参与编程辅助的功能器件会越来越多,但数字时序电路作为基础也是我们大家不可不学的。
4. 做实验是要充分发挥自己的思维去想,要有耐心,要学会合作,不能急燥,虽然我们为此次试验付出了很多,但同时收获也颇丰。
六.参考文献
[1]侯建军,数字电路实验一体化教程。北京:清华大学出版社,北京交通大学出版社,2005年。
[2]阎石,数字电子技术基础。北京:高等教育出版社,2001年。
[3]潘松,黄继业,EDA 实用教程。北京:科学出版社,2006年。
