LED流水灯的单片机设计

分享到:
点击量: 218195

  摘要:本文先容了简朴流水灯的软硬件的设计过程,重点给出了其软件编程的思惟方法。
 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、本钱低、应用面广等长处,可以说,智能控制与自动控制的核心就是单片机。目前一个学习与应用单片机的热潮正在工厂、学校及企事业单位大规模的兴起。学习单片机的*有效方法就是理论与实践并重,本文先容AT89C51单片机自制一款简易的流水灯,重点先容软件编程方法。按一定的时间距离依次点亮二极管" href="http://www.dz-z.com/product/detail/1414762.html" target="_blank">发光二极管D8-D1,实现流水灯控制,展现流水灯效果。
     

       硬件组成:按照单片机系统扩展与系统配置状况,单片机应用系统可分为:*小系统、*小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司出产的低电压高机能CMOS 8位单片机,具有丰硕的内部资源:4KB闪存、128BRAM、32根I/O接口线、2个16位定时/计数器、5个向量两级间断结构、2个全双工的串行口,具有4.25-5.50V的电压工作范围和0-24MHZ工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机*小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的。

 软件编程:单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯轮回点亮的现象,我们还需要告诉单片机怎么来进行工作,及编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要组成部门是单片机学习的重点和难点。下面我们来先容流水灯控制的软件编程方法。位控法:这是一种比较笨但*轻易理解的方法,采用顺序程序结构,用位指令控制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点亮ACALL DELAY;调用延时子程序SETB CLR P1.1;P1.1输出高电平,使LED2熄灭P1.2;P1.2输出低电平,使LED3点亮ACALL DELAY;调用延时子程序SETB CLR P1.2;P1.2输出高电平,使LED3熄灭P1.3;P1.3输出低电平,使LED4点亮ACALL DELAY;调用延时子程序SETB CLR P1.3;P1.3输出高电平,使LED4熄灭P1.4;P1.4输出低电平,使LED5点亮ACALL DELAY;调用延时子程序SETB CLR P1.4;P1.4输出高电平,使LED5熄灭P1.5;P1.5输出低电平,使LED6点亮ACALL DELAY;调用延时子程序SETB CLR P1.5;P1.5输出高电平,使LED6熄灭P1.6;P1.6输出低电平,使LED7点亮ACALL DELAY;调用延时子程序SETB CLR P1.6;P1.6输出高电平,使LED7熄灭P1.7;P1.7输出低电平,使LED8点亮ACALL DELAY;调用延时子程序SETB CLR P1.7;P1.7输出高电平,使LED8熄灭ACALL DELAY;调用延时子程序AJMP DELAY:START;8个LED流了一遍后返回到标号START处再轮回;延时子程序MOV R0,#255;延时一段时间D1:MOV R1,#255 DJNZ R1,$ DJNZ R0,D1 RET;子程序返回END;程序结束。


  结语:当上述程序编写好之后,我们需要使用编译软件对其编译,得到单片机所能识别的二进制代码,然后再用编程器将二进制代码烧写到AT89C51单片机中,*后连接好电路通电,我们就看到LED1-LED8的“流水”效果了。我们还可在此基础上扩展更复杂的流水灯控制。

 

相关资讯:电子 | 电子元件 | 电子元器件

阅读此文章的人还喜欢:

Atmel 89C51单片机简介

 

Atmel 89C51单片主要特性

 

ATMEL89系列单片机的优点