基于AT89C51单片机花式流水灯的设计与实现
基于单片机AT89C51控制的键控流水灯_课程设计报告
图3-5流水灯模块图
3.3
图3-6 键控流水灯图
4
#include<reg51.h>
#define smg1 P0
#definelsd1P1
#define smg2P2
unsignedinti=1,u=7,j,n,c,k,h=7,s=1;
voidsjms3(void);
voidsjms4(void);
voidsjms5(void);
voidmsms1(void);
voidmsms2(void);
voidmsms3(void);
voidmsms4(void);
voidmsms5(void);
voidzd1(void);
voidzd2(void);
3.2.5
发光二极管就是LED,是一种由磷化镓等半导体材料制成的、能直接将电能转换成光能的发光显示器件。当其内部有一定电流通过时,就是发光。发光二极管具有功耗低、体积小、可靠性高、寿命长和相应快等优点。
流水灯模块采用16个LED发光二极管,通过代码的编写,实现五种流水移动,其中电阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
1
单片机控制系统能够取代以前利用复杂电子线路或者数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。现在的单片机的控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
2
2.1
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。
毕业设计34基于AT89C51单片机和keilc软件的流水灯设计
目录摘要 (1)关键词 (1)Abstract (2)Keyword (2)1 AT89C51单片机简介 (3)1.1 单片机的发展 (3)1.2 单片机的分类 (3)1.3 AT89C51的介绍 (3)1.3.1 AT89C51的结构 (3)1.3.2 AT89C51主要特性 (4)1.3.3 AT89C51的管脚说明 (4)2 keilc软件及ledkey控件介绍 (6)2.1 keilc软件介绍 (6)2.2 ledkey控件介绍 (7)2.2.1 ledkey控件的开发 (7)2.2.2 ledkey控件原理图 (7)2.2.4 ledkey控件的使用 (7)2.2.5举例说明 (8)3多花样流水灯硬件设计 (9)3.1 Ledkey控件原理图 (9)3.2 功能介绍 (9)4多花样流水灯软件设计 (11)4.1程序功能 (11)4.2程序流程图 (12)5 多花样流水灯的仿真 (13)结语 (14)参考文献 (15)附录1:花样流水灯的程序代码 (16)附录2:花样流水灯功能表 (19)附录3:keilc软件和ledkey控件介绍相关图片 (20)基于AT89C51单片机和keilc软件的流水灯设计摘要:本文介绍了花样流水灯的软件设计过程,重点给出了其软件编程的方法,使学者对汇编语言有个初步了解。
通过对单片机发展、分类、硬件原理图的介绍,特别是AT89C51的介绍,具体到其结构、特性、管脚说明等,让单片机学者对51系列单片机有了初步的认识。
在程序实现方面通过文字说明和相应的图片又充分的介绍了keil软件及控件使用方法。
关键词:单片机;编程;控件;仿真Design of glide light base on single chip of AT89C51 and keilcsoftwareAbstract:This paper introduces an software design procedure for multiform pomadeng,especially lies out the method of the program software, so that scholars can have a preliminary understand for program language. According to introduce the development, sort of single chip and hardware illustrative diagram, especially the introduce of AT89C51, in particular , referring to the explain of its structure , specialty ,pin’ instruction. For this introduce , the scholars of single chip can have an initial understand for the sort of single chip. And then We have sufficient introduce for the keil software and widget of using method by means of the words and pictures, in aspect of the program’ realization.Key word: single chip; program; widget; emulate1 AT89C51单片机简介1.1单片机的发展单片机(又称为微控制器)的出现是计算机发展史上的一个重要里程碑,它以体积小、功能全、性价比高等诸多优点而独具特色,在工业控制、尖端武器、通信设备、信息处理、家用电器等嵌入式应用领域中独占熬头。
基于51单片机的流水灯设计
基于51单片机的流水灯设计一.基本功能利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。
二.硬件设计图1.总设计图1.单片机最小系统1.1选用AT89C51的引脚功能图2. AT89C51XTAL1:单芯片系统时钟的反向放大器输入端。
XTAL2:系统时钟的反向放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英震荡晶体系统就可以工作了,此外可以在两引脚与地之间加入20PF的小电容,可以使系统更稳定,避免噪音干扰而死机。
RESET:重置引脚,高电平动作,当要对晶体重置时,只要对此引脚电平提升至高电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。
P3:端口3是具有内部提升电路的双向I/O端口,通过控制各个端口的高低电平了实现LED流水灯的控制。
1.2复位电路如图所示,当按下按键时,就能完成整个系统的复位,使得程序从新运行。
图3.复位电路1.3时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在AT89C51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
图4.时钟电路2.流水灯部分图5.流水灯电路三.软件设计3.1编程语言及编程软件的选择本设计选择C语言作为编程语言。
C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。
而汇编语言使用起来并没有这么方便。
本设计选用了Keil作为编程软件,.Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
基于单片机AT89C5控制的花样调速流水灯课题设计报告
基于单片机AT89C5控制的花样调速流水灯课题设计报告宁波技师学院课程设计报告论文题目花样调速流水灯专业班级学生姓名学号指导教师宁波技师学院电气技术系2013 年9月目录第1章系统设计 (1)1.1 数码管显示方案 (1)1.2 按键输入方案 (1)第2章硬件电路设计 (2)2.1电路原理 (2)2.2系统工作流程 (2)第3章软件设计 (3)3.1系统资源分配 (4)3.2软件模块设计 (6)第四章调试¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨94.1 正常现象¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨104.2出现的故障¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨11第5章总结 (7)参考文献 (7)附录1硬件电路图 (8)附录2软件代码 (14)第1章系统设计1.1 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。
静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。
基于at89c51的流水灯设计
8只LED从左到右闪烁
实验原理
AT89C51 单片机是一种低功耗且电压性能高的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,6个中断源,2个中断优先权2个16位可编程定时器/计数器,片内集成4K字节可改变程序的FLASH 内存,具有低功耗、速度快、程序擦写方便等优点,完全满足本系统设计的需要。
实现发光二极管(LED)闪烁实际上就是让LED亮一下灭一下,即让LED导通一会儿关断一会即可。
因此,只需要将LED发光二极管的一个极接到电源上,另一个极接到单片机32个I/O口的任何一个即可。
本实验采用流水灯形式,8只LED灯从左到右闪烁,可应用与霓虹灯,夜间彩灯等。
1.C文件程序
/* 名称:8只LED从左到右闪烁*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//延时
void DelayMS(uint x)
{
uchar i;
while(x--)
{
for(i=0;i<120;i++);
}
}
//主程序
void main()
{
P0=0xfe;
while(1)
{
P0=_crol_(P0,1); //P0的值向左循环移动
DelayMS(150);
}
}
2.硬件仿真
烧入kell生成的.hex文本
运行:
结果:8只LED灯从左到右闪烁。
电子信息工程专业毕业论文--基于AT89C51单片机的音乐流水灯设计
摘要随着科技和经济的快速发展,人们对生活质量和生活环境的要求不断的提高,多彩多样的彩灯成了现今装饰和美化的时尚和潮流。
千姿万态的流水灯能给人一种视觉冲击。
拟采用单片机AT89C51去实现这种千变万化的流水灯。
单片机技术是一种传统和典型的技术,具有智能化、体积小、集成度高和价格低廉等许多独特的优点。
而且单片机明显优越于其他电子电路,其硬件电路和软件方面都不是特别复杂。
本设计将所学的单片机的理论和动手实践结合起来,主要利用AT89C51单片机设计并制作一个音乐流水灯。
首先设计一个稳定的直流电源电路,然后设计一个复位电路,为单片机的正常工作提供条件,然后再设计时钟电路和声音驱动电路,可以使单片机能够更好的控制与编译音乐部分,另外还设计一个通信电路以方便单片机和PC机的连接与通信,最后还需要设计按键电路用来控制音乐流水灯。
为了使蜂鸣器能够正常的发生还需设计一个音频电路。
硬件电路设计后要将各模块连接起来进行仿真和调试。
软件设计部分则需要将各电路模块进行编译,并设计音乐频率程序、流水灯程序和按键程序,同时将其进行仿真调试和组合调试。
以实现在播放音乐时LED灯有千变万化的效果,以满足对视觉上的享受。
关键词:单片机;音乐;流水灯;仿真;ABSTRACTWith the science and technology and the economy the rapid development, people pairs quality of life and living environment the requirements of continuously improve, colorful and diverse of the lantern became a nowadays decorative and beautify's fashion and trend. Zi million-state of flowing water lamp can give a person one kinds visual impact. Intends to adopt AT89C51 microcontroller to go achieve such kaleidoscopic of flowing water lights. MCU technology is a kind of tradition and typical technical, with intelligent, the volume is small, high integration and price inexpensive and so on many unique advantages. Moreover single-chip obviously superior to other electronic circuit, its hardware circuits and software aspects of are not particularly complicated.The single-chip design will combine theory and practice, the main use AT89C51 single-chip design of a musical water lights. First, design a stable DC power supply circuit, and then design a reset circuit for the microcontroller to provide normal working conditions, and then design a clock circuit and sound driver circuit, will enable MCU to better control and compile music part, in addition to design a to facilitate communication circuit chip and PC connectivity and communication, and finally also need to design the circuit to control the music keys light water. In order to make the buzzer to normal design an audio circuit needs to happen. After the hardware circuit design to connect the modules for simulation and debugging. Software design will need to be compiled each circuit module, and the design frequency of the music program, water lights and key procedures, and its combination of simulation debugging and debugging. When playing music in order to achieve a kaleidoscopic effect LED lights to meet the visual enjoyment.Key words:MCU; Music; Light water;Simulation目录摘要 (I)ABSTRACT (II)目录 (1)1. 绪论 (1)1.1 单片机的概念 (1)1.2 单片的历史、发展和应用 (4)2. 总体设计 (6)2.1 设计要求 (6)2.2 设计方案选择 (6)2.3 整体设计思路 (6)3. 系统硬件设计与部分电路说明 (8)3.1 硬件设计框图 (8)3.2 部分电路说明 (8)3.2.1 电源及启动电路 (8)3.2.2 复位电路 (9)3.2.3 时钟电路 (10)3.2.4 通信电路 (10)3.2.5 键盘电路 (11)3.2.6 流水灯电路 (11)3.2.7 音频电路 (12)3.3 电路原理图及说明 (12)4. 系统软件电路设计与分析 (13)4.1 音乐程序设计 (13)4.1.1 音乐程序流程图 (14)4.2 流水灯设计 (16)4.2.1 流水灯程序流程图 (16)4.2.2 流水灯程序 (16)4.3 音乐流水灯程序 (16)4.3.1 音乐流水灯程序流程图 (16)4.3.2 音乐流水灯程序 (17)5. 系统调试与仿真 (19)5.1 硬件调试 (19)5.2 软件调试 (19)5.3 软件仿真 (19)总结 (22)致谢 .................................................................................................... 错误!未定义书签。
基于STC-89C51的流水灯的设计与实现
开放与创新实验设计报告设计题目:基于STC-89C51的流水灯的设计与实现指导老师:设计时间:开放与创新实验任务书一、设计任务设计题目:按键式流水灯设计。
设计内容:本设计是按键式流水灯设计,给出如下需求:整个流水灯系统由按键控制,实现各种状态(4种状态)之间的转换,即按键第一次压下,流水灯进入到第一种状态;按键第二次压下,流水灯进入到第二种状态;以此类推。
二、系统需求基本要求:利用STC-89C51单片机作为系统核心控制部分,用16个发光二极管模拟流水灯的显示部分,自己设计电路和程序完成流水灯设计。
发挥部分:1.使用外部中断作为对按键的控制。
2.用硬件定时器完成流水灯状态转换间的延时,延时误差小于20×10-6s.开放与创新实验_流水灯设计报告流水灯控制系统设计摘要:本系统由单片机系统、数码显现管、LED 显示等部分组成。
系统能够实现以下功能:往南和往北的信号一致,即红灯(绿灯或黄灯)同时亮或同时熄灭。
用两个数码管来显示被点绿亮的指示灯还将点亮多久。
往东和往西方向的信号一致,其工作方式与南北方向一样,也采用两个数码管来倒计时。
当南北方向为绿灯或黄灯时,东西方向的红灯点亮禁止通行;而东西方向为绿灯或黄闪灯时,南北向的红灯点亮禁止通行。
交通信号灯控制方式很多。
本设计采用MSC-51系列单片机STC89C51和可编程并行I/O接口芯片8255,8155为中心器件来设计交通灯控制器,实现了用,8155芯片控制数码显现管,PC口进行段选,PB进行位选,来设置红、绿灯点亮倒计时的功能;由8255芯片控制12个LED 灯来实现红绿黄灯状态,红绿灯循环点亮,倒计时结束后黄灯闪烁警示。
在设计中采用了硬件技术与软件技术相结合的方法,用STC-89C51的定时器T0,设定30秒倒计时时间,然后再利用软件进行技术,从而产生秒信号。
定时器T0用了中断方式,当定时时间到时,在T0断服务程序中实现秒的倒计数,从而控制LED显示器倒计数显示准行或禁行时间。
花样流水灯设计
花样流水灯设计单片机课程设计课程题目院系电气工程及其自动化系专业班级学生姓名学生学号2022年6月15日指导教师一丶任务设计一款以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单片机最小系统要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。
AT89C51基于单片机智能浇花系统设计说明
目录1. 绪论 (1)1.1系统工作原理 (1)1.2系统模块 (1)1.3系统操作界面及其操作过程 (1)1.3.1 系统操作过程 (2)2. 部件的选择 (2)2.1芯片的选择 (2)2.2继电器的选择 (2)2.3阀门的选择 (2)2.3.1 电磁阀的选择 (2)3. 硬件设计 (2)3.1设备的结构 (2)3.1.1 中央处理单元 (2)3.1.2 LED显示部分 (3)3.1.3 电磁阀部分 (3)3.1.4按键部分 (3)3.1.5 指示灯部分 (3)3.2总电路设计图 (3)3.3AT89C51单片机电路 (4)3.4晶振电路 (5)3.5复位电路 (5)3.6按键电路 (7)3.9LED显示电路 (7)3.10电磁阀电路 (9)4. 软件设计 (9)4.1系统组成 (9)4.2消抖流程及程序 (10)4.3总流程及程序 (12)4.4按键处理总流程及程序 (13)4.5工作中的处理流程 (14)5. 结论 (15)参考文献 (16)AT89C51基于单片机智能浇花系统设计摘要:本设计是通过AT89C51单片机采用汇编语言进行编程,在LED液晶屏上实现小时,分,秒的显示;并利用单片机来实现计时,定时功能,同时通过7个按键开关和3个指示灯来实现参数设置和调节功能、浇花间隔时间的设定、浇水持续时间的设定、单片机对电磁阀的自动控制。
根据用户设定的时间顺利的完成浇花任务。
关键词:单片机,控制,显示,电磁阀1.绪论1.1 系统工作原理自动浇花系统的设计,其主要执行装置是一个电磁阀门,其一端连接水管,另外一端连接外置的水管作为浇水口,浇水的水量主要由单片机控制。
设备主要是通过控制浇水的时间间隔和浇水的持续时间来控制浇水量的。
1.2 系统模块系统主要是由单片机、电源、按键、显示、指示灯、复位电路、电机模块等组成。
图1-1 系统模块1.3 系统操作界面及其操作过程复位电路模51单片机模块电源模块 按键模块指示灯模块 显示模块电机模块图1.2 系统操作界面1.3.1 系统操作过程注:用上图中的数字编号代替相关按键A:放置设备,接上水管(注意:保证不漏水),插上插头。
基于AT89C51的流水灯选择器的设计
2.2 数码管显示原理
LED 数码管是由多个发光二极管封装在一起组成“8”字行的器件,引线已在内部连接 完成,只需引出它们的各个笔划及公共电极。LED 数码管常用段数一般为 7 段,有的另加 一个小数点。LED 数码管根据 LED 的接法不同分为共阴和共阳两类。数码管的引脚如图 1 所示,共有 10 个引脚,abcdefg 引脚主要用于显示字段, DP 引脚用于显示小数点,当我们 要显示数字时只需将相对应的字段接电平即可,共阴型的接高电平,共阳的接低电平。以共 阳型为例, 如果我们想显示 0, 则应该将数码管的 abcdef 接低电平, 其他引脚接高电平即可。 设计中用到的 LED 数码管为共阴型 7 段数码管,当要显示数据时只需向相对应的段传送高 电平即可。
lamp3[10]={0x3b,0x7b,0x54,0xcf,0x66,0x9d, 0x73,0x7c,0x83,0x96}; //------------------延迟 1ms----------------// void delay(uint z) { uint x,y; for (x=z;x>0;x--) for (y=123;y>0;y--); } // --按下按键 1 时对数码管及 LED 的显 示控制--// void play1() {
4.调试结果
以按键 1 为例 初始化程序时结果如图 6 所示,初始化时 P0=0x3f;P2=0x00,故当按键未按下时数码管 显示 0,LED 全灭。
图 6 初始化时图片
当按键按下时,LED 灯开始闪烁,闪烁间隔时间为 0.8S,因 lamp1[0]=0xa6;故刚开始 时自左往右可看到灯 2、3、6、8 亮,灯 1、4、 5、7 灭, lamp1[8]=0x97,故在第九个状态 时自左往右可看到灯 4 、6、7 灭,其他都为亮。第一个状态时灯的亮灭情况如图Байду номын сангаас7 所示, 第 九个状态时灯的亮灭情况如图 8 所示。
基于单片机AT89C51控制的花样调速流水灯课题设计报告.
宁波技师学院课程设计报告论文题目花样调速流水灯专业班级学生姓名学号指导教师宁波技师学院电气技术系2013 年9月目录第1章系统设计 (2)1.1 数码管显示方案 (2)1.2 按键输入方案 (1)第2章硬件电路设计 (2)2.1电路原理 (2)2.2系统工作流程 (2)第3章软件设计 (3)3.1系统资源分配 (4)3.2软件模块设计 (6)第四章调试¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨94.1 正常现象¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨104.2出现的故障¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨11第5章总结 (7)参考文献 (7)附录1硬件电路图 (8)附录2软件代码 (14)第1章系统设计1.1 数码管显示方案通常数码管显示有两种方式:动态显示和静态显示。
静态显示的优点是程序简单、显示亮度有保证、单片机CPU的开销小,节约CPU的工作时间。
但占用I/O口线多,每一个LED都要占用一个I/O口,硬件开销大,电路复杂。
用AT89C51单片机实现流水灯的控制设计[1]
用AT89C51单片机实现流水灯的控制设计[1] 用AT89C51单片机实现流水灯的控制设计当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
1.引言目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。
2.硬件组成按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS8位单片机,具有丰富的内部资源: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 灯便会一亮一暗的做流水灯了。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
单片机之流水灯 AT89C51
单片机之流水灯AT89C51流水灯是单片机入门必学的一个实验。
这里面主要涉及的操作就是移位操作,还有就是对延时的控制。
在没有接触定时器的时候,可以用for 语句来进行延时,当然并不能做到精准延时,可以通过在试验箱上的实验现象,来修改延时时间的长短。
#include #define uchar unsigned char#define uint unsigned intvoid delay(){uchar m,s,n;for(m=20;m>0;m--)for(s=20;s>0;s--)for(n=248;n>0;n-- );}/*上面这个延时到底延时了多长时间,可以通过keil 中的反汇编看到。
晶振为12MHz。
机器周期为1us。
指令又分为单周期指令、双周期指令*//*************************************反汇编**************************/C:0x0054 12005A LCALL delay(C:005A) //开始调用延时函数跳转这是双周期指令2us 35: }C:0x0057 0A INC R2C:0x0058 80D6 SJMP C:0030 5: void delay() 6: { 7: uchar m,s,n; 8: for(m=20;m>0;m--)C:0x005A 7F14 MOV R7,#0x14 //单周期指令1us 9: for(s=20;s>0;s--)C:0x005C 7E14 MOV R6,#0x14 10: for(n=248;n>0;n--); 11: C:0x005E 7DF8 MOV R5,#0xF8C:0x0060 DDFE DJNZ R5,C:0060 //248*2us 双周期指令C:0x0062 DEFA DJNZ R6,C:005E //20*(248*2+3)usC:0x0064 DFF6 DJNZ R7,C:005C //20*(20*(248*2+3)+3)us 12: }C:0x0066 22 RET //双周期指令2us 即总共延时:循环内延时+循环外延时(5us)=496+9980+199660+5 约等于0.2 秒/***********************************************************************/void main(void){ uchar temp;uchar a,b,i;while(1){ temp=0xfe;P1=temp;for(i=0;i>(8-i); //右移有符号数符号位会保留,正数高位补。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
科技风2019年1月电子信息4
通过protus 软件设计的电路图如下图示:
基于AT 89C 51单片机花式流水灯的原理图
输出部分电路:发光二极管采用共阳极接法,阴极通过限 流电阻R 与+5v 电源连接,阴极连接到单片机的H ) 口的引脚 上。
要实现发光二极管的点亮,考虑到二极管的单向导电性, 若P 0 口输出低电平,二极管点亮,若P 0 口输出髙电平,则二极 管熄灭。
输入电路部分:在P 1.0接控制电路,按下S 1键时,P 1.0引 脚接地,所以P 1.0引脚电平被降为低电平,因此,可以通过检 测P 1.0引脚的电平判断按键S 1是否按下。
if (k %2= = l ) //若奇数次按下按钮,则流水灯执行第二 种状态
| P 0 = 0xA A ; //01、03、05、1)7亮,02、1)4、06、08灭delay (30000);P 0 = 0x 55; //02、1)4、1)6、08亮,01、03、05、07灭delay (30000);
m
其中k 的值通过按键S 1控制,每按下S 1时,k 就自增1;当 k %2 = 0时,说明k 为偶数,执行流水灯依次点亮的程序,当k % 2 = 1时,说明k 为奇数,执行流水灯4亮4灭闪烁的程序。
若 需要在3种状态之间切换,则对3求余即可,以此类推。
按下按键时,通常都会有抖动,表面上看来是按按键一次, 但是因为按键的抖动,单片机会判断出按按键很多次,从而输 入不可控。
此问题可以用“软件消抖”来解决。
当第一次检测 到按键按下时,不采取动作,延时一段时间后,按键按下信号依 然存在,则认为按键被按下,再执行相应的动作。
3总结
本以AT 89C 51单片机为主控芯片,以8个发光二极管 为载体,设计流水灯的硬件电路和软件程序,通过k e il 和Proms 软件仿真对结果进行验证,达到了预期的效果。
参考文献:[1] 王东锋,王会良,董冠强.单片机C 语言应用100例•电 子工业出版社,2009,07.
[2] 吴文兵,脱建智.基于51单片机的流水灯的设计与实 现[J ].电子技术与软件工程,2016(08) :258.
作者简介:范昭君(1987-),女,硕士,讲师,研究方向为智 能机器人。
1绪论
单片机技术是计算机技术的一个重要分支,其应用领域极 其广泛,已逐渐渗透至各个领域,流水灯技术的应用使我们所 生活的环境得到进一步的美化,例如城市亮化工程上灯光控 制;色彩斑斓的霓虹灯广告牌里的灯光控制、流水控制;舞台设 计的灯光和音响控制;广告设计的文字显示以及灯光显示等 等。
本文以AT 89C 51单片机P 0、P 1 口应用为核心,构造流水 灯的硬件设计和软件编程,从而实现8位流水灯在两种状态之 间任意切换的效果。
2系统设计2.1任务目标
流水灯是指一组在控制系统的控制下按照设定的顺序和 时间来发亮和熄灭的灯。
本文以AT 89C 51单片机的P 1.0 口的 按钮S 1控制P 0 口的发光二极管的状态,若按动按钮的次数是 偶数时,进入流水灯第一种状态:依次点亮D 1至D 8,若再次按 下按钮,按按钮的次数由偶数变为奇数,则进人第二种状态: D 1、D 3、D 5、D 7 亮,D 2、D 4、D 6、D 8 灭,延时一段时间,D 2、D 4、 D 6、D 8亮,01、03、05、07灭,如此循环,并用1^1编程软件和 protus 仿貪软件对以上进行仿真。
2.2硬件设计
流水灯的硬件电路由3部分组成,第一部分是单片机模 块一-单片机AT 89C 51,第二部分是输出模块一8个发光二极管 组成的负载电路,第三部分是输人模块一按钮组成的电路。
在 该项目中,共用到下表所列的元器件。
元器件表
2.3软件设计
本文设计了流水灯程序,当按钮按下次数发生变化时,流 水灯的状态也发生变化。
具体设计的源程序如下所示:
in c lu d e <AT 89X 51. h > sbitSl =Pl _0;void delay (unsinged in t a ) //延时子函数 I unsigned m ; //a 次空循,_ 当于® 时 for(m = 0;m < = a ;m ++);I ^main () j in t k = 0,i ; while (1)I if(S l = =0) //如果s 键按下 | delay (20000) ; //延时一段时间 if(S l = =〇) //如果再次检测到s 键按下,为了消除按下 按键的抖动
k ++; //k ++
I
if (k %2==0) //若偶数次按下按钮,则流水灯执行第一
种状态1 P 0=0xff ; delay (20000); fo r (i = 1 ;i < = 8;i ++) |P 0 = P 0»1; delay (20000);(
D O I :10.19392/j . cnki . 1671-7341.201901056
基于AT 89C 51单片机花式流水灯的设计与实现
范昭君
陕西国防工业职业技术学院陕西西安710300
摘要:本论文采用protus 仿真软件和k e il 编程软件,设计了以AT 89C 51单片机为核心控制单元,以8位发光二极管设计输
出电路,以按紐电路组成输入电路,实现按钮按下时,流水灯的在2种状态之间任意切换的效果,通过软硬件仿真验证设计的合理 性和正确性。
关键词:单片机;p r o t u s ;流水灯;状态切换序号
名称型号/参数
序号
名称型号/参数
1单片机AT89C516电阻200欧
2晶振12M H Z 7复位开关
3电容30p f 81C 底座
4电解电容22u f/50V 9
发光二极管黄色
5
电阻
1千欧
E :
w 4)s <l -
-@I l i s i i i i s
g E r l l '-l z a z l i l 1-.
69。