数字逻辑彩灯实验报告
- 格式:docx
- 大小:52.54 KB
- 文档页数:6
数字电子技术课程设计报告题目:专业:班级:学号:姓名:指导教师:设计日期:目录一、设计目的作用――――――――――――――(1)二、设计要求――――――――――――――――――(1)三、设计的具体实现―――――――――――――――(1)四、总结――――――――――――――――――(10)五、附录――――――――――――――― (11)六、参考文献――――――――――――――― (12)彩灯控制电路一.设计目的作用随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓灯。
由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。
二.设计要求1.控制红、绿、黄一组彩灯循环闪亮,变化的规律是:红→红绿→绿→黄绿→黄→全亮→全灭→红,如此循环,产生“流水”般的效果。
2.“流水”的速度由快到慢,再由慢到快循环变化。
三、设计的具体实现1、系统概述彩灯控制电路由三个模块构成,显示电路﹑秒脉冲电路和维持电路。
秒脉冲电路全程为电路提供矩形波信号使彩灯定时发亮;显示电路为维持电路提供电源:维持电路在显示电路部分提供电源的情况下为电路提供一段较长的高电平,使彩灯在全部变亮后保持一段时间。
同时结合显示电路部分所带元件(主要是74LS194)的性质,使彩灯从右到左依次由暗变亮,亮后维持一段时间,然后熄灭,并且不断重复。
设计及框图如下2、单元电路设计与分析(1)﹑秒脉冲电路图 1、秒脉冲发生电路本电路秒脉冲电路由一个集成的555定时器够成,当电源接通后,VCC通过对R1﹑R2向电容器充电。
电容上得到电压按指数规律上升,当电压上升到2/3VCC时,输出电压V0为零,电容器放电。
当电压下降到1/3VCC时,输出电平为高电平,电容器放电结束。
这样周而复始形成了振荡。
脉冲发生器由NE555与R1,R2,RP,C1,C2组成的多谐振荡器组成,它是为灯光流动控制器提供流动控制脉冲的,多谐振荡器的振荡频率可根据所需要的灯光流动速度,通过RP进行调节,由于RP阻值较大,所以有较大的调速范围。
彩灯的plc控制实验报告彩灯的PLC控制实验报告实验目的本实验旨在掌握PLC控制器的基本应用,并通过使用PLC控制器来控制彩灯的颜色和亮度。
实验原理PLC(可编程逻辑控制器)是一种数字化控制设备,可以在工业自动化过程中使用。
在本实验中,我们使用的是由三种基本逻辑门即“与门”(AND)、“或门”(OR)和“非门”(NOT)组合起来的逻辑电路。
PLC的输入可以是触点信号、计数器、计时器等,其输出可以控制各种工业生产设备。
实验步骤1.使用PLC软件进行设置,将输入设置为按钮信号,输出设置为彩灯驱动控制信号。
2.通过设置逻辑电路,将输入的按钮信号转换为彩灯的颜色和亮度控制信号。
具体设置如下:•当按钮被按下,PLC输出亮度信号为100%。
•当按钮被按下且彩灯为红色时,PLC输出颜色控制信号为蓝色。
•当按钮被按下且彩灯为蓝色时,PLC输出颜色控制信号为绿色。
•当按钮被按下且彩灯为绿色时,PLC输出颜色控制信号为红色。
实验结果经过实验,PLC成功地控制了彩灯的颜色和亮度。
当按下按钮时,彩灯会根据所处的颜色逐次切换到下一个颜色,同时亮度会保持不变。
实验总结本实验通过使用PLC控制器,成功地控制了彩灯的颜色和亮度,达到了预期效果。
通过本实验,我们不仅掌握了PLC控制器的基本应用,也加深了对逻辑电路的理解。
在今后的工作学习中,我们将继续深入了解和应用PLC控制器。
实验中遇到的问题在实验中,我们遇到了一些问题,主要表现为:1.PLC软件的使用不熟悉,需要花费一定时间学习。
2.彩灯的亮度控制不稳定,需要多次尝试调整逻辑电路。
3.在实验中没有使用逆变器,彩灯的亮度限制在220V输入电压下,没有更好的亮度调节效果。
实验中的思考通过本次实验,我们认识到了PLC控制器在工业自动化过程中的重要作用。
PLC控制器具有高可靠性、高效率、易扩展等特点,可以满足多种复杂的自动化控制任务。
在今后的工作中,我们应该积极学习PLC控制器的使用,为工业生产自动化提供更加可靠的支持。
《数字逻辑电路》彩灯控制电路实训报告1 整机设计1.1 设计要求1.1.1设计任务利用所学的数字逻辑电路的相关理论知识设计并制作一个彩灯控制电路。
1.1.2性能指标要求1. 具有控制彩灯右移、左移、全亮及全灭等功能;2. 彩灯移动至少有 4 种速度;3. 可以实现循环左、右移;4. 彩灯的布图形状随意。
1.2 整机实现的基本原理及框图1.2.1基本原理彩灯控制电路利用移位寄存器(SN74LS194N)、定时器(NE555)和控制逻辑电路等元件相互配合,通过控制移位寄存器的状态和定时器的脉冲信号,实现彩灯的亮灭和移动效果。
1.2.2总体框图2 各功能电路实现原理及电路设计1. 脉冲产生电路使用NE555定时器芯片,NE555工作在脉冲发生器模式下,产生可调节频率的方波脉冲信号。
通过调节电阻和电容值,可以调节脉冲的周期。
2. 移位寄存器电路使用74LS194N移位寄存器芯片,它可以存储和移动数据。
在这里,我们将其配置为移动模式,用于控制彩灯的移动和亮灭。
3 制作与调试过程用 Altium Designer 软件画出电路原理图和 PCB 图;根据提供的电路设计图和所需元件清单,准备好所需的电子元件和工具;将元件按照电路设计图的连接方式焊接在电路板上。
确保焊接的连接正确并且没有短路;仔细检查电路的连接,确保所有元件都正确连接,并且没有接触不良或短路现象;将电路连接到电源上,确保电源的电压和电流符合元件的额定值,并确保极性正确。
逐步测试电路的各个功能模块,首先测试脉冲产生电路,确保它能够产生可调节周期的脉冲信号;然后测试移位寄存器电路,确保它能够正确存储和移动数据。
4 电路测试4.1 测试仪器与设备示波器;信号发生器;万用表。
4.2 功能测试使用开关,测试彩灯控制电路对按键的响应,观察LED指示灯的状态。
5 实训结论本次实训中,我们设计了一个彩灯控制电路,包括脉冲产生电路和移位寄存器电路。
通过功能测试,我得出了以下结论:1. 彩灯控制电路可调周期的脉冲产生电路,使用NE555定时器芯片实现。
实训题目:彩灯的控制1.整机设计1.1 设计要求1.1.1 设计任务设计由几种常用集成数字芯片组成的彩灯控制电路,彩灯用8个发光二极管代替,设置外部操作开关,它具有控制彩灯亮点的右移、左移、全亮及全灭等功能。
1.1.2 性能指标要求一、设置外部操作开关,它具有控制彩灯亮点的右移、左移、全亮及全灭等功能二、彩灯亮点移动时间间隔取1秒三、占空比约等于50%四、彩灯的布图形状随意1.2 整机实现的基本原理及框图1.2.1 基本原理通过两片集成双向移位寄存器74LS194和拨码开关控制右移﹑左移和一个拨码开关进行预置端让其全亮﹑全灭和一个由555芯片构成的CP产生电路。
移位寄存器74LS194是一个具有移位功能的寄存器,寄存器中所存的代码能够在一位脉冲的作用下依次左移或右移,555芯片是一种产生时间延迟和多种脉冲信号的电路,并且集成芯片74LS04是非门,能进行循环。
所以此电路的基本原理是由555芯片产生脉冲,传给移位寄存器74LS194,再经过非门与拨码开关实现循环、左移、右移、全亮、全灭的功能。
1.2.2 总体框图总体框图2.各功能电路实现原理及电路设计 整个电路的设计电路图:(1) 电源输入接口由一个接口和一个发光二极管(如果接入正确则灯亮)和一个300欧的电阻保护。
其电路图如下:电 源 输 入 接 口彩 灯 控 制 电 路555 芯 片 CP 产 生 电 路彩 灯 演 示 电 路电源输入接口(2)555芯片CP产生电路方案一:由555定时器接成多谐振动器。
其图如下:555定时器接成多谐振动器图振动周期: T=0.7(R1+2R2)C输出脉冲占空比: q=(R1+R2)/(R1+2R2)方案二:由555定时器接成多谐振动器但其占空比可调。
其图如下555定时器接成多谐振动器占空比可调图在这次电路设计中我选择的CP产生电路是第2中方案,是为了便于调占空比。
电容取:4.7μf 0.01μf电阻取:两个47kΩ 50kΩ精密电位器:50kΩ精密电位器其原理图如下:555芯片CP产生电路(2)彩灯控制电路2片移位寄存器74LS194级联实现。
哈尔滨工程大学数字逻辑综合性实验设计报告课程名称数字逻辑实验题目名称四路彩灯显示系统逻辑电路设计班级学号学生姓名同组班级同组学号同组姓名指导教师武俊鹏、孟昭林、刘书勇、赵国冬2013 年 06 月摘要四路彩灯常有于节庆场合,依据某种规则点亮或许闪耀彩灯,本次数字逻辑电路设计实验主要达成四路彩灯的控制流程,控制流程以下:第一路彩灯先点亮,而后挨次点亮第二路、第三路、第四路;第四路先灭,而后第三路、第二路、第一路挨次灭;四路彩灯均亮灭,共四次;从 1)开始循环。
本次实验采纳中小规模集成电路进行彩灯显示系统的设计,详细使用74LS161作为循环控制电路,74LS194控制彩灯花型显示,并用若干基本与门、非门、与非门等芯片基本逻辑电路。
重点词:四路彩灯;计数器;移位存放器;中小规模集成电路;目录目录1 需求剖析错误!不决义书签。
基本功能要求错误 ! 不决义书签。
创新拓展功能错误 ! 不决义书签。
设计原理错误!不决义书签。
系统逻辑构造设计错误 ! 不决义书签。
循环控制电路错误 !不决义书签。
四路彩灯状态显示错误 ! 不决义书签。
系统物理构造设计错误 ! 不决义书签。
循环控制电路物理构造错误 !不决义书签。
状态显示电路物理构造错误 !不决义书签。
完好系统电路物理构造错误 !不决义书签。
3 系统实现错误!不决义书签。
系统实现过程错误 !不决义书签。
系统测试错误 !不决义书签。
系统最后电路图错误 ! 不决义书签。
系统团队分工错误 !不决义书签。
4 总结错误!不决义书签。
参照文件错误!不决义书签。
1需求剖析基本功能要求用小规模集成电路设计并制作一个四路彩灯显示系统的要求以下:开机自动置入初始状态后即能按规定的程序进行循环显示。
程序由三个节拍构成:第一节拍时,四路输出 Q1~Q4挨次为 1,使第一路彩灯先点亮,接着第二路、第三路、第四路彩灯挨次点亮;第二节拍时, Q4~Q1挨次为 0,使第四路先灭,而后第三路、第二路、第一路彩灯挨次灭;第三节拍时, Q1~Q4 输出同时为 1 态,而后同时为 0 态,使四路彩灯同时点亮,而后同时灭,共进行 4 次。
内蒙古师范大学计算机与信息工程学院《数字电路》课程设计报告设计题目彩灯控制器电路设计指导教师职称讲师姓名学号日期2012/7/5彩灯控制器电路设计计算机信息与工程学院 2010级计科师范汉班柴宁娇 20101102059指导老师张鹏举讲师摘要八路循环彩灯控制器整体电路由三部分组成:脉冲发生电路、移位寄存器、控制电路。
其中用时钟脉冲来启动电路,使其发出不同的频率产生不一样的脉冲,控制发光二极管,使电路更好的工作。
主要采用 74LS194 芯片接成扭环形结构的移位器来实现,最后做到两种花型的彩灯循环控制。
关键词脉冲发生电路;移位寄存器;控制电路;彩灯循环。
1 设计任务及主要技术指标和要求1.1 设计任务要求设计一个能够控制八路彩灯的逻辑电路。
1.2 主要技术指标和要求(1) 要求彩灯组成二种花型。
花型可以自己设置。
例如:花型Ⅰ——由中间到两边对称性依次亮,全亮后由中间向两边依次灭。
花型Ⅱ——8路灯分两半,从左自右顺次亮,再顺次灭。
(2) 要求两种花型交替出现。
2 工作原理要想实现本实验,需要实际时钟产生电路,循环控制电路和彩灯左右移,及全亮全灭输出电路。
时钟脉冲产生电路由脉冲发生器产生连续的脉冲。
循环电路采用74LS161 ,74LS194实现彩灯的循环控制。
具体主要通过两片双向移位寄存器74LS194 来实现彩灯电路控制,通过脉冲发生器来产生连续时钟信号的输入,由74LS161计数器来控制信号的移动方向,实现左移,右移及亮灭的功能。
总体电路原理图如下:时钟信号的产生花型的控制电路(74LS161)花型的显示电路花型演示电路(74LS194)图1:总体电路原理图花型控制电路:由74LS161 4位二进制同步计数器完;花型演示电路:由74LS194双向移位寄存器完成(可左移右移完成花型变化)。
3 基本组成3.1 花型控制信号电路由一片74LS161(两种花型每种显示一遍)计数器。
74LS161芯片用的是同步置数,并清零。
实验报告课程名称可编程逻辑器件实验项目名称彩灯学生班级学生姓名2013年 04 月 21 日目录一、实验目的和要求二、实验方案设计及其原理三、硬件要求四、源程序和下载结果五、实验结果分析六、实验收获和体验一、实验目的和要求熟悉分频的分频原理,并将之进行多次分频,将50MHZ的频率信号分为小频率输入,实现彩灯的闪烁快慢,进一步了解可编程程序的编写,熟用可编程的基本语句,能够独立思考并且完成一个的方案。
要求:1、要有4种花型变化2、多种花型可以自动变换、循环往复3、彩灯的快慢可以选择4、具有清零的开关二、实验方案设计及其原理经过对问题的分析和初步的整体思考,拟定以下方案:先将信号进行多次分频,以便使得彩灯的节奏可以选择,再用两个开关控制得到的四个频率,接着进行花型选择.第一次分出的频率为20HZ,第二次为10HZ,第三次为5HZ,第四次为0.5HZ;花型变换第一种:红灯先逐一亮起,接着是黄灯,最后是绿灯。
第二种:先依次亮前两盏红灯、黄灯、绿灯,再依次亮后面的两盏。
第三种:依次亮起四盏红灯、黄灯、绿灯。
第四种:亮起首尾的两盏红灯,中间的两盏黄灯,首尾的两盏绿灯,再中间的两盏红灯,首尾的两盏黄灯,中间的两盏绿灯。
三、硬件要求主芯片EPM240T100C5,3个开关,12个具有红黄绿的灯。
四、源程序和下载结果1.源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity caideng isport(rst,clk:in std_logic;speed:in std_logic_vector(0 to 1);r:out std_logic_vector(0 to 3);red,y,g:out std_logic);end;architecture one of caideng issignal d:integer range 0 to 26;signal clk1,clk2,clk3,clk4:std_logic; signal w:std_logic;beginprocess(clk)variable cnt1:integer range 0 to 1000; variable cnt2:integer range 0 to 1250; beginif clk'event and clk='1' thenif cnt1=1000 thencnt1:=0;if cnt2=1250 thencnt2:=0;clk1<=not clk1;elsecnt2:=cnt2+1;end if;elsecnt1:=cnt1+1;end if;end if;end process;process(clk1)variable cnt1:integer range 0 to 1; beginif clk1'event and clk1='1' then if cnt1=1 thencnt1:=0;clk2<=not clk2;elsecnt1:=cnt1+1;end if;end if;end process;process(clk2)variable cnt1:integer range 0 to 1; beginif clk2'event and clk2='1' then if cnt1=1 thencnt1:=0;clk3<=not clk3;elsecnt1:=cnt1+1;end if;end if;end process;process(clk3)variable cnt1:integer range 0 to 5; beginif clk3'event and clk3='1' thenif cnt1=5 thencnt1:=0;clk4<=not clk4;elsecnt1:=cnt1+1;end if;end if;end process;process(speed)begincase speed iswhen "00"=>w<=clk1;when "01"=>w<=clk2;when "10"=>w<=clk3;when "11"=>w<=clk4;end case;end process;process(w)beginif w'event and w='1' thenif d=26 thend<=0;else d<=d+1;end if;end if;end process;process(rst,d)variable r1:std_logic_vector(0 to 3); variable red1,y1,g1:std_logic; beginif rst='0' thenr1:="1111";red1:='0';y1:='0';g1:='0';elsecase d iswhen 0=>r1:="0111";red1:='1';y1:='0';g1:='0';when 1=>r1:="1011";red1:='1';y1:='0';g1:='0';when 2=>r1:="1101";red1:='1';y1:='0';g1:='0';when 3=>r1:="1110";red1:='1';y1:='0';g1:='0';when 4=>r1:="0111";red1:='0';y1:='1';g1:='0';when 5=>r1:="1011";red1:='0';y1:='1';g1:='0';when 6=>r1:="1101";red1:='0';y1:='1';g1:='0';when 7=>r1:="1110";red1:='0';y1:='1';g1:='0';when 8=>r1:="0111";red1:='0';y1:='0';g1:='1';when 9=>r1:="1011";red1:='0';y1:='0';g1:='1';when 10=>r1:="1101";red1:='0';y1:='0';g1:='1';when 11=>r1:="1110";red1:='0';y1:='0';g1:='1'; --一种亮法when 12=>r1:="0011";red1:='1';y1:='0';g1:='0';when 13=>r1:="0011";red1:='0';y1:='1';g1:='0';when 14=>r1:="0011";red1:='0';y1:='0';g1:='1';when 15=>r1:="1100";red1:='0';y1:='0';g1:='1';when 16=>r1:="1100";red1:='0';y1:='1';g1:='0';when 17=>r1:="1100";red1:='1';y1:='0';g1:='0'; --二种亮法when 18=>r1:="0000";red1:='1';y1:='0';g1:='0';when 19=>r1:="0000";red1:='0';y1:='1';g1:='0';when 20=>r1:="0000";red1:='0';y1:='0';g1:='1'; --三种亮法when 21=>r1:="0110";red1:='1';y1:='0';g1:='0';when 22=>r1:="1001";red1:='0';y1:='1';g1:='0';when 23=>r1:="0110";red1:='0';y1:='0';g1:='1';when 24=>r1:="1001";red1:='1';y1:='0';g1:='0';when 25=>r1:="0110";red1:='0';y1:='1';g1:='0';when 26=>r1:="1001";red1:='0';y1:='0';g1:='1'; --四种亮法end case;end if;r<=r1;red<=red1;y<=y1;g<=g1;end process;end;2.下载结果灯按照前面所示的花型进行亮着,并通过其中两个控制频率大小的开关(speed)可以进行控制灯闪烁的快慢,清零信号端(rst)可以执行所需要的要求,即当rst为1时,灯会按照所编写程序的要求运作。
实验八彩灯控制电路设计
一、实验目的:
掌握彩灯控制电路的设计方法。
二、实验设备:
数字电路实验箱,74LS00、74LS90、74LS86、74LS138。
三、实验原理:
74LS00是四2输入与非门,74LS90是二—五—十进制异步计数器,74LS86是四2输入异或门,74LS138是三—八线译码器。
四、实验内容:
输入00,彩灯全灭;输入01,彩灯左移;输入10,彩灯右移;输入11,彩灯全亮。
五、实验结果:
用74LS90实现四进制计数,通过74LS138译码成移位信号,实现彩灯左右移。
左右移由异或门控制。
00、01、10、11分别与0异或就是原码,与1异或就是反码11、10、01、00,彩灯移动方向刚好相反。
译码器的EN1由输入异或的结果控制,输入00、11时译码器不工作,输出全为1,通过运算可以得到全0的结果:
输入:00
输入:01
输入:10
输入:11
经验证,结果与理论相符。
彩灯VHDL设计在日常生活中,为了增加聚会或是过节氛围,经常要使用到彩灯循环点亮。
单一的循环可能无法起到理想的效果,通过不同花样的变换则能够很好的完成任务。
多路彩灯循环控制可以有多种实现方法,例如利用单片机可以实现,利用数字电路时序逻辑也可以实现。
我们这里利用VHDL语言实现对多路彩灯的控制。
彩灯的一种点亮方式经过足够长的延时后,转变为了其他的点亮方式。
这就需要一个CLK信号完成,CLK信号可以由晶体振荡器或者是振荡电路产生。
至于各种不同花样彩灯的变换,我们可以通过增加输入信号Sel来控制。
Sel为两位二进制数,分别为00,01,10,11,四种状态对应四种花样。
同时系统还需一个复位信号实现对电路的清零控制。
输出八位彩灯,我们这里用LED发光二极管代替。
当电路输出为“1”时,LED点亮。
当电路输出为“0”时,LED熄灭。
利用VHDL语言实现该功能程序如下:LIBRARY IEEE;USE IEEE.std_logic_1164.ALL;USE IEEE.std_logic_ARITH.ALL;USE IEEE.std_logic_UNSIGNED.ALL;ENTITY cd ISport( clk,clk_use:in std_logic;rst:in std_logic;light:out std_logic_vector(7 downto 0));END cd;ARCHITECTURE control OF cd IStype states is (s0,s1,s2,s3,s4,s5);signal state:states;SIGNAL clk1ms:std_logic:='0';SIGNAL cnt1:std_logic_vector(3 downto 0):="0000";SIGNAL cnt2:std_logic_vector(3 downto 0):="0000";SIGNAL cnt3:std_logic_vector(2 downto 0):="000";SIGNAL cnt4:std_logic_vector(2 downto 0):="000";SIGNAL cnt5:std_logic_vector(3 downto 0):="0000";SIGNAL cnt6:std_logic_vector(3 downto 0):="0000";BEGINPROCESS(clk1ms)BEGINif clk1ms'event and clk1ms='1' thenif state=s0 then --第一种彩灯花样的程序if (cnt1="1111") thencnt1<="0000";else cnt1<= cnt1+1;end if;case cnt1 iswhen "0000"=>light<="10000000";when "0001"=>light<="10100000";when "0010"=>light<="10101000"; when "0011"=>light<="10101010"; when "0100"=>light<="11101010"; when "0101"=>light<="11111010"; when "0110"=>light<="11111110"; when "0111"=>light<="11111111"; when "1000"=>light<="11111110"; when "1001"=>light<="11111010"; when "1010"=>light<="11101010"; when "1011"=>light<="10101010"; when "1100"=>light<="10101000"; when "1101"=>light<="10100000"; when "1110"=>light<="10000000"; when others=>light<="00000000";end case;elsif state=s1 then -- 第二种彩灯花样的程序if cnt2="1111" thenCnt2<="0000";else cnt2<= cnt2+1;end if;case cnt2 iswhen "0000"=>light<="11111111"; when "0001"=>light<="01111111"; when "0010"=>light<="00111111"; when "0011"=>light<="00011111"; when "0100"=>light<="00001111"; when "0101"=>light<="00000111"; when "0110"=>light<="00000011"; when "0111"=>light<="00000001"; when "1000"=>light<="00000011"; when "1001"=>light<="00000111"; when "1010"=>light<="00001111"; when "1011"=>light<="00011111"; when "1100"=>light<="00111111"; when "1101"=>light<="01111111"; when "1110"=>light<="11111111"; when others=>light<="00000000";end case;elsif state=s2 then -- 第三种彩灯花样的程序if cnt3="100" thenCnt3<="000";else cnt3<= cnt3+1;end if;case cnt3 iswhen "000"=>light<="10000001"; when "001"=>light<="11000011"; when "010"=>light<="11100111"; when "011"=>light<="11111111"; when others=>light<="00000000";end case;elsif state=s3 then -- 第四种彩灯花样的程序if cnt4="100" thencnt4<="000";else cnt4<= cnt4+1;end if;case cnt4 iswhen "000"=>light<="00011000"; when "001"=>light<="00111100"; when "010"=>light<="01111110"; when "011"=>light<="11111111"; when others=>light<="00000000";end case;elsif state=s4 then --第五种彩灯花样的程序if cnt5="1111" thenCnt5<="0000";else cnt5<=cnt5+1;end if;case cnt5 iswhen "0000"=>light<="11000000"; when "0001"=>light<="01100000"; when "0010"=>light<="00110000"; when "0011"=>light<="00011000"; when "0100"=>light<="00001100"; when "0101"=>light<="00000110"; when "0110"=>light<="00000011"; when "0111"=>light<="00000110"; when "1000"=>light<="00001100"; when "1001"=>light<="00011000"; when "1010"=>light<="00110000"; when "1011"=>light<="01100000"; when "1100"=>light<="11000000"; when others=>light<="00000000";end case;elsif state=s5 then -- 第六种彩灯花样的程序if cnt6="1111" thenCnt6<="0000";else cnt6<=cnt6+1;end if;case cnt6 iswhen "0000"=>light<="00000011"; when "0001"=>light<="00000110"; when "0010"=>light<="00001100"; when "0011"=>light<="00011000"; when "0100"=>light<="00110000"; when "0101"=>light<="01100000"; when "0110"=>light<="11000000"; when "0111"=>light<="01100000"; when "1000"=>light<="00110000"; when "1001"=>light<="00011000"; when "1010"=>light<="00001100"; when "1011"=>light<="00000110"; when "1100"=>light<="00000011"; when others=>light<="00000000";end case;end if;end if;END PROCESS P1;P2:PROCESS(clk) --分频进程variable cnt:integer range 0 to 10; BEGINIF(RST='0')thencnt:=0;ELSIF(clk'EVENT AND clk='1')thenif cnt<9 thencnt:=cnt+1;clk1ms<='0';elsecnt:=0;clk1ms<='1';end if;end if;end PROCESS P2;process(rst)--循环beginif (rst='1') thenstate<=s0;elseif(clk_use'event and clk_use='1') thencase state iswhen s0 =>state<=s1;when s1=>state<=s2;when s2=>state<=s3;when s3 =>state<=s4;when s4=>state<=s5;when s5=>state<=s1;end case;end if;end if;end process;end control;本控制电路采用VHDL语言设计。
《数字逻辑电路》实验报告
实验:彩灯
姓名:郭兵权
学号:120341108
12级计算机系A 班
邮箱:ronacaodo@
时间:2014年9月
一、实验目的
实现彩灯的效果。
基本功能:
1、有4种不同的花样变化,每种花样持续一定时间自动换成下一个花样,自动循环变换。
2、用8路LED灯来输出。
即每种花样都由8路LED灯来显示花样的变化。
扩展功能:
1、能显示花样的种数。
即给每种花样赋予相应的编号,当此种花样运行的时候,在数码管上显示相应的编号。
2、花样的选择可以控制。
即可以通过按键来选择输出的花形,并且和自动循环自由切换。
三、实验器材/环境
编写环境:Quartus Ⅱ;运行环境:EDA实验箱
芯片:74LS160(十进制计数器),74LS161(十六进制计数器)
74LS153(双四选一数据选择器),74LS164(八位移位寄存器)
74LS47(4—7七段数码管译码器)
四、实验设计思路
我将实验设计为四个模块:分频器,周期控制模块,花型控制显示模块,数码管显示模块。
总的设计思路如下:
首先,48Mhz的脉冲输入到逻辑电路,然后通过分频器分出需要的频率,由这个频率来控制之后每个LED灯亮的时间。
之后的周期控制模块对脉冲进行进一步的分频,将周期调整为一定的时间,这个时间就是每种花型运行的时间,同时也控制七段数码管在某个周期内显示出某个数字。
下图为QuartusⅡ中总的模块设计:。