娇宠令,用单片机操控的LED流水灯规划(电路、程序悉数给出),甘之如饴

频道:科研发现 日期: 浏览:211

1.导言

当今年代是一个新技术层出不穷的年代,在电子范畴尤其是娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴自动化智能操控范畴,传统的分立元件或数字逻辑电路构成的操控体系,正以前所未见的速度被单片机智能琴操控体系所替代。单片机具有体积小、功用强、成本低、运用面广等长处,能够说,智能操控与自动操控的中心便是单片机。现在,一个学习与运用单片机的高潮正在工厂、校园及企事业单位大规模地鼓起。学习单片机的最有用办法便是理论与实践偏重,本文笔者用AT89C51单片机克己了一款简易的流水灯,要点介绍了其软件编程办法,以期给单片机初学者以启示,更快地成为单片机范畴的优秀人才。

2.硬件组成

依照单片机体系扩展与体系配置情况,单片机运用体系可分为最小体系、最小功耗体系及典型体系等。AT89C51单片机是美国ATMEL公司出产的低电压、高性能CMOS 8位单片机,具有丰厚的内部资源:4kB闪存、128BRAM、32根I/O口线、2个1xp1236位守时/计数器、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灯便会一亮一暗的做流水灯了。在此咱们还应留意一点,因为人眼的视觉暂留效应以及单片机履行每条指令的时刻很短,咱们在娇宠令,用单片机操控的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平息

CLR P1.1 ;P1.1输出低电平,使LED2点亮

ACAL篮球帅哥L DELAY ;调用延时子程序

SETB P1.1 ;P1.1输出高电平,使LED2平息

CLR P1.2 ;P1.2输出低电平,使L娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴ED3点亮

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 ;调用延时子程序

SETB P1.4 ;P1.4输出高电平,使LED5平息

CLR P1.5 ;P1.5输出低电平,使LED6点亮

ACALL DELAY ;调用延时子程序

SETB P1.5 ;P1.5输出高电平,使LED6平息

CLR P1.6 ;P1.6输出低电平,使LED7点亮

ACALL DELAY ;调用延时子程序

SETB P1.6 ;P1.6输出高电平,使LED7平息

CLR P1.7 ;P1.7输出低电平,使L狮子男ED8点亮

ACALL DELAY ;调用延时子程序

SETB P1.7 ;P1.7输出高电平,使LED8平息

ACALL DELAY ;调用延时子程序

AJMP  START ;8个LED流了一遍后回来到标号START处再循环

DELAY:  ;延一万次哀痛时子程序

MOV R0,#255 ;延时一段时刻

D深圳社保局1: MOV R1,#255

DJNZ R1,$

DJNZ R0,D1

RET ;子程序回来

END ;程序完毕

3.2循环移位法

在上个程序中咱们是逐一操控P1端口的每个位来完结的,因而程序显得有点杂乱,下面咱们运用循环移位指令,选用循环程序结构进行编程。咱们在程序一开端就给P1口送一个数,这个数自身就让P1.0先低,其他位为高,然后延时一段时刻,再让这个数据向高位移动,然后再输出至P1口,这样就完结“流水”作用啦。因为8051系列单片机的指令中只需对累加器ACC中数据左移或右移的指令,因而实践编程中咱们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样相同能够完结“流水”作用。详细编程如下所示,程序结构的确简略绚烂人生第二部佳恩了许多。

ORG 0000H ;单片机上电后从0000孙超魏泽坤H地址履行

AJMP START ;跳转到主程序寄存地址处

ORG 0030H 王新军;设置主程序开端地址

START:MOV SP,#60H ;设置仓库开端地址为60H

MOV  A,#0FEH ;ACC中先装入LED1亮的数据(二进制的11111110)

MOV P1,A ;将ACC的数据送P1口

MOV R0,#7 ;将数据再移动7次就完结一个8位流水过程

LOOP: RL A ;将ACC中的数据左移一位

MOV P1,A ;把ACC移动过的数据送p1口显现

A娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴CALL DELAY ;调用延时子程序

DJNZ R0,LOOP ;没有移动够7次持续移动

AJMP START ;移动完7次后跳到开端重来,以到达循环活动作用

DELAY:  ;延时子程序

MOV R0,#255 ;延时一段时刻

D1: MOV R1,#255

DJNZ R1,$

DJNZ R0,D1

RET ;子程序回来

END ;程序完毕

3.3查表法

上面的两个程序都是比较简略的流水灯程序,“流水”把戏只能完结单一的“从左到右”流方法。运用查表法所编写的流水灯程序,能够完结恣意方法流水,并且流水把戏无限,只需更改流水把戏数据娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴表的流水数据就能够随意增加或改动流水把戏,真实完结为所欲为的流水灯作用。咱们首先把要显现流水把戏的数据建在一个以TAB为标号的数据表中,然后经过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显现。具揽胜极光体源程序如下,TAB标号处的数据表能够依据完结作用的要求恣意修正。

ORG 0000H ;单片机上电后从0000H地址履行

AJMP START ;跳转到主程序寄存地址处

ORG 0030H ;设置主程序开端地址

START:MOV SP,#60H ;设置仓库开端地址为60H

MOV DPTR,# TAB ;流水把戏表首地址送DPTR

LOOP: CLR A ;累加器清零

MOVC A,@A+DPTR ;取数据表中的值

CJNE A,#0FFH,SHOW;查看流水完毕卷发棒怎样用标志

AJMP START ;一切把戏流完,则从头开端重复流

SHOW: MOV P1,A ;将数据送到P1口

ACALL DELAY ;调用延时子程序

INC DPTR ;取数据表指针指向下一数据

AJMP LOOP ;持续查表取数据

DELAY:  ;延时子程序

MOV R0,#255娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴 ;延时一段时刻

D1: MOV R1,#255

DJNZ R1,$

DJNZ R爸爸妈妈0,D1

RET ;子程序回来

TAB: ;下面是流水把戏数据表,用户可据要求恣意编写

DB 11111110B ;二进制表明的流水把戏数据,从低到高左移

DB 111押水菜子11101B

DB 11111011B

DB 11110111B

DB 11101111B

DB 11011111B

DB 10111111B

DB 01111111B

DB 01111斐讯k2111B ;二进制表明的流水把戏数据,从高到低右移

DB 10111111B

DB 11011111B

DB 11101111B

DB 111january10111B

DB官网 11111011B

DB 11111101B

DB 11111110B

DB 0FEH,0FDH,0FBH,0F7H ;十六进制表明的流水把戏数据

DB 0EFH,0DFH,0BFH,7FH

DB 7FH,0BFH,0DFH,0EFH

DB 0F7H,0FBH,0FDH,0FEH

……

DB 0FFH ;流水把戏完毕标志0FFH

END ;程序完毕

4.结语

当上娇宠令,用单片机操控的LED流水灯规划(电路、程序全部给出),甘之如饴述程序之一编写好今后,咱们需求运用编译软件对其编译,得到单片机所能辨认的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,最终连接好电路通电,咱们就看到LED1~LED8的“流水”作用了。本文所给程序完结的功用比较简略,旨在抛砖引玉,用户能够自己在此基础上扩展更杂乱的流水灯操控,比方键盘操控流水把戏、操控流水灯显现数字或图画等等。

热门
最新
推荐
标签