使用74LS164制作流水灯

使用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灯的亮灭状态,并执行延时函数实现等待效果,如此反复,就可以实现流水灯的效果,且可以实现任意的流水灯的效果。

编程技巧:由于需要反复执行“单片机通过串口控制8个LED灯”的程序,可以将该程序通过子函数来实现简化程序的效果。

下面给出笔者编写的程序参考,读者可以根据自己的编程思路,完成不同的控制程序的编写。

C语言程序参考:

#include

#include

sbit P21=P2^1;

sbit P22=P2^2;

delay() //延时函数

{ unsigned char m;

int n;

for(m=0;m<100;m++)

for(n=0;n<1000;n++)

;

}

serial(unsigned char x) //串行输出函数{ char i;

for(i=7;i>-1;i--)

{P22=(x>>i)&1;

P21=0;

P21=1;

}

}

void main()

{ unsigned char y;

y=0XFE;

while (1)

{ serial(y);

delay();

y=_crol_(y,1); //循环移位

}

}

总结:在使用单片机进行控制系统原理图设计时,单片机的引脚不够用是设计者经常需要面临的问题。有时候,如果仅仅因为引脚不够,就更换更高级的单片机,往往会造成资源的浪费。如何节约单片机的资源,也是设计者经常需要考虑的问题。本文旨在通过一个简单的小例子起到抛砖引玉的效果,使读者在以后遇到类似问题时,多一个解决问题的思路。

心型流水灯制作教程

作为一个电子技术爱好者,先就做一个最简单的心形流水灯玩玩吧。 本教程主要特点就是简单,不要你懂原理,不要你懂编程,只要最基本的元件和材料就可以完成。 首先我们来准备和认识元件。 1、最大的一个部件,洞洞板也叫万能板,9*15cm的刚刚好。便宜的万能板1元一块,你也可以用双面喷锡的质量好的玻纤板,4元一块。 2、主角单片机。要求用40脚的,刚好驱动32个led。建议用STC89C52RC,最常见便宜而且不用复位电路。 3、led,5mm的颜色随你喜欢,32个,注意长脚为正极。我用的是白发蓝,你也可以用不同的颜色组合各种效果。 4、电阻,限制led的工作电流,这个严格讲要经过计算,咱们随便作就不管了,200欧姆到1K欧姆的都可以,只是led的亮度有点区别。贴片电阻和直插的都可以,建议用贴片美观,熟练了焊起来更快,只要稍加练习就可以,实在没信心直插的也可以,反正在背面也没用什么影响。 5、镊子,焊接贴片电阻要用到。 6、晶振和瓷片电容。 晶振采用12MHz的,电容15pF-33pF都可以。 7、导线几根,连接电源和飞线用,当然飞线越少越好,一是美观,二是飞线容易出问题。 8、焊接工具。烙铁、焊锡、烙铁架、海绵、斜口钳等等,大家自己有啥样就用什么。我的是坏烙铁拼凑的白菜白光,看着烂用着还可以。 9、还有最好用IC座,一是保护单片机二是方便拆卸和烧录。第一个是固定式IC座,元,第二个是活体的,用的更方便,4元一个。 10、电源部分。这里可以废物利用,用废弃的手机电池,在正负极接上导线,安装XH插头,插座焊在洞洞板上。不必在意电压,只是点亮led,手机电池标准电压,充满这里用没问题。可以加一个拨动开关控制电源。 接下来开始焊接,注意元件的位置和极性。 先焊最小系统,ic座,晶振、电容这些,然后是led,注意正极(长脚)朝外,负极(断脚)朝向单片机。接着是led的负极用锡接过线接到单片机的io口,注意中间接电阻。最后连

三极管流水灯电路设计

三极管流水灯电路设计 王雅 20111041105;韦梦娜 20111041107 摘要: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熄灭。与此同时,V2的集电极下降的电压通过电容C3使V3的基极电压也降低,V3由导通变为截止,V3的集电极电压升高,LED9-LED12被点亮。接下来,电路按照上面叙述的过程循环,3组12只发光二极管便会被轮流点亮,不断的循环发光,达到流动的效果。改变电容C1、C2、C3的容量可以改变循环速度,容量越小,循环速度越快。电源使用2节5号干电池即可。 3.2元件清单: 3.3 电路图

74LS164动态扫描数码管与proteus传真及C程序

74ls164 为8 位移位寄存器,其主要电特性的典型值如下: 当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平,则禁止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0 为低电平。当A、B 有一个为高电平,则另一个就允许输入数据,并在CLOCK 上升沿作用下决定Q0 的状态。 引脚功能: CLOCK :时钟输入端 CLEAR:同步清除输入端(低电平有效) A,B :串行数据输入端 QA-QH:输出端

极限值 电源电压7V 输入电压…… 5.5V 工作环境温度74164….. -55~125℃74164…… -0~70℃储存温度….. -65℃~150 真值表:

时序图: 建议操作条件:

应用实例: C程序: #include #include #define uchar unsigned char #define uint unsigned int sbit DA T=P2^3;//A,B端接一块后接入DA T sbit CLK=P2^2; sbit W A1=P2^4; sbit W A2=P2^5; uchar code table[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f}; //共阴数码管无小数点void delayms(uint time) { uchar i,k; for(k=time;k>0;k--) for(i=110;i>0;i--); } void sendchar(ch)

流水灯灯的制作流程

流水灯的制作流程 201400800657 唐宁 1·根据系统的需求设计需求设计单片机电路,本实验的目的是制一个流水灯,编写的程序使用中断电路和直接控制电路,下图为流水灯的电路: 2. 对单片机闪光电路的程序设计,本次编程采用了定时器来控制闪光灯,设计的周期为50ms,采用51单片机学习板为例(P1控制闪光灯),使用keil-c对单片机进行编程。keil-c的安装使用如下:(1)点击keil-c软件,按默认位置安装,这是为使得程序中的头文件 reg51.h能够在默认位置调用,安装完成后运行软件。

(2)新建一个工程,保存在计算机的某一个文件夹下;在新建一个空 白文档,将所写的程序写完后,保存为c文件,关闭程序。(3)找到所建工程的文件夹,打开project文件,将c文件添加到所在的工程中,对工程右键选中生成hex文件,然后对c文件进行编译,不断调试,然后选择重编译,直至编译通过。表明所写的程序没有语法上的错误。接下来就可以对程序进行模拟,在这里我们可以先利用软件自带的调试程序来查看运行是否正确,最终是下载到单片机上进行测试。 程序见下图: #include main() { TMOD=0x01; /*初始化定时器,按方式一工作*/ TH0=0x3c; TL0=0xb0; /*定时为50ms*/ ET0=1; /*开定时器的中断允许*/ EA=1; /*开CPU中断允许*/ TR0=1; /*打开定时器中断开关*/ TF0=0; /*溢出置为零*/ P1=0xfe; /*第一个灯亮*/ while(1); /*死循环,等待中断发生*/ }

流水灯电路的制作

流水灯电路的制作 一、概述: 随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。所以,多功能流水灯的设计具有相当的代表性。 多功能流水灯,就是要具有一定的变化各种图案的功能,主要考察了数字电路中一些编码译码、计数器原理,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板上组装并焊接。 要求:①元器件布局整齐、美观,同类型元器件高度一致;

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

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。因此,要

I0口驱动74LS164数码管静态显示程序

74LS164 1、器件功能作用 8 位串入,并出移位寄存器 2. 概述 74HC164、74HCT164 是高速硅门 CMOS 器件,与低功耗肖特基型 TTL (LSTTL) 器件的引脚兼容。74HC164、74HCT164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA 或 DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一起,或者把不用的输入端接高电平,一定不要悬空。 时钟 (CP) 每次由低变高时,数据右移一位,输入到 Q0, Q0 是两个数据输入端(DSA 和 DSB)的逻辑与,它将上升时钟沿之前保持一个建立时间的长度。 主复位 (MR) 输入端上的一个低电平将使其它所有输入端都无效,同时非同步地清除寄存器,强制所有的输出为低电平。 3. 特性 ?门控串行数据输入 ?异步中央复位 ?符合 JEDEC 标准 no. 7A ?静电放电 (ESD) 保护: ·HBM EIA/JESD22-A114-B 超过 2000 V ·MM EIA/JESD22-A115-A 超过 200 V 。 ?多种封装形式 ?额定从 -40 °C 至+85 °C 和 -40 °C 至+125 °C 。 4. 功能图

图 1. 逻辑符号 图 2. IEC 逻辑符号 图 3. 逻辑图

图 4. 功能图 5. 引脚信息 图 5. DIP14、SO14、SSOP14 和 TSSOP14 封装的引脚配置引脚说明 6. 功能表(真值表)

H = HIGH(高)电平 h = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 HIGH(高)电平L = LOW(低)电平 l = 先于低-至-高时钟跃变一个建立时间 (set-up time) 的 LOW(低)电平q = 小写字母代表先于低-至-高时钟跃变一个建立时间的参考输入(referenced input) 的状态 ↑ = 低-至-高时钟跃变 7. 电器特性

流水灯电路

流水灯电路的制作与测试 【知识目标】 ●理解时序逻辑电路的基本概念及分类。 ●掌握同步和异步时序逻辑电路的分析方法。 ●理解计数器的逻辑功能及原理。 ●掌握寄存器电路的基本工作原理,理解移位寄存器的逻辑功能。 【技能目标】 ●能用触发器制作与调试各种同步计数器。 ●能用集成计数器制作任意进制的计数器。 ●熟悉集成移位寄存器逻辑功能和各控制端的作用,能构成实用电路。 ●多种方法实现流水灯电路,且进一步完善流水灯功能。 任务一用移位寄存器构成流水灯电路 一、分析任务 在一些数字系统中,有时需要系统按照事先规定的顺序进行一系列的操作。这就要求系统的控制部分能给出一组在时间上有一定先后顺序的脉冲,再用这组脉冲形成所需要的各种控制信号。 二、相关知识 在数字系统中,常常需要将一些数码、运算结果和指令等暂时存放起来,然后在需要的时候再取出来进行处理或运算。这种能够用于存储少量二进制代码或数据的时序逻辑电路,称为寄存器。 寄存器用于暂时存放二进制代码,它是数字系统中重要的部件之一。寄存器的主要组成部分是具有记忆功能的双稳态触发器。一个触发器可以存储一位二进制代码,所以要存放n位二进制代码,就需要n个触发器。 按照功能的不同,可将寄存器分为数码寄存器和移位寄存器两大类。 1. 数码寄存器 数码寄存器具有寄存数据和清除原有数据的功能。现以集成四位数据寄存器74LSl75来说明数据寄存器的电路结构和功能。74LSl75是用D触发器组成的四

位数据寄存器。它的逻辑图和管脚排列图如图7-11所示。 (a)逻辑图 (b)管脚排列图 图7-11 四位集成数码寄存器74LS175 74LS175的功能表见表7-11,CP 是时钟端,CR 是异步清零端,D 0~D 3是数据输入端,Q 0~Q 3是数据输出端。其功能如下。 表7-11 74LS175的功能表 ①异步清零。只要CR =0,就可使输出端清零,而与时钟无关。清零后,将 CR 接高电平,数据才能正常存人。 ②并行输入/输出。在CR =1的前提下,(将需要存人的四位二进制数据送到数据输入端D 0~D 3),在CP 脉冲上升沿的作用下,将D 0~D 3的数据并行存入Q 0~Q 3,同时也可取出存人的数码的反码。 ③记忆保持。当只CR =1且CP =0时,各触发器保持原状态不变,数据寄存器处于保持状态。 无论寄存器中原来的内容是什么,只要送数控制时钟脉冲CP 上升沿到来,加在并行数据输入端的数据D 0~D 3将立即被送入寄存器中,有 32103210Q Q Q Q D D D D

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

74LS164在单片机中的使用

74LS164在单片机中的使用 作者:huqin 来源:本站原创点击数:406 更新时间:2014年02月15日【字体:大中小】 在单片机系统中,如果并行口的IO资源不够,那么我们可以使用74LS164来扩展并行IO口,节约单片机IO资源。74LS164是一个串行输入并行输出的移位寄存器,并带有清除端。 74LS164的引脚可以查看数据手册。 proteus仿真图和代码附上。

#include #define HIGH 1 #define LOW 0 #define SEG_PORT P0 sbit DATA = P0^4; sbit CLK = P0^5; unsigned char Timer0IRQEvent = 0; unsigned char Time1SecEvent = 0; unsigned int TimeCount = 0; unsigned char SegCurPosition = 0; code unsigned char SegCode[10] = {~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D,~0x 07,~0x7F,~0x6F}; code unsigned char SegPosition[4] = {0xFE,0xFD,0xFB,0xF7}; unsigned char SegBuf[4] = {0}; void LS164_DATA(unsigned char x) { if(x) { DATA = 1; } else { DATA = 0; }

void LS164_CLK(unsigned char x) { if(x) { CLK = 1; } else { CLK = 0; } } /********************************************************** *函数名称:LS164Send *输入:byte单个字节 *输出:无 *功能:74LS164发送单个字节 ***********************************************************/ void LS164Send(unsigned char byte) { unsigned char j; for(j=0;j<=7;j++) { if(byte&(1<<(7-j))) {

用8255做流水灯(汇编)

ORG 000H MOV DPTR,#7FFFH ; 功能设置 begin: JB P1.0,ZX01; 01 JB P1.1,ZX10 ; 10 JMP begin1 ZX01:JB P1.1,ZX11 JMP begin2 ZX10: JMP begin3 ZX11: JMP begin begin1: MOV A,#0FEH MOV R4,#8 again1: MOV DPTR,#7CFFH;输出端口选择A 7CFFH,B 7DFFH ,C 7EFFH MOVX @DPTR,A ACALL DELAY RL A DJNZ R4,again1 AJMP begin begin2: MOV A,#0FEH MOV R4,#8 again2: MOV DPTR,#7DFFH;输出端口选择A 7CFFH,B 7DFFH ,C 7EFFH MOVX @DPTR,A ACALL DELAY RR A DJNZ R4,again2 AJMP begin begin3: MOV R4,#8 MOV A,#0FEH again3: MOV DPTR,#7EFFH;输出端口选择A 7CFFH,B 7DFFH ,C 7EFFH MOVX @DPTR,A ACALL DELAY rl a DJNZ R4,again3 MOV R4,#8 rr1: MOV DPTR,#7EFFH;输出端口选择A 7CFFH,B 7DFFH ,C 7EFFH rr a MOVX @DPTR,A ACALL DELAY DJNZ R4,rr1 AJMP begin DELAY: MOV R1,#0H

L1: MOV R2,#0H L2: DJNZ R2,L2 L3: DJNZ R2,L3 DJNZ R1,L1 RET END

用单片机控制的LED流水灯设计(电路、程序全部给出) 开关电源设计制作

用单片机控制的LED流水灯设计(电路、程序全部给出)开关电源设计制作学习园地 » 您尚未登录注册 | 社区服务 | 勋章中心 | 帮助 | 首页 | 无图版 社区服务 银行 朋友圈 开关电源设计制作学习园地 -> 好好学习-天天向上 -> 用单片机控制的LED流水灯设计(电路、程序全部给出) XML RSS 2.0 WAP --> 本页主题: 用单片机控制的LED流水灯设计(电路、程序全部给出)加为IE收藏 | 收藏主题 | 上一主题 | 下一主题 pwmdy 级别: 电源-1级工程师 精华: 0 发帖: 212 威望: 126 点 金钱: 212 RMB 贡献值: 0 点 注册时间:2009-05-21 最后登录:2009-11-22 用单片机控制的LED流水灯设计(电路、程序全部给出) 1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个

单片机控制74LS164驱动数码管

单片机控制74LS164驱动数码管 利用74LS164驱动数码管, 我们首先来弄清74LS164的工作方式,然后学习如何在自己板子上连接线路。 我们来讲一讲数码管的基础知识: 使用数码管时,要注意区分这两种不同的接法:共阴极和共阳极。共阴极时,为1则亮;共阳极时,为0则亮。

为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。 比如共阴极的方式接数码管,显示“1”,则编码为0x3f,即00111111(dp g f e d c b a )。 ================================================================================================== 静态显示程序如下: /*----------------------------------- 功能:数码管静态显示0-F 单片机:AT89S52 ------------------------------------*/ #include "reg52.h" #define uint unsigned int #define uchar unsigned char sbit DAT=P0^3; sbit CLK=P0^2; void sendbyte(uchar byte); void delay(uint z); uchar code tab[]={ 0xed,0x09,0xbc,0x9d,0x59,0xd5, 0xf5,0x0d,0xfd,0xdd,0x7d,0xf1, 0xe4,0xb9,0xf4,0x74,0x00} ; //0-F, 全灭 /*======================== 主函数 =========================*/ void main() { unsigned char h; while(1) { for(h=0;h<17;h++) { delay(500); //延时大约是0.5s sendbyte(h); delay(500); } h=0;

心形LED流水灯制作方法

LED心形流水灯加程序 1.原件清单:一个万能板,一个底座,一个STC89C52芯片,32个LED 灯,32个贴片电阻,两个30uf电容,一个晶振。 2.原理图: 注:电源处的复位可以不用;就是上面红框里的内容 3.正面图

背面图: 亮灯图: 4. 程序代码: #include #include #define uint unsigned int #define uchar unsigned char uchar 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

用单片机控制LED流水灯方案(电路程序全部给出)开关电源方案制作

用单片机控制的LED流水灯设计<电路、程序全部给出)开关电源设计制作学习园地 »。您尚未登录注册 | 社区服务 | 勋章中心 | 帮助 | 首页 | 无图版 社区服务 银行 朋友圈 开关电源设计制作学习园地 -> 好好学习-天天向上 -> 用单片机控制的LED流水灯设计<电路、程序全部给出) XML RSS 2.0 WAP --> 本页主题: 用单片机控制的LED流水灯设计<电路、程序全部给出)加为IE收藏 | 收藏主题 | 上一主题 | 下一主题 pwmdy 级别: 电源-1级工程师 精华: 0 发帖: 212 威望: 126 点 金钱: 212 RMB 贡献值: 0 点 注册时间:2009-05-21 最后登录:2009-11-22 用单片机控制的LED流水灯设计<电路、程序全部给出) 1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个

项目二 流水灯的制作与调试

流水灯的制作与调试 随着电子技术的快速发展尤其是数字技术的突飞猛进,多功能流水灯凭着简易,高效,稳定等特点得到普遍的应用。在各种娱乐场所、店铺门面装饰、家居装潢、城市墙壁更是随处可见,与此同时,还有一些城市采用不同的流水灯打造属于自己的城市文明,塑造自己的城市魅力。目前,多功能流水灯的种类已有数十种,如家居装饰灯、店铺招牌灯等等。所以,多功能流水灯的设计具有相当的代表性。 任务1 认识电路 1.电路工作原理 图1所示为555+ 4017构成的自动脉冲分配器电路原理图。 图1 叮咚门铃电路原理图 十进制计数/分频器CD4017,其内部由计数器及译码器两部分组成,由译码输出实现对脉冲信号的分配,整个输出时序就是O0、O1、O2、…、O9依次出现与时钟同步的高电平,宽度等于时钟周期。 CD4017有10个输出端(Y0~Y9)和1个进位输出端CO 。每输入10个计数脉冲,CO 就可得到1个进位正脉冲,该进位输出信号可作为下一级的时钟信号。 CD4017有3个控制(MR 、CP0和~CP1),MR 为清零端,当在MR 端上加高电平或正脉冲时其输出O0为高电平,其余输出端(O1~O9)均为低电平。CP0和~CPl 是2个时钟输入端,若要用上升沿来计数,则信号由CP0端输入;若要用下降沿来计数,则信号由~CPl 端输入。设置2个时钟输入端,级联时比较方便,可驱动更多二极管发光。 由此可见,当CD4017有连续脉冲输入时,其对应的输出端依次变为高电平状态,故可直接 项目二 轻触按钮

用作顺序脉冲发生器。 CLK或CP端:轻触开关作为信号触发,上升沿. CR端: 清零端,高电平清零. INH端: 接低电平时,CLK端上升沿计数,输出高电平. 接高电平时,保持. CO端:进位输出端,没有进位时输出高电平(Q0~Q4),有进位时输出低电平(Q5~Q9). 实物图 图2所示为流水灯电路实物图。 图2 流水灯电路实物图

(完整版)74ls164动态驱动多位数码管

74ls164 能否动态驱动多位数码管void display() //数码显示 { SCON=0; //初始化串行口方式SBUF=dispcode[ge]; while(!TI); TI=0; led4=0; delay(2); led4=1; SBUF=dispcode[shi]; while(!TI); TI=0; led3=0; delay(2); led3=1; SBUF=dispcode[bai]; while(!TI); TI=0; led2=0; delay(2);

SBUF=dispcode[qian]; while(!TI); TI=0; led1=0; delay(2); led1=1; SBUF=dispcode[wan]; while(!TI); TI=0; led0=0; delay(2); led0=1; } 74ls164数码管驱动(第二个程序) #define clock PORTD.1 #define date PORTD.0 #define clock_en DDRD.1 #define date_en DDRD.0 unsigned char lab[2][10]={ 0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09, 0x02,0x9E,0x24,0x0C,0x98,0x48,0x40,0x1E,0x00,0x08}; void send(unsigned char w) { unsigned char i; for(i=0;i<8;i++) { clock=0; date=w&1;

流水灯的设计与制作

2010—2011学年第二学期控制系统实训 设 计 报 告 设计题目:流水灯的设计与制作 小组成员:陈琳(11097241108) 孙钢干(11097242041) 指导老师:王永祥 所在班级:09电子信息工程技术(1)班 二〇一一年六月三十日

流水灯的设计与制作 摘要:当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 关键词:LED 单片机控制系统流水灯

1.引言 (4) 2.任务描述及设计方案 (4) 2.1 任务描述 (4) 2.2 设计方案 (4) 3.硬件设计方案 (4) 3.1 设计思路 (4) 3.2 流水灯电路原理图 (5) 3.3 主要原件功能说明 (5) 4.软件方案 (9) 4.1 程序流程图 (9) 4.2 元件清单 (9) 4.3 参考程序 (9) 4.4 Proteus 仿真软件 (10) 5.结论 (10) 6.设计总结 (10) 7.参考文献 (11)

学习单片机的最有效方法就是理论与实践并重,用单片机设计与制作流水灯,需要更深的去了解单片机的很多功能,努力的去查找资料,当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 2.任务描述及设计方案 2.1 任务描述 设计流水灯控制电路,使连接在该电路上的8个发光二极管按顺序依次闪烁;将按键K1按下,8个发光二极管全部处于点亮状态,按下按键K2后,8个发光二极管全灭。 2.2设计方案 为实现此功能,选择用单片机控制的电路。其中系统工作原理为: 我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。 3.硬件设计方案 3.1 设计思路 如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。

流水灯(电路和汇编)-Proteus和Keil仿真演示实例

示例要求: 在80C51单片机的P2口连接8个发光二极管指示灯,编程实现流水灯的控制,轮流点亮指示灯。 在KEIL 51中编程序,形成HEX文件;在PROTEUS中设计硬件,下载HEX文件,运行看结果。 第1篇:PROTEUS电路设计 1、打开PROTEUS的ISIS软件,如图1所示。新建电路图文件,将文件保存到E:\projectio(新建文件夹projectio)下面,文件基本名为io,扩展名默认。 选择元件 图1 ISIS窗口图 2、在component mode模式下单击选择元件按钮P,打开元件选择对话框,如图2所示。

在元件选择对话框的keywords窗口中输入元件关键字可换搜索元件,找到元件后,双击元件则可选中元件,添加元件到图3的device列表栏。在这里依次添加元件单片机80C51、电阻RES、电容CAP、按键BUTTON、晶振CRYSTAL、发光二极管LED-RED,如图3所示。 图3 添加元件的device列表栏 3、选择devices元件列表中的元件放到工作窗口,注意放置在工作窗口合适的位置,在元件放置时可对元件进行移动、旋转等操作;如图4所示。电源(POWER)与地(GROUND):(右键-放置-终端里选)。 图4 放置元件图

4、连接导线,如图5所示。连接后存盘。 图5 连接元件图 5、在Keil 软件中设计软件程序,形成HEX 文件(具体过程见第2篇Keil 软件编程)。保存软件项目到电路文件相同的文件夹E :\projectio 下。 6、在PROTEUS 电路图中,单击单片机80C51芯片,选中,再次单击打开单片机 80C51的属性对话框,在属性对话框中的program file 框中选择下载到80C51芯片中的程序。这里是同一个文件夹下面的shili.hex 文件。如图6所示。 图6 下载程序到单片机

查询方式流水灯制作

基于51单片机的流水灯 1.实验任务 利用单片机AT89C51与LED设计一串流水灯,要求至少26个灯,三种流水模式。 2. 电路原理图 3.系统板上硬件连线 (1)P0,P2,P3分别接24个小灯,P1.5,P1.6,P1.7用来显示流水灯模式的指示灯; (2)P1.0,P1.2,P1.4三个管脚为三种模式控制键,按下其中一种可以显示一种流水模式。 4.c语言程序 #include #include

sbit key1=P1^0; sbit key2=P1^2; sbit key3=P1^4; sbit W1=P1^5; sbit W2=P1^6; sbit W3=P1^7; unsigned char i,j,k,m,n,temp,y,v,u; int a[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; int b[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delay02s(void) //延时0.2秒子程序 { unsigned char i,j,k; //定义3个无符号字符型数据。 for(i=20;i>0;i--) //作循环延时 for(j=20;j>0;j--) for(k=248;k>0;k--); } void aa() // 实现要求子程序(key1按下时实现逐盏点亮,逐盏灭掉) { P0=0xff ;// 发光二极管全灭 while(!key1) delay02s(); while(key1==1) { while(1)

相关文档
最新文档