单片机技术及应用项目化教程图文 (1)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;无条件转移到LOOP处,继续使光二
7
END
25
项目二 单片机并行I/O口的应用
此点亮一个发光二极管的应用程序共有7条语句,其中 第1、3、7行是伪指令语句,其余为指令语句。
伪指令不是真正的指令,为汇编程序提供相关的信息, 汇编时不产生目标代码,不影响程序的执行。常用的伪指令 如表2-1所示。
26
13
项目二 单片机并行I/O口的应用
图2-6 程序流程图
14
项目二 单片机并行I/O口的应用
2) 程序清单
ORG
AJMP
ORG
MAIN: MOV
LOOP: MOV
极管亮
SJMP
END
0000H ;程序从0000H开始执行 MAIN ;无条件转移到主程序MAIN处 0030H ;主程序的起始地址0030H P0,#0FFH;P0口初始化 P0,#0FEH;P0.0输出低电平使发光二极管亮 LOOP ;无条件转移到LOOP处,继续使光二
4
项目二 单片机并行I/O口的应用
2) 发光二极管的接口电路 发光二极管是一种电光转换半导体器件,使用时要注意 其单向导电性。其实物如图2-1所示,符号如图2-2所示。发 光二极管具有阳极和阴极两个引极,使用时阳极接电源正极, 阴极接电源负极。
5
项目二 单片机并行I/O口的应用
图2-1 发光二极管实物图
发光二极管的实际工作电路如图2-3所示。图中R为限流 电阻,其阻值的计算公式如下:
R = VCC VD ID
7
项目二 单片机并行I/O口的应用
式中:VCC是电源电压,VD是发光二极管的门槛电压, ID是发光二极管的工作电流。
单片机控制的发光二极管接口电路主要有高电平有效控 制和低电平有效控制两种形式,如图2-4所示。其中,图24(a)为发光二极管高电平有效控制接口电路,发光二极管的 阳极接单片机的某个I/O口(控制端),阴极接地,控制端为高 电平时发光二极管亮,否则发光二极管灭。图2-4(b)为发光 二极管低电平有效控制接口电路,发光二极管的阴极接单片 机的某个I/O口(控制端),阳极接电源,控制端为低电平时发 光二极管亮,否则发光二极管灭。实际应用中,注意编程时 要先使单片机某I/O口控制的发光二极管灭。
18
项目二 单片机并行I/O口的应用
汇编语言的基本格式为: 【标号:】操作码助记符 【操作数1,操作数2,操 作数3】【;注释】 其中,方括号括住的内容为可选项。各部分含义如下: 第一部分为标号:标号加在指令之前,表示该指令所在 的地址。标号必须以字母开始,后跟1~8个字母或数字,以 “:”结尾。标号不允许使用汇编语言中已经定义过的符号 名,如指令助记符、寄存器名、伪指令等,且在一个程序中 不允许重复定义相同的标号。不是每条指令都要有标号,标 号通常用在转移指令、子程序开始指令等所需要的地方。
16
项目二 单片机并行I/O口的应用
2) 系统软、硬件联调 把硬件电路连接好,应用ISP下载软件,把程序编译后 得到的 .HEX文件下载到单片机芯片中,观察硬件电路的运 行情况,从而检测系统设计的正确性,并进行改进直至成功 实现任务要求。
17
项目二 单片机并行I/O口的应用
5.知识链接 1) 指令基本格式 指令是指挥计算机执行某种操作的命令。MCS-51单片 机指令有汇编语言和机器语言两种表现形式。汇编语言表现 形式是为了记忆和程序编写的方便,用英文助记符来表示每 一条指令,如MOV A,R0,经汇编后变为机器语言的表现 形式,即采用二进制代码来表示每一条指令,供计算机直接 识别和执行,如上条指令汇编后的二进制代码为11101000。
功能 定义程序段或数据块的起始地址 程序结束标志 将指令右边的值赋给左边的字符名(定义常量) 将指令右边的表达式赋给左边的字符名(定义变量) 在程序存储器中从指定的地址单元开始定义一个或 多个字节数据 在程序存储器中从指定的地址单元开始定义一个或 多个字节数据 从指定的地址单元开始留出“表达式”个备用字节 空间 用来将右边的位地址赋给左边的字符名
项目二 单片机并行I/O口的应用
项目二 单片机并行I/O口的应用
任务1 点亮发光二极管 任务2 发光二极管闪烁 任务3 流水灯的设计 任务4 多模式流水灯的设计
1
项目二 单片机并行I/O口的应用
任务1 点亮发光二极管
1.任务要求 用AT89C51单片机控制点亮一个发光二极管。 2.硬件电路的设计与制作 1) 单片机输入/输出(I/O)口 AT89C51的输入/输出接口包括4个8位并行口(P0~P3)共 32根口线。其具体结构及功能见项目二任务1知识链接部分。 每个端口都包括:锁存器、输出驱动器、两个三态缓冲器以 及控制电路。
;主程序结束
15
项目二 单片机并行I/O口的应用
4.系统调试 在单片机编译环境下进行程序的编写,经过编译生成目 标代码,下载到单片机芯片中,检测程序和硬件电路的协调 工作情况。 1) 程序编写及编译 在Keil uVision3软件环境下,按照项目一其项目的创建 过程,把上述单灯闪烁的汇编语言程序输入,输入完成后进 行编译,如有错误,把错误修正,直到无错误为止。
direct:8位内部RAM单元的地址及SFR的地址; #data:8位立即数,立即数前面必须加“#”;
22
项目二 单片机并行I/O口的应用
#data 16:16位立即数; addrl6:16位目的地址,用于LCALL和LJMP指令中, 范围是64 KB程序存储器空间; addr11:11位目的地址,用于ACALL和AJMP指令中, 目的地址必须与下一条指令的第一字节在同一个2 KB程序 存储器地址空间之内; rel:8位带符号偏移量,用于SJMP和所有条件转移指令 中范围为-128~+127; @:间接寄存器或基址寄存器的前缀,如@Ri; bit:内部RAM或SFR中的直接寻址位;
11
项目二 单片机并行I/O口的应用
图2-5 单片机控制的发光二极管电路原理图
12
项目二 单片机并行I/O口的应用
3.应用程序设计 1) 程序流程图的设计 要使单片机按照要求正常工作,必须进行应用程序的设 计。首先要设计程序流程图,如图2-6所示。其主要流程是 根据图2-5所设计的硬件电路图,P0口设为输出口,控制发 光二极管的亮和灭,发光二极管控制电路采用低电平有效控 制,首先初始化P0口,让其输出高电平,使发光二极管处 于灭的状态,之后,使P0.0输出低电平,让发光二极管亮, 实现点亮一个发光二极管的任务要求。
8
项目二 单片机并行I/O口的应用
图2-3 发光二极管的实际工作电路
9
项目二 单片机并行I/O口的应用
图2-4 单片机控制的发光二极管接口电路
10
项目二 单片机并行I/O口的应用
3) 点亮一个发光二极管的硬件电路 应用Proteus软件设计的点亮一个发光二极管的电路原理 图如图2-5所示。用AT89C51单片机的P0.0口控制发光二极 管,构成发光二极管低电平有效控制接口电路。
图2-2 发光二极管符号
6
项目二 单片机并行I/O口的应用
发光二极管的工作原理如下:当发光二极管中有电流流 过时,发光二极管就会发光,在保证流经发光二极管的工作 电流不超过其最大允许电流的情况下,流经发光二极管的工 作电流越大,发光二极管越亮。随制作材料的不同,各发光 二极管的最大允许电流也不同,而发光二极管的工作电流一 般为2~25 mA。在实际应用中,发光二极管导通还存在门 槛电压,随制作材料的不同,各发光二极管的门槛电压也不 同,一般为1.5~2.5 V。
第四部分为注释:注释放在指令之后,或单独占一行。 以“;”开始,是为用户阅读程序方便而加的说明部分,不 影响程序的执行。
20
项目二 单片机并行I/O口的应用
2) MCS-51指令系统概况 指令系统是指所有指令的集合。MCS-51系列单片机具 有丰富的指令系统,共111条指令,用42种操作码助记符来 描述33种操作功能。其具体分类如下: 按功能分类:数据传送类指令29条,算术运算类指令24 条,逻辑运算类指令24条,控制转移类指令17条,位操作类 指令17条。 按指令字长分类:单字节指令49条,双字节指令46条, 三字节指令16条。
2
项目二 单片机并行I/O口的应用
P0口:既可作为通用I/O口使用,此时是一个准双向口, 也可作为地址/数据总线接口使用,此时是一个真正双向口; P0口既可按字节寻址,又可按位寻址;P0口作通用I/O 口输 出时,是开漏输出,应外接上拉电阻。
P1口:只能作I/O口,没有地址/数据复用功能,而且作 输入口使用时,要先向锁存器写“1” ;P1口可按字节寻址, 也可按位寻址;P1口是一准双向口,输出驱动接有上拉电 阻,无需外接,不是开漏输出。
项目二 单片机并行I/O口的应用
表2-1 常用的伪指令
伪指令 ORG END EQU DATA DB
DW
DS BIT
格式 ORG 16 位地址 END 字符名 EQU 数据或符号 字符名 DATA 表达式 [标号:] DB 8 位数据或数据表
[标号:] DW 16 位数据或数据表
[标号:] DS 表达式 字符名 BIT 位地址
19
项目二 单片机并行I/O口的应用
第二部分为操作码:是指令的核心部分,不可缺省。表 示该语句要执行的操作内容,是每条指令必有的部分。操作 码用指令助记符表示。操作码后面至少留一个空格,使其与 后面的操作数分隔。
第三部分为操作数:表示操作码的操作对象,根据指令 不同,操作数的个数可以是0、1、2或3,各操作数之间用逗 号“,”隔开。
24
项目二 单片机并行I/O口的应用
3) 程序分析
1ຫໍສະໝຸດ Baidu
ORG
2
AJMP
3
ORG
4MAIN:
5LOOP: 发光二极管亮
6 极管亮
SJMP
0000H MAIN 0030H MOV MOV
LOOP
;程序从0000H开始执行 ;无条件转移到主程序MAIN处 ;主程序的起始地址0030H P0,#0FFH ;P0口初始化 P0,#0FEH ;P0.0输出低电平使
3
项目二 单片机并行I/O口的应用
P2口:当P2口作为通用I/O时,是一准双向口;从P2口 输入数据时,先向锁存器写“1”;P2口可按位寻址,也可按 字节寻址;在访问外部存储器时,P2口是高8位地址输出口。
P3口:当P3口作为通用I/O接口时, 第二功能输出线为高 电平, 使输出取决于锁存器的状态。在这种情况下, P3口仍 是一个准双向口, 它的工作方式、 负载能力均与P1、 P2口 相同;当P3口作为第二功能使用时, 其锁存器同相输出端必 须为高电平, 使 P3口的状态取决于第二功能输出线的状态。
27
项目二 单片机并行I/O口的应用
第1行“ORG 0000H”表示程序指令在程序存储器中从 0000H处开始存放,即第2行指令的首字节地址为0000H,所 以单片机上电后就从0000H处开始执行第2行指令。第3行 “ORG 0030H” 表示“MAIN”标号处指令的地址为0030H。 ORG伪指令在使用时,在一段程序中可多次出现,但“16 位地址”不能重复。第7行“END”伪指令在一段程序中只能 出现一次。
23
项目二 单片机并行I/O口的应用
/:位操作数的前缀标志,在位操作指令中表示对该位 操作数先求反再参与操作,但不影响该位操作数原值,如 /bit;
(×):寄存器或存储单元×中的内容; ((×)):以寄存器或存储单元×中内容作为地址单元中 的内容; ←:箭头左边的内容被箭头右边的内容所代替; ↔:数据交换; $:当前指令的起始地址。
第2、6行指令是两条无条件转移指令,其中“MAIN” 和“LOOP”是转移目标处的标号。无条件转移指令是指当 程序执行到该指令时,无条件转移到指令提供的地址执行。 这类指令分为长转移指令、绝对转移指令、短转移指令和变 址转移指令。
28
项目二 单片机并行I/O口的应用
21
项目二 单片机并行I/O口的应用
按执行时间分类:单机器周期指令64条,双机器周期指 令45条,四机器周期指令2条,只有乘除指令。
为了便于指令的学习,对MCS-51系列单片机指令助记 符中的一些常用符号说明如下:
Rn(n = 0~7):当前选中的寄存器区的8个工作寄存器 R0~R7;
Ri(n = 0、1):当前选中的寄存器区中可作间接寻址的2 个工作寄存器R0、R1;
相关文档
最新文档