[信息与通信]MSC51单片机.ppt

上传人:音乐台 文档编号:2000618 上传时间:2019-01-30 格式:PPT 页数:94 大小:1.91MB
返回 下载 相关 举报
[信息与通信]MSC51单片机.ppt_第1页
第1页 / 共94页
[信息与通信]MSC51单片机.ppt_第2页
第2页 / 共94页
[信息与通信]MSC51单片机.ppt_第3页
第3页 / 共94页
亲,该文档总共94页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[信息与通信]MSC51单片机.ppt》由会员分享,可在线阅读,更多相关《[信息与通信]MSC51单片机.ppt(94页珍藏版)》请在三一文库上搜索。

1、MCS-51系列单片机 原理及其应用,章节内容,第一章 概述,第二章 MCS-51单片机系统结构,第三章 MCS-51存储器和寻址方式,第四章 8051指令系统与汇编语言,第五章 MCS-51单片机系统扩展与应用,章开始幻灯片号: 1,3,8,45,48,70,章开始幻灯片号: 1,3,8,45,48,70,章开始幻灯片号: 1,3,8,45,48,70,单片机(SCM) 即单片微型计算机Singl Chip Microcomputer 组成: P(微处理器)、RAM、E2PROM、ROM、Flash、多I/O并口、串口(可有多种:UART 如RS232、I2C总线,SPI 、USB等 )、定

2、时器/计数器、AD/DA、中断控制、PWM(脉冲调制器)、看门狗和唤醒、DTMF(双音频)、内置LCD驱动、动态刷新、电源管理等功能集成在一块芯片上,具有一台小微机的功能。 发展:嵌入式微控制器(Embedded Microcontroller) DSP(数字信号处理器),1.1.1 什么是单片机,第一章概述,1.1.2单片机厂家与品种,Intel MSC51 (48/31) /96/198系列, Microchip PIC16/17/18C Atemel 89、AVR系(89C51/52,89C2051,40MHz) Motorola 68xxx系列 Philip 80C51/87C51/8

3、0C52/87C52,51LPC系列(高速) TI MSP430 LG GMS90系列 (兼容8051,有40MHz的) Zilog Z8x系列 Scenix 8位RISC结构SX系列 Epson SMC60/63/88系列 Micon MDT20XX系列 Cygnal C8051系列(兼容,但数据地址不复用,128K) NS国家半导体 COP8, 台湾义隆 EM78系列OTP型单片机(与PIC16C兼容) 台湾凌阳 SPMC65/75系列(816 位) 日立、东芝(870系列,90系列,Mips3000 )、三菱等,1.2 MCS-51系列单片机主要功能,8位CPU;哈佛Harvard结构(

4、程序与数据存贮器分开),内部具有数据和程序存贮器,以及特殊功能控制寄存器 4个8位I/O并口 外部数据和程序存贮空间总线信号与并口复用 2个(3个)16位定时/计数器; 2个优先级,2-7中断源; 1个全双工串行(RS232)I/O口; 1个布尔运算器; 111条指令,有乘除指令; 112MHZ晶振,片内振荡器;现可达40MHZ。 软件:监控程序,小操作系统,汇编,C ,Keil平台 程序存贮器用E2PROM的用于开发,用ROM的仅1次编程,适合产品。均具有保密功能。,1.2.2 MCS-51系列单片机 产品系列,其中AT89S51单片机是一种新型的在线可编程的单片机,1.3 单片机的特点及应

5、用,特点 小而灵活、成本低、可多级和分布控制、易于产品化 可靠性好,适应温度范围宽,编程方便,程序保密 应用领域 商用、家用、个人 电子秤、收款机、条形码识别等 空调系统、制冷系统、报警系统、考勤机等。 学习机、PAD,MP3/4,儿童职能玩具 网络通讯外设 网络路由CPU,通讯如GPS,GPRS, 计算机外设用(打印机,复印机) 扫描仪,盘控) 工业自动化 测控系统,数控系统、数据采集系统、智能仪器 工业机器人 ,机、电一体化产品,生产流水线等 国防军事装备 航天飞机导航系统、智能武器装备、导弹控制等,第二章、MCS-51单片机系统结构,2.1MCS-51 单片机的硬件结构 一、MCS 51

6、片内结构,按功能可分成8个部件,通过片内单一总线连接起来,1.微处理器,2.数据存储器,3.程序存储器,4.I/O口,5.串行口,6.定时/计数器,7.中断系统,8.特殊功能寄存器,控制方式:SFR对各功能部件集中控制,片内总线,与RAM统一编址,2.2 8051单片机外部特性-引脚,一、引脚逻辑图 8051单片机为40条引脚双列直插式封装 引脚可分为三个部分,控制引脚,并行I/O口引脚,电源及时钟引脚,AD7:0,A15:8,复用定义见后,二、并行I/O口引脚(复用),P0口 8位双向三态I/O口; 使用外存时,分时复用地址线(低8位)/数据总线 P1口8位(带上拉电阻)准双向I/O口; P

7、2口 8位准双向I/O口; 访问外存时只输出地址高8位 P3口8位准双向I/O口; 每个脚还具有第二功能,ALE地址锁存信号 用于访问外存时锁存低8位址; ALE为晶振6分频;,三、控制引脚 RST复位信号 晶振工作后2个机器周期的高电平复位CPU。,2.3 中央处理单元CPU,四、电源及时钟引脚 X1接外部晶体此引脚接地 又是内部振荡器的输入端;,X2接外部晶体的另一端 又是内部振荡器输出端;,VCC,VSS电源和地 +5V电源供电, 使用TTL电平。,8051核心部件是8位CPU: 由运算部件和控制部件构成 运算部件:算术、逻辑、位及数据传送等操作 控制部件:以主频为基准,控制CPU的时序

8、,读指、指令译码、控制各硬件环节协调工作 一、算术逻辑单元ALU 8位,完成算术/逻辑运算。 二、寄存器 (一)通用寄存器(8位) 4组,8个寄存器/组R0R7; R0和R1可用于间接寻址。,(二)特殊功能寄存器(SFR),共有21个 1、累加器A (Acc) 8051是累加器结构,所有的运算都是以累加器为一个源操作数和目的操作数 2、累加器B 乘、除指令中的一个操作数 可以作为一般变量使用 3、程序状态字PSW 8位寄存器,保存指令执行状态 PSW:,Cy进(借)位标志 保存算术运算的进或借位 位操作的累加器 AC辅助进位标志 运算结果从D3产生进位或借位时AC=1 主要用于BCD码调整 F

9、0用户标志 可以使用的位变量 可以随PSW被保存 RS1,RS0寄存器组选择 0 0 组0(00H07H) 0 1 组1(08H0FH) 1 0 组2(10H17H) 1 1 组3(18H1FH),D7 D6 D5 D4 D3 D2 D1 D0,有符号数运算结果超出允许范围OV=1,否则OV=0。 (双符号位,00 +无溢; 01 +溢; 10 -溢 ; 11 -无溢) P奇偶标志位 每个机器周期根据累加器A中的内容的奇偶性由硬件置/复位。 A中1的个数为奇P=1; 否则为P=0; 4、堆栈及堆栈指针SP (1)堆栈(存储区) 按先进后出的原则读写数据 堆栈空间用内部RAM(256),OV溢出

10、标志位,用于保护现场和恢复现场。 (2)堆栈指针SP 8位寄存器,指示栈顶位置。 进栈:SP+1,再压栈; 出栈:先出栈,再SP-1。 5、数据指针寄存器DPTR 16位寄存器, 可以寻址64K地址空间。 6、程序计数器PC(16位) 不属于SFR, 但有联系 用于存放下一条的指令地址,(三) 复位电路 8051复位初始化后,从程序存储器的0000H单元开始执行,用A/LJMP转到所用户程序的首地址 上电阻容复位电路,可用专门的复位IC芯片,(一) 时钟 8051也是在时钟同步下工作,所以上电时必须复位。 (二) 时钟电路 需外接晶振1.212MHZ, C1和C2取3010PF,三、时钟及复位

11、电路,VCC上升时间不超过1mS,振荡器启动时间不超过10mS,此电路能保证可靠复位。,CPU的时序(主频、节拍状态周期机器周期、),(四) 时序:主频、节拍、状态、基本机器周期、指令周期:,1个指令周期=1-4机器周期 1个机器周期 =6个状态周期 1个状态周期 =2个节拍CLK,S1,多路开关 功能:用于控制选通I/O方式还是地址/数据输出方式 方式控制:由内部控制信号产生,输入锁存器,两个输入缓冲器(BUF1和BUF2),推拉式I/O驱动器,2.4 并行I/O结构及操作,8051共有4个8位双向I/O口,共32脚。每位均有自己的锁存器(SFR),输出驱动器和输入缓冲器。,(一)P0口位图

12、内部结构,说明: 1、当控制信号为0时,P0口做双向I/O口,为漏极开路(3态) 2、控制信号为1时,P0口为地址/数据复用总线(用于口扩展) 3、P0W为端口输出写信号,用于锁存输出状态 4、P0R1为读锁存器信号,执行“ANL P0,#0FH”时该信号有效 5、P0R2为读引脚信号,执行“MOV A,P0”时该信号有效 6、读引脚(端口)时,输出锁存器应为“1”,1,0,(二)P1口内部结构,P1口内部结构如图2所示 输出部分有内部上拉电阻R*约为20K。 其他部分与P0端口使用相类似。,写数据,读端口,(二)P2口内部结构,2、当控制信号为1时 P2口输出地址信息, 此时单片机完成外部的

13、取指操作或对外部数据存储器16位地址的读写操作。 3、当P2口作为普通I/O口使用时 用法和P1口类似。,说明: 1、P2可以作为通用的I/O,也可以作为高8位地址输出。,(三)P3口内部结构,说明: 1、做普通端口使用时,变异功能应为“1”。,2、使用第二功能时,输出端口锁存器应为“1”。 3、变异功能 P3.0 TXD P3.4 T0 P3.1 RXD P3.5 T1 P3.2 INT0 P3.6 WR P3.3 INT1 P3.7 RD,2.4 定时器/计数器,8051内部有2个16位定时器/计数器(8052有3个) 主要作用:对外部脉冲计数、产生精确定时时间、作串行口的波特率发生器 一

14、、定时器/计数器结构,用于确定T1和T0的功能和工作方式,用于控制T1和T0的启动和停止,(一)工作方式控制寄存器TMOD,定时方式时,每个机器周期使计数器加1( T=12 / fosc) 计数方式时T0(P3.4)、T1(P3.5)的负跳变使计数器加1。 最大计数速率是fosc/24,即高低电平分别能保持一个机器周期。,用于控制定时器/计数器的功能和工作方式 TMOD格式: (字节地址89H),操作模式控制位,GATE:门控制 GATE=1时,如INTx=1,且TRx=1,则启动定时器; GATE=0,只要TRx=1定时器就开始工作。 C/T:选择定时或计数方式,M1 M0 工作方式控制位,

15、TF1:定时器T1溢出中断标志。 当定时器1溢出时,由硬件置1 当响应中断转向中断服务程序时由硬件清0。 TR1:定时器T1运行控制位。 由软件置位/复位,控制定时器是否运行。 TF0:功能与TF1类似。 TR0:功能与TR1类似。,(二)状态控制寄存器TCON TCON格式: 地址88H,状态控制寄存器TCON格式(低4位),二、定时器/计数器四种工作方式,由软件设置TMOD中的M1,M0位,选择定时器4种工作方式 (一)方式0(以T1为例) 当M1,M0置成00时,为方式0 TLx(04)低5位和THx的8位构成13位计数器,溢出进位,溢出置位,4、定时器T0方式0类似 5、计数器溢出,T

16、F1置1,由硬件申请中断,B,A,(二)方式1,M1,M0置成01时,为方式1 16位计数器 与方式0的区别:由THx作为高8位和TLx作为低8位构成一个16位计数器。,(三)方式2,M1,M0置成10时,为方式2 为8位再装入工作方式。可以不用软件管理,自动工作。 TH1为时间常数寄存器,TL1为计数器 TL1溢出时打开三态门,由TH1自动为TL1置数,(三)定时器工作方式3 (仅用于定时器T0),M1,M0置成11时,为方式3 TH0和TL0分为2个独立的计数器,说明: 1、TL0占用了全部的定时器控制位。(C/T,GATE,TR0,TF0) 2、TH0只能用于定时方式 运行控制位和溢出标

17、志位借用定时器T1的TR1和TF1。 3、此时的定时器T1可设为方式0、方式1或方式2,用于串行口波特率发生器, 不需要中断的场合。,同步数据帧由三个部分组成 特点:传输速率较高(可达56kbps以上) 缺点:要求发送/接收时钟始终保持严格同步,硬件复杂 主要用于计算机网络系统中。,2.5 串行I/O接口,MCS51内部有一个全双工串行通讯接口 具有UART的全部功能(Universal Asynchronous Receiver/Transmitter) 可同时进行数据的发送和接受 可作为同步移位寄存器使用 一、串行通讯 串行通讯:使用极少的传输线将二进制数据按位传送 分类:串行同步/串行异

18、步通讯 (一)同步通讯 (Synchronous Communication) 是一种连续串行传送数据的通讯方式,一次只传送一帧信息 每帧信息通常含若干个数据字符,单同步字符帧格式,双同步字符帧格式,1,表示没有数据传送,(二)异步通讯 (Asynchronous Communication),以字符(或字节)为单位一帧一帧的传送方式 异步通讯协议: 1)起始位 4)停止位 2)数据位 5)波特率 3)奇偶校验位 6)握手信号,表示开始发送,先发送低位数据,表示本帧数据 发送完毕,起始位,1位 停止位,1位、1.5位或2位 波特率数据传输速率 定义:每秒传送二进制数码的位数(或称比特数) 单位

19、:位/秒,bps(bit per second) 字符传输速率:字符帧数/秒 位传输时间:波特率的倒数,特点: 无需传送同步脉冲 发送/接收端的两个时钟源可彼此独立 字符帧长度也不受限 设备简单化 缺点:每帧含有起始位和停止位,降低了有效数据的传输速率,(三)串行通讯约定 两个重要指标 a)字符帧格式 b)波特率 字符帧格式的四个部分: 编码格式(58位,ASCII码7位) 奇偶校验,1位,0,1,(四)数据传送方向,单工方式 半双工方式 全双工方式 二、8051串行接口 8051串行I/O接口有多机通讯功能 主机与多片从机通讯,(一)串行通讯控制寄存器 1、发送与接收寄存器SBUF 8051

20、有一个发送寄存器和一个接收寄存器,共同占用一个端口地址。 2、控制与状态寄存器SCON,(1)SM0 SM1工作方式选择 0 0 方式0 移位寄存器 0 1 方式1 8位UART(10) 1 0 方式2 9位UART(11) 1 1 方式3 9位UART(11),(2)SM2:多机通讯控制位,SM2=0,为单机通讯方式 SM2=1,为多机通讯方式(适用于方式2、3) (3)REN:允许接收控制位 REN=0,禁止接收 REN=1(且RI=0),允许收: 即,数据SBUF中 软件置位/复位 (4)TB8:发送数据的D8,发送数据时,D8 TB8 多机通讯时(仅方式2/3) TB8=1,发送一地址

21、帧 TB8=0,发送一数据帧 单机通讯时,为奇偶校验位 方式0、1未用TB8 (5)RB8:接收数据中的D8 多机通讯时 RB8=1,收到的为地址帧 RB8=0,收到的为数据帧 单机通讯时,约定的奇偶校验位 方式1中,RB8为接收数据的停止位 方式0,未用,(6)TI:发送中断标志(硬件),下列情况时,TI=1,申请中断 1)方式0,数据D7发送完毕 2)其他方式,停止位开始发送时 CPU响应中断后,软件清0 软件查询TI状态 (7)RI:接收中断标志(硬件) 下列情况时,RI=1,申请中断 1)方式0,收到数据D7 2)其他方式,收到停止位(中间) CPU响应中断后,软件清0,取数 软件查询

22、RI状态,(二)串行口4种工作方式 1、方式0移位寄存器方式 方式0主要用于I/O扩展 RXD(P3.0),为I/O串行数据 TXD(P3.1),为串行同步时钟 接收: 软件置REN=1(RI=0)后 TXD产生移位时钟 采样RXD线上的数据 接收完毕,使RI=1 发送: 写SBUF有效时,即启动发送 发送完毕,使TI=1 接收/发送的8位数据低位在前 I/O的波特率固定为fosc/12,串行口方式0扩展输入,由串行口扩展输入,1、CD4094是串行输入/并行输出的移位寄存器 DI:串入信号/ Qs:进位信号 CLK移位时钟 STB选通输入: 高电平时,移入数据锁存器 经过输出缓冲器并行输出

23、2、扩展电路 4094数据输入连接RXD 移位时钟连接TXD 由口线P1.0控制锁存(并出),1、CD4014是并行输入/串行输出的移位寄存器。 8个并入和串入信号SI 在移位时钟CLK作用下,由Q8输出 P/S=0时移位使能,为1时置数,2、扩展电路 4014串行输出连接RXD 移位时钟CLK连接TXD 由口线P1.0控制允许移位,2、串行方式1,一个起始位 8个数据位 一个停止位,26,发送 “写SBUF”指令引起发送过程 由TXD(P3.1)发送数据 发送完成使发送标志TI=1 申请中断,置TXD=1为停止位 发送时钟周期为16倍的Baud TB8=1组成停止位自动发送,方式1的数据格式

24、:,在每个数据中间点采样3次,以表决方式(3取2)确定数据位 当REN=1时,收到停止位RB8=1后,请求中断,置RI=1,CPU响应中断后,读SBUF取数 取数完毕,置RI=0(SBUF为空),D8,接收 串行口从RXD接收数据 接收时钟以16倍的Baud的速率采样RXD 当发现从“1”到“0”的负跳变时使接收时钟与数据位同步,串行通讯的波特率,方式1和方式3的波特率取决于定时器1的溢出率和PCON中的最高位SMOD的值。 定时器1工作在方式2时,波特率由以下公式计算。,表1、几种常用波特率时间常数,表1是主频为11.0592MHZ,由定时器1工作在方式2(做定时器)时,几种常用波特率的时间

25、常数(TH1)。,3、串行口方式2和方式3,(1)数据格式:,(2)发送与方式1类似,仅是多发送一位数据TB8。 (3)接收过程 使REN=1,采样RXD线 REN由10时,D8 RB8 置RI请求中断的条件与方式1相同: SBUF中伤一帧数据已读取 SM2=0或停止位=1 否则,本次接收失效,RI不变 (4)发送过程 写SBUF,启动发送,串行口取出TB8 (可由软件设置) D8 逐一发送完毕后,置TI=1 (5)方式2、3的不同在于波特率 方式3的波特率与方式1相同,由定时器1发生 方式2的波特率的公式计算为:,2.6 8051中断控制系统,一、中断概述 (一)概念 中断:用外部逻辑强迫停

26、止CPU正在执行的程序,而转到中断服务程序的过程。 (二)中断的过程 1、有中断请求发生; 2、CPU允许中断(打开全局和对应的局部各中断屏蔽); 3、响应中断: (1)保护现场(程序先确定中断源,关屏蔽,清中断源,保护要用的寄存器,硬件保护程序点) ; (2)中断服务; (3)恢复现场并返回(包括开中断屏蔽);,(三)中断优先级 中断优先级:多个中断源时,主机对中断源处理的先后顺序 1、软件查询方式 主机查询顺序决定优先级顺序; 2、矢量中断方式 硬件优先级排队电路,响应中断时由外设提供中断矢量 根据中断矢量决定中断服务程序入口地址 51系列有5个中断源,52系列有6个中断源,其中断过程类似

27、 中断向量区空间0003-002A,二、8051中断系统,(一)中断源 8051的5个中断源,响应每个中断源的中断要求受下列因素控制: 中断请求标志 TFX(TCON,X=0,1) IEX(TCON,X=0,1) TI和RI(SCON) 允许中断寄存器IE 中断优先寄存器IP 内部查询逻辑(同级) 每个中断源的中断矢量,INT0:外部中断0请求, 由IT0位设置INT0请求信号为低电平或下降沿有效 IE0,中断请求触发器 INT1:外部中断1请求 由IT1设置INT1请求为低电平有效或下降沿有效 IE1,中断请求触发器 TF0:定时器0溢出中断请求 TF1:定时器1溢出中断请求,RI和TI:串

28、行口收发中断请求 RI和TI共用一个中断源 由软件清除申请标志,IE各位功能如下: 1、EA:允许或禁止所有中断。 当EA=0禁止所有中断响应 当EA=1允许各个中断源向CPU申请中断 2、ES:允许或禁止串行口中断 ES=1允许 ES=0禁止,(二)中断控制,中断允许寄存器IE :对每个中断源能否申请中断进行控制,3、ET1:定时器1溢出中断允许控制位 ET1=1允许 ET1=0禁止 4、EX1:外部中断1(INT1)中断允许控制位 EX1=1允许; EX1=0禁止。 5、ET0:定时器0溢出中断允许控制位,设定与ET1类似 6、EX0:INT0中断允许控制位,设定与EX1类似 7、系统复位

29、的初始设置为0,(三)中断优先级,8051有两个中断优先级 IP寄存器用于控制中断源优先级 优先级规则: 高优先级可中断低优先级实现中断嵌套 同级中断源不能相互中断 同一优先级的多个中断源同时申请中断时,由内部查询次序决定先响应哪个中断。 查询次序为: IE0TF0IE1TF1RI+TI,编程该位为“1”,高优先级;为“0”低优先级。 (四)中断管理 8051每个机器周期对中断进行查询 发生下列情况之一,中断响应将被屏蔽: 同级或高优先级中断正在处理中 当前机器周期不是正在执行指令的最后一个周期 当前正在执行的指令为中断返回指令(RETI)或对IE和IP寄存器读写指令,中断优先级寄存器IP:,

30、响应中断后,在硬件的控制下,程序转向相应的矢量单元 将当前的程序计数器PC值进栈保护,但不保护PSW 将相应的矢量地址装入PC,并转向执行该中断服务程序,中断响应过程,中断服务程序从中断入口地址开始执行,直到返回指令(RETI)为止 (五)外部中断 INT0,INT1可编程电平触发方式或下降沿触发方式 每个机器周期(fosc/12)采样中断输入引脚 中断引脚上的高和低电平的时间应至少保持12个时钟周期 中断响应时间:从中断请求有效到开始执行服务程序的第一条指令(38个机器周期),(六)用优先权编码器扩展外部中断源,74LS148:优先级编码器(8-3) 输入07:连接8个中断源(低电平有效)

31、A0A2:8个输入的编码输出(反码) GS:编码器允许输出端 输入出现多中断源申请时: 输入编号较大的优先级高 同一时刻只对优先级高中断源的编码,如:输入有 IR0=IR1=IR3=0 则:输出为 A2A1A0=100 GS=0时,向CPU申请中断,其它应用1:用外部存贮空间扩展外部中断源,如INT0的外部中断源的扩张,其它应用2:用 I/O 口 虚拟I2C总线 或 SPI串口 或 扩张外部存贮空间的高位地址,其它应用3:用外部存贮空间扩展I/O口,其它应用4:如 使用INT0,单指运行调试,原理:中断返回到断点,至少要执行一条指令指令,才响应新的嵌套中断。实行对指令的逐条执行。 硬件:在接一

32、个单脉冲按键开关触发器,其输出通过跳针接INT0,按下开关触发器输出为“1”,放开为“0”。每按一次产生一次INT0中断执行一条指令。 程序:JNB P3.2, $; /放按键开关, 测试转移 JB P3.2, $; /按按键开关, 测试转移 RETI; /中断返回 注意:此时原INT0中断不可用,可用跳针断开。也可用其它 中断输入脚,但测试点是对应的P3.x。,有关中断控制中注意问题,中断响应中问题:触发极性高/低电平或/跳沿,根据规定设置,电平请求必须保持4个机器周期(最长指令周期),否则可能得不到响应(因在指令执行的最后周期才响应中断)。 中断请求的撤除:外部请求源,如果不能自动清除,设

33、计逻辑必须保证可用程序命令清除。若不清除,电平型则可产生连续中断,造成死机;跳沿型则不能发生下次中断(无跳沿)。,第三章、MCS-51存储器和寻址方式,3.1 8051存储器结构 一、存储器结构 8051单片机程序存储器和数据存储器分开 由PSEN选通外部程序存储器, 由RD(P3.7)和WR(P3.6)读写外部数据存储器(MOVX) (一)程序存储器 存放程序或固定数据,只能取指令读或程序MOVC读取,说明: 1、8051可寻址64K程序空间; 2、8051内部有4KBROM; 3、执行到0FFFH到外部取指;,4、8031无内部ROM; 5、程序存储器访问通过 (1)地址有效; (2)PS

34、EN有效;,(二)数据存储区,8051分为片内数据存储器(256B)和片外数据存储器,1、内部RAM由8位地址线寻址 00H7FH:存储区 80H FFH:特殊功能寄存器区 2、片外RAM由16位地址寻址 寻址空间64KB 片外数据存储器访问条件: (1)地址信号有效; (2)RD/WR信号有效;,二、内部数据存储器 内部数据存储器低128字节为RAM 高128字节为特殊功能寄存器区,(一)RAM区 1、通用寄存器区 4组8个8位寄存器R0R7 由PSW中的RS1,RS0选择当前工作区 2、位寻址空间 20H2FH字节可以位寻址128位00H7FH 3、寻址内部RAM空间 30H7FH字节(8

35、0B),4、特殊功能寄存器,*表示 可以位寻址的寄存器(其地址可被8整除) 共21个SFR,离散分布 只能使用直接寻址,3.2 8051寻址方式(7种),第四章 8051指令系统,4.1指令系统概要 一、指令系统分类及技术指标 共111种指令,按功能分为5类 数据传送(29条) 算术操作(24条) 逻辑操作(24条) 控制转移(17条) 布尔变量操作(17条) 指令字节数 单字节指令占44% 双字节指令占42% 三字节指令占15% 指令执行的时间 单机器周期(12/fosc)58% 双机器周期(24/fosc)41% 两条指令是4个机器周期,二、汇编语言中常用符号,设:fosc=12MHz,则

36、对应的机器周期为 单机器周期=1s 双机器周期=2 s 4个机器周期=4 s,4.2 数据传送指令(29条),一、向累加器A的传送(目的) MOV A,Rn ;(A)(Rn) MOV A,direct;(A) (direct) MOV A,Ri ;(A)(Ri) MOV A,#data; (A)data 二、向通用寄存器传送 MOV Rn,A ;(Rn)(A) MOV Rn,direct ;(Rn)(direct) MOV Rn,#data ;(Rn)data,三、向直接地址传送 MOV direct,A ;(direct)(A) MOV direct,Rn ;(direct)(Rn) MOV

37、 direct,direct ;(direct)(direct) MOV direct,Ri ;(direct)(Ri) MOV direct,#data ;(direct)data 四、间址传送 MOV Ri,A ;(Ri)(A) MOV Ri,direct ;(Ri)(direct) MOV Ri,#data;(Ri)data,六、累加器传送指令 字节交换指令 XCH A,Rn ;(A)(Rn) XCH A,direct ;(A) (direct) XCH A,Ri ;(A) (Ri) 半字节交换指令 XCHD A,Ri ; (A03) (Ri) 03) 累加器高4位与低4位数据互换 SW

38、AP A ;(A03) (A47),五、堆栈操作,入栈指令 PUSH direct ;(sp)(sp)+1, ;(sp)(direct) 出栈指令 POP direct ;(direct)(sp), ;(sp)(sp)-1,累加器与外部RAM的传送 MOVX A,Ri ;(A) (Ri) MOVX A,DPTR; ;(A)(DPTR) MOVX Ri,A ;(Ri) (A),WR有效 MOVX DPTR,A ;WR(P3.6)有效 ;(DPTR) (A),累加器与程序存储器传送 MOVC A,A+DPTR ; (A) (A)+(DPTR) MOVC A,A+PC ;(PC) (PC)+1, (

39、A) (A)+(PC),七、目标地址传送指令 MOV DPTR,#data16 ;(DPTR) data16,4、十进制调整指令 DA A ;对(A)的加结果进行十进制调整,4.3 算术运算指令(24条),一、加法指令 1、加法 ADD A,Rn ;(A) (A)+(Rn) ADD A,direct ;(A) (A)+(direct) ADD A,Ri ;(A) (A)+(Ri) ADD A,#data ;(A) (A)+data 注:加/减法指令影响Ac,Cy,OV,P,3、加1指令 INC A ;(A) (A)+1 INC Rn ;(Rn) (Rn)+1 INC direct;(direc

40、t)(direct)+1 INC Ri ; (Ri) (Ri)+1 INC DPTR ; (DPTR) (DPTR)+1 注:加/减1指令不影响PSW(Cy),2、带进位加法 ADDC A,Rn ;(A) (A)+(Rn)+(C) ADDC A,direct; (A)(A)+(direct)+(C) ADDC A,Ri ;(A)(A)+(Ri)+(C) ADDC A,#data;(A)(A)+data +(C),三、乘法指令 MUL AB;(BA) (A)*(B) (A)0FFH,则OV=1,(B)=非零 否则,OV=0,(B)=0,四、除法指令 DIV AB ;(A) (A)/(B) ; (

41、B) (A)%(B) Cy=OV=0 若(B)=00H,(A)和(B)结果不定, 置OV=1,表示0除数错误(Cy=0),无不带借位指令 使用前要先CLR C,使Cy=0 影响标志位PSW:Cy,AC,OV,P,二、减法指令,1、带借位减法指令 SUBB A,Rn ;(A) (A)-(Rn)-(C) SUBB A,direct ; (A) (A)-(direct)-(C) SUBB A,Ri ;(A) (A)-(Ri) -(C) SUBB A,#data ;(A) (A)-data-(C),2、减1指令 DEC A ;(A) (A)-1 DEC Rn ;(Rn) (Rn)-1 DEC dire

42、ct ;(direct) (direct)-1 DEC Ri ; (Ri) (Ri)-1 不影响PSW,6、累加器A带进位循环右移 RRC A;,4.4逻辑运算指令(24条),一、单操作数逻辑运算指令 1、累加器A清零 CLR A ;(A) 0,3、累加器A循环左移 RL A;,4、累加器A循环右移 RR A;,5、累加器A带进位循环左移 RLC A;,RLC A:可以实现快速(A) 2 RRC A:可以实现快速(A)/2,二、双操作数逻辑运算指令,逻辑操作指令只影响标志位P 1、逻辑“与”指令 ANL A, Rn ;(A) (A)(direct) (direct)&data,2、逻辑“或”指

43、令 ORL A, Rn ;(A) (A)|(Rn) ORL A, direct ;(A) (A)|(direct) ORL A,Ri ; (A) (A)|(Ri) ORL A, #data ;(A) (A)|data ORL direct, A ;(direct) (direct)|(A) ORL direct,#data ;(direct) (direct)|data,(2)长调用(64K) LCALL addr16 ;(pc) (pc)+3 ;(sp) (sp)+1,(sp) (pc07) ;(sp) (sp)+1,(sp) (pc815) ;(pc) addr16,XRL A, Rn ;

44、(A) (A)(Rn) XRL A, direct ; (A) (A)(direct) XRL A, Ri ; (A) (A)(Ri) XRL A, #data ; (A) (A)data XRL direct, A ; (direct) (direct)(A) XRL direct, #data ; (direct) (direct)data,4.5 控制转移指令(17条) 一、无条件转移指令 1、调用指令 (1)绝对调用(2K) ACALL addr11 ;(pc) (pc+2) ;(sp) (sp)+1,(sp) (pc07) ;(sp) (sp)+1,(sp) (pc815) ;(pc

45、010) addr010 ;(pc1115)不变,3、“异或”指令,(3)相对转移(短转移) SJMP rel ;(pc) (pc)+rel,(2)中断程序返回 RETI ;(pc815) (sp),(sp) (sp)-1 ;(pc07) (sp),(sp) (sp)-1 ;开放中断逻辑,5、空操作指令 NOP ;(pc) (pc)+1 用于产生一个机器周期的延迟,4、间接转移指令(散转指令) JMP A+DPTR ;(pc) (A)+(DPTR),3、转移指令 (1)绝对转移(短转移) AJMP addr11 ;(pc010) addr010 ;(pc1115)不变,2、返回指令,(1)子程

46、序返回(ACALL和LCALL) RET ;(pc815) (sp),(sp) (sp)-1 ;(pc07) (sp),(sp) (sp)-1,(2)长转移 LJMP addr16 ;(pc) addr16,二、条件转移指令,1、判零转移指令 (1)JZ rel ;当(A)为0,则(pc) (pc)+rel ;否则,顺序执行 (2)JNZ rel ;当(A)非0,则(pc) (pc)+rel ;否则,顺序执行,3、跳转循环指令(内容0) DJNZ Rn,rel ;(Rn) (Rn)-1, ;若(Rn)非0,则(pc) (pc)+rel ;否则, 顺序执行 DJNZ direct,rel ;(d

47、irect) (direct)-1, ;若(direct)非0, 则(pc) (pc)+rel ;否则, 顺序执行,2、比较转移指令(-128B+127B) CJNE A,direct,rel CJNE A,#data,rel CJNE Rn,#data,rel CJNE Rn,#data,rel ;若不相等,(pc) (pc)+rel ;否则,顺序执行,4.6布尔处理器指令(17条),8051的位(布尔)处理器具有一系列位指令集 布尔变量传送 位状态控制 布尔逻辑运算 位条件转移 位变量地址空间 片内低RAM,Bit地址范围:00H7FH(128位) 片内高RAM,地址能被8整除的SFR中对应各位(11个): 80HF7H,MOV C,bit ;(C) (bit) MOV bit,C ;(bit) (C) C为进位标志位Cy(不影响PSW) 二、布尔状态控制 1、位清“0”指令 CLR C ;(C) 0 CLR bit ;(bit) 0 2、位置“1”指令 SETB C ;(C) 1 SETB bit ;(bit) 1,四、位条件转移指令 1、判断C转移 JC rel ;当(C)为1,则(pc) (pc)+rel ;否则,顺序执行 JNC rel ;当(C)为0,则(pc) (pc)+rel ;否则,顺序执行,一、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1