12路流水灯控制电路

12路流水灯控制电路
12路流水灯控制电路

一、概述

随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯不断变化

闪烁。LED,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市灯由于其丰富的灯光色彩建筑物已经成为一种时尚。

但目前市场上各式样的LED灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有彩灯控制器进行改进。流水彩灯控制器在我们日常生活中有重要的应用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。本次设计的流水彩灯控制器是其中较简单的,但这是复杂设计的基础。

设计要求:

1、在选择器件时,应考虑成本。

2、根据技术指标,通过分析计算确定电路和元器件参数。

3、画出电路原理图(元器件标准化,电路图规范化)。

技术指标:

1、用中规模计数器设计该12路流水灯控制电路;

2、要求每盏灯的点亮时间介于1s~1.2s之间;

3、要求用555定时器设计时钟脉冲,12路流水灯采用12个发光二极管代替。

二、方案设计

1 原理框图

图1 12路流水灯设计原理图

该电路主要由555定时器、74LS161计数器和74HC154译码器和LED 发光二极管。由555定时器构成脉冲发生器,并由LED 发光二极管监视电路是否工作;将74SL161接成二进制计数器,74SL154的12个输出端依次与排成一排的12个LED 发光管相接。161芯片的QC 、QD 端接与非门然后与161的LOAD 端相接;且161的LOAD 端通过非门与154芯片的G1与G2相接。取74SL161的QD 、QC 、QB 、QA 接到74SL154的地址控制端D 、C 、B 、A , 12个发光二极管按一定方向循环亮灭。

2 各模块组成及功能分析

1、振荡电路:由一个555芯片与滑动变阻器,电阻和电容组成。周期可调,控制计数器。

2、计数器:由一个74LS161芯片与两个非门组成,输出信号至译码器,控制LED 灯的亮灭的顺序。

3、译码器:由一个74HC154芯片组成,为4-16译码器, 输出来自555芯片的信号到LED 灯。

4、显示部分:由12个发光二极管和电阻组成,通过发光二极管的亮灭情况判断电是否达到设计要求。

555多谐振荡电路

74LS161计数部分

LED 显示部分

74HC154译码电路部分

三、电路设计

1 555多谐振荡电路

多谐振荡电路由LMC555定时器、一个滑动变阻器、一个电阻、两个电容组成。555定时器是一种多用途的数字模拟混合集成电路,利用它可以方便的构成施密特触发器、单稳态触发器和多谐振荡器。由于使用灵活方便,所以555芯片在波形的产生与变化、测量与控制等多种领域得到广泛应用。本次课设的多谐振荡电路在这次课程设计中,LMC555定时器用来产生脉冲信号。LMC555定时器的管脚图如图2所示:

图2 555定时器管脚

555定时器内部主要由以下几个部分组成:

1、电阻分压器:由3个5kΩ的电阻组成。

2、电压比较器:由C1与C2组成,当控制输入端悬空时,C1与C2的基准电压分别是1/3V CC与2/3V CC。

3、基本RS触发器:由两个与非门G1与G2构成,对两个比较器输出的电压进行控制。

4、放电三极管VT:VT是集成极开路的三极管,VT的集成极做定时器的引出端D。

5、缓冲器:由G3与G4构成,提高电路的负载能力。

引脚功能:

1脚位接地端;2脚是低电平触发器入端;3脚输出端;4脚复位端;5脚是电压控制器;6脚是高电平触发器入端;7脚是放电端;8脚是电源端。

由555定时器构成的谐振荡电路如图3所示:

图3 555多谐振荡电路

555定时器构成多谐振荡电路,电路输出可以得到一个周期性的矩形脉冲,其周期为:

T=T1+T2=(R1+2R2)C1ln 2

由于1s50%。C2为滤波电容,起滤波作用,一般取C2=0.01μF。

接通电源后,Vcc经R1,R2给电容C充电。由于电容上电压不能突变,电源Vc=0,当Vc上升到大于Vcc/3时,RD=1,SD=1,基本RS触发器不变,即Q仍为高电平,当Vc上升到略大于2Vcc/3时,RD=0,SD=1,基本触发器置零,Q为低电平。这时Q=1,使内部放电管饱和导通,于是电容C经内部放电管和R2放电,Uc按指数规律减小。

当Vc下降略小于Vcc/3时,内部比较器A1输出高电平,A2输出低电平,基本RS 触发器置1,输出高电平。这时,Q=0,内部放电管截止。于是C结束放电并重新开始充电。如此循环不止,输出端就得到一系列的矩形脉冲。

2 74LS161计数部分

计数部分主要由161芯片,一个与非门和一个反向器组成。因为在课设中需要一个十进制计数器,因此采用了74LS161芯片作为计数器,用来控制LED灯的亮灭顺序。74LS161的引脚图如图4所示:

图4 161芯片引脚图

74LS161是常用的四位二进制可预置的同步加法计数器,它可以灵活的运用在各种数字电路,以及单片机系统种实现分频器等很多重要的功能。74161型四位同步二进制可预置计数器的外引线排列图及其逻辑符号,其中CLR(RD)端是直接清零端,LOAD(LD)端是预置数控制端,A(A0)、B(A1)、C(A2)、D(A3)是预置数据输入端,ENP(EP)和ENT(ET)是计数控制端,QA(Q0)、QB(Q1)、QC(Q2)、QD(Q3)是计数输出端,RCO是进位输出端。74161型计数器的功能表如表1所示

表1 74LS161功能表

由表1可知,74LS161具有以下功能:

1、异步清零:CLR(RD)=0时,计数器输出被直接清零,与其他输入端的状态无关。

2 、同步并行预置数:在CLR(RD)=1条件下,当LOAD(LD)=0且有时钟脉冲CP的上升沿作用时,A(A0)、B(A1)、C(A3)、D(A4)输入端的数据d3、d2、d1、d0 将分别被 QA(Q0)、QB(Q1)、QC(Q2)、QD(Q3)所接收。

3、保持:在CLR(RD)=LOAD(LD)=1条件下,当ENT(ET)·ENP(EP)=0,不管有无CLK(CP)脉冲作用,计数器都将保持原有状态不变。需要说明的是,当ENP=0,ENT=1时,进位输出RCO也保持不变;而当ENT=0时,不管ENP状态如何,进位输RCO=0。

4、计数:当CLR=LOAD=ENP=ENT=1时,74161处于计数状态。

由于本次课设需要用到组合逻辑运算,因此需要一个74LS00芯片,其引脚图如图5所示:

图5 74LS00芯片引脚图

真值表如表2所示:

表2 74LS00真值表

A B Y

0 0 1

0 1 1

1 0 1

1 1 0

反相器74LS04引脚图以及功能表如下图所示:

图6 74LS04引脚图

表3 74LS04功能表

A Y

0 1

1 0 74LS161芯片构成的译码电路部分如图7所示:

图7 74LS161译码电路部分

置数端A、B、C、D分别置0。2接脉冲信号,同555振荡器的3相接,1、7、10接电源。QA、QB、QC、QD端接154芯片的A、B、C、D端,QC、QD端通过与非门与LOAD 端相接;LOAD端通过反相器与154芯片的G1与G2相连。

3 74LS154译码部分与LED显示部分

该部分分主要由一个74HC154芯片和12个发光二极管以及电阻构成。74HC154的引脚图如下图所示:

图8 74HC154引脚图

74HC154 功能简述: 74HC154 4线-16 线译码器/解调器

1、将4个二进制编码输入译成16个彼独立的输出之一;

2、将数据从一个输入线分配到16个输出的任意一个而实现解调功能;

3、输入箝位二极管简化了系统设计;

4、与大部分TTL和DTL电路完全兼容。

74154这种单片4线—16线译码器非常适合用于高性能存储器的译码器。当两个选通输入G1和G2为低时, 它可将4个二进制编码的输入译成16个互相独立的输出之一。实现解调功能的办法是:用4个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。

功能表如表4所示:

表4 74HC154功能表

引脚端符号名称及功能

1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17 O0~O15 输出低电平

18,19 G1,G2 使能输入(低电平)23,22,21,20 A~D 地址输入

12 GND 接地

24 Vcc 接电源电压

74HC154及LED灯构成的译码显示部分如图9所示:

图9 74HC154译码及LED显示部分

引脚端A、B、C、D分别接来自74LS161的QA、QB、QC、QD端,G1,G2端通过反相器与161芯片的LOAD端相接,1~13引脚接电阻与发光二极管,二极管另一端接4V 电源电压。

四、性能测试

1 多谐振荡电路的测试

仿真电路图如图10所示:

图10 多谐振荡电路测试图

1、周期为1.278s时多谐振荡器输出的波形图如下:

图11 多谐振荡电路输出波形图

2、改变滑动变阻器阻值,让周期落在1~1.2s之间,此时输出的波形图如下:

图12 多谐振荡电路输出波形图

2 电路整体测试

第一盏灯亮,其余的灯不亮,如图13所示:

图13 整体测试电路

第四盏灯亮,其余的灯不亮,如图14所示:

图14 整体测试电路

第九盏灯亮,其余的灯不亮,如图15所示:

图15 整体测试电路

第十二盏灯亮,其余的灯都不亮,如图16所示:

图16 整体测试电路

所有的灯都不亮,处于全灭状态,如图17所示:

图17 整体测试电路

五、结论

电路的设计能完成基本功能的实践,使用的芯片数量少,设计思路清晰明了。但是在两个星期的课设过程中我也遇到了不少的问题,比如第一次连电路的时候因为把LED灯接反导致没看到预期的结果。第二次因为串联的电阻阻值过大导致LED灯不亮。而且在老师的帮助下,我改正了我原来电路的不足之处,我原来的设计方案是用两个138芯片代替154芯片进行译码,然而结果并不尽人意,在运行过程中出了不少问题,不能达到预期效果,后来多亏了老师,才能顺利完成课设。

通过本次课程设计,让我了解了12路流水灯的基本原理与设计理念。更让我明白具备扎实的理论基础是非常重要的,如果理论知识不够强,随意一点小的差错就可能导致电路不能达到预期的效果。而且,通过这次课程设计,充分的将理论知识与实践知识相结合,也提高了我的查阅资料的水平,让我的经验,能力得到了锻炼。

经过了这次课设,也让我对于电路产生了兴趣,我从中学到了将整体的功能分成若干部分一一实现的简化电路的方法,这对我们平时生活,学习也很有帮助。我认为,老师之所以让我们去做课设,就是为了锻炼我们的自主学习能力和实践动手能力。

最后,再次对关心我的老师,帮助过我的同学表示衷心的感谢!!

参考文献

[1] 童诗白,华成英编. 模拟电子技术基础[M].北京:高等教育出版社

[2] 朱定华主编,电子电路测试与实验.[M]北京:清华大学出版社

[3] 路勇主编,电子电路实验及仿真。[M]北京:北方交通大学出版社

[4] 康华光主编,电子技术基础数字部分〈第五版〉.高等教育出版社

[5] 阎石主编,数字电子技术基础.高等教育出版社

[6] 周巍,黄雄华主编,数字逻辑电路实验设计仿真,电子科技大学出版社

[7] 包兴,胡明主编,电子器件导论,北京理工大学出版社

[8] 王港元主编,电工电子实践指导,江西科学技术出版社

[9] 吴立新主编,实用电子技术手册,机械工业出版社

[10] 陈永甫主编,新编555集成电路应用800例,电子工业出版社

[11] 阎有运主编,电工电子实践系列教程----电子技术实践,中国矿业大学出版社

[12] 艾永乐,付子义主编,数字电子技术基础,中国电力出版社

[13] 江晓主编,数字电子技术,西安电子科技大学出版社

附录I 总电路图

图18 总电路图

附录II 元器件清单

序号编号名称型号数量

1 U1 译码器 74HC154DW 1

2 U2 与非门 74LS00D 1

3 U3 555定时振荡器 LMC555CM 1

4 U4 计数器 74LS161N 1

5 U5 反相器 74LS04D 1

6 R1~R14 电阻25k 100Ω 14

7 C1 C2 电容 22μF 0.01μ

F

2

8

LED 发光二极管 LED

12

9

Vcc 电源电压

5V

1

10

R3 滑动变阻器 50k 1

八路流水灯控制系统

1前言 在“模拟电子技术基础”与“数字电子技术基础”课程中,通常只介绍单元电路的设计、集成芯片的特性、功能等,而一个实用的电子系统通常是由多个单元电路组成的。因此,进行电子系统设计时,既要考虑系统总体电路的设计,还要考虑系统各部分电路的选择、设计及它们之间的相互连接。由于各种通用和专用的模拟、数字集成电路的大量涌现,所以在电子系统的方案框图确定后,除少数电子电路的参数需要设计计算外,大部分只需根据电子系统框图各部分要求正确选用模拟和数字集成电路的芯片。 常用电子系统设计通常包括:选择总体方案框图、单元电路设计与选择、电子元器件的选择、单元电路之间的连接、对电子系统进行电路搭试、对方案及单元电路参数进行修改、绘制总体电路,最后写出设计报告。 复杂的设计课题,通常需要对设计要求进行认真分析和研究,通过收集和查阅资料,在已学模拟和数字电子技术课程理论的基础上进行构思,从而提出实现设计要求的可能方案,并画出相应的框图。实现同一个设计要求的方案不止一个,这时就应对每一个设计方案的可行性及它们的优缺点进行比较,找出一个较为合理的设计方案。对于关键部分电路的可行性应在原理上要可行,而后需进行电路搭试,成功后才能确定电路的总体方案框图。电子课程设计是对以前学科知识的综合,检验我们掌握电子学科理论知识的程度,也是学科教学中十分重要的环节。通过把理论与实践相结合,提高理论水平,锻炼实践动手能力。同时,对于我们对电子学科的学习兴趣也是有极大的激发作用,让同学们在自己动手制作的过程中找到乐趣,加深对学科知识的理解及消化,为以后的学习和工作打下良好的基础。

在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。三花样彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。它的主要器件是寄存器。现如今寄存器是数字系统常见的重要部件,在计算机中广泛用于存放中间数据。本次实验由于触发器具有记忆的功能,将移位寄存器设计成彩灯控制电路。由于电路本身实用,如果再通过计算机仿真,可以直观地看到循环彩灯控制效果。如果稍微改动控制电路,就可以改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。 通过这次设计培养了我们严肃认真的工作态度和科学作风,为今后从事电路设计和研制电子产品打下初步基础,检验我们的理论实践能力,动手能力,动脑能力,分析和理解问题的能力,增强了大家对电子方面的学习兴趣及自学能力,知道了自己在哪一方面不足,为今后的学习提供了方向,使大家有质的提高。 1.1设计背景 以前过节的时候,班上开晚会,同学们都想用彩灯烘托一下节日气氛。通过两年来对专业课程的理论学习和实践,我们越发对彩灯设计产生了浓厚的兴趣。借这次学校安排我们的课程设计,我们决定亲手设计彩灯控制系统的程序,将理论与实践相结合,把自己在学校里面学过的东西应用于实际,不断深化自己在这方面的理解,并提高应用能力,使自己所学更有意义。 1.2实施计划 首先在图书馆查询资料,在网上收集相关论文,设计出彩灯控制系统的原理总图和单元电路图,再编写仿真软件,调试模块和软件,运行成功后做出电路板,加载程序,最后做出课程设计报告书。

双单片机控制流水灯(精)

案例8 双单片机通信控制流水灯 用串行工作方式进行单片机之间的通信,电路图如下图所示。两个89S51单片机通过串行口进行通信,设置U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,U1的RXD接U2的TXD,U1的TXD接U2的RXD,U2接8个发光二极管,要求由U1向U2发送数据,使8个发光二极管按从左到右逐一点亮的流水灯效果。 MCS-51单片机之间的串行异步通信 1.串行口的编程串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。 (2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。 (3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。 (4)设定SMOD的状态,以控制波特率是否加倍。 (5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。 2.案例分析由于串行口通信时传输的“0”或者“1”是通过相对于“地”的

电压区分的,因此使用串行口通信时,必须将双方的“地”线相连以使其具有相同的电压参考点。需要注意的是,异步通信时两个单片机的串行口波特率必须是一样的。由于U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,因此二者的串行口初始化程序不完全一样。假设使用240bit/s的波特率,使用串行工作方式1,Tl使用自动装载的方式2,则Ul的TH1应初始化为136,U2的TH1应初始化为16。 对应的程序完成如下功能:Ul和U2进行双工串行通信,Ul给U2循环发送流水灯控制字,U2收到控制字后送到P0口,点亮相应发光二极管,双方都用中断方式进行收发。 (1)单片机U1的源程序 #include unsigned char sdata=0xfe; void isr_uart(); void main() { TMOD=0X20; TH1=136; TL1=136; SCON=0x40; PCON=0; TR1=1; EA=1;ES=1; SBUF=sdata; while(1); } void isr_uart() interrupt 4 {

流水灯设计报告

流水灯设计报告 一、实验目的 通过本实验教学,学习数字电路综合应用(将单元电路组成系统电路的方法),掌握简单数字系统设计方法。通过查阅手册和文献资料,培养独立分析和解决实际问题的能力。掌握示波器、信号发生器、频率计、万用电表等常用电子仪器设备的使用。获得数字电路综合应用能力。 二、实验内容 用D 触发器和译码器设计一个8位可循环的流水灯,用仿真软件进行仿真,最后根据电路图在万能板上焊接出来。 三、实验原理 1.D 触发器 D 触发器的状态方程为:Q n+1=D 。其状态的更新发生在CP 脉冲的边沿,74LS74(CC4013)、74LS175(CC4042)等均为上升沿触发,故又称之为上升沿触发器的边沿触发器,触发器的状态只取决于时针到来前D 端的状态。D 触发器应用很广,可用做数字信号的寄存,移位寄存,分频和波形发生器等,图A 为74LS74外引线排列,图B 为D 触发器逻辑符号。 2.译码器 74LS138 为3 线-8 线译码器,共有 54LS138和 74LS138 两种线路结构型式 工作原理: ① 当一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。 图A 74LS74外引线排列 图B D 触发器逻辑符号

表1 74LS138逻辑功能表 ② 利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。 ③ 若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。 ④ 可用在8086的译码电路中,扩展内存。 引脚功能: A0∽A2:地址输入端 STA (E1):选通端 /STB (/E2)、/STC (/E3):选通端(低电平有效) /Y0∽/Y7:输出端(低电平有效) VCC :电源正 GND :地 A0∽A2对应Y0——Y7;A0,A1,A2以二进制形式输入,然后转换成十进制,对应相应Y 的序号输出低电平,其他均为高电平。 如图C 所示为74LS138译码器的引脚排列图。功能表如表1所示 四、实验结果 图C 74LS138的引脚排列图

利用8255A芯片实现流水灯闪烁设计

目录 摘要 (2) 第1章利用8255A芯片实现流水灯闪烁设计的概述 (2) 第2章三种方案的论述与最终方案的确定 (2) 2.1第一种方案的论述 (2) 2.2第二种方案的论述 (5) 2.3第三种方案(最终方案)的论证 (10) 第3章测试结果及体会心得 (13) 第4章致谢 (14) 第5章参考文献 (14) 附录1 方案一Proteus仿真电路效果图 (15) 附录2 方案一源程序代码 (16) 附录3 方案二Proteus仿真电路效果图 (18) 附录4 方案二源程序代码 (19) 附录5 方案三(最终方案)Proteus仿真电路效果图 (20) 附录6 方案三(最终方案)源程序代码 (21)

摘要: 8255A是一种通用的可编程并行I/O接口芯片(Programmable Peripherial Interface),它是为Inter系列微处理器设计的配套电路,也可用于其它微处理器系统中。通过对它进行编程,芯片可工作于不同的工作方式。此次课程设计的目的就是利用端口和8255协同工作来实现LED显示功能,对8255A芯片进行编程使流水灯左移或右移,通过延时程序使流水灯进行顺序点亮。通过这次课程设计掌握8255A的功能特点、工作原理以及显示器接口的基本原理与方法技术。 关键词: 8086芯片AT89C51单片机8255A芯片LED流水灯 第1章利用8255A芯片实现流水灯闪烁设计的概述 流水灯在日常的生活中有着广泛的应用,例如,许多楼面上的彩灯广告就是应用了流水灯设计。此次的课程设计的题目是利用了端口和8255A协同工作来实现LED显示功能,编写程序,使用8255的A口和B口均为输出,接8个或16个发光二极管,实现流水灯的显示效果。在实验中8255A的A和B两个端口不能同时赋值,从而我们可以用通用寄存器BX对所需要赋值的数据进行存储,因为BX可以分从高8位寄存器BH和低8位寄存器BL两部分进行独立的操作,我们用寄存器BH对A口进行赋值,用寄存器BL对B口进行赋值,通过延时一段时间再对BH 和BL进行移位和输出,实现了流水灯的效果。 第2章三种方案的论述与最终方案的确定 2.1第一种方案的论述 第一种方案,我们使用了8086CPU芯片与8255A芯片一起实现了流水灯闪烁的设计,同时还使用了地址锁存器74LS373芯片。74ls373是常用的地址锁存器芯片,它是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片。在方案一中,当8086CPU的引脚ALE(地址锁存允许信号,输出,高电平有效,用作地址锁存器74LS373的锁存控制信号)处于下降沿时将8086CPU输出的地址信息进行锁存,以定义8255A的工作方式。下面先对74LS373芯片进行简介: 1.地址锁存器74LS373的内部电路与工作原理

单片机控制左右来回循环的流水灯

左右来回循环的流水灯 设计要求 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。 题37图节日彩灯的花样显示的规律 为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。 题37表P1口8个引脚的不同颜色的发光二极管 使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:

程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。 全部代码如下: #include #include unsigned char temp; //定义字符变量temp,temp左移或右移并给连接LED的P1口赋值 int a; //定义延迟函数delay() void delay(void); void main() { temp=0xfe; //给temp赋初值 P1=temp; //temp赋值给P1口,第一个LED(红色)点亮 while(1) //主程序,括号中的程序将一直循环 { for(a=0;a<7;a++) //左移部分,LED从左到右依次点亮 { temp=_crol_(temp,1); //_crol_语句控制变量temp左移 delay(); //每个灯点亮之后延迟一会在点下一个灯 P1=temp; }

电子科技大学 数字逻辑课程设计——流水灯的实现

数字逻辑课程设计 ——流水灯的设计 1问题概述: 设计一个可以循环移动的流水灯,灯总数为8盏,具体要求如下: 1、5亮,其余灭,右移三次后全灭 4、8亮,其余灭,左移三次后全灭 4、5亮,其余灭,各向两边移三次后全灭 1、8亮,其余灭,各向中间移三次后全灭 所要求的彩灯电路在某电路板上完成,该电路板能够提供48MHz标准时钟信号,附带有8个共阳的LED管可作为彩灯使用。 2问题分析 本装置可以看作一个具有20个状态的无输入、8个输出的Moore型时钟同步状态机,每一个状态对应依次出现的每一种亮灯情况,用5位状态编码表示。这里构造一个模20的计数器来循环产生这20种状态。同时对于输入的48MHz的标准时钟信号,需要将其转化为1HZ的信号,此处同样用计数器来实现分频功能。8个输出分别控制LED的发光情况。这里使用5-32的译码器实现输出函数的构造。电路框图如下: 这里使用一个5位的状态编码Q4Q3Q2Q1Q0,表示20个状态。8位的输出函数F7F6F5F4F3F2F1F0分别表示由左至右每一个灯的通断情况。由于本题中LED灯采用共阳极连接方式,所以当Fn为低电平时,对应的LED灯发光。 本电路状态图如下:

本电路的转移/输出表如下: 现针对每一部分设计具体电路 3设计方案 3.11/48MHz分频电路 对于48MHz的信号,一秒钟内有4.8*10^7个周期,而所需1Hz信号,每秒只有一个周期。使输入信号每经过2.4*10^7个周期,输出信号翻转一次方向,便可获得所需的1Hz信号。可以构造一个模4.8*10^7的计数器用于计数,并使计数器输出的最高位在一秒之内恰好变化一次,且占空比为50%,故采用7片74x163进行级联。计数范围为:0110100100011100101000000000-1001011011100011010111111111。这样恰好可以保证最高

多功能多路流水灯控制电路的设计仿真与制作

附件1: 学号:0121209310130 课程设计 题目多功能多路流水灯控制电路的设 计仿真与制作 学院信息工程学院 专业电子信息工程 班级电信1201 姓名鲁玲 指导教师孟哲 2014 年 6 月20 日

课程设计任务书 学生姓名:鲁玲专业班级:电信1201 指导教师:孟哲工作单位:信息工程学院 题目: 多功能多路流水灯控制电路的设计仿真与制作 初始条件: 集成译码器、计数器、555定时器、移位寄存器、LED和必要的门电路或其他器件。 要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具 体要求) 1、课程设计工作量:1周内完成对数字频率计的设计、仿真、装配与调试。 2、技术要求: 错误!未找到引用源。设计一个具有16路(或矩阵)LED不同显示方式或显示图形的控制电路。 错误!未找到引用源。不同显示方式的控制可以是自动结合按键手控等。 ③确定设计方案,按功能模块的划分选择元、器件和中小规模集成电路,设计分 电路,画出总体电路原理图,阐述基本原理。 3、查阅至少5篇参考文献。按《武汉理工大学课程设计工作规范》要求撰写设计报告 书。全文用A4纸打印,图纸应符合绘图规范。 时间安排: 1)第1-2天,查阅相关资料,学习设计原理。 2)第3-4天,方案选择和电路设计仿真。 3)第4-5天,电路调试和设计说明书撰写。 4)第6天,上交课程设计成果及报告,同时进行答辩。 指导教师签名:年月日

系主任(或责任教师)签名:年月日

前言 (2) 1 设计方案 (3) 1.1 设计意义 (3) 1.2 设计目的 (3) 1.3 原理图及工作原理 (3) 2 电路板焊接技术介绍 (4) 2.1 焊接操作要领 (4) 2.2 注意事项 (5) 2.3.焊接调试 (6) 3 电路板的安装与制作 (6) 3.1 确定电路板整体布线图 (6) 3.2 555振荡电路 (6) 3.3 74LS191计数部分 (7) 3.4 74LS138译码电路和LED显示部分 (7) 3.5 5V直流稳压电源电路 (7) 4 电路板的调试 (8) 4.1 调试方法和步骤 (8) 4.2 出现的问题及处理方法 (8) 5 电路实拍图 (10) 6 总结及心得体会 (12) 7 元件清单 (13) 8 参考文献 (14) 附件 (15)

(完整word版)51单片机流水灯

51单片机的流水灯控制 班级:100712 姓名:全建冲 学号:10071047

一、设计要求 用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。 二、电路原理图 原理图分析: 本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uint i=0; uchar a=0xfe; void main() { TMOD=0x01;//设置工作方式为定时器0,16位手动重装初值 TH0=(65536-46080)/256;//50毫秒定时赋初值 TL0=(65536-46080)%256; TR0=1;//启动定时器0 while(1) { If(TF==1)//读溢出标志位 { TH0=(65536-46080)/256;//重新赋初值 TL0=(65536-46080)%256;

i++; if(i==10)//500毫秒定时 { i=0; P1=a;//P1端口赋值 a=_crol_(a,1);//循环左移 } TF=0;//清除定时器溢出标志 } } } 程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否则定时器无法再次溢出,利用标志i读取10次即可达到500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。 2.中断定时器控制 #include

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

用单片机控制的LED流水灯设计(电路、程序全部给出)讲课教案

用单片机控制的L E D 流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,

流水灯电路的制作

流水灯电路的制作 一、概述: 随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。所以,多功能流水灯的设计具有相当的代表性。 多功能流水灯,就是要具有一定的变化各种图案的功能,主要考察了数字电路中一些编码译码、计数器原理,555定时器构成时基电路,给其他的电路提供时序脉冲,制作过程中需要了解相关芯片(NE555、CD4017)的具体功能,引脚图,真值表,认真布局,在连接过程中更要细致耐心。 二、电路原理图 三、电路工作原理 多功能流水灯原理电路图如上图所示。原理电路图由振荡电路、译码电路和光源电路三部分组成。本文选用的脉冲发生器是由NE555与R2、R3及C1组成的多谐振荡器组成。主要是为灯光流动控制器提供流动控制的脉冲,灯光的流动速度可以通过电位器R3进行调节。由于R3的阻值较大,所以有较大的速度调节范围。灯光流动控制器由一个十进制计数脉冲分配器CD4017和若干电阻组成。 CD4017的CP端受脉冲发生器输出脉冲的控制,其输出端(Q0~Q9)将输入脉冲按输入顺序依次分配。输出控制的脉冲,其输出控制脉冲的速度由脉冲发生器输出的脉冲频率决定。10

个电阻与CD4017的10个输出端Q0~Q9相连,当Q0~Q9依次输出控制脉冲时10个发光二极管按照接通回路的顺序依次发光,形成流动发光状态,即实现正向流水和逆向流水的功能。电源电路所采用的电源为。 四、板的设计 五、元器件清单 六、电路的组装与调试 1、电路的组装方法和步骤 (1)筛选元器件。对所有购置的元器件进行检测,注意它们的型号、规格、极性,应该保质量。 (2)按草图在PCB板上组装并焊接。 要求:①元器件布局整齐、美观,同类型元器件高度一致;

基于51单片机的流水灯控制

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的

视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

数字电路流水灯设计

数字电路流水灯设计 一:方案论证与比较 1:工作时钟源设计 (1)采用555定时器接成的多谐振荡器。 555定时器是多用途的数字—模拟混合集成电路,利用它能极方便的构成施密特触发器,单稳态触发器和多谐振荡器,使用灵活,方便。555定时器在波形产生和交换,测量与控制中应用广泛成熟准确。 (2)采用三极管多谐振荡器 三极管多谐振荡器是一种矩形脉冲产生电路,这种电路不需外加触发信号,便能产生一定频率和一定宽度的矩形脉冲,常用作脉冲信号源。由于矩形波中含有丰富的多次谐波,故称为多谐振荡器。多谐振荡器工作时,电路的输出在高、低电平间不停地翻转,没有稳定的状态,所以又称为无稳态触发器。 (3)方案比较 555定时器接成的多谐振荡器产生的时钟信号驱动能力较强,555通过改变R和C的参数就可以改变振荡频率,电路参数容易确定,使用简单,信号稳定,调试方便,而三极管多谐振荡器,不易调试,输出信号驱动能力不强且信号不够稳定,故选用555定时器接成的多谐振荡器作为系统的时钟源。

2流水灯驱动电路设计 本次项目中使用1片4位同步二进制计数器74LS161,其Q0,Q1,Q2脚输出三位二进制顺序脉冲000-001-010-011-100-101-110-111,时钟源为555定时器的输出方波。 与Q0,Q1,Q2相连接的是一片38译码器74LS138的A0,A1,A2引脚,Y0—Y7依次输出负脉冲。其是引脚输入脉冲为时钟源为555定时器的输出方波经一片74LS14反相器反相后的时钟脉冲,其74LS138真值表如下: 8个LED以共阳接法分别接于Y0—Y7,依次点亮,其亮灭频率由555定时器产生的时钟频率为准。 二参数计算 555定时器外接电阻计算

利用电位器改变流水灯速度控制程序

#include #include #include #include unsigned int x; unsigned int y; unsigned int mode = 1; unsigned int AD_value; main() { bit key_mode1 = 1; bit key_mode2 = 1; PORT_INI(); CLK_ICKR|=0x01; //开启内部HSI while(!(CLK_ICKR&0x02));//HSI准备就绪 CLK_SWR=0xe1; //HSI为主时钟源 CLK_CKDIVR=0x00; _asm("rim");//开总中断 TIM1_CR1 = 0b10000100; TIM1_PSCRH = 0x00; //定时时间0.6S TIM1_PSCRL = 1; //20分频 TIM1_ARRH = 0xEA; TIM1_ARRL = 0x60;//自动重装载寄存器 TIM1_IER|=0X01; //中断使能寄存器 TIM1_CNTRH = 0X00; TIM1_CNTRL = 0X00; TIM1_EGR |=0X01; //软件产生更新事件,让预分频立即有效。TIM1_SR1 = 0; //状态寄存器 TIM1_CR1 |=0X01; //TIM1_RCR=0; ADC_CR1 = 0x00; //分频系数为4 单次转换模式 ADC_CR2 = 0x00; //非外部触发数据右对齐 ADC_CSR = 0x05; //禁止转换结束中断设置转换通道ADC_CR1 |= 0x01; //第一次写1是从低功耗模式唤醒

多变流水灯控制电路.doc

(1)电路结构与特点 多变流水灯控制电路如图2S所示。图中的多谐振荡器由非门U5;A、U5:B及R1、R2、C1组成,其振荡频率为2H2。三极管开关电路由R3、v1组成,它并联在R2(决定频率的元件之一)的两端。当v1饱和时,相当于R2两端并联一电阻,多谐振荡器的频率将 变为原来的3倍。多谐振荡器产生的方波由两路输出,其中b4日1u5:A输出的一路输入U4的12级串行二进制计数分频器。该计数分频器将输入端信号输出,分频作用于v1。在U4的13脚输出的一个方波的前半段,其输出电平为“o”,v1截止,振荡器频率保持2H2;在后半段v1饱和,使振荡频率变为6Hz。非门U5:B输出至U1的BCD可预置数同步可逆计数器。其4、12、13、3脚为BCD码数据预置端,6、11、14、2脚为BCD码数据输出端。9脚为清零端,当其为高电平时,输出的数据为咖零数。l脚为置数允许端,当其为 高电平而9脚为低电平时,输出的数据与4、12、13、3脚预置数相同。I o脚为加、减计数

控制端,高电平为加计数,低电乎为减计数。5脚为进位输入端,无进位时,固定为低电乎。15脚为时钟脉冲输入端,脉冲上升沿有效。U1输出直接至U2的咖十进制译码器,将BcD码数据译为十进制码,从相应的十进制码数输出端输出。电路中Ul的4、12脚接高电乎,13、3脚接低电乎,故预置数为o011,即十进制数的3。u1的10脚由U4的输出端提供控制信号,当U1的15脚连续不断地输入时钟脉冲时,如果u1的10脚为高电平,则U1输出的比D码数据经U2译码,U2的3、14、2、15脚依次输出高电平。当U2的1 脚输出高电平时,经R5、C2稍加延时输入非门U5:D、U5lc整形,将经RC延时使前 沿变得较平滑的波形重新整形为方波,以避免ul同步计数器产生信号丢失。整形后的高 电乎至U1的9脚时,U2的3脚迅速变为高电乎输出。于是开始了3、14、2、15脚依次输出高电乎的重复过程。当u1的10脚为低电平时,计数器按逆向过程15、2、14、3脚顺序输出高电乎,原理同前所述。由u2输出的信号分成两路,其中一路输入u3四双向开关,其任一组开头在控制端为高电平时呈低阻通态,而在控制端为低电平时为高阻断态。由 U4的12、14脚输出端经V3、V4、R15组成“或”门电路,同时控制U3四组开关的通、断。 当开关通时,u2的一个输出端的高电乎可以使两个三极管饱和,而开关为断态时,此高电乎只能使一个三极管饱和。三极管由集电极反相输出,控制双向可控硅vsl—vs4的通、断,从而实现对彩灯的控制。 (2)无路件选择 在图23中,U1选用CD45lo,U2选用凹4028,U3选用CD4066,U4选用CD4040,

流水灯电路图和程序

流水灯电路图和程序 #include #include #define uchar unsigned char #define uint unsigned int uchar code led[]={0xfe,0xfb,0xfd ,0xf7,0xef,0xbf,0xdf,0x7f}; delay(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } main( ) { uint i; while(1) { P2=led[]; delay(500); _crol_(led,1); } } 用arm7做一个流水灯的设计。 悬赏分:100 - 解决时间:2009-9-3 20:03 试设计一个闪烁流水灯控制器,该控制器可以控制8个灯顺序亮灭,当按钮K按下1次后,每次顺序点亮一个灯。而且每个点亮的灯在闪烁3次后,才能灭,周而复始,直到按钮K 二次按下。(用状态机设计)

要用PROTEL99画好电路图。还要写好程序。画图的也只能发到我的邮箱里面吧。邮箱:。谢谢各位。 提问者:woxinruozai - 五级 最佳答案 从原理图可以看出,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。 实现8个LED流水灯程序用中文表示为: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.0你变低,它就变低了。因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。我们又怎样来使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。 实现8个LED流水灯汇编语言源程序liu01.asm ;----- 主程序开始----- START: CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭 CLR P1.1 ;P1.1输出低电平,使LED2点亮 ACALL DELAY ;调用延时子程序 SETB P1.1 ;P1.1输出高电平,使LED2熄灭 CLR P1.2 ;P1.2输出低电平,使LED3点亮 ACALL DELAY ;调用延时子程序 SETB P1.2 ;P1.2输出高电平,使LED3熄灭 CLR P1.3 ;P1.3输出低电平,使LED4点亮 ACALL DELAY ;调用延时子程序 SETB P1.3 ;P1.3输出高电平,使LED4熄灭 CLR P1.4 ;P1.4输出低电平,使LED5点亮 ACALL DELAY ;调用延时子程序

51单片机LED流水灯拖尾效果

高级流水灯--水滴效果(渐变带拖尾效果)实现和讲解 简介 学习嵌入式第一个例子通常都是控制一个LED亮灭,然后是花样繁多的流水灯,但不管灯的花样如何变化,单个LED的亮度没有变化,只有亮、灭两个状态,本章我们实现如何控制LED的亮度。 1 什么是PWM 脉冲宽度调制(Pulse Width Modulation,简称PWM),是利用微处理器的数字输出来对模拟电路进行控制的一种技术。 在本章的应用中可以认为PWM就是一种方波。比如图1: https://www.360docs.net/doc/4d7951334.html,/bbs_upload782111/files_48/ourdev_701979FVHE6E.png (原文件名:120611_0.png) 图1 方波 是周期为10ms,占空比为60%的PWM。 占空比:高电平在一个周期之内所占的时间比率。 2 硬件设计 在例说51单片机的第三章,我们讲过如何控制开发板上LED的亮灭。首先译码器输出端LEDS6为低,T10导通,给8个LED供电,然后通过缓冲器8个输出端BD0~BD7的控制LED的亮灭(低亮高灭)。https://www.360docs.net/doc/4d7951334.html,/bbs_upload782111/files_48/ourdev_701980ZDAXQ9.png (原文件名:120611_1.png) 图2 LED硬件连接 如果BD口输出高低不断变化,则LED会闪烁;如果这种高低电平变化非常快,由于人的视觉暂留现象,LED就会出现不同的亮度。 3 软件设计 3.1 PWM能否控制亮度 下面我们就用实践验证PWM是否能够控制LED的亮度,测试代码如下: 程序清单L1:验证PWM能否控制LED的亮度 1 #include 2 #include "my_type.h" 3 #include "hw_config.h" 4 5 6 void main(void) 7 { 8 u8 i = 0; 9 10 //使能独立LED的供电,即LEDS6输出低电平 11 LEDEN = 0; 12 ADDR0 = 0; 13 ADDR1 = 1; 14 ADDR2 = 1; 15 ADDR3 = 1;

流水灯控制论文

湄洲湾职业技术学院七彩心形流水灯说明书 系别: 班级:专业: 姓名:学号: 导师姓名职称:实验师

2016年11月20日 目录 1.前言............................................ 错误!未定义书签。 2.系统设计技术参数要求............................. 错误!未定义书签。 3.系统设计......................................... 错误!未定义书签。 3.1 系统设计总体框图........................... 错误!未定义书签。 3.2 各模块原理说明............................. 错误!未定义书签。 3.3 系统总原理图说明........................... 错误!未定义书签。 3.4 系统印刷电路板的制作图..................... 错误!未定义书签。 3.5 系统的操作说明............................. 错误!未定义书签。 3.6系统操作注意事项........................... 错误!未定义书签。 系统设计参考文件............................... 错误!未定义书签。 致谢词......................................... 错误!未定义书签。 附录........................................... 错误!未定义书签。

相关文档
最新文档