双单片机控制流水灯(精)
单片机课程设计-单片机控制流水灯
郑州科技学院《单片机》课程设计题目单片机控制流水灯学生姓名 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的亮灭速度。
单片机-流水灯的程序
#include<reg51.h> sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit led4=P2^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void delay (unsigned char x);
其中void表示这 个函数执行完后 不返回任何数据。 ()内无任何东西, 所以这是个无参 数的函数。 Delayms是函数名。
1
2
3
4
5
6
2)带参数函数的用位定义实现流水灯(8位二极管循环点亮)
编程思路: a) 先点亮第一盏灯,延时点亮第二盏, 依次延时8盏灯全部点亮。 b) 当8盏灯全部点亮时,熄灭8盏灯。 c) 进入循环。
循环移动
循环左移 最高位移入最低位,其它依次向左移动一位。C语言中 没有专门的指令,通过移位指令和简单逻辑运算来实现循环左移,或直接利用C51库中自带的函数-crol-实现。
循环右移 最低位移入最高位,其它位依次向右移一位,C语言中没有专门的指令,通过移位指令与简单的逻辑运算可以实现循环右移,或专门利用C51库中自带函数-cror-实现
方法二:利用总线控制实现流水灯(8位二极管循环点亮)
相关知识 二进制和十六进制之间的相互转换
二进制
十六进制
二进制
十六进制
0000
0
0100
4
0001
1
0101
5
0010
2
0110
6
0011
3
0111
7
二进制
十六进制
二进制
单片机控制流水灯
程序框架设计
01
主程序框架
主程序是单片机程序的核心,负 责程序的启动、初始化、中断处 理等任务。
02
中断服务程序框架
03
功能模块框架
中断服务程序用于处理外部中断 事件,如按键按下、定时器溢出 等。
功能模块是实现特定功能的程序 块,如LED灯控制、定时器计数 等。
程序功能模块设计
LED灯控制模块
该模块负责控制LED灯的亮灭状态, 可以通过编程实现流水灯效果。
物联网技术的应用
未来,单片机可能会更多地应用于物联网领域, 与互联网结合,实现更广泛的控制和应用。
3
人工智能与单片机的结合
未来,人工智能技术可能会与单片机结合,实现 更智能的控制和应用。
THANKS
[ 感谢观看 ]
02
包括主程序和中断服务程序,主程序负责循环控制LED灯,中断
服务程序负责处理外部中断。
调试过程
03
通过串口调试工具或示波器等工具对程序进行调试,确保程序
正确运行。
实际运行效果展示
流水灯效果
通过单片机控制LED灯的亮灭,实现流水灯效果 。
速度控制
通过程序延时控制LED灯亮灭的时间间隔,实现 流水灯的速度变化。
硬件连接
将单片机与LED灯连接,通过GPIO口控制LED灯的亮灭。
控制逻辑
通过编写程序控制单片机GPIO口的输出,实现LED灯的顺序亮 灭,形成流水灯效果。
延时控制
通过程序延时控制LED灯亮灭的时间间隔,实现流水灯的速度变 化。
控制程序编写及调试
编程语言
01
使用C语言或汇编语言编写单片机程序。
程序结构
电源管理优化
采用高效的电源管理方案,降 低流水灯的能耗。
任务二 单片机控制流水灯
任务二 单片机控制流水灯
国家级“十一五”规划教 材
(3)短转移指令
SJMP rel;(PC)←(PC)+2,(PC)←(PC) +rel
指令中rel是一个有符号数偏移量,其范围为-128~+127,以补码 形式给出。若rel是正数,则向前转移;若rel是负数,则向后转移。 1)一条带有FEH偏移量的 存储器 SJMP指令,将实现无限循环。 –128 这是因为FEH是-2的补码,目 的地址=PC+2-2=PC,结果转 PC 80H 向自己,无限循环,一般在程 PC+1 rel 序用SJMP $来表示SJMP PC+2 0FEH。 +127 2)该指令中寻址方式称相对 寻址方式。
任务二 单片机控制流水灯
国家级“十一五”规划教 材
(3) 循环控制转移指令ห้องสมุดไป่ตู้
DJNZ Rn, rel ;(PC) ←(PC)+2, (Rn)←(Rn)-1 当(Rn)≠0时, (PC) ←(PC) +rel; 当(Rn)=0时, 程序顺序执行。 DJNZ direct,rel;(PC)←(PC)+3,(direct)←(direct)-1 当(direct)≠0时, (PC) ←(PC) +rel; 当(direct)=0时, 程序顺序执行。 执行本指令时,将第一个操作数减1后判断结果是否为0,若 为0,则终止循环程序段的执行,程序往下顺序执行;若不为0, 则转移到目的地址继续执行循环程序段。用两条指令可以构成 循环程序,循环次数就是第一个操作数的值。rel为相对偏移量。
LP0: MOV DPTR, #TAB ; 取表头地址 MOV A, R0 ADD A, R0 JNC LP1 INC DPH ; R0内容乘以2 ; 无进位转移 ; 加进位位
单片机控制LED流水灯从中间向两边
单片机控制LED流水灯从中间向两边,从两边向中间这个就是把先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这个程序实现的应该是这样的先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动;再从中间往两边流动;#include< reg52.h>#include< intrins.h>#define uint unsigned int#define uchar unsigned charvoid delay();void main(){ uchar temp,temp1,temp2,a,b;P3=0xff;while(1){ for(b=3;b>0;b--){ temp=0xaa;P1=temp;delay();temp=0x55;P1=temp;delay();}for(a=3;a>0;a--){ temp=0xfe;for(b=7;b>0;b--){ P1=temp;temp=_crol_(temp,1);delay();P1=temp;delay();}}temp1=0xfe;temp2=0x7f;for(a=8;a>0;a--){temp=temp1&temp2;P1=temp;delay();temp1=_crol_(temp1,1);temp2=_cror_(temp2,1);}}void delay(){ uint a,b;for(a=100;a>0;a--)for(b=600;b>0;b--);}程序实现的第2种方法:下面是 51hei单片机12群里的朋友木信大侠提出的,实现单片机led流水灯从中间向两边,从两边向中间的效果,下面的程序就是实现思路,这个是直接调用,应该明白吧,数组那其实也可以改一下,如采用一维数组,在多次调用;也可以采用二维数组。
双灯点亮循环控制流水灯设计
一、系统功能要求设计以AT89C51为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89C51单片机控制8个发光二极管发光,实现亮点以12HZ频率又高到低位两两循环移动。
通过PROTEUS软件设计、仿真,并能从中掌握通过软件控制发光二极管的思路和技巧。
二、系统硬件电路设计(一)设计思路本系统电路由四部分组成:时钟电路、复位电路、输出部分、89C51芯片首先介绍图1其中主要部分电路功能如下图所示:①时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过19脚、18脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。
电路中的C1、C2 一般取30pF左右,而晶体振荡器的频率范围通常是1.2-12MHZ,晶体振荡器的频率越高,震荡频率就越高。
②本部分电路起上电复位的作用。
③输出部分采用红、绿、蓝、黄四种颜色的二极管,让流水灯在移动的时候色彩鲜明、便于观察,该系统采用8个发光二极管,两两从高位到地位流水移动。
RN1排阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
④在设计图中,89C51芯片是核心,P0,P1,P2,P3口均可以作为I/O口使用。
本电路中使用P1口作为输出口。
(二)单片机原理8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
双灯点亮循环控制流水灯设计 [文档在线提供]
课程设计报告书设计题目:双灯点亮循环控制流水灯设计课程名称:单片机原理与应用系部:专业:班级:组别:姓名:学号:成绩:2008年 6 月 20 日一、系统功能要求设计以AT89C51为核心并用它来控制发光二极管双灯点亮循环的实验装置,用AT89C51单片机控制8个发光二极管发光,实现亮点以12HZ频率又高到低位两两循环移动。
通过PROTEUS软件设计、仿真,并能从中掌握通过软件控制发光二极管的思路和技巧。
二、系统硬件电路设计(一)设计思路本系统电路由四部分组成:时钟电路、复位电路、输出部分、89C51芯片首先介绍一下我设计的电路图,如图1所示:图1其中主要部分电路功能如下图所示:①时钟电路用于产生单片机工作时所需的时钟信号,在芯片的外部通过19脚、18脚接晶体振荡器和微调电容,形成反馈电路,构成一个稳定的自激振荡器。
电路中的C1、C2 一般取30pF左右,而晶体振荡器的频率范围通常是1.2-12MHZ,晶体振荡器的频率越高,震荡频率就越高。
②本部分电路起上电复位的作用。
③输出部分采用红、绿、蓝、黄四种颜色的二极管,让流水灯在移动的时候色彩鲜明、便于观察,该系统采用8个发光二极管,两两从高位到地位流水移动。
RN1排阻的作用是保护二极管,向它提供较小的电流,防止二极管因为电流过大而烧毁。
④在设计图中,89C51芯片是核心,P0,P1,P2,P3口均可以作为I/O口使用。
本电路中使用P1口作为输出口。
(二)单片机原理8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:·中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
任务二 单片机控制流水灯PPT文档共148页
6、纪律是自由的第一条件。——黑格 尔 7、纪律是集体的面貌,集体的声音, 集体的 动作, 集体 表情, 集体的 信念。 ——马 卡连柯
8、我们现在必须完全保持党的纪律, 否则一 切都会 陷入污 泥中。 ——马 克思 9、学校没有纪律便如磨坊没有水。— —夸美 纽斯
10、一个人应该:活泼而守纪律,天 真而不 幼稚, 勇敢而 鲁莽, 倔强而 有原则 ,热情 而不冲 动,乐 观而不 盲目。 ——马 克思
31、只有永远躺在泥坑里的人,才不会再掉进坑里。——黑格尔 32、希望的灯一旦熄灭,生活刹那间变成了一片黑暗。——普列姆昌德 33、希望是人生的乳母。——科策布 34、形成天才的决定因素应该是勤奋。——郭沫若 35、学到很多东西的诀窍,就是一下子不要学很多。——洛克
键控双向流水灯PPT课件
2021/3/12
12
2.下降沿触发方式键控流水灯的程序
FX BIT 00H ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 0013H LJMP INT1 ORG 0030H
;位地址00H命名为FX
;转移到主程序 ;外中断0服务程序入口 ;转移到外中断0服务程序 ;外中断1服务程序入口 ;转移到外中断1服务程序
省 略,
;4条清零标志位的指令可以
SETB EX0 ;开外中断0
SETB EX1 ;开外中断1
SETB EA
;开总中断
MOV A,#0FEH ;显示代码初值送累加器 A
2021/3/12
10
K0:MOV P0,A 灭
;把显示代码传送到P0口输 出,控制LED 亮
JB FX,K;FX=1(00H位为1),移至K1, 执行 右移
LJMP INT1
;转移到外中断1服务程序
2O02R1/3G/12 0030H
9
MAIN: MOV SP,#5FH ;设置堆栈栈底
CLR IT0
;设置外中断0为低电平触发
CLR IT1
;设置外中断1为低电平触发
CLR PX0
;设置外中断0为低优先级
CLR PX1
;设置外中断1为低优先级,由
于复位时被清零,以上
SETB EX0 ;开外中断0
SETB EX1 ;开外中断1
SETB EA ;开总中断
样。
;*******
以下和程序(1)完全一
MOV A,#0FEH;显示代码初值送累加器A
2021/3/12
14
K0:MOV P0,A ;把显示代码传送到P0口输出, 控制LED亮灭
双单片机控制流水灯精
VCDII M I IRif R2 R3 R4 R5 R6 R7 R0 £Xi 23 2S zffi 23 趣rawoaP02ftD2RIMIHXTSLZPCLSHD6町诚 叩抽PKSM?陀评■立ALEPZWiH D 9.PZSfflU PZT^WF3DHXD VIU F3.1TWDffi.1 Flil^inT f bJ psanfllT fliJ p?irrn ■ iiA P3ST1• 13 wewr ■ iM PJT^D -■ DJI>XTM1FDUn&n ELZ恂l 神 injwozFD.WMJiHffTPD 酣 DE FD.TN?J2HAE 理删KiEn P23A1 ll ME" 吞*2^15PWPI .I P3UHXD F3.VTXD FUF351MT3Pd.d P3.-LTD I3^T1町嗣厂 wr>rrrpi T◎尸疗•浪不筒聯岁枚*摩院 車带枇耒用黑术案例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 的状态,以控制波特率是否加倍。
单片机控制流水灯
•作业:
1 、请同时点亮单片机上的第 1、 3 、 5 个灯 。 2、请设计一个交通信号灯。
单片机应用技术 C51应用培训
Thanks!
//11111110 ,L0亮其余全灭 //11111101 ,L1亮其余全灭 //11111011 ,L2亮其余全灭 //11110111 ,L3亮其余全灭 //11101111 ,L4亮其余全灭 //11011111 ,L5亮其余全灭 //10111111 ,L6亮其余全灭 //01111111 ,L7亮其余全灭
单片机应用技术 C51应用培训
规律总结:
从表格中我们可以看出8个单色灯,从上到下
分别是L -L ,我们首先应该点亮L ,然后熄灭L ;接
0 7 0 0
着点亮L ,然后熄灭L ,以此类推,最后点亮L ,
1 1 7
再熄灭L ,周而复使继续下去。
7
单片机应用技术 C51应用培训
赋值结果:
我们可以用二进制来控制8个LED。 第一个灯亮:P1=0xFE;(即P1=1111 第二个灯亮:P1=0xFD; (即P1=1111 第三个灯亮:P1=0xFB; (即P1=1111 第四个灯亮:P1=0xF7; (即P1=1111 第五个灯亮:P1=0xEF; (即P1=1110 第六个灯亮:P1=0xDF; (即P1=1101 第七个灯亮:P1=0xBF; (即P1=1011 第八个灯亮:P1=0x7F; (即P1=0111
void main() { while(1){ P1 = 0xFE; delay(20); P1 = 0xFD; delay(20); P1 = 0xFB; delay(20); P1 = 0xF7; delay(20); P1 = 0xEF; delay(20); P1 = 0xDF; delay(20); P1 = 0xBF; delay(20); P1 = 0x7F; delay(20); } }
- 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;
}。