51单片机定时器控制流水灯
基于单片机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
随着经济的发展、科技的突飞猛进,芯片业得到了迅速的发展,是单片机技术在各种民用和工业控制等领域得到更广泛的应用。单片机凭借其低成本、高性能的不可代替优势已经成为了微电脑 控制的主力军。学习单片机的有效方法是将理论与实践并重,因此通过对单片机可控流水灯的设计和研究,鼓励学生在熟悉基本原理的前提下,与实际应用相联系,提出自己的方案,来完善设计,使得他们更好的掌握单片机的应用。
51单片机课件 LESSON2_流水灯

For (表达式1;表达式2;表达式3) { 语句(内部可为空)} 执行过程: 1.求解一次表达式1. 2.求解表达式2,若其值为真(非0 即为真),则执行for中语句。然后 执行第3步。否则结束for 语句,直 接跳出,不再执行第3步。 3.求解表达式3. 4.跳到第2步重复执行。
集电极开路典型图
第二讲
如何申请免费样片 简单延时程序 子程序调用 带参数子程序设计 C51库函数的方便调用 如何驱动蜂鸣器 如何驱动继电器 集电极开路的概念及应用。
While (表达式) {语句(内部也可为空)} 特点:先判断表达式,后执行语 句。 原则:若表达式不是0,即为真, 那么执行语句。否则跳出while 语句。
VCC
OUTPUT Q1 9013
P0i
GND
课后练习
1. 2. 3. 4. 5. 6. 7. 第一个发光管以间隔200ms闪烁 闪烁 第一个发光管以间隔 8个发光管由上至下间隔 流动,其中每个管亮 个发光管由上至下间隔1s流动 个发光管由上至下间隔 流动,其中每个管亮500ms,灭 灭 500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 亮时蜂鸣器响, 亮时蜂鸣器响 灭时关闭蜂鸣器,一直重复下去。 8个发光管来回流动,第个管亮 个发光管来回流动, 个发光管来回流动 第个管亮100ms,流动时让蜂鸣器发出 流动时让蜂鸣器发出 滴滴” “滴滴”声。 个发光管演示出8位二进制数累加过程 用8个发光管演示出 位二进制数累加过程。 个发光管演示出 位二进制数累加过程。 8个发光管间隔 个发光管间隔200ms由上至下,再由下至上,再重复一次, 由上至下, 个发光管间隔 由上至下 再由下至上,再重复一次, 然后全部熄灭再以300ms间隔全部闪烁 次。重复此过程。 间隔全部闪烁5次 重复此过程。 然后全部熄灭再以 间隔全部闪烁 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动, 第一次一个管亮流动一次, 间隔 第一次一个管亮流动一次 第二次两个管亮流动, 依次到8个管亮,然后重复整个过程。 依次到 个管亮,然后重复整个过程。 个管亮 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环 先奇数亮再偶数亮, 间隔 先奇数亮再偶数亮 循环三次; 三次;两个分别从两边往中间流动三次; 三次;两个分别从两边往中间流动三次;再从中间往两边流 动三次; 个全部闪烁 个全部闪烁3次 关闭发光管,程序停止。 动三次;8个全部闪烁 次;关闭发光管,程序停止。
《单片机原理及应用》基于51单片机实验箱的流水灯设计

《单片机原理及应用》基于51单片机实验箱的流水灯设计一、实验目的和要求1.掌握单片机基本资源使用。
2.掌握单片机电路原理图。
3.掌握单片机C语言软件开发以及试验箱使用。
二、实验内容和原理实验内容:1.绘制程序流程图并编写C语言程序2.在实验箱中进行测试,最后提交实验报告三、主要仪器设备Keil4软件、C51单片机实验箱。
四、操作方法与实验步骤4.1 题目要求使用单片机实验箱实现流水灯功能。
4.2 系统设计思路主程序中实现流水灯功能,时间单位采用500ms信号,作为实现流水灯的发光二极管和单片机的P1相连。
4.2 C程序编制(包含详细的文字和程序流程图)#include<intrins.h>#include<reg52.h>#define uchar unsiged char#define uint unsigned intvoid mDelay(uint Delay){int i;for(;Delay>0;Delay--)for(i=0;i<110;i++);}void main(){unsigned char a,i;While(1){a=0x01;for(i=0;i<8;i++){a=-crol-(a,1)P2=amDelay(500);}}4.3 测试分析(包含文字和图像叙述)在KeilC51软件软件中编写好程序并调试好后,连接单片机实验箱,实验结果如下:实验箱上连接的八个灯,每个灯间隔500ms的时间一个接一个的循环闪烁。
五、讨论和心得(不少于100字)通过此次实验,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,试验过程还是比较繁琐,但是还是完成了这次试验,使我对于理解单片机的基本原理更加深刻,将所学知识运用到实践中,在实践中发现问题,强化理论知识。
课程名称:单片机原理及应用实验项目名称(二):定时计数器的应用—按钮控制LED灯四、实验目的和要求1.掌握单片机基本资源使用。
通过51单片机控制24个发光二极管形成流水灯效果的亮灭状态

成绩实验名称:单片机系统简单扩展实验
一、实验目的
1、了解单片机系统的扩展方法
2、熟悉8255A在单片机系统扩中的使用方法。
3、熟悉仿真软件Proteus以及编程软件Keil的使用。
二、实验仪器
三、实验内容
四、实验原理
实验报告
五、实验步骤
步骤:
1、根据给定的实验要求,分析实验的目的以及实验要求。
2、通过计算机仿真软件Proteus,根据实验目的设计电路,并且绘制电路原理图。
3、根据自己设计的电路,编写控制程序。
4、调试所编写的控制程序,直至程序没有语法及语意错误,可以通过编译。
5、将所编写的无错误的程序下载至仿真软件,并进行调试,根据仿真结果修改程序。
6、重复上一步骤,知道仿真效果达到实验要求,即可完成。
六、实验程序
#include <reg51.h>
#include<absacc.h>。
多种方法写出的51单片机流水灯C语言程序

目录流水灯最原始 (1)流水灯位左移 (3)流水灯移位函数 (4)流水灯数组 (5)流水灯精确定时器 (6)流水灯最原始#include "reg51.h"sbit p0=P1^0;sbit p1=P1^1;sbit p2=P1^2;sbit p3=P1^3;sbit p4=P1^4;sbit p5=P1^5;sbit p6=P1^6;sbit p7=P1^7;voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){while(1){P1=0;p0=1;mdelay(1000);p0=0;p1=1;mdelay(1000);p1=0;p2=1;mdelay(1000);p2=0;p3=1;mdelay(1000);p3=0;p4=1;mdelay(1000);p4=0;p5=1;mdelay(1000);p5=0;p6=1;mdelay(1000);p6=0;p7=1;mdelay(1000);p7=0;}}流水灯位左移#include "reg51.h"voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char i;unsignedint led;while(1){led=0xfe;for(i=0;i<8;i++){P1=led;mdelay(1000);led=led<<1;led=led|0x01;}}}流水灯移位函数#include "reg51.h"#include "intrins.h"voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char led;led=0x01;while(1){P1=led;led=_crol_(led,1);mdelay(1000);}}流水灯数组#include "reg51.h"unsigned char table[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; voidmdelay(unsigned int t){unsigned char n;for(;t>0;t--)for(n=0;n<125;n++){;}}void main(){unsigned char i;while(1){for(i=0;i<8;i++){P1=table[i];mdelay(1000);}}}流水灯精确定时器#include "reg51.h"#include "intrins.h"unsignedint count=0,led;void main(){P1=0x00;led=0x01;EA=1;ET0=1;TMOD=0x01;TH0=0x3c;TL0=0xb0;TR0=1;for(;;){;}}voidbiao() interrupt 1{count++;if(count==20){count=0;P1=led;led=_crol_(led,1);}TH0=0x3c;TL0=0xb0;}。
基于51单片机的C语言流水灯程序

基于51单片机的C语言流水灯程序#include //51系列单片机定义文件#define uchar unsigned char //定义无符号字符#define uint unsigned int //定义无符号整数void delay(uint); //声明延时函数void main(){uint i;uchar temp;while(1){temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动{P2=~temp;delay(500); //调用延时函数temp<<=1;}temp=0x80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动{P2=~temp;delay(500); //调用延时函数temp>>=1;}temp=0xFE;for(i=0;i<8;i++) //8个流水灯依次全部点亮{P2=temp;delay(500); //调用延时函数temp<<=1;}temp=0x7F;for(i=0;i<8;i++) //8个流水灯依次反向全部点亮{P2=temp;delay(500); //调用延时函数temp>>=1;}}}void delay(uint a) //延时函数,毫秒级别{uint i;while(--a!=0) //执行空操作循环,其中a为形参,由调用该函数的函数语句提供值{for(i=0;i<125;i++);//执行当0加到125时,大约会用掉1ms 的时间}}。
基于51单片机的花样流水灯设计

摘要摘要计算机技术的飞速发展和提高,把我们带入了崭新的时代,现在,计算机的应用已经深入到千家万户。
单片微型计算机是制作在一块集成电路芯片上的计算机,简称单片机。
单片机在现在社会有着广泛的应用,小到人们的日常电子用品,大到航天飞机、宇宙飞船,上面都有单片机的广泛应用。
单片机具有体积小、功能强大、低功耗、应用广泛等特点。
以AT公司的芯片AT89C51 单片机来实现流水灯的设计。
本系统由单片机控制,I/O口接LED的负极,而LED的正极则直接与5V电源相连。
通过I/O口输出的低电平点亮LED灯。
因此可以通过控制单片机的I/O口的电平高低以达到控制LED,从而实现不同花样的流水灯的目的。
关键词:LED,单片机,高低电平变化ABSTRACTThe rapid development of computer technology and improving, bring us to the new era, now, the application of computer has been deep into the thousands. Single chip microcomputer is made on an integrated circuit chip computer, hereinafter referred to as single chip microcomputer. SCM has been widely used in the present society, small to People's Daily electronic products, big to aerospace aircraft, spacecraft, above has the wide application of single-chip microcomputer. SCM has small volume, powerful function, low power consumption, wide application, etc. AT the company's chip AT89C51 single-chip microcomputer to realize the water lamp design. This system controlled by single chip microcomputer, I/O ports connect the LED the cathode, and LED the anode is directly connected to 5V power supply. Through the I/O port output low level light leds. So you can single chip microcomputer control through the I/O ports to control LED, the level of high and low so as to realize the purpose of the different pattern of flowing water light.Key words:LED , MCU ,High and Low output leve目录第1章引言 (1)1.1 研究背景及意义 (1)1.2 国内外研究现状以及本系统的重点问题 (1)1.3 本文章节安排 (2)第2章系统设计方案论证 (3)2.1 控制器模块方案论证 (3)2.2 键盘模块方案 (4)2.3 电源模块方案 (4)第3章系统硬件设计方案 (5)3.1 系统设计框图 (5)3.2 硬件电路设计 (5)3.2.1 电源电路 (5)3.2.2 单片机89C52最小系统 (6)3.2.3 按键电路 (13)3.3.4 LED灯电路 (13)第4章程序设计及软件仿真 (15)4.1 软件设计框图 (15)4.2 软件开发平台选择 (15)4.3 软件系统功能模块 (16)4.3.1 初始化模块 (16)4.3.2 延时函数 (17)4.3.3 定时器控制模块 (17)4.3.4 键盘扫描模式 (17)4.3.5 LED灯输出控制模块 (18)4.4 程序调试仿真 (19)4.4.1 仿真平台介绍 (19)4.4.2 仿真测试 (19)第5章硬件调试 (21)5.1 硬件设计 (21)5.2 硬件调试 (21)5.2.1 下载功能调试 (21)5.2.2 LED电路测试 (21)5.2.3 模式选择功能调试 (22)5.2.4 速度加减功能调试 (22)5.2.5 复位电路调试 (22)5.2.6 稳定性测试 (22)总结 (23)致谢 (25)参考文献 (26)附录 (27)附录一:原理图 (27)附录二:硬件实物 (28)附录三:程序代码 (29)第1章引言第1章引言1.1 研究背景及意义现如今,随着集成化芯片的飞速发展,分立元件或数字逻辑电路正逐步被集成电路所取代,而单片机作为一种集成电路,其价格低廉,且可靠性强、控制简单但控制方法多样。
基于51单片机实现流水灯的若干种编程方法

基于51单片机实现流水灯的若干种编程方法易礼智【摘要】51单片机对流水灯的控制是进行单片机课程教学和单片机产品开发的一个重要案例。
本文以C语言的形式给出了6种不同编程方法,并分析了每种方法的实现过程,针对部分方法进行了拓展。
旨在为相关的理论教学和单片机产品的开发提供选择。
%The control of 51 Single-chip on the water light is an important case of single-chip teaching and its product development. Six different programming methods were given in the form of a C language, the realizing process of each method was explained and some of the methods were expanded to provide more choices for theory of teaching and the development of the51 Single-chip products.【期刊名称】《铜仁学院学报》【年(卷),期】2012(014)006【总页数】3页(P125-127)【关键词】单片机;流水灯;案例;编程方法;拓展【作者】易礼智【作者单位】湖南工程职业技术学院信息工程系,湖南长沙410151【正文语种】中文【中图分类】TP311.11.硬件组成本流水灯控制系统由电阻、发光二极管、单片机最小系统(proteus 仿真时省略电源、晶振、复位等电路)和必要的软件。
其具体硬件组成如图1 所示。
从硬件中可发现,从p1.0 输出低电平时D1 亮,p1.0输出高电平时D1 熄;同理,接在p1.1~p1.7 口的其他7 个LED 的点亮和熄灭的方法同D1。