彩灯控制器实验

合集下载

微机原理课程设计报告彩灯控制器

微机原理课程设计报告彩灯控制器

专业班级:计算机1301姓名:学号:指导老师:2016年 1 月15 日彩灯控制器一、实验要求、设计目的及功能实现实验要求:现在有8盏彩灯,4个开关作为输入,控制4种闪烁方式。

当没有开关闭合时,4种花型依次轮流闪烁,每种花型闪烁时间持续2分钟,每盏灯点亮的时间为1秒。

只有某一个开关闭合时,对应的花型连续不断的闪烁。

设计实现该功能的电路,并编写完整的代码。

设计目的:(1)巩固和加深微机原理所学知识;(2)学习掌握一般的软硬件的设计方法和查阅、运用资料的能力。

所实现的功能:本课程设计所设计的彩灯控制器的主要功能有:向外发散显示、向中递推显示、0-7依次显示、奇数灯显示,偶数灯显示等功能。

输出采用8个二极管显示,每个灯亮1秒。

二、实验原理在这次课程设计中主要用到了8255A可编程并行接口芯片可用程序来设置芯片的工作方式,通用性强,使用灵活,可为CPU与外设之间提供并行输入/输出的通道。

8254给1S的信号送到8259,再送到8255A控制灯亮的时间。

三、硬件原理图0 0000000000000000000000000008255工作原理及内部结构1.8255A内部结构8255A的内部结构如图2所示,它由4部分组成:(1) 数据总线缓冲器它是一个双向三态8位缓冲器,用作与系统总线连接是的缓冲部件.CPU与8255A之间所有的数据的发送与接收以及CPU向8255A发送的控制信息和8255A向CPU回送的状态信息都是通过它传送的(2)三个8位端口PA、PB、PC端口A(PA口):有一个8位数据输入锁存器和一个8位数据输入锁存/缓冲器;端口B(PB口):有一个8位数据输入缓冲器和一个8位数据输入/输出,锁存/缓冲存储器器;端口C(PC口):有一个8位数据输入缓冲存储器器和一个8位数据输出锁存/缓冲器。

通常PA口与PB口用作输入/输出的数据端口,PC口用作控制和状态信息端口。

PC口可以分为两个四位的端口,每个端口包含一个四位锁存器,可分别同PA 口和PB口配合使用,用作控制信号(输出)或作为状态信号(输入)。

课程设计报告—多路彩灯控制器

课程设计报告—多路彩灯控制器

课程设计报告—多路彩灯控制器一、项目介绍多路彩灯控制器是一款具有多种颜色控制功能的控制器,可以实现多种灯光图案的显示。

它的主要功能是控制多脚灯泡的变化和状态,使其产生不同颜色的灯光,构成不同的图案或者变换模式。

二、主要功能1.控制部件:该控制器采用通用数字微处理器作为控制元件,它可以控制多种灯光,包括白色、红色、绿色和蓝色等,还可以同时控制多个LED,实现不同灯光图案的显示。

2.控制算法:在算法上,多路彩灯控制器采用“时序控制”算法,它可以控制灯泡在某一秒内的时间序列,从而实现不同图案的表现效果。

3.连接部件:它还具有外界输入部件,可以连接电脑,便于使用者设计和控制灯光图案,也可以更改和重置控制器,以设计新的灯光图案。

三、困难点1.多灯光多变显示:多路灯光的多变显示要求控制器具有良好的时序管理能力,以及良好的判断力,能够实时根据外部特征环境、光源特性等,控制灯泡成某种特定的灯光图案。

2.多模式控制:多模式控制要求控制器具有嵌入式内部控制算法,以实现不同的相关控制功能。

3.可视化编程:多模式控制还要求可视化编程,使用者可以通过可视化编程界面来设计灯光图案。

四、实现方案1.硬件系统:由数字微处理器、多路输出控制器、LED灯光、外界输入部件(如按键、鼠标、USB 等)等组成。

2.控制软件:控制程序和用户界面设计,将硬件设计和实现,以及灯光显示软件结合起来,实现灯光图案的控制。

五、总结多路彩灯控制器的主要功能是控制灯泡在某一秒内的时序变化,以及实现多种灯光图案的显示。

它的实现方案主要由硬件系统、控制软件和外界输入组成,它的主要困难点包括多灯光多变显示、多模式控制和可视化编程等。

彩灯控制器实验报告.

彩灯控制器实验报告.

电工电子课程设计实验报告题目名称:彩灯控制器指导教师:姓名:学号:专业班级:日期:前言电子技术课程设计是配合电子技术基础课程与实验教学的一个非常重要的教学环节。

它是电气信息类专业学生的重要基础实践课,也是工科专业的必修课,能巩固电子技术的理论知识,提高电子电路的设计水平,加强综合分析问题和解决问题的能力,进一步培养学生的实验技能和动手能力,启发学生的创新意识及创新思维。

完成本次课程设计,对进行毕业设计及毕业后从事电子技术方面的工作都有很大的帮助。

近年来,由于集成电路的迅速发展,使得数字逻辑电路的设计发生了根本性的变化。

在设计中更多的使用中规模集成电路,不仅可以减少电路组件的数目,使电路简捷,而且能提高电路的可靠性,降低成本。

因此用集成电路来实现更多更复杂的器件功能则成为必然。

现代生活中,彩灯越来越成为人们的装饰品,它不仅能美化环境,渲染气氛,还可用于娱乐场所和电子玩具中,现以该课题为例进行分析与设计可编程的彩灯控制的电路很多,构成方式和采用的集成片种类、数目更是五花八门,而且有专门的可编程循环彩灯控制电路。

绝大多数的彩灯控制电路都是用数字电路来实现的,例如,用中规模集成电路实现的彩灯控制器主要用计数器,译码器,分配器和移位寄存器等集成。

本次设计的可编程彩灯控制电路就是用寄存器、计数器和译码器等来实现,其特点是用发光二极管显示,实现可预置编程循环功能。

目录前言 1一、课题设计任务及要求 .3二、设计目的 3三、优选设计方案 4四、整体设计思想及原理框图 5五、各模块设计与分析 61、脉冲发生电路 72、控制电路和译码电路 103、存储电路 124、数码管显示电路 .14六、元器件清单 15七、安装及调试中出现的问题和解决方法 15八、设计感想 17附录一、实验电路图 20二、实验电路连接图 .21三、参考文献 21一、课题设计任务及要求课题名称:可编程彩灯控制器设计任务及要求:通过对硬件编程,将图形、文字、动画存储在E2PROM中,通过计数器控制图形、文字、动画的地址,在利用显示矩阵显示出来。

彩灯控制程序设计实验

彩灯控制程序设计实验

彩灯控制程序设计实验本实验主要是为了让学生掌握单片机的GPIO控制输入输出嵌入式系统的基本原理,了解彩灯的控制原理,掌握运用彩灯控制的相关知识和技能。

在本实验的过程中,学生需要运用STM32F103单片机进行彩灯控制程序设计,通过模拟输入控制、中断服务控制、定时器控制、串口控制和PWM控制等方式,控制LED及RGB彩灯等外设,实现各种彩灯效果。

实验器材:1. STM32F103单片机开发板2. USB转串口线3. 彩灯开发板4. 杜邦线若干根实验环境:MCU开发环境:Keil5串口调试工具:SecureCRT实验步骤:1、搭建硬件环境将STM32F103单片机开发板和彩灯开发板连接起来。

连接方式如下:将单片机的PB9引脚连接在彩灯的DOUT引脚上;2、编写程序程序设计的主要思路在于,利用单片机的GPIO控制输入输出,通过串口调试工具与STM32F103单片机进行通信,实现彩灯的各种控制效果。

2.1控制LED输出例如,为了控制LED闪烁,可以将GPIOB的输出模式设置为高速推挽输出模式,可以利用HAL库中的GPIO_Init()函数进行配置,代码如下:void LED_GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStruct = {0};//使能GPIO口的时钟__HAL_RCC_GPIOB_CLK_ENABLE();//GPIO配置GPIO_InitStruct.Pin = GPIO_PIN_12;GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;GPIO_InitStruct.Pull = GPIO_NOPULL;GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);}在主函数中调用该函数后,即可控制LED的灯光频闪,代码如下:2.2通过按钮控制彩灯开启/关闭在彩灯板上有两个按钮,分别是PLAY和MODE。

彩灯的控制实训报告

彩灯的控制实训报告

实训题目:彩灯的控制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级联实现。

实验三彩灯控制器设计实验

实验三彩灯控制器设计实验

实验三彩灯控制器设计实验一、实验目的1、通过实验初步了解实验箱上的频率源的基本使用方法。

2、通过阅读彩灯实验程序,了解编程并行处理的思维方式。

3、初步掌握EDA开发软件的调试方法。

二、实验要求1、阅读和了解彩灯的编程思路。

2、验证彩灯实验。

三、实验设备1、计算机一台2、EDA——Ⅳ实验箱一台四、实验原理在本实验中(如附录1-NO.4所示),8个彩灯共阴接地,阳极分别为10k10的8个I/O相连,I/O输出变化的电平,来控制彩灯的点亮。

五、实验连线1 将实验板正中上方,JPLED1(数码管右下方)的短路帽右插;JPLED的七个短路帽全部上插;2 实验板右下方频率选择区中CLK5(即JP153)的短路帽接1Hz或23Hz;五、实验内容与步骤1、打开MAX+plusⅡ软件,编辑项目文件“File →Project →Name →light,”。

2、打开文本文件,light.vhd。

3、阅读原文件:--彩灯显示实验library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity light isport(clk1: in std_logic; ---时钟信号light: buffer std_logic_vector(7 downto 0)); --输出end light;architecture behv of light isconstant len: integer:=7;signal banner: std_logic:='0'; ----定义信号banner为两种节拍转换信号;signal clk,clk2: std_logic; ----信号CLK1,CLK2作为辅助时钟beginclk<=(clk1 and banner) or (clk2 and not banner);process(clk1)beginif clk1'event and clk1='1' then ---CLK1二分频得CLK2 clk2<=not clk2;end if;end process;process(clk) ----variable flag: bit_vector(2 downto 0):="000";beginif clk'event and clk='1' thenif flag="000" thenlight<='1' & light(len downto 1); ----顺序循环移位if light(1)='1' then ----依次点亮flag:="001";end if;elsif flag="001" then ———依次熄灭light<=light(len-1 downto 0) & '0';if light(6)='0' thenflag:="010";end if;elsif flag="010" thenlight(len downto 4)<=light(len-1 downto 4)&'1'; ---从中间向两边点light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="011";end if;elsif flag="011" thenlight(len downto 4)<='0'&light(len downto 5); ----从两边向中间熄light(len-4 downto 0)<=light(len-5 downto 0)&'0';if light(2)='0' thenflag:="100"; end if;elsif flag="100" thenlight(len downto 4)<='1'&light(len downto 5); ----奇偶位循环点亮light(len-4 downto 0)<='1'&light(len-4 downto 1);if light(1)='1' thenflag:="101";end if;elsif flag="101" thenlight<="00000000";flag:="110";elsif flag="110" then ----从新开始banner<=not banner; ---banner信号转换,实现第二种节拍flag:="000";end if;end if;end process;end behv;4、选择器件:点击”Assign→Device”然后选择EPF10K10LC84-4。

彩灯控制电路实习报告

彩灯控制电路实习报告

实习报告:彩灯控制电路设计与实现一、实习目的1. 掌握彩灯控制电路的基本原理及设计方法;2. 熟悉常用电子元器件的选型及应用;3. 培养动手实践能力和团队协作精神;4. 提高自身综合素质,为今后从事电子技术工作奠定基础。

二、实习内容1. 分析彩灯控制电路的需求及工作原理;2. 选型合适的电子元器件,设计电路图;3. 制作电路板,进行焊接;4. 调试电路,验证功能;5. 撰写实习报告。

三、实习过程1. 分析需求本次实习旨在设计一款彩灯控制电路,实现对LED彩灯的亮度调节、颜色切换等功能。

通过对市场需求及电路性能的分析,确定电路应具备以下功能:(1)亮度调节:通过旋转编码器实现;(2)颜色切换:通过按键实现;(3)自动关机:通过定时器实现。

2. 元器件选型根据功能需求,选型如下元器件:(1)旋转编码器:用于亮度调节,型号为MC14468;(2)按键:用于颜色切换,型号为SC1602;(3)定时器:用于自动关机,型号为TC77;(4)LED彩灯:用于显示效果,型号为WS2812;(5)电源模块:为电路提供稳定的电源,型号为LM2596。

3. 电路设计根据元器件选型,设计电路图,如下:```+----------------+| MC14468 |+----[3]---------+|v+----------------+| SC1602 |+----[1]---------+|v+----------------+| TC77 |+----[3]---------+|v+----------------+| LM2596 |+----[VIN]-------+|v+----------------+| WS2812 |+----[DATA]------+|v+----------------+| GND |+----------------+```4. 电路制作与调试根据电路图,制作电路板,进行焊接。

实验十四 多路彩灯控制器

实验十四  多路彩灯控制器

实验十四多路彩灯控制器一、实验任务及要求设计一个十六路彩灯控制器,6种花型循环变化,有清零开关,并且可以选择快慢两种节拍。

二、设计说明与提示1、设计说明根据系统设计要求可知,整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK_IN,系统清零信号CLR,彩灯节奏快慢选择开关CHOSE_KEY;共有16个输出信号LED[15..0],分别用于控制十六路彩灯。

据此,我们可将整个彩灯控制器CDKZQ分为两大部分:时序控制电路SXKZ和显示控制电路XSKZ,整个系统的组成原理图如图2-4所示。

2、提示(1) 在时序控制电路SXKZ的设计中,利用计数器计数达到分频值时,对计数器进行清零,同时将输出信号反向,这就非常简洁地实现了对输入基准时钟信号的分频,并且分频信号的占空比为0.5。

(2) 在显示控制电路XSKZ的设计中,利用状态机可以非常简洁地实现了六种花型的循环变化,同时利用六个十六位常数的设计,可非常方便地设置和修改六种花型。

(3) 对于顶层程序的设计,因本系统模块较少,既可使用文本的程序设计方式,也可使用原理图的设计方式。

但对于模块较多的系统,最好使用文本的程序设计方式。

图2-4彩灯控制器组成原理图三、实验报告要求1.画出顶层原理图。

2.系统通过仿真后,根据EDA实验开发系统进行编程下载和硬件验证。

3.写出各功能模块的VHDL语言源文件。

4.书写实验报告时应结构合理,层次分明,注意语言的流畅。

四、主要VHDL源程序1、时序控制电路的VHDL源程序--SXKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SXKZ ISPORT(CHOSE_KEY:IN STD_LOGIC;CLK_IN:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK:OUT STD_LOGIC);END ENTITY SXKZ;ARCHITECTURE ART OF SXKZ ISSIGNAL CLLK:STD_LOGIC;BEGINPROCESS(CLK_IN,CLR,CHOSE_KEY) ISVARIABLE TEMP:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF CLR='1' THEN --当CLR='1'时清零,否则正常工作CLLK<='0';TEMP:="000";ELSIF RISING_EDGE(CLK_IN) THENIF CHOSE_KEY='1' THENIF TEMP="011" THENTEMP:="000";CLLK<=NOT CLLK ;ELSETEMP:=TEMP+'1';END IF;-- 当CHOSE_KEY='1'时产生基准时钟频率的1/4的时钟信号,否则产生基准时钟 --频率的1/8的时钟信号ELSEIF TEMP="111" THENTEMP:="000";CLLK<=NOT CLLK ;ELSETEMP:=TEMP+’1';END IF;END IF;END IF;END PROCESS;CLK<=CLLK;END ARCHITECTURE ART;2、显示控制电路的VHDL源程序--XSKZ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY XSKZ ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END ENTITY XSKZ;ARCHITECTURE ART OF XSKZ ISTYPE STATE IS(S0,S1,S2,S3,S4,S5,S6);SIGNAL CURRENT_STATE:STATE;SIGNAL FLOWER:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINPROCESS(CLR,CLK) ISCONSTANT F1:STD_LOGIC_VECTOR(15 DOWNTO 0):="0001000100010001"; CONSTANT F2:STD_LOGIC_VECTOR(15 DOWNTO 0):="1010101010101010"; CONSTANT F3:STD_LOGIC_VECTOR(15 DOWNTO 0):="0011001100110011"; CONSTANT F4:STD_LOGIC_VECTOR(15 DOWNTO 0):="0100100100100100"; CONSTANT F5:STD_LOGIC_VECTOR(15 DOWNTO 0):="1001010010100101"; CONSTANT F6:STD_LOGIC_VECTOR(15 DOWNTO 0):="1101101101100110"; --六种花型的定义BEGINIF CLR='1' THENCURRENT_STATE<=S0;ELSIF RISING_EDGE(CLK) THENCASE CURRENT_STATE ISWHEN S0=>FLOWER<="ZZZZZZZZZZZZZZZZ";CURRENT_STATE<=S1;WHEN S1=>FLOWER<=F1;CURRENT_STATE<=S2;WHEN S2=>FLOWER<=F2;CURRENT_STATE<=S3;WHEN S3=>FLOWER<=F3;CURRENT_STATE<=S4;WHEN S4=>FLOWER<=F4;CURRENT_STATE<=S5;WHEN S5=>FLOWER<=F5;CURRENT_STATE<=S6;WHEN S6=>FLOWER<=F6;CURRENT_STATE<=S1;END CASE;END IF;END PROCESS;LED<=FLOWER;END ARCHITECTURE ART;3、整个电路系统的VHDL源程序--CDKZQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CDKZQ ISPORT(CLK_IN:IN STD_LOGIC;CLR:IN STD_LOGIC;CHOSE_KEY:IN STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END ENTITY CDKZQ;ARCHITECTURE ART OF CDKZQ ISCOMPONENT SXKZ ISPORT(CHOSE_KEY:IN STD_LOGIC;CLK_IN:IN STD_LOGIC;CLR:IN STD_LOGIC;CLK:OUT STD_LOGIC);END COMPONENT SXKZ;COMPONENT XSKZ ISPORT(CLK:IN STD_LOGIC;CLR:IN STD_LOGIC;LED:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));END COMPONENT XSKZ;SIGNAL S1:STD_LOGIC;BEGINU1:SXKZ PORT MAP(CHOSE_KEY,CLK_IN,CLR,S1);U2:XSKZ PORT MAP(S1,CLR,LED);END ARCHITECTURE ART;五、系统仿真/硬件验证1、系统的有关仿真时序控制电路SXKZ、显示控制电路XSKZ及整个电路系统CDKZQ的仿真图分别如图2-5、图2-6和图2-7所示。

彩灯控制器设计及实验报告三篇

彩灯控制器设计及实验报告三篇

彩灯控制器设计及实验报告三篇篇一:多路彩灯控制器的设计一课程设计题目(与实习目的)(1)题目:多路彩灯控制器(2)实习目的:1.进一步掌握数字电路课程所学的理论知识。

2.熟悉几种常用集成数字芯片,并掌握其工作原理,进一步学会使用其进行电路设计。

3.了解数字系统设计的基本思想和方法,学会科学分析和解决问题。

4.培养认真严谨的工作作风和实事求是的工作态度。

5.作为课程实验与毕业设计的过度,课程设计为两者提供了一个桥梁。

二任务和要求实现彩灯控制的方法很多,如EPROM编程、RAM编程、单板机、单片机等,都可以组成大型彩灯控制系统。

因为本次实习要求设计的彩灯路数较少,且花型变换较为简单,故采用移位寄存器型彩灯控制电路。

(1)彩灯控制器设计要求设计一个8路移存型彩灯控制器,要求:1.彩灯实现快慢两种节拍的变换;2.8路彩灯能演示三种花型(花型自拟);3.彩灯用发光二极管LED模拟;4.选做:用EPROM实现8路彩灯控制器,要求同上面的三点。

(2)课程设计的总体要求1.设计电路实现题目要求;2.电路在功能相当的情况下设计越简单越好;3.注意布线,要直角连接,选最短路径,不要相互交叉;4.注意用电安全,所加电压不能太高,以免烧坏芯片和面包板。

三总体方案的选择(1)总体方案的设计针对题目设计要求,经过分析与思考,拟定以下二种方案:方案一:总体电路共分三大块。

第一块实现花型的演示;第二块实现花型的控制及节拍控制;第三块实现时钟信号的产生。

主体框图如下:方案二:在方案一的基础上将整体电路分为四块。

第一块实现花型的演示;第二块实现花型的控制;第三块实现节拍控制;第四块实现时钟信号的产生。

并在部分电路的设计上与方案一采用了完全不同的方法,如花型的控制。

主体框图如下:(2)总体方案的选择方案一与方案二最大的不同就在,前者将花型控制与节拍控制两种功能融合在一起,是考虑到只要计数器就可以实现其全部功能的原因,且原理相对简单。

彩灯控制实验

彩灯控制实验

彩灯控制实验文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]彩灯控制实验实验7 彩灯控制器实验信控自动化一、实验目的(1)、学习掌握按键编程方法。

(2)、学习掌握数码管显示编程方法。

(3)、学习掌握延时程序的编程方法。

(4)、学习掌握中断系统的编程方法。

(5)、学习掌握单片机I/O口的编程方法。

(6)、学习掌握单片机串行通信的编程方法。

二、实验内容设计两片单片机的串行通信电路,甲机为发送机,乙机为接收机。

甲机实现功能为:(1)、利用51单片机的I/O口控制八个LED发光二极管(即彩灯)D1-D8,使D1-D8从高位到低位以0.5秒的时间间隔循环点亮;(2)、设计四个按键,分别为间隔键、交替键、暂停键和闪烁键,各按键对的功能描述如下:a)闪烁键每按下一次,彩灯闪烁次数加1;b)间隔键按下,8个彩灯按照D1、D3、D5、D7和D2、D4、D6、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;c)交替键按下,8个彩灯按照D1、D2、D3、D4和D5、D6、D7、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;d)暂停键每按下一次,彩灯停在当前显示状态,暂停键再按下一次,恢复状态显示。

乙机实现功能为:接收甲机中闪烁键按下次数,并设计两个七段数码管用来显示闪烁次数,即显示所检测到的闪烁键按下的次数。

三、实验硬件电路四、程序甲机程序:#include#define uchar unsigned char #define uint unsigned intsbit k_shuo=P2^0; //闪烁键sbit k_jg=P2^1; //间隔键sbit k_jt=P2^2; //交替键sbit k_pause=P3^2; //暂停键ucharaa,cc,num1,num2,num3; void delay(uint);void init(){TMOD=0x21;SCON=0x40;TH0=(65536-30000)/256;TL0=(65536-30000)%256;TH1=230;TR1=1;EA=1;ET0=1;IT0=1;}void send(uchar bb){SBUF=bb;while(!TI);TI=0;}void keyscan(){uint num=8;if(k_shuo==0){delay(10); //消抖if(k_shuo==0){num1++;send(num1);aa=0x80;while(num--){P1=~aa;delay(100);aa=aa>>1;if(aa==0x00)aa=0x80;}}while(!k_shuo); }if(k_jg==0){delay(10);if(k_jg==0){while(num2--) {P1=0xaa;delay(500);P1=0x55;delay(500);}while(!k_jg); }}if(k_jt==0){delay(10);if(k_jt==0){while(num3--) {P1=0xf0;delay(500);P1=0x0f;delay(500);}while(!k_jt); }}}void main(){init();while(1){P1=0xff;P1=~cc;delay(500);cc=cc>>1;if(cc==0x00)cc=0x80;keyscan();}}void delay(uint z){uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--); }void timer0()interrupt 1 { uint t=30000;TH0=(65536-30000)/256;TL0=(65536-30000)%256;void INT0_INT()interrupt 0 {TR0=~TR0;}乙机程序:#include#define uchar unsigned char sbit p20=P2^0;sbit p21=P2^1;uchar aa,shi,ge;uchar code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90};void delay();void init(){TMOD=0x22;SCON=0x40;TH1=230;TL1=230;TH0=0;TL0=0;EA=1;TR1=1;}void main()init();P0=0xc0;while(1){while(!RI);RI=0;}}void delay(){unsigned int i,j;for(i=10;i>0;i--)for(j=110;j>0;j--); }void timer0()interrupt 1 {aa=SBUF;aa=aa%100;shi=aa/10;ge=aa%10;p21=1;P0=table[ge];delay();p21=0;p20=1;P0=table[shi]; delay();p20=0; }相关文档:更多相关文档请访问:。

彩灯控制器实验报告

彩灯控制器实验报告

彩灯控制器实验报告彩灯控制器实验报告一、引言彩灯作为一种常见的装饰灯具,广泛应用于各种场合,如节日庆典、婚礼晚会等。

为了实现彩灯的多样化控制效果,我们进行了一系列的实验,研究了彩灯控制器的原理和应用。

本报告将详细介绍实验的目的、方法、结果和讨论。

二、实验目的本实验的目的是设计并实现一种彩灯控制器,能够控制彩灯的亮度、颜色和闪烁频率。

通过实验,我们希望了解彩灯控制器的工作原理,并掌握其设计和调试方法。

三、实验方法1. 实验器材准备:彩灯、控制器、电源、电线等。

2. 搭建实验电路:将控制器与彩灯连接,接通电源。

3. 设置控制参数:根据实验要求,设置彩灯的亮度、颜色和闪烁频率。

4. 进行实验观察:观察彩灯的亮度、颜色和闪烁频率的变化,并记录实验数据。

5. 实验分析:根据实验数据,分析控制器的工作原理和性能。

四、实验结果经过实验观察和数据记录,我们得到了以下实验结果:1. 彩灯亮度控制:通过调节控制器的电压输出,可以实现彩灯的亮度控制。

当电压升高时,彩灯亮度增加;当电压降低时,彩灯亮度减小。

2. 彩灯颜色控制:通过控制器的颜色选择开关,可以实现彩灯的颜色切换。

不同的颜色对应不同的电路连接方式,通过切换开关,可以改变彩灯的颜色。

3. 彩灯闪烁控制:通过调节控制器的闪烁频率,可以实现彩灯的闪烁效果。

当闪烁频率较低时,彩灯呈现持续亮灭的效果;当闪烁频率较高时,彩灯呈现快速闪烁的效果。

五、实验讨论通过实验结果的观察和分析,我们可以得出以下结论:1. 彩灯控制器的亮度控制原理是通过调节电压输出来改变彩灯的亮度。

这是因为彩灯的亮度与电流大小有关,而电流大小又与电压成正比。

2. 彩灯控制器的颜色控制原理是通过改变电路连接方式来改变彩灯的颜色。

不同的颜色对应不同的电路连接方式,通过切换开关,可以改变电路连接方式,从而改变彩灯的颜色。

3. 彩灯控制器的闪烁控制原理是通过调节闪烁频率来改变彩灯的闪烁效果。

闪烁频率较低时,彩灯呈现持续亮灭的效果;闪烁频率较高时,彩灯呈现快速闪烁的效果。

四路彩灯实验报告

四路彩灯实验报告

《电子工艺与数字逻辑》课程设计报告实验地点实验楼4-18 、3-11专业计算机科学与技术年级2010级科技1班姓名学号指导教师实验时间2012-2-27 —2012-6-18目录1 设计任务书 (3)1.1设计题目: (3)1.2设计任务: (3)2 设计 (3)2.1设计软件环境要求 (3)2.2设计思路 (3)2.3设计方案 (5)2.4各单元电路的设计 (7)2.4.1模12计数器74LS163设计 (7)2.4.2通用移位寄存器74LS194控制四个彩灯 (7)2.5EWB仿真电路图 (8)3实现 (9)3.1器件清单 (9)3.2实物电路图 (9)3.3结果 (11)4实验总结 (11)5参考文献 (12)1设计任务书1.1设计题目:四路彩灯控制器。

1.2设计任务:设计一个四路彩灯控制器,设计要求如下:(1)接通电源后,彩灯可以自动按预先设置的程序循环闪烁。

(2)设置的彩灯花型由三个节拍组成:第一节拍:四路彩灯从左向右逐次渐亮,灯亮时间1s,共用4s;第二节拍:四路彩灯从右向左逐次渐灭,也需4s;第三节拍:四路彩灯同时亮0.5s,然后同时变暗,进行4次,所需时间也为4s。

(3)三个节拍完成一个循环,一共需要12s。

一次循环之后重复进行闪烁。

2设计2.1设计软件环境要求Windows 200,EWB软件2.2设计思路四路彩灯工作过程2.3设计方案用四个发光二极管来替代四个彩灯,设依次为d Q c Q b Q a Q 设“1”表示灯亮,“0”表示灯灭,由要求列出状态表表1 四路彩灯输出显示由上表可知,可以选用模12计数器作为分频器,起节拍产生和控制作用,每4s一个节拍,3个节拍共12s后反复循环。

要实现模12计数器的话用74LS161(当然在实际操作中可以用74LS163代替161,因为74LS163的引脚排列和74LS161相同)。

一个节拍结束后应产生一个信号到节拍程序执行器,完成彩灯渐亮、渐灭、同时亮、同时灭等功能。

八路彩灯控制器实习报告

八路彩灯控制器实习报告

实习报告:八路彩灯控制器设计与实现一、实习背景及目的随着科技的不断发展,电子产品在日常生活中扮演着越来越重要的角色。

本次实习旨在让同学们更好地掌握数字电子技术知识,提高动手实践能力。

本次实习任务为设计并实现一个八路彩灯控制器,通过控制发光二极管的亮灭,实现多种流动变化的灯光效果。

二、实习内容与过程1. 了解彩灯控制器的工作原理彩灯控制器主要由555定时器、计数器、双向移位寄存器、显示译码管、数码显示管、发光二极管及一些门电路等组成。

通过555定时器产生多谐振荡信号,计数器累计输入脉冲个数,双向移位寄存器存储计数器输出的十进制数,显示译码管将十进制数转换为对应的灯光显示。

2. 设计电路图根据彩灯控制器的工作原理,设计电路图包括以下部分:(1)振荡电路:采用555定时器、电容、电阻等组成多谐振荡电路。

(2)计数器电路:采用十进制计数分频器CT74LS194,用于累计和寄存输入脉冲个数。

(3)显示电路:由发光二极管组成,当CT74LS194的输出端依次输出高电平时,驱动发光二极管依次点亮。

(4)控制电路:采用门电路控制计数器和双向移位寄存器的输入端,实现不同灯光效果的控制。

3. 制作PCB板根据电路图,利用Protel软件设计PCB板,并进行印刷电路板制作。

在制作过程中,注意走线合理,避免信号干扰。

4. 电路调试与验证将制作好的PCB板焊接完毕后,进行电路调试。

通过改变控制电路的输入信号,观察发光二极管的亮灭情况,验证电路是否满足设计要求。

三、实习心得与收获通过本次实习,我对数字电子技术有了更深入的了解,掌握了八路彩灯控制器的设计与实现方法。

在实习过程中,我学会了如何阅读电路图,分析电路原理,设计电路图,制作PCB板,并进行电路调试。

同时,本次实习也培养了我的团队协作能力和动手实践能力。

总之,本次实习使我受益匪浅,对我今后的学习和职业发展具有重要意义。

在今后的学习和工作中,我将继续努力,不断提高自己的数字电子技术水平,为我国的电子科技事业做出贡献。

EDA技术实验10-彩灯控制器设计与实现

EDA技术实验10-彩灯控制器设计与实现

ENTITY counter_4 IS
PORT
(
clk,rst
: IN
std_logic;
count_out
: OUT integer range 0 to 3 );
std_logic
END xzq4_1; ARCHITECTURE a OF xzq4_1 IS
BEGIN PROCESS (rst,inp) BEGIN
if(rst='1') then output<='0';
else
case inp is
when 0=>output<=in1;
when 1=>output<=in2;
count_out<=temp;
END PROCESS;
17
END a;
-------------------------------------------4进制计数器模块----------------------------------
LIBRARY ieee;
USE ieee.std_logic_1164.all;
if clk'event and clk='1'then
if b>=5 then
b:=0;
clk_6<='1';
else
b:=b+1;
clk_6<='0';
end if;
end if;
end if;
end process p2;
p3:process(clk,rst)
variable c:integer range 0 to 20;

多路彩灯控制器实训报告

多路彩灯控制器实训报告

一、实训目的本次实训旨在通过实际操作,使学生进一步掌握数字电路课程所学的理论知识,熟悉常用集成数字芯片的工作原理,并学会使用其进行电路设计。

同时,通过实训培养学生的科学分析和解决问题的能力,以及严谨的工作作风和实事求是的工作态度。

二、实训内容1. 实训项目:设计一个8路移存型彩灯控制器,实现彩灯快慢两种节拍的变换,8路彩灯能演示三种花型,彩灯用发光二极管LED模拟。

2. 实训要求:(1)设计电路实现题目要求;(2)电路在功能相当的情况下设计越简单越好;(3)注意布线,要直角连接,选最短路径,不要相互交叉;(4)注意用电安全,所加电压不能太高,以免烧坏芯片和面包板。

三、实训过程1. 确定设计方案根据题目要求,经过分析与思考,我们选择以下设计方案:(1)采用8位D触发器74LS74作为移位寄存器,实现彩灯的移位控制;(2)利用8位并行输入/输出锁存器74LS373实现彩灯的输出控制;(3)通过分频电路产生快慢两种节拍的控制信号;(4)使用CD4511编码器实现三种花型的选择。

2. 电路设计根据设计方案,我们设计了以下电路:(1)移位寄存器电路:由74LS74芯片构成,用于实现彩灯的移位控制;(2)输出锁存器电路:由74LS373芯片构成,用于实现彩灯的输出控制;(3)分频电路:由555定时器构成,产生快慢两种节拍的控制信号;(4)编码器电路:由CD4511芯片构成,用于实现三种花型的选择。

3. 电路制作与调试(1)按照电路图,将各个芯片焊接在面包板上;(2)连接电源、按键、发光二极管等外围元件;(3)调试电路,观察彩灯的运行情况,确保电路功能正常。

4. 电路优化与改进在调试过程中,我们发现以下问题:(1)分频电路输出波形不稳定,导致彩灯运行不稳定;(2)编码器电路输出信号存在毛刺,影响彩灯花型的展示。

针对以上问题,我们进行了以下优化与改进:(1)将555定时器改为更稳定的时钟源,提高分频电路的输出稳定性;(2)对编码器电路进行滤波处理,消除输出信号的毛刺。

数电综合实验——彩灯控制器的设计与调试

数电综合实验——彩灯控制器的设计与调试

数电综合实验——彩灯控制器的设计与调试一、实验目的1.学会分析、设计和测试用555定时器构成的多谐振荡器。

2.熟悉移位寄存器和中规模集成计数器的工作原理。

3.利用移位寄存器和计数器设计彩灯控制电路,实现不同的闪烁效果。

二、彩灯控制器设计简介利用移位寄存器和计数器等设计一彩灯控制电路,改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。

电路实用,也可以通过计算机仿真直观地看到循环彩灯的控制效果,综合运用所学数字电路知识,学会设计和调试方法,从而产生浓厚兴趣。

如果稍微改动控制电路,可以更加完善,完成基于移位寄存器的彩灯控制器设计。

在现代生活中,彩灯作为一种装饰,既可以增强人们的感观,起到广告宣传的作用,又可以增添节日气氛,为人们的生活增添亮丽,用在舞台上增强晚会灯光效果,利用控制电路可使彩灯(例如霓虹灯)按一定的规律不断的改变状态,不仅可以获得良好的观赏效果,而且可以省电(与全部彩灯始终全亮相比)。

因此,彩灯控制电路应用越来越丰富我们的生活,成为我们生活不可缺少的一部分。

本课题是利用四位双向移位寄存器为核心元件实现彩灯的循环控制。

2.1设计思路首先,利用555定时器与外部的阻容元件构成脉冲产生电路,再由计数器74160实现计时的功能,为脉冲分配器做好准备。

再由移位寄存器74LS194构成编码发生电路,由于移位寄存器74LS194上升沿有效,通过对输入端置数,加上脉冲的驱动来控制彩灯的闪烁,从而使彩灯按照我们的要求变化。

整个流程是由控制电路,编码发生电路和输出电路等组成。

此综合实验讲述了芯片计数器74LS160,555定时器,移位寄存器74LS194的基本原理及应用。

2.2 基本工作原理脉冲产生与整形电路555定时器产生脉冲驱动,再由十进制同步计数器74LS160,编码发生电路74LS194控制彩灯变化。

因此,通过控制74LS194的输出就可以实现我们想要的彩灯循环变化。

2.3彩灯控制器原理框图555 定时器74LS160计数器74LS194移位寄存器彩灯显示电路CP脉冲CD4069——增加驱动能力图1 工作原理框图2.4 相关芯片及硬件电路设计 2.4.1 74160十进制同步计数器芯片74LS160是一个十进制同步计数器,不仅可以对时钟脉冲进行计数,还可以用在定时、分频和信号产生等逻辑电路。

彩灯控制实验

彩灯控制实验

实验7 彩灯控制器实验一、实验目的(1)、学习掌握按键编程方法。

(2)、学习掌握数码管显示编程方法。

(3)、学习掌握延时程序的编程方法。

(4)、学习掌握中断系统的编程方法。

(5)、学习掌握单片机I/O口的编程方法。

(6)、学习掌握单片机串行通信的编程方法。

二、实验内容设计两片单片机的串行通信电路,甲机为发送机,乙机为接收机。

甲机实现功能为:(1)、利用51单片机的I/O口控制八个LED发光二极管(即彩灯)D1-D8,使D1-D8从高位到低位以0.5秒的时间间隔循环点亮;(2)、设计四个按键,分别为间隔键、交替键、暂停键和闪烁键,各按键对的功能描述如下:a)闪烁键每按下一次,彩灯闪烁次数加1;b)间隔键按下,8个彩灯按照D1、D3、D5、D7和D2、D4、D6、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;c)交替键按下,8个彩灯按照D1、D2、D3、D4和D5、D6、D7、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;d)暂停键每按下一次,彩灯停在当前显示状态,暂停键再按下一次,恢复状态显示。

乙机实现功能为:接收甲机中闪烁键按下次数,并设计两个七段数码管用来显示闪烁次数,即显示所检测到的闪烁键按下的次数。

三、实验设备计算机(已安装Keil和Proteus软件)四、实验要求1、根据实验内容设计硬件电路,原件分布合理,原理正确,器件标识清晰明朗。

2、根据实验内容和硬件电路编写相应的程序,实现相应的控制功能。

3、实验报告必须包含硬件电路图和程序清单,且程序清单中主要代码需加注释。

五、实验硬件电路六、程序甲机程序:#include<reg51.h>#define uchar unsigned char #define uint unsigned intsbit k_shuo=P2^0; //闪烁键sbit k_jg=P2^1; //间隔键sbit k_jt=P2^2; //交替键sbit k_pause=P3^2; //暂停键uchar aa,cc,num1,num2,num3; void delay(uint);void init(){TMOD=0x21;SCON=0x40;TH0=(65536-30000)/256;TL0=(65536-30000)%256;TH1=230;TR1=1;EA=1;ET0=1;IT0=1;}void send(uchar bb){SBUF=bb;while(!TI);}void keyscan(){uint num=8;if(k_shuo==0){if(k_shuo==0){num1++;send(num1);aa=0x80;while(num--){P1=~aa;delay(100);aa=aa>>1;if(aa==0x00)aa=0x80;}});}if(k_jg==0){if(k_jg==0){while(num2--){P1=0xaa;delay(500);P1=0x55;delay(500);}while(!k_jg);}}if(k_jt==0){delay(10);while(num3--){P1=0xf0;delay(500);P1=0x0f;delay(500);}while(!k_jt);}}}void main(){init();while(1){P1=0xff;P1=~cc;delay(500);cc=cc>>1;keyscan();}}void delay(uint z){uint i,j;for(i=z;i>0;i--)for(j=110;j>0;j--); }void timer0()interrupt 1 {uint t=30000;TH0=(65536-30000)/256;TL0=(65536-30000)%256;}void INT0_INT()interrupt 0 {TR0=~TR0;}乙机程序:#include<reg51.h>#define uchar unsigned charsbit p20=P2^0;sbit p21=P2^1;uchar code table[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,0x80,0x90};void delay();void init(){TMOD=0x22;SCON=0x40;TH1=230;TL1=230;EA=1;TR1=1;}void main(){init();P0=0xc0;while(1){while(!RI);}}void delay(){unsigned int i,j;for(i=10;i>0;i--)for(j=110;j>0;j--); }void timer0()interrupt 1 {aa=SBUF;shi=aa/10;ge=aa%10;p21=1;P0=table[ge];delay();p21=0;p20=1;P0=table[shi];delay();p20=0;}。

移动方向可逆的彩灯控制器(课程设计报告)

移动方向可逆的彩灯控制器(课程设计报告)

移动方向可逆的彩灯控制器班级:指导老师:学生:学号:一内容提要在街道、商场或公共场所通常装有各种五彩斑斓的灯饰,美化人们的生活空间。

本文阐述了由电子电路设计一个彩灯控制器,控制红绿黄三个灯,按一定规律依次点亮。

即由电子电路实现一个可正向循环、逆向循环效果的彩灯控制器。

讲述了彩灯控制器的工作原理以及其各个组成部分,记述了我们在整个设计过程中对各个部分的设计思路、对各部分电路设计方案的选择、元器件的筛选、以及对它们的调试、对调试结果的分析,到最后得到比较满意的实验结果的方方面面。

二设计主要要求及指标1.控制红、绿、黄一组彩灯循环闪亮,变化的规律是:先按正向循环闪亮,全灭→红→红绿→绿→黄绿→黄→全亮→全灭。

紧接着按逆向循环闪亮→全亮→黄→黄绿→绿→红绿→红→全灭,如此往复循环,产生移动方向变化的“流水”效果。

2.正向循环闪亮速度慢,逆向循环闪亮速度快,3.彩灯白天不亮,夜晚自动亮。

三设计思路彩灯控制器由六部分组成:脉冲发生,光敏器件检测电路,加减控制,可逆计数器,循环结束判别,以及逻辑电路。

首先用光敏电阻检测周围环境的光强,以区分白天夜晚,控制彩灯的亮灭。

由555定时器组成的多谢振荡器产生脉冲信号控制彩灯的逆向循环,同时经由D 触发器分频产生控制彩灯正向循环的低频率脉冲。

两脉冲分别送入可逆计数器的Down端和Up端用来控制计数器的加法计数和减法计数。

每完成一次计数循环通过循环结束判别电路的判断由加法计数改为减法计数,或由减法计数改为加法计数,如此往复。

最后,再由可逆计数器的输出端通过逻辑电路控制彩灯的亮灭。

彩灯控制框图:四单元电路设计原理1.光控电路—利用光敏电阻控制彩灯白天不亮,夜晚亮光控电路图光敏电阻参数:光照下电阻大约为2千欧,无光照下电阻大约为50千欧。

通过计算,选择10千欧的电阻与光敏电阻连接,光敏电阻另一端接VCC,电阻另一端接地,光敏电阻与电阻的共同端接555的THR端,其余连接见上图,OUT为输出端。

数电自主实验

数电自主实验

姓名班级学号实验日期节次教师签字成绩数字电子技术自主设计实验实验名称:数字电路实现节日彩灯控制摘要:节日的彩灯五彩缤纷,给人们带来了欢乐的气氛。

学习了数字电子技术后,也使我产生了设计一组节日彩灯的想法。

彩灯的控制电路种类繁多,本次实验采用移位寄存器为核心元件,设计一个8路彩灯控制器。

用寄存器的每一位控制一组灯。

各组灯布置成各式各样的图案。

由于寄存器具有不同的状态,点亮的灯光就形成多种多样的美丽的画面。

寄存器的状态不断地循环变化,又给这些图案添加了动感。

实验目的:(1)通过本次设计性试验,进一步掌握熟练74L194移位寄存器,74L161等芯片的工作原理以及用途。

(2)通过自主设计仿真,熟悉仿真软件multisim的更多的使用方法,锻炼自己的独立思考能力,以及动手实践能力。

实验原理:本次设计的简易彩灯控制电路是由2片74LS194双向移位寄存器,2片16位进制的加法计数器74LS161和一些门电路实现的。

工作原理如下:整个电路有三个模块组成:模块一产生控制信号,由2片74LS161产生32个控制信号;模块二实现对花型的控制,由一些门电路,第一模块的输出信号来控制2片74LS194的S1和S0,从而实现对花型的控制;模块三实现对产生的四种花型的演示。

利用74LS194的左移和右移来实现不同的花型,从而实现彩灯四种花型自动切换。

实验器材数字电子技术实验箱74LS194两片74LS161两片若干与非门,导线芯片管脚图实验电路图异或门搭建设计步骤及方法由2片74LS161加法计数器组成的电路产生。

先用2片74LS161组成256进制的加法计数器,脉冲信号为同一个CLK,把第一片的CO接在第二片的EP和ET 上,第一片的进位输出作为第二片工作的起始条件,当第一片记满16位时,第一片进位输出为1,第二片开始工作,Q0记为1,把第二片的Q1取反接在两片161的清零端,当Q1为1时就清零,这就使256进制的加法计数器变成32进制的加法计数器,产生的32计数成为彩灯的控制信号。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

彩灯控制器实验一、实验目的(1)、学习掌握按键编程方法。

(2)、学习掌握数码管显示编程方法。

(3)、学习掌握延时程序的编程方法。

(4)、学习掌握中断系统的编程方法。

(5)、学习掌握单片机I/O口的编程方法。

(6)、学习掌握单片机串行通信的编程方法。

二、实验内容设计两片单片机的串行通信电路,甲机为发送机,乙机为接收机。

甲机实现功能为:(1)、利用51单片机的I/O口控制八个ED发光二极管(即彩灯)D1-D8,使D1-D8从高位到低位以0.5秒的时间间隔循环点亮;(2)、设计四个按键,分别为间隔键、交替键、暂停键和闪烁键,各按键对的功能描述如下:a)闪烁键每按下一次,彩灯闪烁次数加1;b)间隔键按下,8个彩灯按照D1、D3、D5、D7和D2、D4、D6、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;c)交替键按下,8个彩灯按照D1、D2、D3、D4和D5、D6、D7、D8的规律闪烁,闪烁次数由闪烁键按下的次数决定;d)暂停键每按下一次,彩灯停在当前显示状态,暂停键再按下一次,恢复状态显示。

乙机实现功能为:接收甲机中闪烁键按下次数,并设计两个七段数码管用来显示闪烁次数,即显示所检测到的闪烁键按下的次数。

三、实验设备计算机(已安装Keil和Proteus软件)四、实验要求1、根据实验内容设计硬件电路,原件分布合理,原理正确,器件标识清晰明朗。

2、根据实验内容和硬件电路编写相应的程序,实现相应的控制功能。

3、实验报告必须包含硬件电路图和程序清单,且程序清单中主要代码需加注释。

五、实验硬件电路六、程序清单甲机发送程序:KEYJG EQU P3.6 ;给引脚一个名称KEYJT EQU P3.7ORG 0000HLJMP STARTORG 0013H ;外部中断1地址LJMP UARTOUTORG 0003H ;外部中断0地址LJMP ZTCXORG 0030HSTART: MOV TMOD,#20HMOV TL1,#0E6H ;设置波特率MOV TH1,#0E6HMOV SCON,#40H ;串行通信工作方式1SETB EA ;开中断SETB EX1SETB IT1SETB IT0SETB EX0SETB TR1 ;定时器/计数器1启动MOV R2,#0;........................................................................循环点亮程序XHCZ1: MOV R4,#3HXHCZ: MOV A,#07FHMOV R3,#8H ;设置循环次数XHDL: MOV P1,ARR A ;移位,保证循环点亮LCALL DL05S ;延时0.5sDJNZ R3,XHDL ;循环8次DJNZ R4,XHCZMOV A,#0FFH ;MOV P1,A ;全部灯灭;.......................................................................不断扫面键盘程序BDSM: JNB KEYJG,JGCX ;扫描P3.6,有信号转到间隔程序JNB KEYJT,JTCX ;同理扫描P3.7AJMP BDSM ;.......................................................................串行发送程序(中断子程序)UARTOUT:PUSH ACC ;累加器A入栈保护INC R2 ;每按一次计数加1MOV A,R2MOV SBUF,A ;开始串行发送WAITOUT:JNB TI,WAITOUT ;发送完毕向下执行CLR TIPOP ACC ;出栈RETI ;........................................................................间隔程序JGCX: PUSH ACCJGCX1: MOV A,R2 ;计数初值存入累加器A LCALL CXCXJZ FH ;如果R2中是0,就直接退出PUSH ACCMOV A,#0FFH ;MOV P1,A ;令所有灯灭MOV A,#0AAH ;MOV P1,A ;0.2.4.6灯亮LCALL DL05SCPL A ;取反1.3.5.7灯亮MOV P1,ALCALL DL05SDJNZ R2,JGCX1 ;循环LCALL CXCXMOV A,#0FFH ;MOV P1,A ;灭灯POP ACCFH: POP ACCLJMP BDSM;........................................................................交替程序JTCX: PUSH ACCJTCX1: MOV A,R2LCALL CXCX ;转到串行输出,主要为了显示减下来的数JZ GHPUSH ACCMOV A,#0FFHMOV P1,AMOV A,#0F0HMOV P1,ALCALL DL05SCPL AMOV P1,ALCALL DL05SDJNZ R2,JTCX1LCALL CXCXMOV A,#0FFHMOV P1,APOP ACCGH: POP ACCLJMP BDSM ;..........................................................................暂停程序ZTCX: CLR EA ;关中断S1: JNB P3.2,S1 ;第一次按,死循环,停止闪烁S2: JB P3.2,S2 ;第二次按,向下执行SETB EA ;开中断,灯继续闪烁RETI ;...........................................................................串行发送CXCX: PUSH ACC ;累加器A入栈保护MOV A,R2MOV SBUF,A ;开始串行发送WAIT: JNB TI,WAITOUT ;发送完毕向下执行CLR TIPOP ACC ;出栈RET; .........................................................................延时程序DL503: MOV R7,#250LOOP1: DJNZ R7,LOOP1RETDL10MS:MOV R6,#20LOOP2: LCALL DL503DJNZ R6,LOOP2RETDL05S: MOV R5,#50LOOP3: LCALL DL10MSDJNZ R5,LOOP3RETEND乙机接收程序:ORG 0000HLJMP STARTORG 0023H ;串行口中断地址LJMP ZDCXORG 0030HSTART: MOV TMOD, #20H ;定时器/计数器1为工作方式2 MOV TL1,#0E6H ;设定波特率MOV TH1,#0E6HMOV SCON,#50H ;串行方式1,允许串行接收SETB EA ;开中断SETB ESSETB ET1SETB TR1 ;计时器启动BZW: MOV A,R2 ;........................................................................将A中接收到内容进行处理ST: MOV 30H,ALCALL BTODLCALL DISP1LJMP BZW ;........................................................................分离计数器中百十个位BTOD: MOV A,30HMOV B,#100DIV ABMOV 20H,AMOV A,BMOV B,#10DIV ABMOV 21H,A ;A中存储十位数字MOV 22H,B ;B中存储个位数字RET ;........................................................................数码管动态显示DISP1: MOV DPTR,#SEG7 ;表格首地址给DPTRMOV A,21H ;MOVC A,@A+DPTR ;查表MOV P0,A ;SETB P2.1 ;显示相应数字LCALL DELAY ;显示一段时间CLR P2.1 ;停止显示MOV A,22HMOVC A,@A+DPTRMOV P0,ASETB P2.2LCALL DELAYCLR P2.2CLR RIRET ;.......................................................................中断程序ZDCX: MOV R2,SBUFCLR RIRETI ;.......................................................................延时程序DELAY: MOV R7,#20 ;延时大概40ms D00: MOV R6,#100D11: DJNZ R6,D11DJNZ R7,D00RET ;......................................................................表格SEG7: DB 0C0H,0F9H,0A4H,0B0HDB 99H,92H,82H,0F8HDB 80H,90H,88H,83HDB 0C6H,0A1H,86H,8EHEND。

相关文档
最新文档