理论教育 单片机LED单灯亮(灭)的安装与调试

单片机LED单灯亮(灭)的安装与调试

时间:2023-11-08 理论教育 版权反馈
【摘要】:图2-2 单灯控制电路实物图任务实施一、任务分析本任务要求编写程序,并下载到开发板单片机中,完成对LED灯亮(灭)控制。本任务利用510Ω电阻限制发光二极管电流,P2.0输出信号控制LED亮(灭)。

单片机LED单灯亮(灭)的安装与调试

任务引入

在我们给手机充电时,看到指示灯亮,当我们的手机充满电时,充电指示灯自动熄灭;当我们开空调时,指示灯亮给我们提示压缩机工作,当室内温度到达设定温度时,压缩机指示灯自动熄灭;当我们用电饭煲做饭时,加热工作灯提示,当处于保温状态时,加热指示灯自动熄灭。它们的实现不但有相关的硬件支持,也是通过单片机软件控制实现的,如何控制LED灯的亮或灭呢?今天我们一起解开这魔幻奥秘吧!

任务目标

知识目标:1.熟悉十进制二进制十六进制八进制等计数方式和相互转换。

2.掌握发光二极管工作原理和检测方法。

3.了解单片机各个接口工作特性。

4.掌握单片机亮(灭)的相关指令。

技能目标:1.能使用相关仪表检测应用元器件的性能。

2.会各电子元器件的焊接方法。

3.能编写单灯亮(灭)的程序。

4.会调试单片机。

情感目标:1.在制作任务过程中养成严谨的工作态度。

2.在任务实施过程中加强沟通,团队合作。

任务描述

1.利用开发板,设计单灯控制程序,绘制单灯控制流程图

2.对单灯控制电路相关元器件进行检测和安装,并完成联机调试,如图2-2所示。

978-7-111-46712-0-Chapter02-2.jpg

图2-2 单灯控制电路实物图

任务实施

一、任务分析

本任务要求编写程序,并下载到开发板单片机中,完成对LED灯亮(灭)控制。本任务利用510Ω电阻限制发光二极管电流,P2.0输出信号控制LED亮(灭)。

二、画程序流程图

978-7-111-46712-0-Chapter02-3.jpg

图2-3 程序流程图

根据任务画出程序流程图,如图2-3所示。

三、编写程序

根据流程图和相关指令编写程序。

978-7-111-46712-0-Chapter02-4.jpg

978-7-111-46712-0-Chapter02-5.jpg

四、硬件制作

1.器材准备

单个LED亮(灭)电路是AT89S52单片机的控制较为简单的电路,它包含有:基本电路、单灯工作电路。

1)元器件表如表2-1所示。

2-1 元器件表

978-7-111-46712-0-Chapter02-6.jpg

2)单灯控制电路如图2-4所示。

978-7-111-46712-0-Chapter02-7.jpg

图2-4 单灯控制电路

2.工具准备

安装基本电路的焊接工具有:电烙铁、镊子、焊锡、松香等,如图1-58所示。

3.制作要求

(1)按元器件表清点所需安装元器件

(2)检测所有元器件的特性、好坏

(3)焊接要求

1)焊接元件整体美观、分布均匀、焊接过程先焊接大件,再焊接小件。

2)焊接过程中严格按照电路施工,注重电源的正负极。

3)要求焊接的焊点光滑、饱满、无毛刺,导电性能良好。

4)焊接整体应居中部以底座分布,为以后的电路焊接调试预留布置地方。

4.电路安装

五、联机调试

1)将编写程序输入Keil中,进行程序检查,编译及下载。

2)将hex文件通过双龙下载器烧入单片机并调试。

知识链接

一、数制的转换

(1)各种进制

数制:用一组固定的数字、一套统一的规则表示数的进位制,叫数制。例如:X进制,逢X进一。

种类:十进制、二进制、十六进制、八进制等。

1)十进制

十进制:逢十进一。

基数:0、1、2、3、4、5、6、7、8、9。

2)二进制

二进制:逢二进一。

基数:0、1。

3)十六进制

十六进制:逢十六进一。

基数:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。

4)八进制

八进制:逢八进一。

基数:0、1、2、3、4、5、6、7。

(2)二进制使用

在单片机中,广泛采用的是只有“0”和“1”两个基本符号组成的二进制数,而不使用人们习惯的十进制数,原因如下。

1)二进制数在物理上最容易实现。例如,可以只用高、低两个电平表示“1”和“0”,也可以用脉冲的有无或者脉冲的正负极性表示它们。

2)二进制数用来表示的二进制数的编码、计数、加减运算规则简单。

3)二进制数的两个符号“1”和“0”正好与逻辑命题的两个值“是”和“否”或称“真”和“假”相对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利的条件。

(3)八进制数和十六进制数的使用

二进制数书写冗长、易错、难记,而十进制数与二进制数之间的转换过程复杂,所以一般用十六进制数或八进制数作为二进制数的缩写。而在单片机中,最常用的就是十六进制数。

(4)认识各种数制的关系

各种数制的关系如表2-2所示。

2-2 各种数制的关系

978-7-111-46712-0-Chapter02-8.jpg

(5)进制的转换

1)二进制数转换为十进制数。

978-7-111-46712-0-Chapter02-9.jpg

2)八进制数转换为十进制数。

978-7-111-46712-0-Chapter02-10.jpg

3)十六进制数转换为十进制数。

978-7-111-46712-0-Chapter02-11.jpg

4)十进制数转换为二进制数。除二取余,先余为低,后余为高。

978-7-111-46712-0-Chapter02-12.jpg

5)十进制数转换为十六进制数。除十六取余,先余为低,后余为高。

978-7-111-46712-0-Chapter02-13.jpg(www.daowen.com)

6)二进制数与八进制数间的转换。例如,把(10100101.01011101)2转换为八进制数。

由于八进制的1位数相当于二进制的3位数,所以只要将二进制数从小数点开始,整数部分从右向左每3位数一组,小数部分从左向右每3位数一组,最后不足3位补零(无论向左还是向右)。

978-7-111-46712-0-Chapter02-14.jpg

7)二进制数与十六进制数间的转换。由于十六进制的1位数相当于二进制的4位数,所以只要将二进制数从小数点开始,整数部分从右向左每4位数一组,小数部分从左向右每4位数一组,最后不足4位补零(无论向左还是向右)。

978-7-111-46712-0-Chapter02-15.jpg

二、单片机的I/O口

AT89S52共有32条并行双向I/O口,分成4组输入/输出端口,分别记作P0、P1、P2和P3。每个端口均由数据输入缓冲器、数据输出驱动及锁存器等组成。4个端口在结构和特性上是基本相同的,但是又各有特点。

1.P0

P0口为8位、可寻址的I/O端口,以AT89S52为例,P0口分8个引脚单元及8位,分别表示P0.1~P0.7,如图2-5a所示为P0口某位内部电路结构,电路中包含有一个数据输出锁存器、两个三态数据输入缓冲器、一个数据输出的驱动电路和一个输出控制电路。当对P0口进行写操作时,由锁存器和驱动电路构成数据输出通路。由于通路中已有输出锁存器,因此数据输出时可以与外设直接连接,而不需再加数据锁存电路。

当P0口作为一般的I/O输出时,由于输出电路是漏极开路电路,因此必须外接1kΩ上拉电阻才能有高电平输出;当P0口作为一般的I/O输入时,必须先向电路中的锁存器写入1,使FET截止,以避免锁存器为0状态时对引脚读入的干扰。

978-7-111-46712-0-Chapter02-16.jpg

图2-5 P0~P3口内部电路结构

2.P1

P1口是一个准双向口,通常作为通用I/O口使用,在电路结构上要比P0简单,当它作为输出口使用时,能向外提供推拉电流而无需外接上拉电阻;当它作为输入口使用时,同样也需要向锁存器写入1,使输出驱动电路的FET截止,P1口某位内部电路结构如图2-5b所示。

3.P2

P2口也是一个准双向口,如图2-5c所示,可以作为通用I/O口使用。由于P2口有时要作为地址线使用,因此它比P1口多了一个多路开关MUX。当它作为高位地址线使用时,MUX接通地址信号;当它作为通用I/O口使用时,MUX接通锁存器,使内部总线与其接通。当它作为输出口使用时,无须外接上拉电阻;作为输入口使用时,应区分读引脚和读锁存器。读引脚时,应先向锁存器写1。

4.P3

P3口是一个双功能口,如图2-5d所示,也是一个准双向口,既可以作为通用I/O口使用,又具有第二功能。当P3口作为通用输出口时,第二功能输出应保持高电平,与非门开通,数据可顺利地从锁存器到输出端引脚上。当作为第二功能信号输出时,该位的锁存器Q端应置1,使与门对第二功能信号的输出打开,从而实现第二功能信号的输出。当P3口作为通用输入口,或第二功能输入的信号引脚使用时,输出电路的锁存器Q端和第二功能输出信号线都应置1。当P3口的某些端口线作为第二功能用时,就不能再作为通用I/O口使用了,其他未使用的端口线仍可作为通用I/O端口使用。相反,若P3口作为通用I/O口使用,就不能再作为第二功能使用了。P3口第二功能如表2-3所示。

2-3 P3口第二功能

978-7-111-46712-0-Chapter02-17.jpg

三、LED灯

发光二极管(LED)是由镓(Ga)与砷(As)、磷(P)的化合物制成的二极管,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,当电子与空穴复合时能辐射出可见光,把电能转化成光能。

发光二极管与普通二极管一样是由一个PN结组成的,也具有单向导电性。当给发光二极管的A极(阳极)、K极(阴极)加上正向电压后,产生荧光。磷砷化镓二极管发红光,磷化镓二极管发绿光碳化硅二极管发黄光。LED的实物图及符号如图2-6所示。

978-7-111-46712-0-Chapter02-18.jpg

图2-6 LED的实物图及符号

LED耗电非常低,一般来说LED的工作电压是2~3.6V,工作电流是0.02~0.03A。这就是说它消耗的电不超过0.1W。在恰当的电流和电压下,LED的使用寿命可达10万小时。并具有高亮度、低热量特点,在工业、民用、市政中广泛使用。

随着流过LED的电流的增加,LED的亮度也会增加,但LED的寿命也会相应缩短,因此电流以10~20mA为宜。MCS-51系列单片机的I/O口都是漏极开路的输出,想从P1、P2和P3流出10~20mA的电流会比较困难,但如果从外面流入单片机的I/O口,电流就可以大些。根据单片机的内部工作控制特性,P1、P2、P3口外部连接LED时,LED应连接电源的正极,而不接电源的负极。这样能更有效控制LED。但特别注意在用P0口控制LED时,应外接上拉电阻,LED控制示意图如图2-7所示。

978-7-111-46712-0-Chapter02-19.jpg

图2-7 LED控制示意图

四、指令介绍

MCS-51系列单片机共有111条汇编指令,其中数据传送指令28条,算数运算指令24条,逻辑运算指令25条,控制转移类22条,位操作指令12条。它们都有与之相对应的机器码,并由机器在汇编时翻译成目标代码,以供CPU执行,除此之外,还定义了8条伪指令。伪指令和CPU可执行指令的形式类似,但不参加汇编的机器代码的生成,因此伪指令不被CPU执行,在汇编和机器代码执行中起着控制信息作用。MCS-51系列单片机指令的格式由标号操作码、操作数、注释字段组成,格式如下:

【标号:】操作码 【第一操作数】,【第二操作数】,【第三操作数】;【注释】

标号——表示该指令位置的符号地址,它是以英文字母开始或数字组成的字符串。通常在程序的分支程序或转移程序的目的地址处标出,其他地方可省略。

操作码——表示指令执行意义,如加、减、乘、除、传递等,是指令的核心部分。

操作数——表示操作码执行的具体数据或内容。

注释——指令功能的文字解释。

例如:LOOP:MOV R0,00H;将00H地址的内容传送到R0寄存器中。

MCS-51系列单片机常用符号标识:

A——累加器A为8位寄存器,是常用的专用寄存器,它既可以存储数据,也可以存放中间运算结果。在指令运行中,还可以用作中间数据转递或中转站。

B——寄存器B为8位寄存器,是专门为数据的乘或除来放置乘数和被除数的,在计算完成后放置乘数的高8位或除后的余数。同时也可以作普通寄存器使用。

Ri——工作寄存器,即R0,R1。数据运算时作间接寻址时存放地址。

Rn——工作寄存器,即R0,R7。数据运算时存储数据或控制程序时用到。

Direct——内部ROM地址,表示ROM中00H~FFH中的某一个地址。

#data——8位立即数,表示一个数据。

PC——16位程序寄存器,存放程序执行的下一条指令的地址。

DPTR——16位数据寄存器,通常用于存放间接寻址的地址。

1.起始地址伪指令ORG

伪指令不是单片机本身的操作指令,不会命令单片机进行任何操作,从而不影响程序的执行,仅仅是用来帮助进行汇编或编辑程序时指示紧后程序放置地址。ORG主要用来指定程序或数据的起始地址,起指示作用。

978-7-111-46712-0-Chapter02-20.jpg

ORG0030H表示的意义是:紧后指令MOVA,56H及以后的程序存放的地址从0030H单元开始。

2.汇编结束伪指令END

用于汇编语言源程序末尾,指示源程序到此结束。在机器汇编时,放置在END后的程序指令不会被编译,即不会被执行。所以,END必须放置在整个程序的结尾。

3.置位指令SETB

指令功能:内部RAM可寻址位或专用寄存器指定位置位;操作针对二进制数的一位。

指令格式:SETB bit;bit←1。

例如:SETBP1.0功能是将P1.0,即P1口第1引脚置位(高电平)。不管P1.0原来是什么状态,执行该指令后,P1.0=1。

4.清零指令CLR(与SETB相对应)

指令功能:内部RAM可寻址位或专用寄存器指定位复位;操作可针对二进制数的一位。但也可针对累加器A。

指令格式:CLR bit; bit←0。

例如:CLRP1.0功能是将P1.0,即P1口第1引脚复位(低电平)。不管P1.0原来是什么状态,执行该指令后,P1.0=0。

5.数据传输指令MOV(内部数据传输指令)

指令功能:它是指令中最基本、最重要的指令,承担存储空间中相互数据的传递,相当于计算机应用中的复制功能。指令中把源操作数(右边操作数)中的数据传送到目的操作数(左边操作数)中区,而源操作数中的内容不会改变。

指令格式:MOV 操作数1,操作数2;操作数1←操作数2。

978-7-111-46712-0-Chapter02-21.jpg

例如:MOVA,20H功能是将内部数据寄存器地址为20H内的数据传送到累加器A中,如图2-8所示。

978-7-111-46712-0-Chapter02-22.jpg

图2-8 MOV指令示意图

6.无条件转移指令

指令功能:无条件转移指令的功能是当程序碰到该指令时,无条件的转移到该指令提供的地址去。

978-7-111-46712-0-Chapter02-23.jpg

(1)长转移指令LJMP adde16

例如:LJMP KK1功能是执行该指令后,将KK1地址装入PC中,程序下一条指令就执行KK1为地址的程序指令。KK1可代表转移地址范围0000H~FFFFH即64KB存储空间单元。

(2)短转移指令AJMPadde11

例如:AJMP KK1功能是执行该指令后,将KK1地址装入PC中,程序下一条指令就执行KK1为地址的程序指令。KK1可代表转移地址范围0000H~07FFH即2KB存储空间单元。

(3)相对转移指令SJMPrel

例如:SJMP KK1功能是执行该指令后,将KK1地址装入PC中,程序下一条指令就执行KK1为地址的程序指令。KK1可代表转移地址范围00H~FFH即256B存储空间单元。

说明:绝对转移指令后地址通常不给出具体地址,一般用字母和数字表示转移到的指令地址号。

五、程序设计步骤

单片机不仅需要硬件电路,也需要软件设计,才能按照要求工作。所以在硬件电路安装完成后,必须进行软件设计及调试。

1.程序设计步骤

1)分析任务,确定设计思路和程序算法

2)制定合理的程序流程图。

3)根据流程图编写程序。

4)调试、优化程序。

2.流程图表示

流程图是设计人员的设计思路的体现,也是编写程序的依据,是对设计题目内容的具体化和明确化,是设计程序的必经过程。

流程图的符号及意义如表2-4所示。

2-4 流程图的符号及意义

978-7-111-46712-0-Chapter02-24.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈