plc8位彩灯循环控制
- 格式:ppt
- 大小:1.59 MB
- 文档页数:75


黄山学院专业姓名班级学号指导老师八路循环彩灯控制电路一、 设计要求(1)设计一组8路循环彩灯控制电路,发光二极管的亮度要明显可见。
(2)、点亮要有一定的规律,即按顺序点亮。
(3)、元件、芯片的摆放要合理。
(4)、布线要紧密、尽量短(5)用protuse 仿真,1 题目分析:八路彩灯循环点亮电路功能描述:八只彩灯按顺序轮流点亮,首先点亮第一盏灯,在第一盏灯熄灭之后,点亮第二盏灯,在第二盏灯熄灭之后,再去点亮第三盏灯,依次类推,直到点亮第八盏灯,看上去的效果就像亮点从第一盏灯依次流向第八盏灯,然后又点亮第一盏灯,反复循环这一过程。
2 整体构思:彩灯的控制是用数字集成电路的构成来实现的,用彩灯(LED 发光二极管)构成一个发光矩阵。
主要用计数器和译码器等来实现,其特点是用发光二极管显示,构成具有循环功能的彩灯控制电路。
将振荡器的振荡脉冲进行计数,计数器的输出作为译码器的地址输入,经译码器控制各路彩灯依次发亮。
用框图表示如下。
3 具体实现: (1)、根据题目要求,找到可能完成此功能的芯片。
一共有八只灯所以要用74LS138 3线-8线译码器74LS161十进制上升沿计数器。
(2)、确定芯片后,完成电路图。
(3)、根据题目要求,要实现八只灯按顺序点亮电路就要用到74LS138 3线-8线译码器和74LS161具有异步清零、同步置数、可以保持状态不变的十进制上升沿计数器。
以及发光二极管、电阻、导线、电平开关和万用版。
(4)、按照电路图连接线路,检查是否连接正确 。
(5)、检查功能实现,如果不能进行调试、修改。
二、单元电路设计参考1、振荡器设计:用集成555电路构成多谐振荡器。
电路如下图所示。
振荡器计数器 译码器 8路彩灯 → → →U 0的周期: 2、计数器的选用:选四位二进制同步加/减计数器74LS161。
其引脚功能图如下所示。
其真值表如下:)C 2R 0.7(R T 21+=三、设计原理电路四、材料清单:五、protuse仿真部分截图图:六、心得体会:实验之前必须认真阅读有关方面的知识,在心中要有一个大概的模型或过程。
黄冈师范学院物理科学与技术学院EDA课程设计课题:8路彩灯循环控制专业年级:电信0702学号:200722240218姓名:余涛指导老师:冯杰时间:2010年1月8日一、设计目的:1、熟练掌握VHDL的设计过程。
2、掌握软件和硬件结合实现功能。
3、了解FPGA/CPLD类芯片的功能及作用。
4、了解和掌握彩灯设计的思想从而为今后的电路设计奠基基础。
二、设计思想:采用的设计方法是一种高层次的“自顶而下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计。
通过对VHDL语言设计普通电路来实现彩灯的控制的电路,从而能够用MAX+PLU SⅡ平台上进行仿真实现功能。
三、功能描述:此八路彩灯有3种变化,这3种变化可以进行手动切换,三种变化分别为:1、彩灯自左向右依次点亮。
2、彩灯自左向右逐个点亮。
3、彩灯两边两个先亮,然后同时向中间逐个点亮,随后中间同时向两边熄灭。
四、设计原理:本实验主要是为了实现了彩灯循环点亮的不同控制,它主要由彩灯循环控制方式和彩灯循环点亮变化方式选择两大部分组成。
1、彩灯循环控制方式的设计,在这里主要是通过实验箱指示灯显示。
在电路中以1代表灯亮,以0代表灯灭,由0、1按不同的规律组合代表不同的点亮方式,同时使其选择不同的频率,从而实现多种变化多种频率的花样功能显示。
2、彩灯循环点亮变化方式选择,在这里设计了彩灯三种不同的循环变化方式。
我们用状态机来控制不同的点亮方式,从而达到不同的点亮方式随时切换变化。
五、程序设计:(1)实现功能1:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng1 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END caideng1;ARCHITECTURE a OF caideng1 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THEN NUM<=NUM+1;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="10000000"; WHEN 1 =>Q<="01000000";WHEN 2 =>Q<="00100000"; WHEN 3 =>Q<="00010000";WHEN 4 =>Q<="00001000"; WHEN 5 =>Q<="00000100";WHEN 6 =>Q<="00000010"; WHEN 7 =>Q<="00000001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(2)实现功能2:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng2 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END caideng2;ARCHITECTURE a OF caideng2 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0;BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THENIF NUM<=7 THEN NUM<=NUM+1;ELSE NUM<=0;END IF;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="10000000";WHEN 1 =>Q<="11000000";WHEN 2 =>Q<="11100000";WHEN 3 =>Q<="11110000";WHEN 4 =>Q<="11111000";WHEN 5 =>Q<="11111100";WHEN 6 =>Q<="11111110";WHEN 7 =>Q<="11111111";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(3)实现功能3:LIBRARY ieee;USE ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng3 ISPORT(CLK:IN STD_LOGIC;RST:IN STD_LOGIC;Q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END caideng3;ARCHITECTURE a OF caideng3 ISSIGNAL NUM: INTEGER RANGE 7 DOWNTO 0; BEGINPROCESS(CLK)BEGINIF RST='1' THEN NUM<=0;ELSIF CLK'EVENT AND CLK='1' THENIF NUM<=7 THEN NUM<=NUM+1;ELSE NUM<=0;END IF;END IF;END PROCESS;PROCESS(NUM)BEGINCASE NUM ISWHEN 0 =>Q<="00000000";WHEN 1 =>Q<="10000001";WHEN 2 =>Q<="11000011";WHEN 3 =>Q<="11100111";WHEN 4 =>Q<="11111111";WHEN 5 =>Q<="11100111";WHEN 6 =>Q<="11000011";WHEN 7 =>Q<="10000001";WHEN OTHERS =>NULL;END CASE;END PROCESS;END a;仿真波形:(4)状态机:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY caideng_ztj ISPORT(CLK,RST: IN STD_LOGIC;Q1,Q2,Q3: IN STD_LOGIC_VECTOR(7 DOWNTO 0);T:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END caideng_ztj;ARCHITECTURE behav OF caideng_ztj ISTYPE states IS (s0,s1,s2);SIGNAL YT : states ;BEGINP1: PROCESS(CLK,RST)BEGINIF RST ='1' THENYT <= S0;ELSIF CLK'EVENT AND CLK = '1' THENCASE YT ISWHEN s0 => YT <= s1;WHEN s1 => YT <= s2;WHEN s2 => YT <= s0;WHEN OTHERS => YT <= s0;END CASE ;END IF;END PROCESS ;P2: PROCESS(YT)BEGINCASE YT ISWHEN s0 => T(7 DOWNTO 0)<= Q1 (7 DOWNTO 0);WHEN s1 => T(7 DOWNTO 0)<= Q2 (7 DOWNTO 0);WHEN s2 => T(7 DOWNTO 0)<= Q3 (7 DOWNTO 0);WHEN OTHERS => T(7 DOWNTO 0)<=Q1 (7 DOWNTO 0); END CASE ;END PROCESS P2 ;END behav;仿真波形:(5)实现上述3项功能的总原理图:仿真波形:六、实验箱调试:1、引脚锁定:我选用实验电路结构图NO.7为这次彩灯硬件调试的操作界面。
说明书目录1前言 (1)1.1序言 (1)1.2目前彩灯的应用情况 (1)1.3主要工作概述 (2)2 总体方案设计 (3)2.1方案比较 (3)2.2方案论证 (4)2.3方案选择 (4)3.单元模块电路设计 (5)3.1时钟信号发生器 (5)3.2 序列信号发生器 (7)3.3 移位输出显示电路 (13)4软件设计 (16)4.1Proteus仿真软件 (16)4.2 Altium designer软件 (16)4.3软件的设计结构 (18)5系统调试 (19)5.1脉冲信号发生器的调试 (19)5.2序列信号发生器和以为输出显示电路调试 (20)5.3整体电路的调试 (20)5.4系统实现的功能 (21)6设计总结与收获 (22)7 参考文献 (24)附录:彩灯显示控制电路原理图 (25)说明书1前言1.1序言由于集成电路的迅速发展,使得数字逻辑电路的设计发生了根本性的变化。
在设计中更多的使用中,规模集成电路,不仅可以减少电路组件的数目,使电路简捷,而且能提高电路的可靠性,降低成本。
因此用集成电路来实现更多更复杂的器件功能则成为必然。
随着社会市场经济的不断繁荣和发展,各种装饰彩灯、广告彩灯越来越多地出现在城市中。
在大型晚会的现场,彩灯更是成为不可缺少的一道景观。
小型的彩灯多为采用霓虹灯电路则不能胜任。
在彩灯的应用中,装饰灯、广告灯、布景灯的变化多种多样,但就其工作模式,可分为三种主要类型:管做成各种各样和多种色彩的灯管,或是以日光灯、白炽灯作为光源,另配大型广告语、宣传画来达到效果。
这些灯的控制设备多为数字电路。
而在现代生活中,大型楼宇的轮廓装饰或大型晚会的灯光布景,由于其变化多、功率大,数字长明灯、流水灯及变幻灯。
长明灯的特点是只要灯投入工作,负载即长期接通,一般在彩灯中用以照明或衬托底色,没有频繁的动态切换过程,因此可用开关直接控制,不需经过复杂的编程。
流水灯则包括字形变化、色彩变化、位置变化等,其主要特点是在整个工作过程中周期性地花样变化。
8个led灯循环点亮程序汇编语言asm.
ORG 0000H.
AJMP MAIN.
ORG 0030H.
MAIN:
MOV A, #0FEH ; 初始点亮第一个LED(1111 1110)LOOP:
MOV P1, A.
LCALL DELAY.
RL A ; 循环左移。
SJMP LOOP.
DELAY:
MOV R7, #250 ; 外层循环次数,可以调整延时时间。
D1:
MOV R6, #250.
D2:
DJNZ R6, D2.
DJNZ R7, D1.
RET.
END.
在这个程序中:
1. 程序从地址`0000H`开始,跳转到`MAIN`程序段。
2. 在`MAIN`程序段中,先将`A`的值设置为`0xFEH`,然后把`A`的值赋给`P1`口来点亮第一个LED。
3. 接着调用`DELAY`子函数进行延时,然后通过`RL A`指令将`A`中的值循环左移一位,这样就可以依次点亮下一个LED。
4. `DELAY`子函数通过两层循环来实现简单的延时功能。
`R7`和`R6`作为循环计数器,通过`DJNZ`指令来控制循环次数,从而达到延时的目的。