第7章 PCB的制作(实例:呼吸灯、流水灯)
- 格式:pptx
- 大小:11.42 MB
- 文档页数:48
流水灯电路的制作流水灯是一种光电转换装置,通过一系列的LED灯组成,可以在不同的时间间隔内依次点亮,形成像水流一样的效果,因此得名“流水灯”。
下面我将介绍流水灯电路的制作过程。
首先,我们需要准备以下材料和工具:1. Arduino控制板(如Arduino UNO)2. Jumper wires(杜邦线)3.电阻(220欧)4. LED灯(3mm直径和5mm直径,不同颜色)5.面包板6.铁丝钳和钳子(辅助工具)接下来,按照以下步骤制作流水灯电路:1. 将Arduino控制板插入面包板的两侧,并通过杜邦线将GND(地线)引脚与面包板上的负极连接。
2.将220欧的电阻通过杜邦线连接到面包板上,一端与GND(地线)相连,另一端空置。
3.通过杜邦线将LED灯连接到面包板上。
LED灯有一个长脚和一个短脚,长脚是阳极(正极),短脚是阴极(负极)。
将LED灯的阳极连接到电阻的空置端,阴极连接到GND(地线)。
4.重复步骤3,将其他的LED灯连接到面包板上。
你可以选择不同颜色的LED灯,以获得更丰富的效果。
确保每个LED灯的阳极连接到电阻的空置端,而阴极连接到GND(地线)。
5. 通过杜邦线将Arduino控制板的数字引脚与面包板上的LED灯连接。
根据你想要的效果,可以将LED灯连接到不同的数字引脚上。
例如,将第一个LED灯连接到数字引脚2,第二个LED灯连接到数字引脚3,依此类推。
6. 将Arduino控制板通过USB线连接到计算机,并开启Arduino IDE编程软件。
7. 在Arduino IDE中编写相应的代码,以控制流水灯的效果。
以下是一个简单的流水灯代码示例:```const int ledPin1 = 2; // 设置第一个LED灯的数字引脚const int ledPin2 = 3; // 设置第二个LED灯的数字引脚const int ledPin3 = 4; // 设置第三个LED灯的数字引脚//以此类推...void setupinMode(ledPin1, OUTPUT);pinMode(ledPin2, OUTPUT);pinMode(ledPin3, OUTPUT);//初始化其他LED的引脚void loodigitalWrite(ledPin1, HIGH); // 点亮第一个LED灯delay(100); //等待100毫秒digitalWrite(ledPin2, HIGH); // 点亮第二个LED灯delay(100); //等待100毫秒digitalWrite(ledPin3, HIGH); // 点亮第三个LED灯delay(100); //等待100毫秒//以此类推...逐个点亮其他LED灯digitalWrite(ledPin1, LOW); // 关闭第一个LED灯delay(100); //等待100毫秒digitalWrite(ledPin2, LOW); // 关闭第二个LED灯delay(100); //等待100毫秒digitalWrite(ledPin3, LOW); // 关闭第三个LED灯delay(100); //等待100毫秒//以此类推...逐个关闭其他LED灯```8. 将上述代码上传到Arduino控制板,并观察LED灯是否能够像流水灯一样依次点亮和熄灭。
流水灯电路的制作一、概述:随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。
在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。
目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。
所以,多功能流水灯的设计具有相当的代表性。
多功能流水灯,就是要具有一定的变化各种图案的功能,主要考察了数字电路中一些编码译码、计数器原理,555定时器构成时基电路,给其他的电路提供时序脉冲,制作过程中需要了解相关芯片(NE555、CD4017)的具体功能,引脚图,真值表,认真布局,在连接过程中更要细致耐心。
二、电路原理图三、电路工作原理多功能流水灯原理电路图如上图所示。
原理电路图由振荡电路、译码电路和光源电路三部分组成。
本文选用的脉冲发生器是由NE555与R2、R3及C1组成的多谐振荡器组成。
主要是为灯光流动控制器提供流动控制的脉冲,灯光的流动速度可以通过电位器R3进行调节。
由于R3的阻值较大,所以有较大的速度调节范围。
灯光流动控制器由一个十进制计数脉冲分配器CD4017和若干电阻组成。
CD4017的CP端受脉冲发生器输出脉冲的控制,其输出端(Q0~Q9)将输入脉冲按输入顺序依次分配。
输出控制的脉冲,其输出控制脉冲的速度由脉冲发生器输出的脉冲频率决定。
10个电阻与CD4017的10个输出端Q0~Q9相连,当Q0~Q9依次输出控制脉冲时10个发光二极管按照接通回路的顺序依次发光,形成流动发光状态,即实现正向流水和逆向流水的功能。
电源电路所采用的电源为5V。
四、PCB板的设计五、元器件清单六、电路的组装与调试1、电路的组装方法和步骤(1)筛选元器件。
对所有购置的元器件进行检测,注意它们的型号、规格、极性,应该保质量。
(2)按草图在PCB板上组装并焊接。
要求:①元器件布局整齐、美观,同类型元器件高度一致;②焊接良好,无虚焊、错焊、连焊等缺陷。
单片机流水灯与呼吸灯结合-滴水灯程序及详细教程(转载)TWAS手把手教你做呼吸灯-基于51单片机学习板内容比较简单,发这个贴主要是针对新手!什么是呼吸灯?顾名思义,灯光在微电脑控制之下完成由亮到暗的逐渐变化,感觉像是在呼吸。
用专业的话来说是通过控制PWM的占空比来完成对LED亮度的控制什么是PWM和占空比?脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种技术。
占空比:高电平在一个周期之内所占的时间比率。
呼吸灯原理当一颗LED在高速闪烁,闪烁的频率已经超过了人眼的感知的范围,那么我们看到这颗LED就是一直亮的,也就是视觉暂留现象(余晖效应)。
如果我们控制一次闪烁中亮和灭的时间(修改占空比),就可以控制亮度。
代码实现:/******************************************************** 程序名称:main.c* 程序功能:实现呼吸灯的主程序文件* 程序作者:TWAS* 创建时间:2015-1-22* 修改时间:* 程序版本:V0.1*******************************************************//* 包含的头文件 */#include <reg52.h>/* 寻址变量定义 */sbit LED_Drive = P3^5; /* 定义驱动LED的IO口,LED为共阳 *//******************************************************* 函数名称:main* 函数功能:主函数* 入口参数:NULL* 出口参数:NULL*******************************************************/int main(){unsigned char i;/* 初始化 */LED_Drive = 1;/* 主循环 */while(1){for(i = 0; i < 200; i++){/* 外边的for循环共循环200次,前面10次点亮LED,后面180次熄灭LED* 通过修改if后面的值,就可以改变占空比*/if(i < 10){LED_Drive = 0;}else{LED_Drive = 1;}}}return 0;}/******************************************* 程序结束*****************************************/可以明显看出我们所控制的LED比电源灯暗许多,既然我们会控制亮度,想实现呼吸灯也就变的简单了代码实现:(为了节约空间和界面简洁,只贴出主要实现的部分)int main(){unsigned char i;unsigned char ucNum = 0; /* 新增两个变量,ucNum 控制占空比*/bit bAdd = 1; /* bAdd选择是增大占空比还是减小占空比 *//* 初始化 */LED_Drive = 1;/* 主循环 */while(1){for(i = 0; i < 200; i++){/* 外边的for循环共循环200次,前面10次点亮LED,后面180次熄灭LED* 通过修改if后面的值,就可以改变占空比*/if(i < ucNum){LED_Drive = 0;}else{LED_Drive = 1;}}/* 选择是增大占空比还是减小占空比 */if (1 == bAdd){ucNum++;}else{ucNum--;}/* 当Num等于200也就是最大值时,bAdd置0,Num开始减小*/if (200 == ucNum){bAdd = 0;}/* 当Num等于200也就是最大值时,bAdd置1,Num开始增大*/else if (0 == ucNum){bAdd = 1;}}return 0;}由于图片看不到效果,这个地方就不贴图了,根据测试,我们的所需要的功能实现了!但是这时候有的人就有疑问了,这是很普通的LED,那如果是特殊一点的呢?比如我所用的学习板上面,16颗LED是用595驱动的,那呼吸灯又该如何实现呢?其实很简单,我们把驱动LED的函数封装一下,直接替换,其它不变就行了!代码实现:(为了节约空间和界面简洁,只贴出主要实现的部分)for(i = 0; i < 200; i++){/* 外边的for循环共循环200次,前面10次点亮LED,后面180次熄灭LED* 通过修改if后面的值,就可以改变占空比*/if(i < ucNum){DriveLED(0x0003); /* LED驱动,点亮D1和D2 */}else{DriveLED(0x0002); /* LED驱动,熄灭D1点亮D2 */}}当我把程序改成这样的时候,出了一点问题,不能呼吸,变成闪烁了!等等,先把LED驱动部分发一下:/******************************************************* 函数名称:SendData* 函数功能:74HC595数据的发送* 入口参数:unsigned int uiDataOne, unsigned int uiDataTwo * 出口参数:void*******************************************************/void SendData(unsigned char ucDataOne, unsigned char ucDataTwo){unsigned int i = 0;/* 将片选信号置为低电平 */HC595RCK = 0;/* 输入第一个数据:uiDataOne */for (i = 0; i < 8; i++){/* 给出脉冲信号,首先将CLK置为0 */HC595CLK = 0;if (0 != (ucDataOne & 0x80)){HC595DATA = 1;}else{HC595DATA = 0;}/* 给出脉冲信号,首先将CLK置为1 */HC595CLK = 1;/* 准备第二个数据 */ucDataOne = ucDataOne << 1;}/* 输入第二个数据:uiDataTwo */for (i = 0; i < 8; i++)/* 给出脉冲信号,首先将CLK置为0 */HC595CLK = 0;if (0 != (ucDataTwo & 0x80)){HC595DATA = 1;}else{HC595DATA = 0;}/* 给出脉冲信号,首先将CLK置为1 */HC595CLK = 1;/* 准备第二个数据 */ucDataTwo = ucDataTwo << 1;}/* 将片选信号置为高电平 */HC595RCK = 1;}/******************************************************** * 函数名称:DriveLED* 函数功能:595驱动程序是分两个数据发的,* 本函数把它合并成一个数据* 入口参数:uiData:16颗LED需要显示的数据* 出口参数:NULL*******************************************************/ void DriveLED(unsigned int uiData)SendData(uiData >> 8,uiData);}继续刚刚的问题,呼吸灯变成闪烁了,怎么回事呢?在程序逻辑上是没有问题的,我们只是更改了LED的驱动部分,看来就是LED驱动的问题了!先来Debug看一下,执行DriveLED这个函数,时间是接近400微妙,循环200次,就是差不多80毫秒,那么LED的闪烁频率为12.5HZ(都是大概的值,没有精确计算),还不足以形成视觉暂留现象。
第1篇一、引言随着科技的不断发展,电子技术已经深入到我们生活的方方面面。
电路板作为电子产品的核心部件,其设计和制作越来越受到重视。
为了提高自己的动手能力和实际操作经验,我们选择了流水灯电路板作为实践项目。
本文将对流水灯电路板的设计、制作和调试过程进行详细阐述。
二、设计原理流水灯电路板采用74HC595芯片实现8位LED灯的动态扫描显示。
74HC595是一款串行输入、并行输出的移位寄存器,具有锁存功能。
通过串行输入端输入数据,然后逐个输出到并行端口,实现LED灯的动态扫描显示。
1. 电路组成(1)电源电路:为电路板提供5V稳定电压。
(2)74HC595芯片:实现8位LED灯的动态扫描显示。
(3)LED灯:用于显示流水灯效果。
(4)按键电路:用于控制流水灯的速度。
(5)电阻:限流保护LED灯。
2. 工作原理(1)当按键电路未按下时,电路板处于待机状态,LED灯不亮。
(2)按下按键电路,电路板开始工作,74HC595芯片的串行输入端开始接收数据。
(3)数据经过74HC595芯片处理后,逐个输出到并行端口,控制LED灯的亮灭。
(4)按键电路控制流水灯的速度,实现不同频率的流水灯效果。
三、制作过程1. 准备材料(1)电路板:100mm×100mm(2)74HC595芯片:1个(3)LED灯:8个(4)电阻:8个(5)按键:1个(6)电源:5V(7)焊锡、烙铁、电烙铁架等焊接工具2. 制作步骤(1)按照电路原理图,将74HC595芯片、LED灯、电阻、按键等元器件焊接在电路板上。
(2)连接电源,检查电路连接是否正确。
(3)调试电路,观察LED灯是否按照预期效果显示流水灯。
(4)根据实际情况调整电路参数,实现不同频率的流水灯效果。
四、调试过程1. 检查电路连接(1)检查电源电路连接是否正确,确保电路板能够正常供电。
(2)检查74HC595芯片、LED灯、电阻、按键等元器件焊接是否牢固。
2. 调试流水灯效果(1)按下按键电路,观察LED灯是否按照预期效果显示流水灯。
C51单⽚机实现呼吸灯和花样流⽔灯程序1.⽤C51单⽚机实现花样流⽔灯,代码如下:#include <reg52.h>#define LED_A P1 //led灯所⽤的接⼝,是哪个⼝就写P⼏void delayms(){unsigned char x = 0; unsigned char i;unsigned char y = 0;while(y < 0.001) //定义led灯的切换的延时时间,越⼩越快。
{ //(y < 0.001);(x<100);(i<100)都可以修改x = 0;while(x<100){i = 0;while(i<100){i++;}x++;}y++;}}#define LED_NUM 8 //定义led灯的数量,可快速实现不同⽤途的修改;void main(){unsigned char k;unsigned char j;unsigned char LED_ALL[] = {0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F}; //led灯亮灭的⼗六进制数组;unsigned char LED_ALL_2[] = {0XFC,0XF3,0XCF,0X3F}; while(1) { for(k=0;k<3;k++) //第⼀个for实现奇偶灯交叉闪烁三次,想闪烁⼏次就修改(K<3)中的数值; { LED_A = 0xAA; delayms(); LED_A = 0x55; delayms(); } for(k=3;k>0;k--) //实现⼀个流⽔灯左右三次(从左到右再从右到左算⼀次); { for(j=0;j<LED_NUM;j++) { LED_A = LED_ALL[j]; delayms(); } for(j=6;j>0;j--) { LED_A = LED_ALL[j]; delayms(); } } for(k=0;k<3;k++) //实现前四个灯亮后四个灯灭,交叉闪烁3次,修改次数同上; { LED_A = 0xf0; delayms(); LED_A = 0xf; delayms(); } for(k=3;k>0;k--) //实现两个灯依次流⽔3次; { for(j=0;j<4;j++) { LED_A = LED_ALL_2[j]; delayms(); } for(j=2;j>0;j--) { LED_A = LED_ALL_2[j]; delayms(); } } }}2.实现第⼀个灯呼吸,由暗变亮,再由亮变暗,程序如下;#include <reg52.h>sbit LED1 = P3^0;void delay(unsigned int a) //定义⼀个延时函数{ while(--a);}void main(){ unsigned int t,circle=800; //定义变量,circle=800为led灯呼吸的间隔长短,数值越⼩,间隔越短。
一、设计题目流水灯设计二、设计要求1、通过本次课程设计对80C51单片机对数据的处理和输出显示的认识和理解。
2、能够结合单片机对数据的处理输出显示了解单片机软件的应用。
3、将软、硬件有机地结合,软件系统采用汇编语言编写程序,并在WAVE中调试运行。
三、设计内容功能描述:1.功能要求:程序运行后,将依次循环出现8只LED依次逐个点亮,依次逐个叠加,依次逐个递减,从两边靠拢后分开,从两边叠加递减的流水灯效果。
2.使用说明:总体分三大部分(1)8个发光二极管(2)80C51单片机(3)软件部分按照硬件电路图把8个发光二极管依次连接P1.0~P1.7如图所示,EA (80C51 31脚) 为访问外部程序存储器控制信号,低电平有效当。
当EA端保持高电平时,单片机访问片内程序存储器的程序。
若超出该范围时,自动转去执行外部程序存储器的程序。
当EA端保持低电平时,无乱片内有无程序存储器,均只访问外部程序存储器,所以硬件电路要保持31脚高电平。
18 、19脚是接外部晶振的两脚,根据硬件电路图接上12MHz的外部晶振。
9脚是复位脚即为RESET,该引脚为单片机的上电复位端,当单片机晶体振荡器工作时,该引脚上出现两个机器周期的高电平,就可以实现复位操作,使单片机回复到初始状态。
图9脚就是上电复位电路连接图。
3.基础知识:80C51单片机的寻址方式包括寄存器寻址、直接寻址、寄存器间接寻址、立即寻址以及基址寄存器加变址寄存器间接寻址5种寻址方式。
其中基址寄存器加变址寄存器间接寻址方式一般用于访问程序存储器中的数据表格。
这种寻址方式是以DPTR 或PC作基址寄存器,以累加器作变址寄存器,并以两者内容相加成的16位地址作为操作数的地址,以达到访问数据表格的目的。
即熟悉运用查表指令编写程序。
查表指令可用于复杂代码转换显示,通过查表指令可以实现复杂的显示效果,并可以减少程序代码。
四、程序设计1、程序内容;----------------------------------------------- ;流水灯实例;功能:点亮发光管LED并闪烁;-----------------------------------------------ORG 0000H ;伪指令,指定程序从0000HLJMP MAIN ; 跳转指令,程序跳转到MAIN处ORG 0100H ; 伪指令,指定以下程序从0100H开始存放 MAIN:MOV SP ,#60H ; 给堆栈指针赋初值MOV P1,#0FFH ;给P1赋初值,LED全熄灭;以下为查表程序MOV DPTR,#LED TABLELIGHT :MOV R7, #42LOOP :MOV A , #42SUBB A , R7MOVC A ,@A+DPTRMOV P1 , A ; 输出显示LCALL DELAY ; 调延时子程序DJNZ R7 , LOOPSJMP LIGHT ;跳转,程序继续;延时子程序DELAY :MOV R7 ,#10HDELAY0 :MOV R6 ,#7FHDELAY1 :MOV R5 ,#7FHDJNZ R5 ,$DJNZ R6 ,DELA Y1DJNZ R7 ,DELA Y0RET; 表格数据LED TABLE :DB 0FFH ;全部熄灭DB 0FEH, 0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FH;依次逐个点亮DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,080H,000H; 依次逐个叠加DB 080H,0C0H,0E0H,0F0H,0F8,0FCH,0FEH,0FFH; 依次逐个递减DB 07EH,0BDH,0DBH,0E7H,0E7H,0DBH,0BDH,07EH;两边靠拢后分开DB 07EH,03CH,018H,000H,000H,018H,03CH,07EH; 两边叠加后递减DB 000H ;全部点亮END六、成员分工七、心得体会这次这个单片机的课程设计我们完成的不太理想,我们小组有四个人。
流水灯电路的制作一、概述:随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。
在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。
目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。
所以,多功能流水灯的设计具有相当的代表性。
多功能流水灯,就是要具有一定的变化各种图案的功能,主要考察了数字电路中一些编码译码、计数器原理,555定时器构成时基电路,给其他的电路提供时序脉冲,制作过程中需要了解相关芯片(NE555、CD4017)的具体功能,引脚图,真值表,认真布局,在连接过程中更要细致耐心。
二、电路原理图三、电路工作原理多功能流水灯原理电路图如上图所示。
原理电路图由振荡电路、译码电路和光源电路三部分组成。
本文选用的脉冲发生器是由NE555与R2、R3及C1组成的多谐振荡器组成。
主要是为灯光流动控制器提供流动控制的脉冲,灯光的流动速度可以通过电位器R3进行调节。
由于R3的阻值较大,所以有较大的速度调节范围。
灯光流动控制器由一个十进制计数脉冲分配器CD4017和若干电阻组成。
CD4017的CP端受脉冲发生器输出脉冲的控制,其输出端(Q0~Q9)将输入脉冲按输入顺序依次分配。
输出控制的脉冲,其输出控制脉冲的速度由脉冲发生器输出的脉冲频率决定。
10个电阻与CD4017的10个输出端Q0~Q9相连,当Q0~Q9依次输出控制脉冲时10个发光二极管按照接通回路的顺序依次发光,形成流动发光状态,即实现正向流水和逆向流水的功能。
电源电路所采用的电源为5V。
四、PCB板的设计五、元器件清单六、电路的组装与调试1、电路的组装方法和步骤(1)筛选元器件。
对所有购置的元器件进行检测,注意它们的型号、规格、极性,应该保质量。
(2)按草图在PCB板上组装并焊接。
要求:①元器件布局整齐、美观,同类型元器件高度一致;②焊接良好,无虚焊、错焊、连焊等缺陷。