八路彩灯控制程序
EDA课程设计:八路彩灯控制器

EDA课程设计:八路彩灯控制器第一篇:EDA课程设计:八路彩灯控制器EDA课程设计设计题目:基于VHDL的8路彩灯控制器设计一、课程设计的目的1.熟悉QuartusⅡ软件的使用方法,使用VHDL 文本输入设计法进行任务设计。
2.增强自己实际动手能力,独立解决问题的能力。
3.通过课程设计对所学的知识进行更新及巩固.二、课程设计的基本要求本次课程设计是设计一个8路彩灯控制器,能够控制8路彩灯按照两种节拍,三种花型循环变化。
设计完成后,通过仿真验证与设计要求进行对比,检验设计是否正确。
三、课程设计的内容编写硬件描述语言VHDL程序,设计一个两种节拍、三种花型循环变化的8路彩灯控制器,两种节拍分别为0.25s和0.5s。
三种花型分别是:(1)8路彩灯分成两半,从左至右顺次渐渐点亮,全亮后则全灭。
(2)从中间到两边对称地渐渐点亮,全亮后仍由中间向两边逐次熄灭。
(3)8路彩灯从左至右按次序依次点亮,全亮后逆次序依次熄灭。
四、实验环境PC机一台;软件Quartu sⅡ6.0五、课程设计具体步骤及仿真结果1、系统总体设计框架结构分频模块:把时钟脉冲二分频,得到另一个时钟脉冲,让这两种时钟脉冲来交替控制花型的速度。
二选一模块:选择两种频率中的一个控制彩灯的花型。
8路彩灯的三种花型控制模块:整个系统的枢纽,显示彩灯亮的情况。
2、系统硬件单元电路设计1.分频模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenclkk1:= not clkk1;end if;clkk<=clkk1;end process;end behav;RTL电路图:波形图:2.二选一模块设计实验程序:library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;RTL电路图:波形图:3.8路彩灯的三种花型控制模块设计程序: library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when “00100”=>q<=“11111111”;when “00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when“01100”=>q<=“10000001”;when“01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;w hen“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;RTL电路图:波形图:4.综合程序library ieee;use ieee.std_logic_1164.all;entity fenpin2 isport(clk:in std_logic;clkk:out std_logic);end fenpin2;architecture behav of fenpin2 is beginprocess(clk)variable clkk1:std_logic:='0';beginif clk'event and clk='1' thenend if;clkk<=clkk1;end process;end behav;library ieee;use ieee.std_logic_1164.all;entity mux21 is port(a,b,s:in std_logic;y:out std_logic);end mux21;architecture behave of mux21 is begin process(a,b,s)begin if s='0' then y<=a;else y<=b;end if;end process;end behave;library ieee;clkk1:= not clkk1;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color8 is port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end;architecture a of color8 is signal s:std_logic_vector(4 downto 0);begin process(s,clk)begin if rst='1' then s<=“00000”;elsif clk'event and clk= '1' then if s=“11111” thens<=“00000”;else s<=s+1;end if;case s is when “00000”=>q<=“00000000”;when“00001”=>q<=“10001000”;when“00010”=>q<=“11001100”;when“00011”=>q<=“11101110”;when“00100”=>q<=“11111111”;when“00101”=>q<=“00000000”;when“00110”=>q<=“00011000”;when“00111”=>q<=“00111100”;when“01000”=>q<=“01111110”;when“01001”=>q<=“11111111”;when“01010”=>q<=“11100111”;when“01011”=>q<=“11000011”;when “01100”=>q<=“10000001”;when “01101”=>q<=“00000000”;when“01110”=>q<=“10000000”;when“01111”=>q<=“11000000”;when“10000”=>q<=“11100000”;when“10001”=>q<=“11110000”;when“10010”=>q<=“11111000”;when“10011”=>q<=“11111100”;when“10100”=>q<=“11111110”;when“10101”=>q<=“11111111”;when“10110”=>q<=“11111110”;when“10111”=>q<=“11111100”;when“11000”=>q<=“11111000”;when“11001”=>q<=“11110000”;when“11010”=>q<=“11100000”;when“11011”=>q<=“11000000”;when“11100”=>q<=“10000000”;when“11101”=>q<=“00000000”;when others=>null;end case;end if;end process;end;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng is port(clk,s,rst:in std_logic;q:out std_logic_vector(7 downto 0));end;architecture one of balucaideng issignal h0,h1:std_logic;component fenpin2port(clk:in std_logic;clkk:out std_logic);end component;component mux21 port(a,b,s:in std_logic;y:out std_logic);end component;component color8 port(clk,rst :in std_logic;q:out std_logic_vector(7 downto 0));end component;begin u1: fenpin2 port map(clk=>clk,clkk=>h0);u2: mux21 port map(a=>h0,b=>clk,s=>s;y=>h1);u3: color8 port map(clk=>h1,rst=>rst,q=>q);end;波形图:六、实验总结第二篇:eda课程设计-彩灯控制器1.设计目的学习EDA开发软件和MAX+plus Ⅱ的使用方法,熟悉可编程逻辑器件的使用,通过制作来了解彩灯控制系统。
单片机八个灯依次亮的编程汇编语言

单片机八个灯依次亮的编程汇编语言哎呀,这可是个不简单的活儿啊!单片机八个灯依次亮,听起来就像是在玩连连看,可是可不是那么简单的事情哦!不过别着急,我来给你讲讲怎么搞定这个“连连看”吧!我们得了解一下单片机的基本知识。
单片机就像一个小电脑,里面有好多好多的芯片,可以完成各种各样的任务。
这次我们要让单片机控制八个灯依次亮起来,就像是在跳一个八步舞一样,一步一步地来。
第一步,我们得给这八个灯分别取个名字。
比如说,第一个灯叫做“小明”,第二个叫做“小红”,以此类推。
这样一来,我们就可以用名字来代替它们了,方便我们进行编程。
第二步,我们得告诉单片机该怎么做。
这就需要用到编程语言了。
编程语言就像是我们跟单片机沟通的工具,它告诉单片机:“小明先亮一下,然后是小红,再是小刚......”这样一来,单片机就知道该按照什么顺序来控制灯了。
第三步,我们得把这个程序写到单片机里。
这可不是一件容易的事情,需要我们仔细地思考每一个步骤,确保没有漏洞。
写完之后,我们还得把程序烧录到单片机的芯片里,让它变成真正的“活”程序。
第四步,我们得测试一下这个程序是否正常工作。
这就像是在排练一场舞蹈一样,我们需要不断地调整步伐和节奏,直到完美无缺。
如果发现有什么问题,我们就得赶紧修改程序,让它重新开始跳舞。
终于到了最后一步——让我们看看这个八步舞到底有多精彩吧!当所有的灯都亮起来的时候,你会感觉就像是看到了一场绚丽多彩的烟花表演,让人陶醉其中。
这就是单片机控制八个灯依次亮起来的魅力所在!虽然这个任务看起来有点儿复杂,但是只要我们一步一步地来,就一定能够成功。
就像学习任何一门新技能一样,只要肯下功夫、勤奋努力,就一定能够取得好成绩!加油吧!。
《彩灯控制器设计》word版

彩灯控制器设计摘要一、系统设计要求设计一个控制电路来实现8路彩灯按照一定的次序和时间间隔闪烁。
具体要求如下:1、当控制开关为0时,灯全灭;当控制开关为1时,从第一盏开始,依次点亮,时间间隔为1秒。
期间一直保持只有一盏灯亮、其他灯全灭的状态。
2、8盏灯依次亮完后,从第8盏开始依次灭,期间一直保持只有一盏灯灭、其他灯全亮的状态。
3、当8盏灯依次灭完后,8盏灯同时亮同时灭,其时间间隔为0.5秒,并重复4次。
4、只要控制开关为1,上述亮灯次序不断重复。
5、用层次化设计方法设计该电路,编写各个功能模块的程序。
6、仿真各功能模块,通过观察有关波形确认电路设计是否正确。
7、完成电路设计后,用实验系统下载验证设计的正确性。
二、系统总体结构系统框图如下所示,ENA为控制开关,输入信号为2Hz,经过分频器分频之后产生一个1Hz的时钟信号,用两个12位内部信号的左、右移后的中间8位来控制8个灯的亮与灭。
计数器1和计数器2的作用:一方面用2Hz和1Hz的时钟信号控制灯亮、灭的时间间隔;另一方面控制八盏灯的依次亮、依次灭和全亮、全灭。
使能信号ENA为无效电平时(低电平),8只LED灯保持全灭的状态;当使能信号ENA为有效电平时(高电平),8只按照既定的花型进行变换,首先2Hz的时钟信号在分频器的左右下改变为1Hz的时钟信号,该1Hz的时钟信号送至计数器2、左移和右移模块,并由计数器2实现左、右移模块的选择。
分别实现8只LED灯的自左向右依次点亮,以及自右向左依次熄灭的花型变换;当完成自右向左的花型变换后,计数器2给出一个控制信号给计数器1,执行全亮全灭的花型变换,该模块的时钟信号是未经分频器分频的原始时钟信号2Hz。
只要使能信号有效,那么该系统就按照以上的花型变换顺序一直永序的变换下去。
三、各功能模块1、时钟信号二分频模块:功能描述:该模块的功能主要是将频率为2Hz的时钟信号分频频率为1Hz的时钟信号,并将频率为1Hz的时钟信号输出给左移、右移模块作为这两个模块时钟触发信号。
8路彩灯控制器

8路彩灯控制器实验报告8路彩灯控制器一、实验目的:1、熟熟练掌握VHDL的用法2、了解8路彩灯的工作原理,电路结构。
二、实验要求:设计一个8路彩灯控制器,能控制8路彩灯按照两种节拍、三种花形循环变化。
两种节拍分别为0.25s和0.5s。
三种花型分别是:1、8路彩灯从左至右按次序见谅,全亮后逆次序渐灭。
2、从中间到两边对称渐亮,全亮后仍从中间到两边逐次渐灭。
3、8路彩灯分两半,从左至右顺次渐亮,全亮后则全灭。
三、实验原理:四、实验程序与步骤:程序:1、8路彩灯的三种花形控制模块CDlibrary ieee;use ieee.std_logic_arith.all;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cd isport(clk:in std_logic;jp:out std_logic;qq:out std_logic_vector(7 downto 0)); end cd; architecture behav of cd isconstant w:integer:=7;signal q:std_logic_vector(7 downto 0); beginprocess(clk)variable flag:bit_vector(2 downto 0):="000"; variable jp1:std_logic:='0';beginif clk'event and clk='1' thenif flag="000"thenq<='1'&q(w downto 1);if q(1)='1'thenflag:="001";end if;elsif flag="001" thenq<=q(w-1 downto 0)&'0';if q(6)='0'thenflag:="010";end if;elsif flag="010"thenq(w downto 4)<=q(w-1 downto 4)&'1';q(w-4 downto 0)<='1'&q(w-4 downto 1);if q(1)='1'thenflag:="011";end if;elsif flag="011"thenq(w downto 4)<=q(w-1 downto 4)&'0';q(w-4 downto 0)<='0'&q(w-4 downto 1);if q(1)='0'thenflag:="100";end if;elsif flag="100"thenq(w downto 4)<='1'&q(w downto 5);q(w-4 downto 0)<='1'&q(w-4 downto 1);if q(1)='1'thenflag:="101";end if;elsif flag="101"thenq<="00000000";jp1:=not jp1;flag:="000";end if;end if;qq<=q;jp<=jp1;end process;end behav;2、二选一多路选择器模块MUX21 library ieee; use ieee.std_logic_1164.all;entity mux21 isport(a,b,s:in std_logic;y:out std_logic);end mux21;architecture ar of mux21 isbeginprocess(a,b,s)beginif s='0'theny<=a;elsey<=b;end if;end process;end ar;3、二分频模块FEN2library ieee;use ieee.std_logic_1164.all;entity fen2 isport(clk:in std_logic;clkk:out std_logic);end fen2;architecture behav of fen2 isbeginprocess(clk)variable clkk1:std_logic:='0'; beginif clk'event and clk='1'thenclkk1:=not clkk1;end if;clkk<=clkk1;end process;end behav;步骤:1、输入程序CD、MUX21、FEN2。
八路彩灯控制器 课程设计

目录第一章总体设计 (5)1.1设计目的 (5)1.2设计任务与要求 (5)1.3基本工作原理 (5)1.4设计方案 (5)第二章单片机简介 (6)2.1单片机结构 (6)2.2单片机的封装形式、引脚定义及功能 (7)2.3单片机的工作原理 (8)2.4 CPU的工作原理 (8)2.5存储器结构 (9)2.6 CPU时序及时钟电路 (10)2.7复位操作 (12)第三章硬件设计 (14)3.1整体硬件接结构 (14)3.2功能模块电路 (14)3.3系统硬件原理电路图 (16)第四章软件设计 (17)4.1软件总体结构设计 (17)4.2各功能模块设计 (18)总结与心得 (25)参考文献: (26)第一章总体设计1.1设计目的1)了解单片机的基本原理及相关的简单应用。
2)掌握用单片机设计系统的一般步骤。
3)了解LED数码管的基本知识和驱动方法。
4)掌握单片机系统各个组成部分的作用以及分布位置。
5)学会运用单片机的硬件资源。
1.2设计任务与要求8个彩灯的控制电路的任务为:用AT89S51单片机设计设计一个8个彩灯控制电路。
要求:完成以下花形变化:1) 从左到右依次点亮,8个灯全亮;从右到左依次熄灭,8个灯全灭。
时间节拍为1秒。
2)从两边向中间依次点亮,8个灯全亮;从中间向两边依次熄灭,8个灯全灭。
时间节拍为1秒。
3)循环往复,用LED管模拟彩灯。
4)用汇编语言编程,用proteus仿真。
1.3基本工作原理此次使设计一个能控制八路彩灯的控制器,其中彩灯用发光二极管模拟。
由P1.6和P1.7口控制电路启动与停止,根据彩灯的亮灭要求,利用数据指针查表,将查到的内容送给P2口进行显示,然后调用1s延时程。
若查到的内容为跳出代码就重新开始循环。
1.4设计方案软件方面:通过汇编语言编程实现不同要求的状态,由延时程序实现1秒的延时时间。
硬件方面:彩灯启动与停止由P1.6和P1.7口进行控制,彩灯的显示状态由AT89C51的P2口输出显示。
8路彩灯循环控制

黄冈师范学院物理科学与技术学院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为这次彩灯硬件调试的操作界面。
plc8位彩灯循环控制

离散(中 等)
9
12
HSC0 CV=PV
10
27
HSC0方向改变
11
28
HSC0外部复位
12
13
HSC1 CV=PV
13
14
HSC1方向改变
14
15
HSC1外部复位
15
16
HSC2 CV=PV
16
17
HSC2方向改变
17
18
HSC2外部复位
18
Page 14
精选课件
二、相关知识
2.中断程序
(2)中断事件与中断指令。 ① 中断事件。
2
定时器T96 CT=PT中断
3
精选课件
二、相关知识
(三)S7-200 CPU控 制程序的构成
2.中断程序
(2)中断事件与中断指令。
② 中断指令
梯形图 RETI ENI DISI ATCH DTCH
CLR_EVNT
语句表 CRETI
ENI DISI ATCH INT,EVNT DTCH EVNT CEVNT EVNT
上升沿,I0.0 上升沿,I0.1 上升沿,I0.2 上升沿,I0.3 下降沿,I0.0 下降沿,I0.1 下降沿,I0.2 下降沿,I精0.选3 课件 HSC0 CV=PV
优先级分组
离散(中 等)
按组排列的优 先级 0 1 2 3 4 5 6 7 8 9 10
19
PTO 0脉冲输出完成中断
0
20
Page 11
精选课件
二、相关知识
(三)S7-200 CPU控 制程序的构成
2.中断程序
(2)中断事件与中断指令。 ① 中断事件。
8个彩灯控制电路设计

程序和PROTEUS图已经做出来了(如下),preteus图可以运行简单的彩灯程序,但是运行这个程序时灯只是全亮不动,程序和proteus图都找不出问题,希望高手指点一二。
要求:1 从左到右排列,编号为1~8号。
系统启动后,灯管点亮的顺序依次为:1号→2号→3号→...→7号→8 号,时间间隔为1S。
8根彩灯全亮后,持续10S。
然后按照8号→7号→6号→...→2号→1号的顺序依次熄灭,时间间隔为1S。
灯管全部熄灭后,等待2S,再从8号灯管开始,按照8号→7号→6号→...→2号→1号的顺序依次点亮,时间间隔为1S。
全部点亮后持续20S,再按照1号→2号→3号→...→7号→8号的顺序熄灭,时间间隔仍为1S。
灯管全部熄灭后,等待2S,再重新开始上述过程的循环。
下面是已经做出来的程序:ORG 0000HLJMP STARTORG 0030HSTART: MOV TMOD,#10HMOV TH1,#3CHMOV TL1,#0B0H ;定时器1工作于模式1,时间为50msMOV P1,#0FFH ;低电平有效,灯熄灭MOV R7,#00HLOOP1: INC R7MOV A,R7MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P1,ALCALL DELAY1CJNE R7,#8,LOOP1;8次没显示完则继续循环LCALL DELAY2;过程1MOV R7,#8LOOP2: DEC R7MOV A,R7MOVC A,@A+DPTRMOV P1,ALCALL DELAY1CJNE R7,#0,LOOP2;8次没完则继续循环LCALL DELAY1MOV R7,#0HLOOP3:INC R7MOV DPTR,#TAB2MOV A,R7MOVC A,@A+DPTRMOV P1,ALCALL DELAY1CJNE R7,#8,LOOP3;8次未完继续循环LCALL DELAY3MOV R7,#8HLOOP4:DEC R7MOV A,R7MOVC A,@A+DPTRMOV P1,ALCALL DELAY1CJNE R7,#0,LOOP4;8次未完继续循环LCALL DELAY1LJMP START ;开始下一个循环DELAY1:MOV R0,#20LOOP5:SETB TR1JNB TF1,$DJNZ R0,LOOP5CLR TR1RET ;一秒延时DELAY2:MOV R0,#9LOOP6:LCALL DELAY1DJNZ R0,LOOP6RET ;9秒延时DELAY3:MOV R0,#19LOOP7:LCALL DELAY1DJNZ R0,LOOP7RET ;19秒延时TAB1:DB 0FFH,7FH,3FH,1FH,0FHDB 07H,03H,01H,00HTAB2:DB 0FFH,0FEH,0FCH,0F8H,0F0HDB 0E0H,0C0H,080H,00HEND这是proteus图。
plc8位彩灯循环控制

二、相关知识 (五)数据处理指令
1.传送指令 (1)数据传送指令
数据传送指令的表示符号
二、相关知识 (五)数据处理指令
1.传送指令 (2)数据块传送指令
字节块、字块、双字块传送指令的表示符号
二、相关知识 (五)数据处理指令
0=启动信号高电平有效,1=低电平有 效
SM37.2 SM47.2 SM57.2
二、相关知识 (一)功能指令概述
PLC的应用指令也称为功能指令,是指在完成基本逻 辑控制、定时控制、顺序控制的基础上,PLC制造商 为满足用户不断提出的一些特殊控制要求而开发的指 令。PLC的应用指令越多,其功能就越强。一条功能 指令相当于一段程序。
二、相关知识 (二)功能指令的形式
图8-2 功能指令的形式
3.移位指令 左移位和右移位指令的使用
二、相关知识 (五)数据处理指令
3.移位指令 (3)循环左移位指令
循环左移位指令的表示符号
二、相关知识 (五)数据处理指令
3.移位指令 (4)循环右移位指令
循环右移位指令的表示符号
二、相关知识 (五)数据处理指令
3.移位指令 (5)移位寄存器指令SHRB
移位寄存器的使用说明
② 中断指令
梯形图 RETI ENI DISI ATCH DTCH
CLR_EVNT
语句表 CRETI
ENI DISI ATCH INT,EVNT DTCH EVNT CEVNT EVNT
描述 从中断程序有条件返回
允许中断 禁止中断 连接中断事件和中断程序 断开中断事件和中断程序 的连接 清除中断事件
二、相关知识
8路输出的彩灯循环控制电路数电说明书(内附电路图)

绪论数字电子技术已经广泛地应用于计算机,自动控制,电子测量仪表,电视,雷达,通信等各个领域。
例如在现代测量技术中,数字测量仪表不仅比模拟测量仪表精度高,功能高,而且容易实现测量的自动化和智能化。
随着集成技术的发展,尤其是中,大规模和超大规模集成电路的发展,数字电子技术的应用范围将会更广泛地渗透到国民经济的各个部门,并将产生越来越深刻的影响。
随着现代社会的电子科技的迅速发展,要求我们要理论联系实际,数字电子逻辑课程设计的进行使我们有了这个非常关键的机会。
随着科学的发展,人们生活水平的提高,人们不满足于吃饱穿暖,而要有更高的精神享受。
不论是思想,还是视觉,人们都在追求更高的美。
特别使在视觉方面,人们不满足于一种光,彩灯的诞生让人们是视觉对美有了更深的认识。
本设计是一个彩灯控制器,使其实用于家庭、商场、橱窗、舞厅、咖啡厅、公共广场等场所的摆设、装饰、广告、环境净化与美化。
本次课程设计在编写时参考了大量优秀教材,并得到太原科技大学机械电子工程学院测控技术与仪器教研室刘畅老师的大力支持,他提出来许多的意见和建议,在此表示衷心的感谢。
由于编者水平有限,本设计说明书难免出现不妥之处,恳请老师和广大读者给与批评并提出宝贵的意见,我将由衷地欢迎与感激。
编者2010年于太科大目录绪论 (1)一、课程设计题目 (3)二、课程设计目的 (4)三、课程设计基本要求: (4)四、课程设计任务和具体功能 (5)五、工作原理 (5)六、设计总框图 (6)七、电路元器件的说明 (6)八、总电路图 (27)九、调试与检测 (28)十、误差分析: (28)十一、设计心得体会。
(28)附录 (28)参考文献 (28)一、课程设计题目:8路输出的彩灯循环控制电路二、课程设计目的:1、巩固和加强“数字电子技术”、“模拟电子技术”课程的理论知识的理解和应用。
2、掌握电子电路的一般设计方法,了解电子产品研制开发的过程。
3、提高电子电路实验技能及Multisim10仿真软件的使用能力。
数字电路课程设计--八路彩灯控制实验

《数字电子技术》课程设计报告八路彩灯控制实验要求:一、功能要求设计一个8路移存型彩灯控制器,基本要求:1. 8路彩灯能演示三种花型(花型自拟);2. 彩灯用发光二极管LED模拟;二、设计要求1、根据设计要求选择合适的元器件,并掌握其使用方法;2、画出电路原理图(或仿真电路图);3、先进行电路的仿真与调试,通过后才能答辩;4、画出PCB图。
三、制作要求自行装配和调试,具有一定的分析和解决问题的能力。
四、设计报告的编写要求编写设计报告,附上有关资料和图纸,并谈谈自己心得和体会。
姓名:张双学号:1886100128 专业:电子科学与技术班级:电子101班成绩:评阅人:安徽科技学院理学院物电系八路彩灯控制实验彩灯电路实验将传统的4个分离的电路移位寄存器,计数器(分频器),555和组合电路实验综合为一个完整的设计型的时序、组合电路综合实验。
电路中包含8组发光管(每组发光二极管的数量可以根据需要,通过串并联和加电阻等控制调节),74LS161(四位二进制同步计数器)、74LS194(移位寄存器)、74LS151(八选一数据选择器)、74LS74(双D 触发器)、74LS00(四二输入与非门)、74LS04(六非门)、555 等其他元件组合而成。
由二片移位寄存器194实现。
其八个输出信号端连接八个发光二极管,用其输出信号控制发光二级管的亮灭实现花型演示。
而花型之间的变化通过花型控制电路的输出即161级联的计数器输出控制(它们由同一个CP脉冲控制)。
一、设计要求设计一个8路移存型彩灯控制器,基本要求:1. 8路彩灯能演示三种花型(花型自拟);2. 彩灯用发光二极管LED模拟;二、原理框图(1)总体方案的设计总体电路分为四块。
第一块实现花型的演示;第二块实现花型的控制;第三块实现节拍控制;第四块实现时钟信号的产生。
并在部分电路的设计上与方案一采用了完全不同的方法,如花型的控制。
主体框图如下:花型控制电路:由1614位二进制同步计数器完成;花型演示电路:由195 双向移位寄存器完成(可左移右移完成花型变化);节拍控制电路:节拍变化由151八选一数据选择器完成,节拍的快慢变化可有74双上升沿D触发器完成,它可实现二分频。
单片机C语言程序-依次点亮八个LED灯

unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=230;a>0;a--);
}
下面是c语言程序源码
#include <reg51.h>
void delay100ms(); //如果函数是在主函数后面定义,那么一定要在主函数前面声明
i=0xfe;
while(1)
{P1=i;
i--;
delay100ms();
if(i==0)
i=0xfe;
}
}
void delay100ms(void)//
运行后看到的效果是从第一个灯开始随着时间变化二进制数的递减所有的灯都会依次的点亮当全部的灯都被点亮后再重新开始这个过程一直循环下去单片机是不是很有趣
单片机C语言程序-依次点亮八个LED灯
电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?
八路彩灯控制程序

FPGA课程设计——8路彩灯控制程序2013年12月12日8路彩灯控制程序一、设计任务1.设计目的:(1)了解及掌握时序电路及组合电路的基本结构常用数字电路(2)通过ModelSim软件编写组合电路与时序电路混合的程序进行仿真和调试。
(3)74LS194 移位寄存器和74LS161 计数器的使用。
2.设计内容:编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。
(1)8路彩灯同时亮灭;(2)从左至右逐个亮(每次只有1路亮);(3)8路彩灯每次4路亮,4路灯灭,且灯灭相同,交替亮灭;在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。
二、设计方案论证74LS161 是四位二进制同步加数器,74LS194 是一个 4 位双向移位寄存器,它具有左移,右移,保持,清零等逻辑功能,八路彩灯控制器通过利用双向移位寄存器 74LS194 的串行输入, 个并行输 8 出端控制彩灯;双向移位寄存器 74LS194 的控制端 S1=0,S0=1 时,进行右移; S1=1,S0=0 时, 进行左移; 十六位计数器 74LS161 可以从 0000 到 1111 进行计数. 利用十六位计数器 74LS161 的功能实现自动循环.(1)8路彩灯同时亮灭:111111110000000011111111(2)从左至右逐个亮(每次只有1路亮);111111110111111110111111110111111110111111110111111110111111110111111110(3)8路彩灯每次4路亮,4路灯灭,且灯灭相同,交替亮灭 111111110000111111110000三、结构及其工作原理1.结构框图:2.电路的原理图:3.电路工作原理:74LS161 是四位二进制同步加数器, 74LS194 是一个 4 位双向移位寄存器,它具有左移,右移,保持,清零等逻辑功能, 八路彩灯控制器通过利用双向移位寄存器 74LS194 的串行输入, 个并行输 8 出端控制彩灯;双向移位寄存器 74LS194 的控制端 S1=0,S0=1 时,进行右移; S1=1,S0=0 时, 进行左移; 十六位计数器 74LS161 可以从 0000 到 1111 进行计数. 利用十六位计数器 74LS161 的功能实现自动循环.四、主要元件1.数字电路实验箱 1 台2.74LS161 芯片 1 片3.74LS194 芯片 2 片4.导线若干五、仿真过程及结果新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。
数电课程设计_八路彩灯控制器

湖南工程学院课程设计课程名称电子技术课程设计课题名称彩灯控制器专业电气工程及其自动化班级1102学号201101010210姓名郭昕指导教师田莉2013年12月27日湖南工程学院课程设计任务书课程名称:电子技术课程设计题目:多功能数字钟电路专业班级:电气1102学生姓名:郭昕学号:201101010210指导老师:田莉审批:田莉任务书下达日期2013年12月16日设计完成日期2013年12月27日目录一课程设计题目(与实习目的) (7)(一)、题目:多路彩灯控制器 (7)(二)、实习目的: (7)二总体方案的选择 (7)(1)总体方案的设计 (7)(2)总体方案的选择 (8)三单元电路的设计 (9)(1)花型演示电路 (9)(2)花型控制信号电路 (13)(3)节拍控制电路 (14)(4)时钟信号电路原理图 (16)四总体电路图(见附页) (18)五电路组装后,实际测量的各个单元电路的输入、输出信号波形18 六安装、调试过程 (21)七故障分析与电路改进 (22)(一)、巩固数电知识 (23)(二)、学会用电路板、芯片、导线等组装各种功能的电路; (23)(三)、和同学共同合作、互相学习、共同进步 (24)八总结: (24)九附录(元器件清单): (25)十参考文献。
(25)一课程设计题目(与实习目的)(一)、题目:多路彩灯控制器(二)、实习目的:1.进一步掌握数字电路课程所学的理论知识。
2.熟悉几种常用集成数字芯片的功能和应用,并掌握其工作原理,进一步学会使用其进行电路设计。
3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。
4.培养认真严谨的工作作风和实事求是的工作态度。
5.数点课程实验是大学中为我们提供的唯一一次动手实践的机会,增强动手实践的能力。
二总体方案的选择(1)总体方案的设计针对题目设计要求,经过分析与思考,拟定以下二种方案:方案一:总体电路共分三大块。
第一块实现花型的演示;第二块实现花型的控制;第三块实现时钟信号的产生。
八路彩灯-EDA

八路彩灯-EDA重庆交通大学信息科学与工程学院综合性实验报告姓名: xx 学号631206020xxx班级:电子信息工程专业xxxx级x班实验项目名称:循环8路彩灯控制电路实验项目性质:综合性试验实验所属课程:实验室(中心):信息与通信实验室指导教师: xxx实验完成时间: xxxx 年 x 月 xx 日一、实验目的学习8路循环彩灯的设计,掌握基本的VHDL程序设计。
二、实验内容及要求设计一个8路循环彩灯控制电路,要求其能按照一定顺序和时间间隔显示两种以上的花色,所显示的花色根据个人自定。
三、实验原理本次设计分为两个部分:八位加法计数器,八路彩灯显示。
利用八个D触发器构成八位加法计数器,设置脉冲输入端:cp,预置端:r,使能端:en。
并要求计数器计数到00011010时再次返回最初状态重新计数,循环此计数功能,为之后的八路彩灯重复显示规定的三种花色做准备。
八路彩灯显示的设计利用case语句,输入是一个八位二进制数,输出是八位彩灯的状态。
输入的八位二进制数由八位加法计数器计数结果得到。
最后使用元件例化语句将两个部分合二为一,实现八路彩灯的控制。
五、实验过程及原始记录(含电路图)1、为本次设计建立一个文件夹并取名final。
2、打开Quartus II软件,新建一个工程,再选择菜单“file”--“new”,在弹出的“new”对话框中选择“Device Design File”的文本编辑输入项“VHDL file”,再点击“Ok”后打开文本编辑窗,在此文本编辑窗中编写需要的程序。
3、在编辑窗口编写程序,根据题目要求和设计思路编写并进行编译、排错,直到能编译通过。
4、先写八位加法计数器的程序,设置脉冲输入端cp,预置端r,使能端en,输出端outy,当en=1和前两个脉冲中r=1时计数,当计数到00011010时,重新从0开始计数,如此循环。
5、再写八路彩灯显示的程序,使用case语句,计数器从0开始计数直到00011010的过程中,八个灯变换三种不同的花色。
八路彩灯控制程序(整理).pptx

FPGA 课程设计
——8 路彩灯控制程序
XXXX 年 12 月 12 日
一、设计任务
1. 设计目的:
8 路彩灯控制程序
(1) 了解及掌握时序电路及组合电路的基本结构常用数字电路
(2)通过 ModelSim 软件编写组合电路与时序电路混合的程序进行仿真和调试。
(3)74LS194 移位寄存器和 74LS161 计数器的使用。
if(!reset) count2<=0; else if(count2<=7) begin in<=2'b00; count2<=count2+1; end else if(count2<=15) begin in<=2'b01; count2<=count2+1; end else if(count2<23) begin
学海无 涯
5
学海无 涯
in<=2'b10; count2<=count2+1; end else if(count2==23) begin in<=2'b10; count2<=0; end else begin in<=2'bZZ; count2<=0; end end always@(clkflag or count or in or reset) if(!reset) ledout<=8'h00; else begin case(in) 2'b00: if(clkflag) ledout=8'hFF; else ledout=8'h00; 2'b01: case(count) 'h0:ledout=8'h80; 'h1:ledout=8'h40; 'h2:ledout=8'h20; 'h3:ledout=8'h10; 'h4:ledout=8'h08; 'h5:ledout=8'h04;
八路彩灯控制

目录第一章绪论 (3)1.1课题研究背景 (3)1.2 设计要求 (3)1.2.1 设计题目和设计指标 (3)1.2.2 设计功能 (3)第二章电路原理图及方框图 (4)第三章电路的设计、组装及调试 (6)3.1电路功能结构组成 (6)3.1.1 元件的主要参数和引脚图 (6)3.2 整机简要工作原理 (7)3.3门电路多谐振荡器 (8)3.4 控制电路 (8)3.4.1 预置数的控制 (8)3.4.2 移动方向控制电路 (9)3.4.3 移动速度控制电路 (10)3.5 双向移位寄存器 (10)3.6 组装与调试 (11)3.6.1振荡电路 (11)3.6.2方向控制电路 (12)3.6.3 预置电路 (12)3.6.4显示电路 (12)3.6.5移位电路 (12)第四章主要故障和检修方法 (14)结论 (15)收获和体会 (16)致谢 ................................ 错误!未定义书签。
参考文献 (17)附录 (18)第一章绪论1.1课题研究背景彩灯又叫花灯,是我国传统的民间艺术品。
彩灯的产生,是从人类用火,发明灯,制造灯具发展而来的,随着我国科学技术的发展,彩灯艺术更是各式各样,传统的制灯工艺与现代科学技术紧密结合,将电子、建筑、机械、遥控、声学等新技术、新工艺用于彩灯的设计制造,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一的典范。
本设计以IC CD40194和IC CD4069和IC CD4071芯片实现,提出一种手动彩灯控制器,它的主要元均采用CMOS数字电路,驱动部分采用三极管9014,因此具有电路简洁、工作可靠、控制形式多样,使用安全方便的特点。
1.2 设计要求1.2.1 设计题目和设计指标设计题目:八路彩灯控制技术指标:(1)可控制八路彩灯(2)可以向左移动,也可向右移,还可以左右交替移动(3)起始状态可预置(4)速度可调1.2.2 设计功能使彩灯按照一定的形式和规律闪亮第二章电路原理图及方框图图2-1 电路原理图图2-2 电路方框图第三章电路的设计、组装及调试3.1电路功能结构组成整机电路包括以下功能单元:整机的核心是CD40194级联组成的8位双向移位寄存器,控制8路彩灯按一定规律闪亮。
八路循环彩灯控制电路设计

课程设计报告书试验大致思路如下:3.器件管脚分配图:图1(4017管脚分配图)CD4017是十进制计数器,它包含译码器。
计数器在时钟禁止输入为低电平时,在时钟脉冲上升沿进位。
在时钟禁止输入为高电平时,时钟被禁止。
复位输入为高电平时,时钟输入独立运行。
该芯片是一个十进制分配器,只要在其脉冲信号输入端接入脉冲信号,每来一个脉冲信号时,该芯片就会从Q0~~Q9~~Q0循环发出高电平,并且能够保持这个脉冲信号没有结束时,一直是高电平。
由此可知,该芯片能够运用于控制端或者是用于循环彩灯等等方面的应用。
引出端功能符号CO:进位脉冲输渊CP:时钟输入端CR:清除端INH:禁止端Q0-Q9 计数脉冲输出端VDD:正电源VSS:地真值表输入输出CP INH CR Q0-Q9 CO× × H Q0↑L LH ↓L计数计数脉冲为Q0-Q4时:CO=HL × L× H L↓× L×↑L保持计数脉冲为Q5-Q9时:CO=L图2(4069管脚分配图)CD4069又称为六反向器,广泛运用于各种电路设计中。
当Vcc=5~10V时,C110uFU1A 4069BCL_5V U2B 4069BCL_5V R210kΩR1200kΩ1234图4图4为电路中的一部分,是用来产生时钟脉冲的多谐振荡器,它仿真图如下图5整个电路的仿真图如下;。
-八路可控循环彩灯实验报告

班级:学号:姓名:指导老师:2010年6月2日八路循环彩灯控制电路一、 设计要求设计一组8路循环彩灯控制电路,要求每路灯循环亮2秒。
二、 设计方案将振荡器的振荡脉冲进行计数,计数器的输出作为译码器的地址输入,经译码器控制各路彩灯依次发亮。
用框图表示如下。
三、单元电路设计参考1、振荡器设计用集成555电路构成多谐振荡器。
电路如下图所示。
四、 电路元件参数计算若选用四位二进制计数器,要达到设计要求,振荡周期T 应为1秒。
振荡器 计数器 译码器 8路彩灯 → → → CR R T )2(7.021+=若取R1= R2 =R,则T ≈2RC 。
当取C=100μF 时,R ≈ T/(2C )=0.5/C=5K Ω 一般电路中,取C1= 0.01μF五、 计数器的选用选四位二进制同步加/减计数器74LS191。
其引脚功能如下图所示。
QA~ QC 作输出, QD 不用。
使输出数据的频率为输入时钟频率的二分频,周期为2秒。
六、译码器的选用译码器选用74LS138,其引脚功能如下图所示。
当输入A0、A1、A2在000~111变化时,对应的输出Y0至Y7为低Y 7 Y 6 Y 5 Y 4 Y 3 Y 2 Y 1 Y 0 S 2S 3 S 1 A2 A1 A074LS191B QB QA G U/D QC QD GNDVcc A CP RC MIN/MAX PL C D3电平,驱动外接彩灯发亮。
七、彩灯的选用这里选用一般灯泡做彩灯。
由于电源电压为220V,每次只亮一路灯,限流电阻R3=(UCC-VD)/ID,当可调电阻R3阻值为100时,调整R3,可以调节彩灯的亮度。
八、设计原理电路当D/U脚接高电平或悬空时,计数器执行减法,彩灯由上依次一次亮灭;按下开关时,D/U脚接低电平,计数器执行加法,彩灯由下到上依次亮灭。
八、心得体会由于对计数器比较陌生,在选用计数器时,花了很多时间,个人觉得在以后的日子里要熟悉各种各样的芯片,这样才不会接到任务时茫然而不知所措,无从下手。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA课程设计——8路彩灯控制程序
2013年12月12日
8路彩灯控制程序
一、设计任务
1.设计目的:
(1)了解及掌握时序电路及组合电路的基本结构常用数字电路
(2)通过ModelSim软件编写组合电路与时序电路混合的程序进行仿真和调试。
(3)74LS194 移位寄存器和74LS161 计数器的使用。
2.设计容:
编写一个8路彩灯控制程序,要求彩灯有以下3种演示花型。
(1)8路彩灯同时亮灭;
(2)从左至右逐个亮(每次只有1路亮);
(3)8路彩灯每次4路亮,4路灯灭,且灯灭相同,交替亮灭;
在演示过程中,只有当一种花型演示完毕才能转向其他演示花型。
二、设计方案论证
74LS161 是四位二进制同步加数器,74LS194 是一个 4 位双向移位寄存器,它具有左移,右移,保持,清零等逻辑功能,八路彩灯控制器通过利用双向移位寄存器 74LS194 的串行输入, 个并行输 8 出端控制彩灯;双向移位寄存器 74LS194 的控制端 S1=0,S0=1 时,进行右移; S1=1,S0=0 时, 进行左移; 十六位计数器 74LS161 可以从 0000 到 1111 进行计数. 利用十六位计数器 74LS161 的功能实现自动循环.
(1)8路彩灯同时亮灭:
11111111
00000000
11111111
(2)从左至右逐个亮(每次只有1路亮);
11111111
01111111
10111111
11011111
11101111
11110111
11111011
11111101
11111110
(3)8路彩灯每次4路亮,4路灯灭,且灯灭相同,交替亮灭 11111111
00001111
11110000
三、结构及其工作原理
1.结构框图:
2.电路的原理图:
3.电路工作原理:
74LS161 是四位二进制同步加数器, 74LS194 是一个 4 位双向移位寄存器,它具有左移,右移,保持,清零等逻辑功能, 八路彩灯控制器通过利用双向移位寄存器 74LS194 的串行输入, 个并行输 8 出端控制彩灯;双向移位寄存器 74LS194 的控制端 S1=0,S0=1 时,进行右移; S1=1,S0=0 时, 进行左移; 十六位计数器 74LS161 可以从 0000 到 1111 进行计数. 利用十六位计数器 74LS161 的功能实现自动循环.
四、主要元件
1.数字电路实验箱 1 台
2.74LS161 芯片 1 片
3.74LS194 芯片 2 片
4.导线若干
五、仿真过程及结果
新建工程及文件,分别添加设计程序及测试程序,进行编译及纠错,编译通过后运行程序仿真进行调试得出结果。
设计模块:
module caideng(clk,ledout,reset);
input reset,clk;
output[7:0] ledout;
integer i;
reg[7:0] ledout; reg[2:0] count;
reg[4:0] count2;
reg clkflag;
reg[1:0] in;
always (posedge clk) begin
if(!reset)
count<=0;
else if(count<=3) begin
clkflag<=0;
count<=count+1;
end
else if(count<7) begin
clkflag<=1;
count<=count+1;
end
else if(count==7) begin
clkflag<=1;
count<=0;
end
else
begin
clkflag<=1;
count<=count+1;
end
end
always (posedge clk)
begin
if(!reset) count2<=0;
else if(count2<=7)
begin
in<=2'b00;
count2<=count2+1;
end
else if(count2<=15)
begin
in<=2'b01;
count2<=count2+1;
end
else if(count2<23)
begin
in<=2'b10;
count2<=count2+1;
end
else if(count2==23)
begin
in<=2'b10;
count2<=0;
end
else
begin
in<=2'bZZ;
count2<=0;
end
end
always(clkflag or count or in or reset)
if(!reset)
ledout<=8'h00;
else
begin
case(in)
2'b00: if(clkflag) ledout=8'hFF; else ledout=8'h00;
2'b01:
case(count)
'h0:ledout=8'h80;
'h1:ledout=8'h40;
'h2:ledout=8'h20;
'h3:ledout=8'h10;
'h4:ledout=8'h08;
'h5:ledout=8'h04;
'h6:ledout=8'h02;
'h7:ledout=8'h01;
default:ledout=8'h00;
endcase
2'b10: if(clkflag) ledout=8'hAA; else ledout=8'h55;
default: ledout=8'h00;
endcase
end
endmodule
六、电路安装与调试
测试模块:
`timescale 1ns/1ns
module testbench;
reg clk,reset;
wire [7:0] ledout;
caideng led_inst(clk,ledout,reset);
initial
begin
reset=1'b1;
#10 reset=1'b0;
#40 reset=1'b1;
end
initial
begin
clk=1'b0;
forever
#10 clk=~clk;
end
Endmodule
七、课程设计体会
通过整个电路设计与制作的整个过程, 掌握了组装与调试方法. 熟悉了中,小规模集成电路的使用. 通过理论与实践的结合,进一步深入的体会到一种学习的方法,特别是对与电子设计方面.首先要明确总体的设计方案与方法;其次是对各个部分进行设计与改进;最后将各个部分整合在一起进行比较,观察. 在流水灯实验设计当中遇到的首要问题有三个:一是电路的总体设计问题; 二是电路的焊接问题;三是电路的调试问题.基于所学数字电路知识的局限性, 在选择元器件方面有所困难,开始无从下手应该确定使用何种元件.通过查找资料等过程首先确定了元件,从而确定了总电路图.由于初次进行焊接工作,所以在电路焊接的时候造成了许多虚焊,导致电路无常运行.加重了电路调试的作业量. 总的来说,流水灯的课程设计有利于培养我们对电子设计的兴趣,是一次很好的理论与实际的结合,希望能有更多机会进行这些课程设计.
八、参考文献
[1]《数字逻辑与数字统计》(第三版),王永军,景华,电子工业.
[2]《电子技术实验与课程设计》(第二版),毕满清,机械工业.
[3]《数字逻辑电路学习与实训指导》,梅开乡,电子工业.。