彩灯实验报告
- 格式:docx
- 大小:109.07 KB
- 文档页数:11
一、实验目的本次实验旨在通过设计和制作彩灯板,掌握彩灯控制的基本原理和电路设计方法,提高电子电路设计及调试能力,同时了解彩灯在不同场合的应用。
二、实验原理彩灯板是一种以LED灯为显示单元,通过微控制器或单片机进行控制的电子显示设备。
其基本原理是利用LED灯的亮与灭来显示各种图案、文字或动画。
实验中使用的彩灯板主要由以下部分组成:1. LED灯:作为显示单元,通过不同的亮灭组合来显示不同的图案或文字。
2. 微控制器或单片机:作为彩灯板的控制核心,负责接收指令、处理数据、控制LED灯的亮灭。
3. 驱动电路:将微控制器或单片机的输出信号转换为适合LED灯驱动的电流或电压。
4. 电源:为彩灯板提供所需的电能。
实验中,我们将通过编程和电路设计来实现彩灯板的显示功能。
三、实验器材1. 彩灯板一块2. 微控制器或单片机一个3. LED灯若干4. 驱动电路模块5. 电源模块6. 连接线若干7. 编程器或编程软件四、实验步骤1. 电路搭建:根据彩灯板的数据手册,按照电路图搭建电路,包括连接LED灯、微控制器或单片机、驱动电路模块和电源模块等。
2. 编程:使用编程器或编程软件编写控制程序,实现彩灯板的显示功能。
程序内容主要包括:初始化LED灯状态设置LED灯的亮灭时间控制LED灯的亮灭顺序显示不同的图案或文字3. 调试:将编写好的程序烧录到微控制器或单片机中,观察彩灯板的显示效果,并根据实际情况进行调试。
4. 测试:完成调试后,对彩灯板进行测试,验证其功能是否满足设计要求。
五、实验结果与分析1. 电路搭建:按照电路图搭建完成后,彩灯板能够正常工作,LED灯能够按照程序控制亮灭。
2. 编程:通过编程实现了彩灯板的显示功能,包括显示文字、图案和动画等。
3. 调试:在调试过程中,发现了一些问题,如LED灯亮度不一致、部分LED灯不亮等。
经过分析,发现是驱动电路模块的问题,更换驱动电路模块后,问题得到解决。
4. 测试:经过测试,彩灯板的功能满足设计要求,显示效果良好。
彩灯循环显示控制器电气信息类(创新实验班)一,实验目标1.4路输出循环彩灯电路:设4路彩灯记为L3、L2、L1、L0。
实现如下花型:花型1:彩灯L3-L0,依次按L3,L3L2,L3L2L1,L3L2L1L0点亮;花型2:彩灯L3-L0,依次按L0,L1L0,L2L1L0,L3L2L1L0熄灭;花型3:彩灯L3-L0,全亮再全灭。
三种花型依次循环显示。
2.8路输出循环彩灯电路,实现如下花型:花型1:由中间往外对称依次点亮,全部点亮后,再由中间往外依次熄灭。
花型2:前4路彩灯与后4路彩灯分别从左到右顺次点亮,再顺次熄灭。
两种花型交替循环显示。
二,实验方案1.1)输出单元电路:彩灯循环显示的花型状态又移位寄存器单元电路的输出状态决定。
由一片4位移位寄存器74LS194实现。
2)分频单元电路:实现对时钟信号的四分频,由D触发器74LS74构成。
3)控制信号产生单元电路:用计数器74LS193。
2.1)输出单元电路:由两片4位移位寄存器74LS194实现。
2)分频单元电路:74LS90构成8进制计数器3)节拍控制单元电路:74LS74使S1,S0转换。
三,实验步骤4路输出循环彩灯电路1.4路输出循环彩灯电路:再依次按L0,L1L0,L2L1L0,L3L2L1L0熄灭,然后全亮再全暗,由此循环。
由图上仿真可以看出,8盏灯先全暗,然后1D和2A(即中间两盏灯)开始亮,向往外对称依次点亮,再由中间往外依次熄灭。
然后进入下一个花型:前4路彩灯与后4路彩灯分别从左到右顺次点亮,再顺次熄灭。
五,实验验证这个实验是在实验箱上验证的,4路输出循环彩灯电路中的4盏灯按照预期亮。
而8路输出循环彩灯电路的8盏灯虽然亮了但是不是按照预期的规律。
用555时基电路构成多谐振荡器,用该脉冲作为8路输出循环彩灯电路的脉冲源,与6和2端口相接的电容影响频率,可是8盏灯也不是按照预期的亮。
但是仿真却可以。
六,实验心得:这次实验算不上成功,因为在实验箱上的灯没有按照规律亮,不过仿真结果还是成功的。
循环彩灯控制系统实验报告一、设计要求1、程序中由3个按钮控制每按下一个按钮都会出现不同的彩灯循环现象二、硬件电路设计1、单片机最小系统(2)发光二极管的电路三、软件设计(一)1、在Keil uVision4.LNK上写好程序后通过STC_ISP_V480.exe.lnk和USB口输入到reg52.h单片机中按下开关蓝色指示灯亮,然后按下P3^7按钮发光二极管从左往右依次点亮;2、①在不复位的情况下按下P3^6时发光二极管可以做往返运动依次点亮②在复位时按下P3^6发光二极管是从右往左依次点亮的;3、①在不复位的情况下按下P3^5时发光二极管可以在从左往右或者从右往左点亮后1,3,5,7与2,4,6,8交替闪烁(在看先点亮P3^6还是P3^5 来实现从左还是从右开始循环)②在复位时按下P3^5发光二极管是作1,3,5,7与2,4,6,8交替闪烁。
(二)说明(“0”“1”“2”“3”“4”“5”“6”“7”按键P3^7 0X7F 0XBF 0XDF 0XEF 0XF7 0XFB 0XFD 0XFE 复位P3^6 0XFE 0XFD 0XFB 0XF7 0XEF 0XDF 0XBF 0X7F 复位P3^5 0X7F/0XFF 0XFF/0XBF0XDF/0XFF0XFF/0XEF0XF7/0XFF0XFF/0XFB0XFD/0XFF0XFF/0XFE复位8421码10=A 11=B 12=C 13=D 14=E 15=F四、系统测试步骤1:新建工程→New Project→选择单片机型号→Atmel→AT89C52取名→保存2:新建文档→New file→取名→保存(—3个按键控制两种LED现象.C)3:点右键→Add file to group→选择(—3个按键控制两种LED现象.C)4:点工程右键→options “output”(√)create hex file5产出hex档→编译按钮(↓)(↓↓)(↓↓↓)STC下载软件1:选择单片机型号“STC89C52RC”2:打开文件→(流水灯.hex)3:选择COM口(裝置管理員)4:点下载按鈕→开启电源按钮→“OK 已加密”附录源程序清单#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit key1 =P3^7; //第一个按键sbit key2 =P3^6; //第二歌按键sbit key3 =P3^5; //第三个按键uchar A1=0,A2=0,A3=0;void delay(uint z){uint i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);}void O_to_E() //1,3,5,7与2,4,6,8交替闪烁{P0=0Xaa;delay(200);P0=~0Xaa;delay(200);}{if(!key1){delay(10); //延时if(!key1)A1=1;}if(!key2){delay(10); //延时if(!key2)A2=1;}if(!key3){delay(10); //延时if(!key3)A3=1;}}void main(){uchar i;while(1){if(A1){for(i=0;i<8;i++) //从左往右亮,每盏灯亮一次{P0=~(0x7f>>i);delay(100);}}if(A2){for(i=0;i<8;i++) //从右往左亮,每盏灯亮一次{P0=~(0xfe<<i);delay(100);}}if(A3){O_to_E(); //1,3,5,7与2,4,6,8交替闪烁}}}附加图片(因为手机问题从左往右跟从右往左还有左右往返的看不出来所以就拍了2张图片)1、从左往右、从右往左、往返2、//1,3,5,7与2,4,6,8交替闪烁超。
彩灯实验报告彩灯控制器的设计实验报告一、总体要求:1) 彩灯以两种花形循环变化(彩灯用 8个发光二极管代替) 。
2) 花形一:这组彩灯从左到右依次点亮,全部点亮后,再从左到右依次熄灭。
3) 花形二:与花形一相反,点亮和熄灭均从右到左。
4) 彩灯每次点亮或熄灭的时间间隔以 1s 左右。
二、器材:74LS194(移位寄存器) , 74161(计数器) , T ’ 触发器, 555集成定时器,以及发光二极管, 74LS04(非门)等。
三、实验思路:首先由 555定时器输出一个 1Hz 的方波脉冲作为总系统的时间周期, 再利用两片移位寄存器左右移位功能达到彩灯的花形变换。
同时利用 74LS161计数器计数 16个时间周期, 并当计数值达到 16时输出一个提示信号,从而使得移位寄存器开始反方向移位。
四、具体模块:1、 555定时器模块将 555定时器设计为多谐振荡器, 其又称为无稳态触发器, 它没有稳定的输出状态, 只有两个暂稳态。
在电路处于某一暂稳态后,经过一段时间可以自行触发翻转到另一暂稳态。
两个暂稳态自行相互转换而输出一系列矩形波。
利用多谐振荡器的特性使其产生一个 1Hz 的矩形波。
其中频率 2ln ) R 2(R1T 1f 21C +==(R1=47K, R2=47K, C=10uF)。
2、 74LS161计数器模块系统利用 LS74161计数器计数脉冲数,当其状态从 0000计数到 1111时 (共计时间为 16s) , 在其四个输出端口接入一个四输入一输出的与非门, 并将与非门的输出端引出两个线, 其中一线与计数器的 RD 置零端连接; 另一线在经过一个非门后接入T ’触发器的 CLK 端,作为触发器的时钟脉冲。
3、 74LS194移位寄存器选用移位寄存器输出 8路数字信号控制彩灯发光。
编码发生器采用两片 4位通用移位寄存器 74LS194来实现。
74LS194具有异步清零和同步置数、左移、右移、保持等多种功能控制方便灵活。
多路彩灯控制器目录摘要······················································一课程名称·······························二内容实验·······························三具体要求·······························四方案论证·······························五单元电路·······························六仿真结果·······························七实验小结······························参考文献·······················································一,课程名称多路彩灯控制器二,内容摘要当今时代科技发展日异月新,彩灯作为一种景观应用越来越多。
小彩灯实训报告一、实训背景在本次实训中,我们将学习如何制作一个小彩灯项目。
小彩灯是一种简单而有趣的电子装置,通过使用LED灯和微控制器,可以实现不同颜色和灯光效果的展示。
本次实训旨在帮助学员熟悉使用电子元件和编程语言来制作一个工作正常的小彩灯。
二、实训目标1. 了解小彩灯的工作原理和基本组成。
2. 学习如何连接电路和组装所需的硬件部件。
3. 学习编写代码来控制小彩灯的灯光效果。
4. 了解常见的灯光控制方法和技术。
三、实训步骤1. 硬件准备购买所需的材料:LED灯、面包板、电阻、导线、微控制器等。
接线:按照电路图连接各个硬件组件,确保电路没有问题。
2. 软件配置安装开发环境:选择合适的编程平台,如Arduino IDE。
配置开发板:选择正确的开发板类型和串口。
3. 编写代码学习基本语法:了解编程语言的基本语法和数据类型。
控制LED灯:编写代码控制LED灯的亮灭和颜色。
4. 调试和测试上传代码:将编写好的代码上传到开发板中。
测试功能:确认小彩灯能够按照代码预期的方式工作。
四、实验结果经过实训,我们成功制作了一个小彩灯项目。
我们能够通过编写代码来控制LED灯的亮灭和颜色,并且在实验过程中没有遇到明显的问题。
小彩灯能够正常工作并展示出我们预期的灯光效果。
五、实训总结通过这次实训,我们对小彩灯的原理和制作过程有了更深入的了解。
我们学会了安装开发环境、搭建电路、编写代码以及调试测试的方法。
这对我们理解和应用电子元件和编程技术都是一次很好的实践。
六、实训心得在实训过程中,我们遇到了一些挑战,比如电路连接出错、代码编写错误等。
但通过团队的合作和老师的指导,我们成功地解决了这些问题。
这次实训让我们更深入地了解了电子技术,也提升了我们的动手能力和解决问题的能力。
eda彩灯实验报告
EDA彩灯实验报告
引言
EDA彩灯是一种新型的智能灯具,它具有丰富的颜色选择和灯光效果,可以通
过手机APP远程控制,是现代家居装饰的理想选择。
本实验旨在测试EDA彩灯的亮度、颜色稳定性和控制性能,以评估其在实际应用中的表现。
实验方法
1. 测量亮度:在不同亮度下,使用光度计测量EDA彩灯的光照强度,以评估其
亮度表现。
2. 测量颜色稳定性:在不同时间段内,记录EDA彩灯显示的颜色,并使用色度
计测量其颜色值,以评估其颜色稳定性。
3. 测试控制性能:通过手机APP远程控制EDA彩灯,测试其响应速度和稳定性。
实验结果
1. 亮度测试结果显示,EDA彩灯在不同亮度下的光照强度表现稳定,且亮度调
节响应迅速。
2. 颜色稳定性测试结果显示,EDA彩灯在长时间使用过程中,颜色表现稳定,
色度值变化不大。
3. 控制性能测试结果显示,通过手机APP远程控制EDA彩灯响应速度快,稳定性良好。
结论
通过本次实验,我们对EDA彩灯的亮度、颜色稳定性和控制性能进行了评估,
结果显示其表现良好,适用于家居装饰和氛围照明。
然而,在实际使用中,还
需要进一步测试其耐用性和节能性能,以全面评估其性能表现。
总结
EDA彩灯作为一种智能家居装饰灯具,具有丰富的颜色选择和灯光效果,通过本次实验评估其亮度、颜色稳定性和控制性能,结果显示其表现良好。
我们期待EDA彩灯在未来的应用中,能够为用户带来更多的便利和美好的家居体验。
电子工艺与数字逻辑课程设计报告班级:姓名:学号:指导教师:撰写日期:目录目录目录 (2)第一章课程设计内容与要求分析 (4)1.1 课程设计内容 (4)第二章单元电路 (5)2.1系统单元电路组成 (5)第三章实现 (6)3.1零件清单 (6)3.2实物电路图 (6)3.3结果 (8)第四章 74LS194功能表 (9)第五章实验总结 (11)第六章参考文献 (12)第七章评语及成绩 (13)、一、课程设计任务书1.课程题目四路彩灯显示系统设计2.设计内容设计一个四路彩灯控制器,要求系统启动后自动从初始状态按照规定程序完成3个节拍的循环演示。
第一节拍:四路彩灯从左向右逐次渐亮,灯亮时间1S,共用4S;第二节拍:四路彩灯从右向左逐次渐灭,也需4S;第三节拍:四路彩灯同时亮0.5S,然后同时变暗,进行4次,所需时间也为4S。
第一章课程设计内容与要求分析第一章课程设计内容与要求分析1.1课程设计内容设计要求设计用中规模集成电路设计并制作一个四路彩灯显示系统,要求如下:1.开机自动置入初始状态后即能按规定的程序进行循环显示;2.程序由三个节拍组成:第一节拍时,四路输出Q1~Q4依次为1,使第一路彩灯先点亮,接着第二,第三,第四路彩灯点亮。
第二节拍时,Q4~Q1依次为0,使第四路彩灯先灭,然后使第三,第二,第一路彩灯灭。
第三节拍时,Q1~Q4输出同时为1态0.5秒,然后同时为0态0.5秒,使四路彩灯同时点亮0.5秒然后同时灭0.5秒,共进行4次。
每个节拍耗时都为4秒,执行一次程序共需12秒;3.用发光二极管模拟显示彩灯系统的各节拍。
第二章单元电路2.1系统单元电路组成模12计数器74LS163起节拍产生和控制作用,每4s一个节拍,3个节拍共12s后反复循环。
大致电路图如下:四路彩灯8.doc四路彩灯8.doc由一个74LS163、一个与门和一个与非门组成,这图用的是反馈置数法,当输出端QD,QC,QB,QA为1011时,LOAD’端接收到低电平0,此时74LS163输出端就重新回到了0000状态。
八路彩灯控制系统实验报告姓名:学院:电子工程学院学号:同作人:一实验目的1.熟悉数字电路中时序逻辑电路与组合逻辑电路的设计。
2.熟悉并掌握用移位寄存器设计彩灯控制器的方法。
二设计任务与要求1.彩灯明暗变换节拍为0.25S和0.5S,两种节拍交替运行。
2. 彩灯演示花型为三种(花型自拟)。
3. 彩灯用发光二极管模拟。
要求:即能控制8路LED以两种节拍、三种花型连续循环演示。
三参考器件给定器件为四2输入与非门(74LS00)1只,六反相器(74LS04)1只,二进制同步计数器(74LS161)2只,四位双向移位寄存器(74LS194)2只,四2选1数据选择器(74LS157)1只,555定时器1只,电阻、电容若干四实验要求按照设计任务设计电路,然后在仿真软件上进行虚拟实验,正确后,在实验板上搭建实验电路,观察彩灯花型是否正确,如果不正确,排除故障直至正确为止。
最后一步是撰写实验报告、整理文档,对实验进行总结。
五设计说明彩灯控制器原理框图如图5-45所示。
图中,虚线以上为处理器,虚线以下是控制器。
从图5-45可以看出,编码发生器的功能是:根据花型要求按节拍送出8位状态编码信号,以便控制灯的亮灭。
其电路可以选用四位双向移位寄存器来实现。
八路灯用两片移位寄存器级联就可以实现。
缓冲驱动电路的功能是:提供彩灯所需要的工作电压和电流,隔离负载对编码发生器工作的影响。
彩灯控制器对定时器的要求不高,振荡器可采用环形振荡器或555定时器来实现。
控制电路为编码发生器提供所需要的节拍脉冲和控制信号,以同步整个系统工作。
最终效果1. 从左至右顺次渐亮,全亮后逆序渐灭;2. 中间到两边对称地逐渐渐亮,全亮后,再由中间向两边逐一熄灭;3. 八路灯分两半,从左至右顺次渐亮,全亮后全灭。
原理框图VHDL语言library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity balucaideng isport(clk:in std_logic;en:in std_logic;clr:in std_logic;l:out std_logic_vector(7 downto 0)--control signal of the balucaideng );end balucaideng;architecture one of balucaideng issignal count_q:integer range 0 to 86;begincounter:process(clk,clr)beginif(clr='0')thencount_q<=0;elsif(clk'event and clk='1')thenif(en='1')thenif(count_q<28)thencount_q<=count_q+1;elsecount_q<=0;end if;end if;end if;end process counter;table:process(count_q)begincase count_q iswhen 0=>l<="10000000";when 1=>l<="11000000";when 2=>l<="11100000";when 3=>l<="11110000";when 4=>l<="11111000";when 5=>l<="11111100";when 6=>l<="11111110";when 7=>l<="11111111";when 8=>l<="11111110";when 9=>l<="11111100";when 10=>l<="11111000";when 11=>l<="11110000";when 12=>l<="11100000";when 13=>l<="11000000";when 14=>l<="10000000";when 15=>l<="00000000";when 16=>l<="00011000";when 17=>l<="00111100";when 18=>l<="01111110";when 19=>l<="11111111";when 20=>l<="00011000";when 21=>l<="11000011";when 22=>l<="10000001";when 24=>l<="10001000"; when 25=>l<="11001100"; when 26=>l<="11101110"; when 27=>l<="11111111"; when 28=>l<="00000000"; --0.25swhen 29=>l<="10000000"; when 30=>l<="10000000"; when 31=>l<="11000000"; when 32=>l<="11000000"; when 33=>l<="11100000"; when 34=>l<="11100000"; when 35=>l<="11110000"; when 36=>l<="11110000"; when 37=>l<="11111000"; when 38=>l<="11111000"; when 39=>l<="11111100"; when 40=>l<="11111100"; when 41=>l<="11111110"; when 42=>l<="11111110"; when 43=>l<="11111111"; when 44=>l<="11111111"; when 45=>l<="11111110"; when 46=>l<="11111110"; when 47=>l<="11111100"; when 48=>l<="11111100"; when 49=>l<="11111000"; when 50=>l<="11111000"; when 51=>l<="11110000"; when 52=>l<="11110000"; when 53=>l<="11100000"; when 54=>l<="11100000"; when 55=>l<="11000000"; when 56=>l<="11000000"; when 57=>l<="10000000"; when 58=>l<="10000000"; when 59=>l<="00000000"; when 60=>l<="00000000"; when 61=>l<="00011000"; when 62=>l<="00011000"; when 63=>l<="00111100"; when 64=>l<="00111100"; when 65=>l<="01111110";when 67=>l<="11111111";when 68=>l<="11111111";when 69=>l<="00011000";when 70=>l<="00011000";when 71=>l<="11000011";when 72=>l<="11000011";when 73=>l<="10000001";when 74=>l<="10000001";when 75=>l<="00000000";when 76=>l<="00000000";when 77=>l<="10001000";when 78=>l<="10001000";when 79=>l<="11001100";when 80=>l<="11001100";when 81=>l<="11101110";when 82=>l<="11101110";when 83=>l<="11111111";when 84=>l<="11111111";when 85=>l<="00000000";when 86=>l<="00000000";--0.5swhen others =>l<="11111111";end case;end process table;end one;仿真波形花型一花型二花型三。
实验报告课程名称可编程逻辑器件实验项目名称彩灯学生班级学生姓名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时,灯会按照所编写程序的要求运作。
设计八彩灯控制器 要求: 1、 设计一个彩灯控制器,使彩灯(LED管)能连续发出四种以上不同得显示形式: 2、 随着彩灯显示形式得变化,发出不同得音响声。 设计提示: 1、 彩灯显示得不同形式可由不同进制汁数器驱动LED显示完成; 2、 音响由选择不同频率CP脉冲驱动扬声器形成: 3、 彩灯显示形式由实验箱中拨码开关控制。
实验程序 LI BRARYieee: USE i e e e、stdjogic_l 1 6 4、al 1 ; USE IEEE、STD_LOGIC_UNSIGNED、ALL: ENTITYcaiden g k o ngzhiqi IS PORT
( cl k 1 ,rst, c 1 k2。: IN std_ 1 ogic; c a idcng^ : OUT。s t d_I o gic_v e c t o r (7 down t o 0); c z : in std_ 1 og i c_vect o r (1 d ownto 0); speake r : ou t s t d」o g i c ); EN D caide n g k o ng z hiqi: ARC II 1 TEC TUR E one OF caiden g kong z hiq i I S。 PONENT counter_8 PORT ( clkjs t : IN^stdJo g i c; co u nt_ou t o : OU T 4nt e g e r r a n ge 0 to 7。 ); END PONENT; PO NENTc a id e n g k ongz h i PORT (
I nsz:in std」o g ic_vector ( 1 downto 0 ): Inpu t : I N INTEGER RANGE OTO 7; R s t o : i n s t d_logic; out p ub : OUT std_log i c_vecto r (7 d ownto 0 )); END PON ENT ; PONENTfe n pin qi PORT ( clk,r st。 號 I N^st d _ 】o gic; clk_l 0 , c lk_ 4 , clk_6, clk_8 OUT s t d_1 o g ic ); E ND PONE N T ; PONENT xz q 4 _ 1 PORT ( Rst : in std_ 1 o gic; I npxin std_logic_vector (1 dow n to 0 ); inL i n 2, in3jn4< In s t djogic; outp u t : OU T st d Jogi c ); END PONENT : SIGNALS, g, m,n, k : s t djo g ic; SIGNAL f: INTEG ER R ANGE 0 TO 3 1 : SIGNAL w: i ntege r r ange 01 o 3; BEGIN u 1 : c oun ter_8port map ( c 1 k=> c 1 kl, rst=> rst, u2: ca i dengkongzh i po r t map (in s => cz, i npu t =>f, =>caideng); u3: fenp i n q i por t m a p (clk=> c lk 2 , rst=> r st, c 1 k_ clk_6=>n, clk_8= > k): u4: xzq4_l p o rt m a p ( i np= >czt^ r st=> r st, i n 1 = 3=>n, i n4 =>kt o u t pu t=) spea k e r); END one: LIBRARY ieee; USEicee、std_l o gic_1164. al 1 ; ENTITY f e npinqi IS )POR T ( a c 1 k ,rsb: 1 N std」og i c: 。c 1 k _ 1 0 , c lk_4.cl k _ 6 ,clk_8^: OUT std Jog i c
。); END fenp i nqi: ARCH I TECTURE cd OFf e npinqi 1 S b e g in p 1 : process(clkt rs t ) variable a :in t e ge r ran g e 0 t o 2 0 : b e g in if r s t =' 1’ then c I k_4 (=0\ a: = 0 ; e 1 se if elk' even t and c lk=‘ r t h e n if a ) =3 then a:= 0 : else
cou n t _o u t => f ): rst =>rst, ou t put
1 0 =>g9 c 1 k_4=> nit )g, in2=) m, i n a : =a+l; clk_4 (=*0 \ end if: en d if: end if; end p r oc e ss p 1 : p2: proc e ss(c I k jst) variable b: i ntege r rang e 0 t o 2 0 : begin if rs t =T then c I k_6 V = O‘: b:=0: el s e i f clk'e vent and c lk=z l'tlie n if b>=5 then b:=0 ; cl k_6v=,1 \ else b:=b+l; c I k_6<=,0,; end if: en d if; end i f : end p roces s p 2; p3: proces s (elk,rst) va r iab I e c :i n teger range 0 to 20; b e g in if rst=T the n c 1 k_8 <=; 0\ c:=0: el s e if c 1 k*e v e nt a n d cl k =' l*th e n if c>=7 the n c:=0; clk_8〈=T: else c: =c+l; clk_8<=^ Or: end i f; end if; end if: end proce s sp3: p4:p roc e s s ( c lk, rs t ) v a riable d: i nt e ge r range 0 to 2 0: be g in ifrst=z Fthen clk_l 0 <=V; d: = 0 : e I se if c 1 k 'event an d clk=T then if d) =9 th e n d :=0; c i k_i o<= r; else d=d+ 1 : clk_10<=' 01 en d i f; end i f; e nd if; end p r o c e ss p 4: en d cd; LIBRARY i eee; USEieee、s t d」o gic_1164、all; ENT ITYxzq4_l IS PORT a ( a rst: in std_log i c; inp: in s t d _1 o g i c _vector( 1 d M n Lin2, in3, i n4 : In std J o g i c; outp u b : OUT s t d」ogic ); END x z q 4_1: ARCHITECTURE a OF x zq4_l IS BEGIN ^PROCESS (rstJ n p) oBEGIN if (rst=>r) t hen output (=>0,; else case inp is w h en M 0 01 => o utpu t Jin 1 : whe n H0r =>outp u t<=in2; when” 1 0 M =) output (= i n3; when "11 n => o u t put <=in4; when oth e rs = > n ull; end cas e : ◎ e n d if:。 END PROCESS a
END a; LIB R ARY i eee; USE i ccc、s t d_logic」164、all; ENT I TYcounter_8 IS oPORT °(
o wnto 0); g c 1 k , rsl : 1 N std_l o g ic; g c oun t _ o ut 巧 OUT integer range 0 t o 7 ); END c o u n t cr_& ARCHITEC TURE a OF co u nter_8 I So BEGIN JPROC ESS (rst,c 1 k)
va r i able temp: int e ger r a ng e 0 to 8 ; BEGIN o I Frst=, 1「THEN g t emp: =0: ELSIF (clktve nt and clk=T) THEN t e mp: =temp+l: if(temp=8) t h en temp:=0; end if; ENDIF; co u nt_ou t <= t emp; oE ND PROCESS; 。 END a; LI B RARY ieee: USE i e e ex stdjogic^l 1 64、al I ; ENTITY caid engkon g z hi IS POR TGins :in s t d」ogic_ v ecto r (1 downtoO); 。input : IN INTEGER RANGE 0 TO 7;
a rst: in std _logi c : ^utp utz: OUT s t d」og i c_ v ector(7 downto 0 )); END c a i dengkongzhi; ARCHITECTUREaOFcaidengko n g z h i IS BEGIN ^PROCESS (input) BEG I N i f rst = T 'then ou t p ut<=”00000000": else a If ( i ns=H 00 M ) t hen case i nput is ◎ wh e n 0=) o u t put (= " 1 00 0 0000°; 。 o o whe n 1=> output<=H01000000";