led流水灯电路图

合集下载

CD4017流水灯电路设计

CD4017流水灯电路设计

CD4017流水灯电路设计摘要:随着LED技术的不断发展以及LED在低功耗、长寿命、环保等方面的优势,LED应用领域逐渐增多。

同时,许多国家在看到LED巨大的市场潜力后,纷纷出台各项鼓励措施大力推动LED在各领域中的应用。

目前,LED的应用已经从最初的指示灯应用转向更具发展潜力的显示屏,景观照明、背光源、汽车车灯、交通灯、照明等领域,LED应用正呈现出多样化发展趋势。

本次毕业设计就是用小功率LED作为发光体替代实验室中价格昂贵的钠光灯或白炽灯。

并利用555定时器、可变电阻普通电阻、电解电容以及普通电容构成可调驱动电路,驱动CD4017计数器构成的译码电路,使LED依次循环发光,从而组成循环流水灯。

关键词: CD4017 555定时器 LED目录设计任务和要求 (3)1.引言 (4)2.总体设计方案选择与说明 (5)2.1 方案选择 (5)2.2 电路工作原理: (5)3.单元硬件设计说明 (5)3.1 555定时器 (6)3.2 自激多谐振荡器 (10)3.3 十进制计数/分频器CD4017 (11)3.3.1 CD4017内容说明: (11)3.3.2 CD4017十进制计数器内部电路图: (12)3.3.3 CD4017时序波形图: (13)3.3.4 CD4017引脚图如下: (14)3.3.5 CD4017引脚功能: (14)3.4 发光二极管(LED) (15)3.4.1 LED 特点 (13)3.4.2 LED光源的特点 (16)3.5 元件明细表 (17)4.软件说明 (18)4.1 Protel99简介 (18)4.2 Proteus简介 (19)5.安装调试方法 (19)5.1 安装方法 (19)5.2 调试方法 (20)6.总结 (20)7.致谢 (21)8.参考文献 (22)附录一 (22)附录二 (24)附录三 (25)附录四 (26)设计任务和要求设计任务:以CD4017计数器为基础设计一灯组流动速度和亮度均可调的循环流水灯。

三组9只LED流水灯电路图

三组9只LED流水灯电路图
记录错误元件标号及错误类型(元件类型、参数、极性等)
焊点是否有漏焊、虚焊、拉尖、桥接、空隙、焊锡过多等现象?记录有问题的焊点数量
本组记录
通电试验记录电路功能
电路功能组间对比检查
对比组电路功能有什么不同?
原因是什么?
老师评价
实训组成员签名:检查组组名:
三组9只LED灯电路图
元件清单
元件标号
名称
参数
数量
R1 R3 R5
电阻
10K
3
R2 R4 R6
电阻
470
3
C1 C2 C3
电解电容
47μF
3
Q1 Q2 Q3
三极管
9013
3
LED1---LED9
发光二极管
红色
9
X1
电源接
组间互查
电路焊接是否完成
元件布局是否美观
根据电路图,核查已焊接元件是否有错焊?

3组12只LED流水灯电路设计与制作

3组12只LED流水灯电路设计与制作

3组12只LED流水灯电路设计与制作(姓名:黄丽琳学号:20101041101)(姓名:廖雨学号:20101041120)2013年06月17日3组12只LED流水灯电路设计与制作(姓名:黄丽琳学号:20101041101;姓名:廖雨学号:20101041120)摘要:3组12只LED流水灯是特别针对电子装配与调试技能设计出来的,值得学习和电路分析。

本文分析了该流水灯电路的特点及其电路工作原理的说明.关键字:3组12只LED流水灯;电路设计;循环。

1 引言随着科学技术的发展,电力电子设备与人们的工作、生活的关系日益密切。

各种小套件层出不穷,功能多样。

本文所设计的电子制作可以说是电子初学者学习电子的最佳入门制作!其制作方式容易,趣味横生,更能提高初学者的动手能力!让初学者在制作学习中感受电子技术带来的乐趣!2 系统的功能描述这款3组12只LED流水灯具有制作容易、有趣易学的特点,电路焊接成功后,装入电池,即可正常工作,3组12只发光二极管便会被轮流点亮,不断的循环发光,达到流动的效果。

3 设计原理3.1 电路工作原理说明:本电路是由3只三极管组成的循环驱动电路。

每当电源接通时,3只三极管会争先导通,但由于元器件存在差异,只会有1只三极管最先导通.这里假设V1最先导通,则V1集电极电压下降,使得电容C2的左端下降,接近0V.由于电容两端的电压不能突变,因此此时V2的基极也被拉到近似0V,V2截止,V2的集电极为高电压,故接在它上面的发光二极管LED5—LED8被点亮。

此时V2的高电压通过电容C3使V3基极电压升高,V3也将迅速导通,因此在这段时间里,V1、V3的集电极均为低电压,因此只有LED5-LED8被点亮,LED1-LED4、LED9—LED12熄灭。

但随着电源通过电阻R3对C2的充电,V2的基极电压逐渐升高,当超过0。

7V时,V2由截止状态变为导通状态,集电极电压下降,LED5-LED8熄灭。

使用74LS164制作流水灯

使用74LS164制作流水灯

使用74LS164制作流水灯单片机初学者对于流水灯实验一定特别的熟悉,这个实验逻辑清晰,效果明显,在各类单片机以及微机控制相关材料中都会进行讲解。

当我们学习了一段时间单片机之后,或者在进行单片机系统设计时,会发现51单片机的引脚有时并不是很够用,有时候需要尽量节省单片机I/O引脚。

如何节省I/O引脚是我们在设计单片机系统时,经常需要考虑的一个问题。

下面以8个LED组成的流水灯效果的实现为例,讲解如何节省单片机的I/O引脚。

通常我们会采用如图1所示的电路图,通过单片机直接驱动8个LED,但是这种控制方式消耗了8个单片机引脚。

图1 常规流水灯电路我们也可以使用三八译码器来完成流水灯的效果。

其控制电路图如图2所示(这种控制方式在我之前上传的文档中有详细介绍,感兴趣读者可以查看)。

这种控制方式虽然可以在一定程度上可以节省单片机I/O接口的使用,如下图所示,最少只需要使用3个I/O口。

但是这种方式也存在一定的缺点,这种控制方式只能同时点亮1个LED 灯,如果想实现两个以及以上的LED灯点亮的效果,那么这种电路将无法直接实现效果。

图2 三八译码器拓展I/O口下面我们看一下能够使用其他的芯片,来进一步降低单片机I/O 口的消耗。

使用串行转并行芯片74LS164来制作流水灯效果,其控制原理图如图3所示。

从原理图中可以看出,使用了74LS164芯片控制流水灯之后,只占用了单片机的两个I/O口。

一个用于输出时钟脉冲,另外一个用于输出串行数据。

图3 74LS164控制流水灯原理图与前面采用译码器控制的流水灯相比,使用74LS164控制的流水灯效果具有如下两个显著优点:1.占用单片机I/O口少,最少仅为2个。

2.控制功能强大,74LS164驱动的流水灯点亮的个数没有限制,可以任意数量点亮。

编程思路:单片机以最快的速度通过串口控制8个LED灯的点亮状态,由于此过程极短,人眼无法分辨,通过延时函数稳定输出效果,并延时一定时间,再次以最快的速度通过串口控制8个LED灯的亮灭状态,并执行延时函数实现等待效果,如此反复,就可以实现流水灯的效果,且可以实现任意的流水灯的效果。

单片机流水灯原理图pcb

单片机流水灯原理图pcb

一、设计题目流水灯设计二、设计要求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六、成员分工七、心得体会这次这个单片机的课程设计我们完成的不太理想,我们小组有四个人。

流水灯设计

流水灯设计

数电课程设计一课程课题:流水灯设计二课程任务:设计一个可以循环移动的流水灯,灯总数为8盏,具体要求如下: -1,5亮,其余灭,右移三次后全灭-4,8亮,其余灭,左移三次后全灭-4,5亮,其余灭,各向两边移三次后全灭-1,8亮,其余灭,各向中间移三次后全灭三课程设计原理:①译码器74139 将Y10N-Y23N 分别命名为led1-led8,利用2-4译码,采用A1,B1,A2,B2分别控制,Y10N-Y23N 为低电平时led 等亮,否则灭。

根据设计任务,结合译码器,可得到循环状态图为:②计数器74169计数器74169 译码器74139序列信号产生74194由于led1-led4和led5和led8的移动方向不尽相同,故采用两个计数器来控制,以led1-led4为例,A1,B1由Q0,Q1决定,则通过UP/DN 可控制Q0,Q1是由00-01-10-11,还是由11-10-01-00,即灯的移动方向。

结合灯的移动方向,取led1-led4的控制端UP/DN为s1,led5-led8的为s2,则s1应为1001序列,s2为1010序列。

③序列产生74194利用74x194产生序列信号s1,s2,来控制下一段的计数器的升降UP/DN,进而控制灯的循环顺序。

功能表:四课程设计方案:①电路图:②仿真波形:学习数电以来,都是一些题目化问题的设计,但这次课程设计却和实际联系紧密,牵扯到很多芯片的原理,链接,是一次很好的实践,原理图的设计是理论与实践的交叉点,原理图设计好之后,我们可以利用仿真软件进行仿真,这样便可以验证我们设计的正确性;积累了经验并且熟练地掌握了软件的基本使用方法和一些快捷键的用途,并体会到数电和实际生活的联系,是不错的开始。

51八只LED灯做流水灯实验

51八只LED灯做流水灯实验

51八只LED灯做流水灯实验第一节:单片机在上电初始后,其各端口输出为高电平。

如果我们现在想让接在P1.0口的LED1亮,那么我们只要把P1.0口的电平变为低电平就可以了。

想让LED1灭,LED0亮,只需将P1.0升高,P1.1变低,LED 1就熄灭LED2随后既点亮!依始类推如下所示8只LED变会一亮一暗的做流水灯了。

本实验在“SP-5 1实验板”学习套件上的相关图纸:P1.0低、P1.0高、P1.1低、P1.1高、P1.2低、P1.2高、P1.3低、P1.3高、P1.4低、P1.4高、P1.5低、P1.5高、P1.6低、P1.6高、P1.7低、P1.7高、返回到开始、程序结束。

我们不能说P1.1你变低,它就变低了。

因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”代码。

我们又怎样来用二进制语议论使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。

今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。

这里的“程序语言”目前主要有汇编和C两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。

前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。

现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。

“汉语”语言汇编语言开始:star:P1.0低clr p1.0P1.0高setb p1.0P1.1低clr p1.1P1.1高setb p1.1P1.2低clr p1.2P1.2高setb p1.2这里用到了四条汇编指令:clr、 setb、 ljmp 、end;clr:是将其后面指定的位清为0;setb:是将其后面指定的位置成1;ljmp:是无条件跳转指令,意思是:跳转到指定的标号处继续运行。

心形花样LED流水灯(带程序)

心形花样LED流水灯(带程序)

心形花样LED 流水灯(带程序)1000146073713使用89C52做的,原理图如下:总共有32个LED灯,4个I/O全部用上了。

我在这里不加有LED保护电阻,用200的也可以晶振用12M的或11.0592M也行,C1,C2用30PF。

PCB图如下:作品效果录像:/programs/view/z0bjKg_3Cd4/程序是用C语言写的;如下:#include<reg52.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; // 逐个点亮0~7 uchar code table1[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; // 逐个点亮7~0 uchar code table2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff}; // 逐个灭0~7 uchar code table3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; // 逐个灭7~0/***********************************************************/void delay(uint t); //延时void zg(uint t,uchar a);//两边逐个亮void qs(uint t,uchar a);//全部闪烁void zgxh(uint t,uchar a); // 逆时针逐个点亮//void zgxh1(uint t,uchar a); // 顺时针逐个点亮void djs(uint t,uchar a); //对角闪void lbzgm(uint t,uchar a);//两边逐个灭//void sszgm(uint t,uchar a); // 顺时针逐个灭void nszgm(uint t,uchar a); // 逆时针逐个灭void sztl(uint t,uchar a);//顺时逐个同步亮void nztl(uint t,uchar a);//逆时逐个同步亮void sztm(uint t,uchar a);//顺时逐个同步灭void nztm(uint t,uchar a);//逆时逐个同步灭void hwzjl(uint t,uchar a); //横往中间亮void hwzjm(uint t,uchar a); //横往中间灭//void swzjl(uint t,uchar a); //竖往中间亮//void swzjm(uint t,uchar a); //竖往中间灭void nzdl(uint t,uchar a); //逆时逐段亮void nzdgl(uint t,uchar a); //逆时逐段一个点亮void jgs(uint t,uchar a); //间隔闪/**********************************************************/void zg(uint t,uchar a)//两边逐个亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=0x7f;delay(t);for(i=0;i<7;i++){P0=table1[i+1];P2=table1[i];delay(t);}P2=0x00;P1=0xfe;delay(t);for(i=0;i<7;i++){P1=table[i+1];P3=table1[i];delay(t);}P3=0x00;delay(t);}}void qs(uint t,uchar a) //全部闪烁{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;delay(t);P0=P1=P2=P3=0x00;delay(t);}}void zgxh(uint t,uchar a) // 逆时针逐个点亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(t);}for(i=0;i<8;i++){P1=table[i];delay(t);for(i=0;i<8;i++){P3=table[i];delay(t);}for(i=0;i<8;i++){P2=table[i];delay(t);}}}void nszgm(uint t,uchar a) // 逆时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P0=table3[i];delay(t);}for (i=0;i<8;i++){P1=table2[i];delay(t);}for (i=0;i<8;i++){P3=table2[i];delay(t);}for (i=0;i<8;i++){P2=table2[i];delay(t);}}}/*void zgxh1(uint t,uchar a) // 顺时针逐个点亮{for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P2=table1[i];delay(t);}for(i=0;i<8;i++){P3=table1[i];delay(t);}for(i=0;i<8;i++){P1=table1[i];delay(t);}for(i=0;i<8;i++){P0=table[i];delay(t);}}}*//*void sszgm(uint t,uchar a) // 顺时针逐个灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for (i=0;i<8;i++){P2=table3[i];delay(t);}for (i=0;i<8;i++){P3=table3[i];delay(t);}for (i=0;i<8;i++){P1=table3[i];delay(t);}for (i=0;i<8;i++){P0=table2[i];delay(t);}}}*/void djs(uint t,uchar a) //对角闪{uchar j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;P0=P3=0x00;delay(t);P0=P1=P2=P3=0xff;P1=P2=0x00;delay(t);}}void lbzgm(uint t,uchar a)//两边逐个灭{uchar i,j;for (j=0;j<a;j++){P0=P2=0x00;P3=0x01;delay(t);for(i=7;i>1;i--){P1=table[i-1];P3=table1[i-2];delay(t);}P1=0xfe;P3=0xff;delay(t);P1=0xff;P2=0x01;delay(t);for(i=7;i>1;i--){P0=table1[i-1];P2=table1[i-2];delay(t);}P0=0x7f;P2=0xff;delay(t);P0=0xff;delay(t);}}void sztl(uint t,uchar a)//顺时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table[i];P1=P2=P3=table1[i];delay(t);}}}void nztl(uint t,uchar a)//逆时逐个同步亮{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];P1=P2=P3=table[i];delay(t);}}}void sztm(uint t,uchar a)//顺时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=table2[i];P1=P2=P3=table3[i];delay(t);}}}void nztm(uint t,uchar a)//逆时逐个同步灭{uchar i,j;for(j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table3[i];P1=P2=P3=table2[i];delay(t);}}}void hwzjl(uint t,uchar a) //横往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table1[i];P3=table[i];delay(t);}}}void hwzjm(uint t,uchar a) //横往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table3[i];P3=table2[i];delay(t);}}}/*void swzjl(uint t,uchar a) //竖往中间亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=P2=P1=table[i];P3=table1[i];delay(t);}}}void swzjm(uint t,uchar a) //竖往中间灭{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0x00;for(i=0;i<8;i++){P0=P2=P1=table2[i];P3=table3[i];delay(t);}}}*/void nzdl(uint t,uchar a) //逆时逐段亮{uchar i,j;for (j=0;j<a;j++){P0=P1=P2=P3=0xff;for(i=0;i<8;i++){P0=table1[i];delay(t);}P0=0xff;for(i=0;i<8;i++){P1=table[i];delay(t);}P1=0xff;for(i=0;i<8;i++){P3=table[i];delay(t);}P3=0xff;for(i=0;i<8;i++){P2=table[i];delay(t);}P2=0xff;}}void nzdgl(uint t,uchar a) //逆时逐段一个点亮{uchar i,j,k,l;for (j=0;j<a;j++){k=table1[0];P0=k;l=table[0];P1=P2=P3=l;delay(t);for(i=0;i<8;i++){k=_crol_(k,-1);P0=k;l=_crol_(l,1);P1=P2=P3=l;delay(t);}}}void jgs(uint t,uchar a) //间隔闪{uchar j;for (j=0;j<a;j++){P0=0x55;P1=P2=P3=0xaa;delay(t);P0=0xaa;P1=P2=P3=0x55;delay(t);}}void main(){uchar i;while(1){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭jgs(300,10);djs(100,20); //对角闪////////////////////////////////////////////P1=P2=P3=0xff;for(i=0;i<3;i++){P0=0x00;delay(800);P0=0xff;delay(800);}P0=0x00;for(i=0;i<3;i++){P1=0x00;delay(800);P1=0xff;delay(800);}for(i=0;i<3;i++){P3=0x00;delay(800);P3=0xff;delay(800);}P3=0x00;for(i=0;i<3;i++){P2=0x00;delay(800);P2=0xff;delay(800);}qs(500,3);/////////////////////////////////////////////for(i=0;i<6;i++){zgxh(50,1);nszgm(50,1);}djs(100,20); //对角闪for(i=0;i<3;i++){zg(100,1); //两边逐个亮lbzgm(100,1); //两边逐个灭}qs(200,10);djs(100,50);for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(300,10); //对角闪nzdgl(300,10); //逆时逐段一个点亮jgs(300,10); //间隔闪for(i=0;i<3;i++){nszgm(100,1);}/*for(i=0;i<5;i++){zgxh1(100,1);sszgm(100,1);}*/nzdl(200,3); //逆时逐段亮jgs(50,100); //间隔闪/*///////////////////////////////////////////////////// P0=P1=P2=P3=0xff;for (i=0;i<8;i++){P0=table1[i];delay(200);}for (i=0;i<8;i++){P1=table[i];delay(200);}for(i=0;i<3;i++){P0=P1=0x00;delay(200);P0=P1=0xff;delay(200);}for (i=0;i<8;i++){P2=table1[i];delay(200);}for (i=0;i<8;i++){P3=table1[i];delay(200);}for(i=0;i<3;i++)P2=P3=0x00;delay(200);P2=P3=0xff;delay(200);}*///////////////////////////////////////////////////nzdgl(50,40); //逆时逐段一个点亮for(i=0;i<4;i++){zg(100,1);qs(100,10);lbzgm(100,1);}// djs(50,100); //对角闪for(i=0;i<3;i++){zgxh(100,1);nszgm(100,1);}djs(1000,10);for(i=0;i<10;i++){hwzjl(200,1); //横往中间亮hwzjm(200,1); //横往中间灭}djs(300,10); //对角闪/* for(i=0;i<10;i++){swzjl(200,1); //竖往中间亮swzjm(200,1); //竖往中间灭}*/for(i=0;i<5;i++){zgxh(100,1);nszgm(100,1);}djs(100,20); //对角闪zg(300,1);lbzgm(300,1);/*for(i=0;i<5;i++)zgxh1(100,1);sszgm(100,1);}*/for(i=0;i<5;i++){sztl(200,1); //顺时逐个同步亮nztm(200,1);nztl(200,1);sztm(200,1); //顺时逐个同步灭}djs(500,20); //对角闪djs(100,30); //对角闪djs(50,50); //对角闪// djs(10,100); //对角闪delay(1000);}}void delay(uint t){uint x,y;for (x=t;x>0;x--){for (y=120;y>0;y--);}}因为89C52的容量有限,所以还有几个方式注释掉了。

LED流水灯实验

LED流水灯实验

微处理器与接口技术实验
动态数码管原理图
微处理器与接口技术实验
实验程序说明
我们用的是共阴数码管。数码管的位选是通过74HC138 进行译码,连接到J15,并通过跳线连接到J16进行驱动的。 数码管的段选通过J12以及74HC573驱动。在一个显示周期 内,分别点亮各个数码管并延时一小段时间,由于发光管的 余辉和人眼视觉暂留作用这样在总体看起来所有数码管是一 起亮的。
3. 连接开发板LED模块相关电路连线,连线如图:
J21 跳 线 帽 接 VCC
排线接 J10J12
微处理器与接口技术实验
实验一:控制一个LED灯闪烁
4. 将开发板用USB线连接至电脑,并确认安装好驱动程 序后,参考《如何使用开发板.doc 》
微处理器与接口技术实验
实验一:控制一个LED灯闪烁
微处理器与接口技术实验
实验原理
5. LED原理 LED为一种发光二极管,为单向导通器件,当阳极接高电平,阴 极接低电平,二极管导通发光。常用二极管示意图如下:
微处理器与接口技术实验
实验原理
微处理器与接口技术实验
实验原理
如原理图所示,Led的阳极通过1k的限流电阻接在5v电 源上(需要接上跳线帽)。Led 阴极接在锁存器74HC573 的输出端,其输入端与单片机P0口直接相连。锁存器OE口 接地,其默认为输出使能状态,即当单片机P0口输出什么 内容,则锁存器输出端输出相同的内容。
微处理器与接口技术实验
实验步骤
1. 连接开发板相关电路连线,连线如图:
J21跳线帽接 左边
A P22 BP23 CP24
JP10(P0) 接 J12
微处理器与接口技术实验
2. 打开Keil,新建一个工程后,建立一个c文件,将下面 代码输入

(四)开关控制的跑马灯以及流水灯电路图以及程序

(四)开关控制的跑马灯以及流水灯电路图以及程序

(四)开关控制的跑马灯以及流⽔灯电路图以及程序电路图:⽬的:K1 开始跑马灯左->右K2 停⽌K3 跑马灯右-> 左K4 流⽔灯参考程序:#include<reg52.h>#include<intrins.h>#define uchar8 unsigned char#define uint16 unsigned int#define LED P1sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;/*****************************/// 函数名称: DelayMS( )// 函数功能:延时// ⼊⼝函数:延时毫秒// 出⼝函数:⽆/************************* void DelayMs(uint16 val){uint16 i,j;for( i=0;i<val;i++)for(j=0;j<113;j++);}/****************************/// 函数名称: keyscan( )// 函数功能:检测按键// ⼊⼝函数:⽆// 出⼝函数: keyscan_num/*****************************/uchar8 keyscan(){uchar8 keyscan_num,temp;P2=0xff; // 置电平temp=P2; // 读P2⼝电平,送⼊ temp 中(因为这时候可能改变按键了)// if(~(temp&0xff)) 不会⽤,先不看,⽤下⾯的if(temp!=0xff) // 说明有键按下{if(key1==0){keyscan_num=1;}else if(key2==0){keyscan_num=2;}else if(key3==0){keyscan_num=3;}else if(key4==0){keyscan_num=4;}else{keyscan_num=2;}}return keyscan_num;}void main(){uchar8 key_num , temp , i ;while(1){key_num = keyscan(); // 将按键扫描的键值送⼊ key_num 中switch(key_num){case1: goto function0;case2: goto function1;case3: goto function2;case4: goto function3;default: break ;}function0: // 跑马灯从左向右⾛temp=0x01; // 0000 0001for(i=0;i<8;i++){LED= ~temp;DelayMs(1000);temp=temp<<1;}key_num = keyscan(); // 将按键扫描的键值送⼊ key_num 中switch(key_num){case1: goto function0;case2: goto function1;case3: goto function2;case4: goto function3;default: goto function0;break ;}function1: //停⽌LED=0xff;key_num = keyscan(); // 将按键扫描的键值送⼊ key_num 中switch(key_num){case1: goto function0;case2: goto function1;case3: goto function2;case4: goto function3;default: goto function1;break ;}function2: // 从右向左temp=0x80; // 1000 0000for(i=0;i<8;i++){LED= ~temp;DelayMs(1000);temp=temp>>1;}key_num = keyscan(); // 将按键扫描的键值送⼊ key_num 中switch(key_num){case1: goto function0;case2: goto function1;case3: goto function2;case4: goto function3;default: goto function2;break ;}function3: // 流⽔灯LED=0xff ; // 这⾥端⼝全被设置为 1111 1111 ,相当于全灭for(i=0;i<8;i++){LED=LED<<1; // 选择了左移循环DelayMs(1000);}key_num = keyscan(); // 将按键扫描的键值送⼊ key_num 中switch(key_num){case1: goto function0;case2: goto function1;case3: goto function2;case4: goto function3;default: goto function3;break ;}}}分析以及相关疑点:1、按键按下,是遵循实验现象了,但是不太好,按其他键不能⽴即响应,当然我们不要求2、实际⽤弹性开关,⽐较好,具体⾃⼰体会,⼀按下松开对程序没影响,。

8086和825574LS373控制LED流水灯课设.

8086和825574LS373控制LED流水灯课设.
课 程 设 计 任 务 书
专 业
自动化
班 级
**
姓 名
**
设 计 起 止 日 期
2013.12.16~2013.12.20
设计题目:多路流水灯控制程序的设计
设计任务(主要技术参数):
按要求设计出模拟多路流水灯控制系统。通过8086系统总线单元和输入输出并行接口8255单元、74LS373以及LED显示单元进行连接,并应用所设计的程序使连接好的线路工作正常。
沈 阳 大 学
课程设计说明书NO.4
(1)8086的主要特性
Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:
(a)8086CPU数据总线为16位,8088CUP数据总线为8位。
(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。
LOOP $
DEC AH
CMP AH,02H
JZ START
ROR AL,1
JMP OBA2
沈 阳 大 学
课程设计说明书NO.11
OBA4:
MOV DX,00H
MOV AL,00FFH
OUT DX,AL
MOV CX,9FF0H
LOOP $
MOV CX,9FF0H
LOOP $
MOV DX,02H
OUT DX,AL
表2方式0下8255的16种输入输出组合a组b组a口pa0pa7c口pc4pc7b口pb0pb7c口pc0pc3入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出74ls373主要功能74ls373是常用的地址锁存器芯片它实质是一个是带三态缓冲输出的8d触发器在单片机系统中为了扩展外部存储器通常需要一块74ls373芯片沈阳大学课程设计说明书图4内部结构和引脚介绍制造led的材料不同可以产生具有不同能量的光子借此可以控制led所发出光的波长也就是光谱或颜色

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

实用标准东北石油大学实习总结报告实习类型生产实习实习单位东北石油大学实习基地实习起止时间 2018 年 7 月 7 日至 2018 年 7 月 16 日指导教师刘东明、孙鉴所在院(系) 电子科学学院班 级 电子科学与技术 15-2学生姓名学号1509012402文案大全2018 年 7 月 16 日实用标准目录第 1 章 按键控制流水灯设计 ........................................ 1 1.1 实习目的 ................................. 错误!未定义书签。

1.2 实习要求 ................................. 错误!未定义书签。

第 2 章 电路工作原理 .............................................. 2 2.1 STC89C52 单片机工作原理 ................................... 2 2.2 LED 工作原理 .............................................. 3 2.3 按键工作原理 .............................................. 3 2.4 整体电路图 ................................................ 5 2.5 本章小结 .................................................. 6第 3 章 C 程序设计 ................................................. 7 3.1 程序设计流程图 ............................................ 7 3.2 实验结果 .................................................. 8 3.3 本章小结 .................................................. 9总结及体会 ...................................................... 10 参考文献 ........................................................ 11 附录 ............................................................ 12文案大全实用标准第1章 按键控制流水灯设计1.1 实习目的本次实习以 STC89C52 单片机为控制核心。

4017十路流水灯电路分析

4017十路流水灯电路分析

4017十路流水灯电路分析一、电路功能概述4017十路流水灯电路主要由555构成的多谐振荡器产生脉冲提供给由4017组成的十进制移位计数器,进而控制十路LED灯,通电后,LED灯从上往下逐个点亮,直到第十个LED灯,循环往复,且移动的速度可以调节。

该电路的设计依据来源于闹市中的店铺LED广告牌,具有一定的实用价值。

二、电路原理图三、原理图工作原理4017十路流水灯电路主要由多谐振荡器和移位计数器构成,由R1,RP1,C1,C2,555定时器集成电路等组成多谐振荡器产生脉冲信号,脉冲信号的频率有可变电阻RP1(电位器)控制,产生的脉冲送到4017的CP0端(14脚),以便产生上升沿,提供计数脉冲。

以4017为核心元件构成的计数分配电路,每接收一个上升沿,Q0-Q9移位一次。

1、十进制计数器/脉冲分配器CD4017十进制计数器/脉冲分配器CD4017是5位Johnson计数器,具有10 个译码输出端,CP0、CP1、RST输入端。

时钟输入端的斯密特触发器具有脉冲整形功能,对输入时钟脉冲上升和下降时间无限制。

RST 为低电平时,计数器在时钟上升沿计数;反之,计数功能无效。

RST 为高电平时,计数器清零。

Johnson 计数器,提供了快速操作、2 输入译码选通和无毛刺译码输出。

防锁选通,保证了正确的计数顺序。

译码输出一般为低电平,只有在对应时钟周期内保持高电平。

在每10 个时钟输入周期CO 信号完成一次进位,并用作多级计数链的下级脉动时钟。

真值表(功能表)2、集成时基555电路集成时基电路又称为集成定时器或555电路,是一种数字、模拟混合型的中规模集成电路,应用十分广泛。

它是一种产生时间延迟和多种脉冲信号的电路,由于内部电压标准使用了三个5K电阻,故取名555电路。

555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。

它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。

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