双单片机控制流水灯(精)
单片机课程设计-单片机控制流水灯

郑州科技学院《单片机》课程设计题目单片机控制流水灯学生姓名 XXX专业班级电气工程及其自动化X班学号 201XXXXXX院(系)电气工程学院指导教师 XX 完成时间 2015年XX 月XX日绪论当今时代是一个新技术层出不穷,不断更新的时代,在电子领域尤其是电气自动化智能系统控制领域,传统的电子元器件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所代替。
目前,一个学习以及对单片机的应用高潮正在工厂、学校及企事业单位大规模地兴起。
本次课程设计用AT89C52单片机自制了一款简易的花样流水灯,介绍了其硬件电路,仿真电路及软件编程方法,在实践中了解单片机的自动控制功能和各个管脚的作用。
该设计具有实际意义,可以在广告业、媒体宣传、装饰业等领域得到广泛应用。
学习单片机的最有效方法就是理论与实践相结合,现在我设计单片机控制流水灯,需要更深的去了解单片机的很多功能和作用,努力的去查找资料,才能把它有效地利用到电路中发挥它的作用。
本课题将以发光二极管作为发光器件,对单片机进行程序设计进而实现自动控制,实现一个简易的花样流水灯设计目录1.课程设计的目的 (4)2.设计的目的和要求 (4)3.设计的方案与论证 (4)4.元器件的介绍 (5)4.1单片机 (5)5.硬件电路设计 (7)5.1控制电路 (7)5.2时钟电路 (9)5.3复位电路 (10)6.软件电路设计 (11)7.硬件的安装与调试 (12)8.总结 (12)参考文献 (13)附录1:总体电路原理图 (14)附录2:实物图 (15)附录3:元器件清单 (16)附录4:源程序 (17)1.课程设计的目的1、理论与实践相结合,更好的运用自己学过的知识,提高自己动手操作的能力。
2、提高自己自主学习的能力,通过查阅相关资料,进而提高自己的知识储备。
3、可以提高自己的动手能力,提前为以后走向社会,适应社会而做准备。
4、在自己动手的同时,遇到不懂的可以请教老师,可以查阅资料,也可以通过自己的思考解决问题,这些都可以提高自己对理论知识的理解和对课外知识的扩展,从而提高以后工作的社会竞争力。
单片机并口简单应用(流水灯)实验报告

实验一单片机并口简单应用(流水灯)一、实验目的1、认识单片机汇编语言程序的基本构造2、认识单片机汇编语言程序的设计和调试方法3、掌握次序控制程序的简单编程二、实验仪器单片机开发板、万利仿真机、稳压电源、计算机三、实验原理1、流水灯硬件电路如图 4-1 所示,流水灯硬件电路由移位存放器 74LS164、功能选择开关 J502、二极管、三极管、单片机并口( P0)、限流电阻等构成。
发光二极管连结成共阳极构造。
发光二极管点亮的条件是:阳极接高电平、各阴极接低电平。
所以,通过程序控制 74LS164的 Q0 端。
Q0 端输出 0,公共端阳极就接成高电平,而后再按必定规则从 P0 口输出数据,发光二极管就会点亮。
图4-1 流水灯电路图2、单片机流水灯程序设计由上图可知,发光二极管重点亮,需要先把 J502的 2、3 脚相连,三极管 Q500导通,而后从 P0 口输出数据。
(1)控制三极管导通程序控制三极管有两种方法,第一种:在 74LS164的第 8 脚产生一个正脉冲,此时 1 脚为 0,三极管就导通;为 1,三极管就截止。
第二种:在单片机 IO 模拟 74LS164时序,一次输出一个字节,只需 Q0=0 即可控制三极管开通。
为 1,三极管截止。
两种方法的程序流程如图4-2 所示。
三极管导三极管导DIN=0,CLK=0,输出 8 位DIN=0输出数据 =07FH(最高位为CLK=0输出数据左移一位,把移CLK=1出的位送到 DIN,CLK产生CLK=0输出数据位数减 1返回输出达成三极管导图4-2 流水灯位选信号控制(2)产生流水灯成效程序三极管导通后,就能够从 P0 口输出数据控制发光二极管。
P0 口输出数据既能够编写程序逐个输出,也能够将输出数据序列定义在储存器中,而后用读程序储存器指令逐个拿出并输出到 P0 口。
程序流程图如图4-3 所示。
流水灯流水灯P0 口输出偏移地点为 8延时秒从程序储存器中拿出偏移地点的数据P0 口输出延时秒,偏移地点计数减 1延时秒取数达成N。
双向可调流水灯功能

双向可调流水灯1、 功能(1) 双向彩灯控制电路,能使彩灯的流向可以变化。
可以正向流水,也可以逆向流水。
K1打在高电平时,按住S1不放,LED 灯从LED1至LED8依次熄灭,形成从上到下的流水效果。
K1打在高电平时,按住S2不放,LED 灯从LED8至LED1依次熄灭,形成从下到上的流水效果。
(2) 流水速度可调,调节RP 时,改变555输出频率,则流水灯的的亮灭速度加快或减慢。
(3) 初始灯灭的位置可预置。
当K1拨到低电平时,4位拨码开关S3的1、2、3位对应二进制的低三位,对应十进制的0-7,代表8个LED 灯,例如S3的第三位都拨到0,则对应000,即最后一个灯亮。
若111,则对应LED1亮,即第一个灯亮。
二、原理框图基本原理设计框图如下图(1)所示:图(1)设计框图电路工作原理电路图如图所示,由脉冲信号发生器(555)、四位二进制可加减计数器(74LS193)、3~8线的计数译码器(74LS138)等器件组成。
脉冲信号发生器输出的脉冲信号,输入到加减计数器的输入端上;计数结果输出给计数译码器74LS138。
在74LS138的8路输出端上接有8只发光二极管,用来显示输出结果。
计数译码器可以按照不同的输入值,把8路输出端之中对应的一个输出端变成高电平,推动8只发光二极管轮流点亮。
(一)电路检修(本项分2小项,每小项7分,共14分)要求:在已经给出的《双向可调流水灯电路板》上,已经设置了两个故障。
请您根据提供的相关原理图(附图)加以排除,故障排除后电路才能正常工作(可参看本项目的(一)电路功能)。
并请完成以下的电路检修报告。
1.故障一电路检修报告2.故障二电路检修报告(二)电路功能(本项4分)在您已经维修好的线路板,能实现如下功能:在线路板P1端口接上5V电源,双向彩灯控制电路工作正常1.能使彩灯的流向可以变化,可以控制正向流水,也可以逆向流水2.还能够控制灯流动的速度。
(三)电路调整与测量(共10分)1.调试RP,使流水灯的流动速度可变。
手把手教你单片机流水灯实验

手把手教你单片机流水灯实验(详解)每当夜幕降临,我们可以看到大街各式各样广告牌上漂亮的霓虹灯,看起来令人赏心悦目,为夜幕中的城市增添了不少亮丽色彩。
其实这些霓虹灯的工作原理和单片机流水灯是一样的,只不过霓虹灯的花样更多,看起来更漂亮一些。
这一课我们就结合S51增强型单片机实验板、ISP 编程器来手把手教你详细学习单片机的流水灯实验。
首先介绍实验的硬件设备:S51增强型单片机实验板+ISP编程器图1:S51增强型单片机实验板图2:ISP编程器套件S51增强型单片机实验板上有8个高亮度发光二极管(见图1所示),可以用来做单片机流水灯、跑马灯。
等实验,电路原理图见下图3。
图3从原理图可以看出,如果我们想让接在P1.0口的LED1亮起来,那么我们只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平就可以;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭方法方法同LED1。
因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
实现8个LED流水灯程序用中文表示为:P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高、P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。
从上面中文表示看来实现单片机流水灯很简单,但是我们不能说P1.0你变低,它就变低了。
因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。
我们又怎样来使单片机按我们的意思去工作呢?为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。
今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译” 成单片机所需的二进制代码,然后交给单片机去执行。
(完整版)单片机控制的花样流水灯设计_毕业设计

目录引言 (2)1. 绪论 (3)2 相关元件及电路设计 (3)2.1 AT89C52芯片功能特性及应用 (3)2.2 AT89C5252单片机 (5)2.2.1 AT89C52单片机的硬件结构 (5)2.2.2主要性能参数 (6)2.2.3 AT89C52管脚说明 (7)2.2.4 外部总线构成 (12)2.3 单片机时钟电路及时钟时序单位 (13)2.4单片机的复位 (16)2.4.1 复位状态 (16)2.4.2 复位电路 (16)3.Keil C51开发系统基本知识Keil C51开发系统基本知识 (18)4 电路及程序设计 (20)4.1 电路原理图设计 (20)总结 (22)参考文献 (22)附录 (23)引言单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
随着电子技术和微机计算机的迅速发展,单片机的档次不断提高,其应用领域也在不断的扩大,已在工业控制、尖端科学、智能仪器仪表、日用家电、汽车电子系统、办公自动化设备、个人信息终端及通信产品中得到了广泛的应用,成为现代电子系统中最重要的智能化的核心部件。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和IO接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。
单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。
单片机控制流水灯

单片机应用技术
1
28
2
27
4K
1
40
2
39
3
38
4
37
3
26
4
25
5
24
6 7
RAM
23 22
8 6264 21
9
20
10
19
11
18
12
17
13
16
14
15
5
36
存 储
6 7
片80内31
35 34
8 R8O75M1 33
9
32
器
10 11
8051
31 30
12
29
13 89C51 28
14 片内 27
软件设计
单片机应用技术
思索一下程序怎样编写,首先看电路图中旳8个单色灯, 从上到下分别是L0~L7,我们首先应该点亮L0,然后熄 灭L0;接着点亮L1,然后熄灭L1,以此类推,最终点亮 L7,再熄灭L7,周而复使继续下去。
单片机应用技术
详细程序如下:
#include “reg51.h”
void delay()
0FFFH
0FFEH ...
002BH
中断5
0023H
中断4
001BH
中断3
0013H
中断2
000BH
(PC)
0003H 0002H 0001H 0000H
中断1
8位
串行口中断
定时器1中断
外部中断1
定时器0中断
外部中断0 0000H是程序执行旳起始单元, 在这三个单元存储一条 无条件转移指令
程序存储器资源分布
单片机-流水灯的程序

单片机-流水灯的程序流水灯是学习单片机基础知识不可或缺的一个实验,通过流水灯的实现可以掌握单片机 I/O 口的使用、定时器中断的使用以及掌握基本的程序流程控制语句。
本文将介绍流水灯基本概念及实现步骤。
流水灯基本概念流水灯是由多个 LED 灯组成的,每个灯都有一个独立的控制信号,通过按照一定的模式控制信号的输出,就可以实现流水灯的效果。
在单片机中,可以通过将多个 I/O 口作为流水灯中的 LED 控制信号输入口,实现流水灯的效果。
流水灯程序实现步骤在单片机中实现流水灯的程序主要包括以下几个步骤:1.通过 I/O 口控制单片机的 GPIO 端口输出。
2.在控制 GPIO 端口输出时,需要注意端口的方向设置与输出方式的选择。
3.通过控制 GPIO 端口的输出,可以实现 LED 灯的亮灭控制。
4.在亮灭控制中,需要注意定时器中断的使用,以保证流水灯的优美效果。
5.在程序编写的同时,需要考虑到不同型号单片机 I/O 口和定时器的不同特性。
6.需要根据不同的实验要求和要达到的效果,编写相应的程序。
流水灯程序的实现步骤详解下面,将详细介绍流水灯程序的实现步骤:1.首先,需要定义 I/O 口与对应的 LED 灯的对应关系。
一般情况下,LED 灯是连接在单片机的某一 I/O 口上。
我们需要将 I/O 口与 LED 灯的对应关系进行定义,以便在编写程序时可以通过 I/O 口控制 LED 灯的亮灭。
2.接着,需要设置 I/O 口的方向和输出方式。
在单片机的 I/O 口中,默认输入方向,如果要将 I/O 口设置为输出方向,则需要通过软件设置 I/O 口相应的设置寄存器。
同时,需要设置输出方式为推挽输出或是开漏输出,并配置相应的电平。
3.设置定时器。
在流水灯程序中,需通过定时器中断控制 LED 灯的亮灭模式。
需要设置定时器的时钟源、预分频系数、计数值和比较值等参数,以实现不同的滚动速度和亮灭模式。
4.定义中断函数。
中断函数需要根据定时器的计时值进行 LED 灯亮灭的控制操作。
单片机控制流水灯程序汇编语言

单片机控制流水灯程序汇编语言随着科技的发展和微电子技术的迅猛进步,单片机逐渐成为智能系统与设备中不可或缺的组成部分。
而流水灯作为最基础的应用之一,不仅在学习过程中具有重要意义,同时也在实际工程中发挥着重要作用。
本文将介绍如何使用汇编语言编写单片机控制流水灯程序,并详细讲解其运行原理和实现方法。
一、流水灯原理流水灯是一种由多个LED组成的灯条或灯链,在按照一定次序依次点亮和熄灭的灯光效果。
其原理基于单片机通过控制输出口的电平高低来控制LED的亮灭状态,实现灯光的变化和移动效果。
二、程序设计方法1. 初始化设置在编写流水灯程序之前,我们首先要了解单片机的相应接口和寄存器的使用方法。
在程序开始时,需要进行相应的初始化设置,包括将数据方向寄存器和端口寄存器设置为输出,并将初始值赋予输出口电平。
例如,对于51单片机,可以使用以下汇编语言代码进行初始化设置:MOV P1, #00H ;将P1端口的输出电平置为低电平MOV P1M1, #FFH ;将P1端口的数据方向设置为输出MOV P1M0, #00H2. 主程序在流水灯程序中,需要编写主程序来实现流水灯的效果。
主程序中使用循环结构控制LED的亮灭状态和移动效果。
例如,以下是一个简单的汇编语言代码,实现了由4个LED组成的流水灯的效果:MOV R0, #F0H ;初始亮灭状态MOV R1, #00H ;初始LED位置LOOP: ;循环MOV P1, R0 ;将亮灭状态赋予P1端口的输出电平ACALL DELAY ;延时,形成流水灯效果MOV A, R1SUBB A, #01H ;将LED位置减一MOV R1, AJZ CHANGE ;当LED位置为零时,改变亮灭状态MOV R0, R0SJMP LOOP ;继续循环CHANGE: ;改变亮灭状态CPL R0 ;对亮灭状态进行取反操作SJMP LOOP ;继续循环3. 延时函数为了实现流水灯的移动效果,需要设置一个合适的延时时间来控制LED的亮灭速度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
案例8 双单片机通信控制流水灯
用串行工作方式进行单片机之间的通信,电路图如下图所示。
两个89S51单片机通过串行口进行通信,设置U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,U1的RXD接U2的TXD,U1的TXD接U2的RXD,U2接8个发光二极管,要求由U1向U2发送数据,使8个发光二极管按从左到右逐一点亮的流水灯效果。
MCS-51单片机之间的串行异步通信
1.串行口的编程串行口需初始化后,才能完成数据的输入、输出。
其初始化过程如下:
(1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。
(2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。
(3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。
(4)设定SMOD的状态,以控制波特率是否加倍。
(5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。
2.案例分析由于串行口通信时传输的“0”或者“1”是通过相对于“地”的
电压区分的,因此使用串行口通信时,必须将双方的“地”线相连以使其具有相同的电压参考点。
需要注意的是,异步通信时两个单片机的串行口波特率必须是一样的。
由于U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,因此二者的串行口初始化程序不完全一样。
假设使用240bit/s的波特率,使用串行工作方式1,Tl使用自动装载的方式2,则Ul的TH1应初始化为136,U2的TH1应初始化为16。
对应的程序完成如下功能:Ul和U2进行双工串行通信,Ul给U2循环发送流水灯控制字,U2收到控制字后送到P0口,点亮相应发光二极管,双方都用中断方式进行收发。
(1)单片机U1的源程序
#include<reg51.h>
unsigned char sdata=0xfe;
void isr_uart();
void main()
{
TMOD=0X20;
TH1=136;
TL1=136;
SCON=0x40;
PCON=0;
TR1=1;
EA=1;ES=1;
SBUF=sdata;
while(1);
}
void isr_uart() interrupt 4
{
sdata<<=1;
sdata |=1;
if(sdata==0xff) sdata=0xfe; SBUF=sdata;TI=0;
}
(2)单片机U2的源程序#include<reg51.h> unsigned char sdata;
void isr_uart();
void main()
{
TMOD=0X20;
TH1=16;
TL1=16;
SCON=0X50;
PCON=0;
TR1=1;
EA=1;ES=1;
while(1) ;
}
void isr_uart() interrupt 4 {
RI=0;sdata=SBUF;
P0=sdata;
}。