单片机讲义第7讲

合集下载

教学课件单片机创新开发教程ch7使用中断

教学课件单片机创新开发教程ch7使用中断
P0INTE
P1INTE
P2INTE P3INTE
P4INTE
P5INTE
P6INTE
P7INTE
7.3 相关知识
7.3.4.外部中断
触发外部中断的方式有两种:边沿触发 (包括上升沿和下降沿)、电平触发(高 低电平变化),如图7-3所示。基于 STC8H8K64U的天问51只支持下降沿和电 平变化2种触发方式。
7.4 项目设计
任务 KEY1按键中断控制LED
void INT0(void) interrupt 0 using 1{
P4_1 = !P4_1;
}
void setup()
{
P3M1|=0x04;P3M0&=~0x04;
//高阻输入
P4M1&=~0x02;P4M0|=0x02;
//推挽输出
IT0 = 1;
CCF3
8 0/1/2/3 S2RI || S2TI
9 0/1/2/3
SPIF
10
0
INT2IF
11
0
INT3IF
12
0
T2IF
16 0/1/2/3
INT4IF
17 0/1/2/3 S3RI || S3TI
18 0/1/2/3 S4RI || S4TI
19
0
T3IF
20
0
T4IF
21 0/1/2/3
7.4 项目设计
基于STC8H8K64U芯片的天问 51 开发板上有5个 外部中断: INT0 到 INT4。具体设置如下。 INT0 为 P32 连接到了独立按键 KEY1。 INT1 为 P33 连接到了独立按键 KEY2。 INT2 为 P36 连接到了红外接收引脚。 INT3为 P37 连接到了加速度传感器的中断引脚。 INT4 为 P30 连接到了 USB 接口的“D-” 。 外部中断设置基本雷同,仅以INT0为例子进行项目 演示。

单片机讲义第七章

单片机讲义第七章

一、中断的起因
什么可以引起中断? 生活中很多事件可以引起中断:有人 按了门铃了,电话铃响了,你的闹钟闹响 了,你烧的水开了….等等诸如此类的事件, 我们把可以引起中断的称之为中断源,单 片机中也有一些可以引起中断的事件, 8051中一共有5个:两个外部中断,两个 计数/定时器中断,一个串行口中断。
三、中断的响应过程
当有事件产生,进入中断之前我们必须先记住现 在看书的第几页了,或拿一个书签放在当前页的位置, 然后去处理不同的事情(因为处理完了,我们还要回 来继续看书):电话铃响我们要到放电话的地方去, 门铃响我们要到门那边去,也说是不同的中断,我们 要在不同的地点处理,而这个地点通常还是固定的。 89C51中也是采用的这种方法,五个中断源,每个 中断产生后都到一个固定的地方去找处理这个中断的 程序,当然在去之前首先要保存下面将执行的指令的 地址,以便处理完中断后回到原来的地方继续往下执 行程序。
二、中断的嵌套与优先级处理
设想一下,我们正在看书,电话铃响了,同时又 有人按了门铃,你该先做那样呢?如果你正是在等一 个很重要的电话,你一般不会去理会门铃的,而反之, 你正在等一个重要的客人,则可能就不会去理会电话 了。如果不是这两者(即不等电话,也不是等人上 门),你可能会按你通常的习惯去处理。总之这里存 在一个优先级的问题, 单片机中也是如此,也有优先级的问题。优先级 的问题不仅仅发生在两个中断同时产生的情况,也发 生在一个中断已产生,又有一个中断产生的情况,比 如你正接电话,有人按门铃的情况,或你正开门与人 交谈,又有电话响了情况。考虑一下我们会怎么办吧。
电平触发的外部中断的清除
对于电平触发的外部中断,CPU响应中断后, 虽然也是由硬件清除了相应的标志位,但是不 能对外部引脚上的电平进行处理,也就是说, 这时如果外部引脚上的低电平依然存在,会造 成重复中断,因此我们应该在电路上增加对外 部引起中断的信号进行处理。P148图7-5是一 个可行的方案之一。通过I/O口输出一个信号, 使得外部引脚上的中断请求信号变为高电平。

单片机课程资料第七节

单片机课程资料第七节

LOGO
Your site here
串口控制寄存器SCON
SM0 SM1 SM2
方式选择 多机 控制
RENTB8ຫໍສະໝຸດ RB8TIRI
串行接 欲发 收到 发送 接收 收允许 的第9 的第9 中断 中断 /禁止 位 位 有/无 有/无
SM0,SM1:为串行口工作方式控制位。 0 0 — 方式0, 0 1 – 方式1 1 0 – 方式2, 1 1 – 方式3 TB8:在方式2,3中是发送机要发送的第9位数据 RB8:在方式2,3中是接收机收到的第9位数据
LOGO
Your site here
奇偶校验位
在串口通信中一种简单的检错方式。有四种 检错方式:偶、奇、高和低。对于偶和奇校验的 情况,串口会设置校验位(数据位后面的一位), 用一个值确保传输的数据有偶个或者奇个逻辑高 位。 例如: 如果数据是011,那么对于偶校验, 校验位为0,保证逻辑高的位数是偶数个。如果 是奇校验,校验位为1,这样就有3个逻辑高位。
POWERPOINT TEMPLATE
64637747
POWERPOINT TEMPLATE QQ群: 课件密码: POWERPOINT TEMPLATE 17027510 北方科技
POWERPOINT TEMPLATE POWERPOINT TEMPLATE POWERPOINT TEMPLATE POWERPOINT TEMPLATE POWERPOINT TEMPLATE POWERPOINT TEMPLATE
LOGO
Your site here
串口分类
根据帧信息 的格式分
异步通信
同步通信
LOGO
Your site here
串口异步通信

(单片机完整课件PPT)第七章

(单片机完整课件PPT)第七章

当SM2=1时,只有当接收到第9位数据(RB8)为1时,才将接 收到的前8位数据送入SBUF,并置位RI;否则,将接收到的8位 数据丢弃。当SM2=0时,则不论第9位数据为0还是为1,都将8 位数据装入SBUF中,并置位RI。 REN:允许/禁止接收控制位 0—禁止接收; 1—允许接收。 TB8:发送数据第9位。 RB8:接收数据第9位。 TI: 发送中断标志 RI: 接收中断标志。
(2)输入(接收) 设置:SM0=0,SM1=0,SM2=0,REN=1。
时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
7.2 MCS-51串行口的结构
内部含有1个可编程全双工串行通信接口,4种工作方式。
1.串行口数据缓冲器SBUF
8位发送/接收缓冲器SBUF,在物理上是独立的两个,包括 发送缓冲器SBUF和接收缓冲器SBUF,只是共用地址 99H,这样可以同时进行发送、接收。 发送缓冲器SBUF只能写入不能读出,接收缓冲器SBUF只能 读出不能写入。
(1)输出(发送)
设置:SM0=0,SM1=0,SM2=0,REN=0。 时序:
RXD TXD D0 D1 D2 D3 D4 D5 D6 D7
串口方式0发送数据时序
发送完8位数据,即SBUF为空,硬件自动置“1”中断标志位TI,
CPU响应中断后必须软件清“0”TI。
应用:扩展一并行口,“串入并出”。
2.串行通信的分类
异步通信(Asynchronous Communication)
数据以字节为单位组成字符帧传送。字符帧由发送端一帧 一帧地发送。两相邻字符帧之间可以无空闲位,也可以有若干 空闲位。这就是异步概念。发送端和接收端的时钟各自独立。 实现双方同步接收是靠字符帧的起始位和停止位。

单片机讲义7讲

单片机讲义7讲

SJMP SUL2
NEG: MOV R1, #0FFH ; (R0)<0, 则 R1←0FFH
SUL2: RET
第 3 章 MCS-51单片机汇编语言程序设计
图 3-2
第 3 章 MCS-51单片机汇编语言程序设计
有一类分支程序,它根据不同的输入条件或不同的运算 结果,转向不同的处理程序,称之为散转程序。这种程序通 常利用JMP @A+DPTR 间接转移指令实现。有如下两种方法:
第 3 章 MCS-51单片机汇编语言程序设计
ORG 0100H MOV A, R3
; R3->A
ADD A, A
; A*2
MOV DPA+DPTR MOV B, A
; 取地址表中的高字节 ;暂存于B
INC DPL
POP A MOVC A, @A+DPTR ;取地址表中的的字节
MOV DPTR,#JPT ;置分支表首址
JMP @A+DPTR ;即JMP JPT +2N,从而执行JPT+2N
中的AJMP PRn指令
第 3 章 MCS-51单片机汇编语言程序设计
AGAN: POP A
;不相等比较下一个
INC A
;序号加1
CJNE A,#5,NEXT
SJMP $
;键码查完还没有B中按键
MOV A,40H CJNE A,41H,NOEQ ;两数不等转NOEQ MOV GE,A ;两数相等,GR单元和LE单元均存次数
MOV LE,A
SJMP $
NOEQ: JC LESS
;A小则转LESS
MOV GR,A ;A大,大数存GR单元
MOV LE,41H ;小数存LE单元

单片机原理及应用第七讲.ppt

单片机原理及应用第七讲.ppt
(4)各中断源发出的中断请求信号,都会标记 在MCS-51系统的TCON或SCON寄存器中。
2、中断查询确认后,在下列各种8031单片机运 行中,能立即进行响应的是:
(1)当前正在进行高优先级中断处理 (2)当前正在执行RETI指令 (3)当前指令是DIV指令,且正处于取指令的机器周期 (4)当前指令是MOV A,R3
这些指令后,再执行一条指令才能响应新的中断请求。
第七讲
第五章 MCS-51的中断系统
中断入口地址:
中断响应后,CPU将当前PC值压入堆栈(先压PCL, 后压PCH),保护断点,并将该中断的入口地址装入PC, 从而使CPU执行中断服务程序。
外部中断0 定时器/计数器T0 外部中断1 定时器/计数器T1 串行口中断
硬件置位或清零。
第七讲
第五章 MCS-51的中断系统
3、SCON 字节地址为98H
特殊功能寄存器,为串行口控制寄存器。 其格式如下:
SCON SM0 SM1 SM2 REN TB8 RB8 TI RI 位地址 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H
此控制寄存器中有2位中断请求标志: TI或 RI。
第七讲
第5章 MCS-51的中断系统
第七讲
一、中断的概念
第五章 MCS-51的中断系统
单片机对内、外随机发生的事件的处理是采用查询 和中断两种方式。查询方式:方便、简捷、不增添硬件 电路,但会大量占用CPU 的工作时间。中断方式:增加 了一定的硬件电路,但提高了对突发事件的响应速度, 且不占用CPU工作时间。
什么是中断?中断响应过程? 中断服务(中断服务程序)? 中断系统、中断源、中断请求(中断申请)以及中断返 回、断点保护等基本概念。

《单片机原理及应用》教学课件 第7章-单片机C语言编程基础知识

《单片机原理及应用》教学课件 第7章-单片机C语言编程基础知识
12
7.1.2 C51 数据类型
3. sfr16
sfr16也是一种扩充数据类型,它定义的变量占用两个 内存单元。sfr16和sfr一样用于操作特殊功能存放器,不同 的是,sfr16定义的变量可访问16位特殊功能存放器,sfr16 类型变量的取值范围为0~65535。
该数据类型的定义格式如下: sfr16 变量名=变量地址; 此处的变量地址为16位地址中的低8位地址。通过sfr16 类型变量访问16位特殊功能存放器时,先读低字节数据,后 读高字节数据;对特殊功能存放器写入数据时,先写入高字 节地址,再写入低字节地址。
要在数字后面加上字母L,如104L,034L,7850L等。
〔2〕浮点型常量
浮点型常量可分为十进制和指数两种表示形式。
① 十进制浮点型常量由数字和小数点组成,整数或小数局部为0时可以省略,
但必须要保存小数点,如,,,.25,300.等。
② 指数浮点型常量表示形式为:[±]数字[.数字]e[±]数字。[]中的内容为可选
C语言程序本身不依赖于硬件开发平台,程序不做修改或做少量修改就可以移植到 不同的单片机中。目前,使用C语言进行程序设计已经成为单片机软件开发的主流。
基于单片机的C语言又称为C51语 言。和标准C语言所不同的是,C51语 言运行于单片机平台上,并根据单片 机的硬件特点扩展了局部关键字。以 下关于C语言的描述都是基于单片机的, 后面不再强调这一点。
项,如125e3,7e9,−3.0e−3等。
15
7.1.3 常量与变量
〔3〕字符型常量 将单个字符放在单引号内的常量就是字符型常量,如'a''d'等。有一类字符型常量专 门用来表示控制字符,如回车符、换行符等,它们被称为转义字符,其表示方式为在字 符前面加上一个反斜杠“\〞,如'\n'。常用转义字符如表7-3所示。

单片机电子教案第7章

单片机电子教案第7章
001-----------A口 010-----------B口 011-----------C口 100-----------计数器低8位 101-----------计数器高6位及计数
器方式设置位
20
三、工作方式设置及状态字格式
1、方式设置
PA:A口数据传送方向设置位。0--输入;1--输出。 PB:B口数据传送方向设置位。0--输入;1--输出。 PC1、PC2:C口工作方式设置位。
本章分为五节,主要介绍:
7.1 存储器的扩展 7.2 输入/输出及其控制方式 7.3 并行接口的扩展 7.4 8279接口芯片 7.5 显示器及键盘接口
1
7.1 存储器的扩展 7.1.1 程序存储器的扩展
一、扩展总线
2
D
D
GQ
Q
D
D
GQ
Q
:
:
D
D
:
GQ
Q
G OE
P2 ALE
P0
80C31
G OE
ALE PSEN P2口 P0口
输出PCH
输出PCH
输出PCH
输出PCH
PCL
指令 PCL
指令
PCL
指令
PCL
指令
PCL
80C51系列单片机的CPU在访问片外ROM的一个机器周期内, 信号ALE出现两次(正脉冲),ROM选通信号也两次有效, 这说明在一个机器周期内,CPU两次访问片外ROM,也即在 一个机器周期内可以处理两个字节的指令代码,所以在
13
16 I/O4
14
15 I/O3
8
7.1.2 数据存储器的扩展
一、RAM扩展原理
扩展RAM和扩展ROM类似,由P2口提供高8位地址,P0口分时 地作为低8位地址线和8位双向数据总线。外部RAM读时序为:

单片机原理及接口技术 第七章讲解

单片机原理及接口技术 第七章讲解

15
7.2 算术运算程序的设计
例6 多字节二进制除法 2个多字节无符号二进制数的除法是采用移位和 减法运算实现的,实现过程与进行十进制数乘 法形似,每次进行除法运算时,如果余数大于减数 (够减)则商1,否则,商0。 该算法要求被除数的高八位数据必须小于除 数,否则,作为溢出处理,子程序把标志位OV的 状态置为1,从子程序返回。
27
7.4 查表程序的设计
CHECHUP: MOV DPTR, #ASC_TAB;设置表的首地址 MOV A, R2 ;取x MOVC A, @A+DPTR;查表取ASCII码 MOV R2, A ;存查到的ASCII码 RET ASC_TAB: DB 30H, 31H, 32H, 33H, 34H, 35H, 36H, 37H, 38H, 39H DB 41H, 42H, 43H, 44H, 45H, 46H
2015-1-21
单片机原理与应用
2
第7章 汇编语言程序设计
汇编程序设计的步骤: (1)分析题目或课题的要求,正确理解解决什么问 题,如何解决问题、有哪些可利用的资源、对计算 精度的要求等;另外,了解应用系统硬件的结构和 功能与课题任务的关联。 (2)确定解决问题的方案,画出程序流程框图; (2)根据解决方案,确定变量及其数据存储格式, 给各个变量分配存储空间; (3)根据程序流程图,选用合适的指令编写程序, 完成源程序的设计; (4)在集成开发环境上调试,完成设计要求的功能。
FE FF
31
7.4 查表程序的设计
地址 1000H 1001H 1002H 1003H 1004H 1005H 1006H 1007H
数据
3F 0000 23 88 0001 33 54 0002 67 36 0003 36

单片机(教材)第七章 东北大学石亚和老师版

单片机(教材)第七章 东北大学石亚和老师版

第七章89C51单片机的串行口7.1 串行通讯基本知识在计算机技术中,数据传输方式有两大类:并行传输和串行传输。

一般来说,在计算机内部,CPU和并行存储器与并行I/O接口之间采用并行数据传输方式。

通常CPU的位数与并行数据宽度对应,比如89C51的CPU是8位的,其数据总线宽度为8,即有8条数据线。

在数据传送时,8位二进制数据同时进行输入或输出。

这种方式逻辑清晰,接口方便,工作速度快、效率高。

但是,如果计算机和其他计算机或终端设备距离很远时,并行方式不仅不经济,而且还存在长线电容耦合和线反射等技术问题,这时就可以采用串行传输方式。

另外,有时为了节省线缆数量,即使在计算机内部,CPU和某些外设之间也可以采用非并行的传输方式,如I2C、SPI、USB等标准传输方式,但它们与这里所述的串行通讯有明显不同。

要而言之,串行通讯是以微处理器为核心的系统之间的数据交换方式,而I2C、SPI、USB等标准接口是微处理器系统与非微处理器型外部设备之间的数据交换方式。

前者可以是对等通讯,而后者只能采用主从方式。

计算机运行过程中,CPU、存储器和I/O接口之间要进行大量的数据传送,在计算机系统之间也可能需要远距离传输数据。

数据的传送有两种基本的方式,并行和串行。

并行传输是多数据位同时进行,如CPU和并行存储器之间、CPU和并行I/O接口之间都采用并行传送。

并行传送方法速度快,但距离近。

反之,串行传送方法速度慢,但距离可以比较远。

并行传送好比8人站成一列横队,肩并肩向前走;而串行传送如同8人一路纵队,一个跟在一个后面依次前行。

如果设置一个观察点,则并行传送时,8人一起同时通过观察点;而串行传送时,这8个人要顺次通过观察点,每次通过一个人,要分8次才能全部通过。

图7.1表示了这两种传送方法。

图7.1 两种数据传送方法的比较两者之间的性质比较如下:89C51单片机上有一个全双工的串行口UART(Universal Asynchronous receiver/Transmitter),即通用异步收发器,全双工是指可以同时发送和接收。

精品课件-单片机应用技术基础-第7章

精品课件-单片机应用技术基础-第7章
(3) 配置寄存器。 配置寄存器结构如表7.5所示,其各位的意义分别是:低5 位一直都是“1”,TM是测试模式位,用于设置DS18B20在工作 模式还是测试模式。在DS18B20出厂时该位被设置为0,用户不 要去改它,R1和R0用来设置分辨率,如表7.6所示(DS18B20出 厂时被设置为12位)。
模块7 综 合 应 用
sbit RS= P2^2;
//LCD1602控制位
sbit RW= P2^1;
sbit E= P2^0;
void LCD_cmd(uchar cmd);
void LCD_dat(uchar dat) ;
void Display(unsigned char x, unsigned char y,
模块7 综 合 应 用 模块7 综 合 应 用
任务14 多点温度测量系统设计
模块7 综 合 应 用 任务14 多点温度测量系统设计
模块7 综 合 应 用
1. 任务目的 培养利用温度传感器、液晶显示器、串行通信等多种外围器 件进行综合应用的能力。 2. 任务要求 下位机利用一线总线技术使用多个DS18B20温度传感器进行 多点温度测量,利用串行数据通信的方式将多点温度信号传送 至上位机,并在LCD1602液晶显示器上显示出所测 温度。 3. 硬件设计 五片DS18B20采集五个不同点的温度,利用单总线技术将测 量结果通过下位机的P1.3输入。下位机和上位机采用串行通信 方式,将双方的RXD(P3.0)和TXD(P3.1)交叉互连,下位机采集 到的温度数据传送到上位机。上位机通过液晶显示器LCD1602
模块7 综 合 应 用
模块7 综 合 应 用
4. 程序设计
程序分为两个大部分,上位机程序和下位机程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22
第3章 AT89C51 指令系统
表3-5 位操作指令
助记符 类型 操作码 功能 字节 机器周期
位传送
MOV C,bit MOV bit,C
A2 bit 92 bit
C←(bit) bit←C
2 2
1 2
位修正
CLR C CLR bit CPL C CPL bit SETB C SETB bit ANL C, bit ANL C, /bit ORL C, bit ORL C, /bit JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel
12
第3章 AT89C51 指令系统 表3-4 控制转移类指令
13
第3章 AT89C51 指令系统
14
第3章 AT89C51 指令系统
1.无条件转移指令 无条件转移指令是指当程序执行到这条指令时,程 序将无条件地转移到指令指向的地址单元取指运行。 (1) AJMP为短转移指令。 2k (2) LJMP为长转移指令。 64K (3) SJMP为相对转移指令。 (-128 ~ +127) (4) “JMP @A+DPTR”为间接转移指令,用它可实 现分支转移。 注意: 转移范围 64K
DEC A JZ LABEL2
17
第3章 AT89C51 指令系统
2) 比较转移指令 这组比较指令的功能是将目的操作数的内容和源操作数的内容进行比较。 若不相等,则程序转移到目标地址;否则,则顺序执行程序。 CJNE CJNE CJNE CJNE A, direct, rel A, #data, rel Rn, #data, rel @Ri, #data, rel; 比较转移指令
(5) SETB C 使进位标志位内容置1; (6) SETB bit 使位地址单元内容置1。
25
第3章 AT89C51 指令系统
3.位逻辑运算指令 (1) ANL C,bit指令功能是把源操作数位的内容与
目标操作数CY的内容进行与运算,结果送入CY中; (2) ANL C,/bit指令功能是对源操作数位取反后, 再与目标操作数进行与运算,结果存入CY中,但不改 变源操作数本身的值; 设 (20H)=00H; 例 CY=1
3) 减1条件转移指令 这组指令的功能是先将操作数的内容减1,然后判断结果。如果不为0,则 转移到目标地址;否则,则顺序执行程序。 DJNZ DJNZ Rn, rel
direct, rel
这类指令的功能是,每执行一次本命令,将指定的 Rn 或 direct 的内容减1 并判断其是否为 0, 若不为 0, 转向目的地址,若为 0, 则结束循环程序
环移位。如图3-4所示,累加器A的最高位移入 最低位,同时其他各位依次左移。
A7
A0
图3-4 左循环移位指令示意图
8
第3章 AT89C51 指令系统
RLC A (2) RLC A的指令功能是将累加器A的内容和进 位标志一起左循环移位。如图3-5所示,累加器 A的最高位移入进位位CY,同时其他各位依次 左移,CY位移入累加器A的最低位。
20
第3章 AT89C51 指令系统 上面介绍了控制转移指令:该节学习重点: 上面介绍了控制转移指令:该节学习重点: 1. 条件转移指令,其寻址方式为 相对寻址,寻址范围为 (-128---+127); 2. 无条件转移指令范围, 不同指令有不同的转移范围。 3. 无条件转移指令和 调用指令 LCALL ACALL 指令的区别。 两者不同之处在于调用指令 在转移前,要执行完该指令后 PC 内容自动压入堆栈,才做 addr 16( 或addr 12) 送入PC 的工作, 其中addr 16( 或addr 12) 就是子程序的首地址或子程序的入口地 址。 执行子程序中,遇到 RET 就从堆栈中将原压入堆栈的地址弹回给 PC , 继续主程序的执行。
上面介绍了逻辑类运算指令,逻辑指令特点是按位进行
6
第3章 AT89C51 指令系统
5.移位指令 AT89C51移位指令有四种,都是对累加器A进行操 作。这组移位指令只能对操作数移一位,若要移多位, 则要通过编写程序完成。
7
第3章 AT89C51 指令系统
RL (1)
A RL A的指令功能是将累加器A的内容左循
C3 C2 bit B3 B2 bit D3 D2 bit 82 bit B0 bit 72 bit A0 bit 40 rel 0 bit rel
C←0 bit←0 C← bit←(/bit) C←1 bit←1 C←C∧(bit) C←C∧(/bit) C←C∨(bit) C←C∨(/bit) C=1, 转 C=0, 转 (bit)=1, 转 (bit)=0, 转 bit=1转bit←0
18
第3章 AT89C51 指令系统
3.空操作指令 NOP 执行这条指令除PC内容加1外,不影响任何标志位和 其他寄存器。NOP指令常用来产生一个机器周期的延 迟。 4.调用与返回指令 在程序设计中,有些如延时、显示等具有一定功 能的程序在一个系统中常常被多次使用,为了避免重 复编写相同功能的程序,使程序编写和调试更加容易, 通常把这些具有一定功能的经常被反复使用的程序段 作为子程序。
15
第3章 AT89C51 指令系统 2.有条件转移指令 有条件转移指令是指根据指令中给出的条件进行判断,若条件成 立,则程序转向指定的目的地址执行,否则顺序执行程序。有条件 转移指令的目标地址都在相对于该指令的下一条指令为-128~+127 的区域内 这类指令共有 6 条 JZ JNZ CJNE CJNE rel rel; 判零转移指令 A, direct, rel A, #data, rel
21
第3章 AT89C51 指令系统
3.3.5 位操作类指令 AT89C51有一个完整的位处理机,用于对位地址进 行操作,在3.2节中已经说明,只有内部RAM 20H~ 2FH单元和单元地址能被8整除的特殊功能寄存器能够 进行位操作,所有的位操作都是直接寻址方式进行的。 在位处理器中,位的传送和逻辑运算是通过进位标志 CY来完成的,CY的作用相当于CPU中的累加器A。 位操作指令共17条,如表3-5所示。
ORL A, @ Ri
设 (A)= 52H ORL A, # 0FH 结果 (A)= 5FH; 逻辑或指令用做置位
4
第3章 AT89C51 指令系统
3.逻辑异或指令 “异或”指令是将源操作数与目的操作数按位相异或,即不同为1,相同为0, 其结果送入目的操作数。“异或”指令可以使操作数的数据位取反,即使操作数 某些位取反,其他位保持不变。 这类指令 的助记符为 XRL , 共有 6 条 XRL A, Rn XRL A, direct XRL A, @Ri XRL A, #data XRL direct ,A XRL direct , #data 例1: 设 (A)=5FH XRL 例1: XRL A, #0FH ; A, R7 ; (A)= 50H (A)= 00H 设 (A)=5FH (R7)=5FH
1 2 1 2 1 2 2 2 2 2 2 2 3 3 3
1 1 1 1 1 1 2 2 2 2 2 2 2 2 2
位逻辑 运算
判位转 移
23
第3章 AT89C51 指令系统
1.位数据传送指令 这组指令的功能是将源操作数位地址单元的值传送 给目标操作数指向的位地址单元中,源操作数内容不 变。 [例3.24] MOV C,07H ; MOV C,20H.7 等效
第3章 AT89C51 指令系统
单片机原理与应用 第七讲 主要内容 第3章 AT89C51指令系统 1. 2. 3. 3.3.3 逻辑操作与移位指令 3.3.4 控制转移类指令 3.3.5 位操作类指令
1
第3章 AT89C51 指令系统
3.3.3 逻辑操作与移位指令 这类指令主要包括与、或、异或、求反、清零、移 位等操作指令。 逻辑操作与移位指令如表3-3(略)所示。共有 24 按参与运算的操作数的个数可分为: 单操作数逻辑运算和双操作数逻辑运算两大类。 下面分别予以介绍 条,
CJNE Rn, #data, rel CJNE @Ri, #data, rel; 比较转移指令 这类指令不影响任何操作数。 16
第3章 AT89C51 指令系统
1) 累加器判零指令 JZ指令的功能是判断累加器A的值。若累加器A的值 为0,则程序转移到目标地址;否则,顺序执行程序。 JNZ指令的功能是判断累加器A的值。若累加器A的 值不为0,则程序转移到目标地址;否则,顺序执行程 序。 例: 设(A)=01H JZ LABEL1
ANL A, @Ri
ANL direct , #data 例: 设 (A)=0A3H, ANL A, R0 结果 (A)=0A0H ; A 的低四位清零
3
第3章 AT89C51 指令系统
2.逻辑或指令 “或”指令是将源操作数与目的操作数按位相或,其结果送入目的操作 数中。“或”指令可以使操作数的数据位置1,即使操作数某些位置1,其 他位保持不变。 这类指令 的助记符为 ORL , 共有 6 条 ORL ORL ORL ORL ORL 例: A, Rn A, direct A, #data direct, A direct , #data
5
第3章 AT89C51 指令系统 4.累加器清零与取反 , CLR A; 是单字节指令 机器码 E4H
指令功能是将累加器A的内容清零。 CPL A ;机器码 F4H
指令功能是将累加器A的内容按位取反,即累加器A中 各位1变0,0变1。 例 (A)=55H CPL CLR A; (A)=0AAH A; ( A)=00H
19
第3章 AT89C51 指令系统 1) 短调用指令 ACALL指令的目标地址是 位。在调用子程序时,该指令与 指令的目标地址是11位 在调用子程序时, 指令的目标地址是 AJMP指令类似,要求调用子程序的入口地址与ACALL指令后面指 指令类似,要求调用子程序的入口地址与 指令类似 指令后面指 令的第一个字节在同一个2 页面的程序存储器区域中 页面的程序存储器区域中。 令的第一个字节在同一个 K页面的程序存储器区域中。 2) 长调用指令 LCALL指令的目标地址是 16位。可在 K程序存储器区域范 指令的目标地址是 位 可在64 程序存储器区域范 围内调用任何一个子程序。 围内调用任何一个子程序。 3) 返回指令 RET是子程序返回指令。它使CPU从子程序返回到调用指令的 是子程序返回指令。它使 是子程序返回指令 从子程序返回到调用指令的 下一条指令。 下一条指令。
相关文档
最新文档