单片机原理及应用ppt课件.ppt

上传人:牧羊曲112 文档编号:1655583 上传时间:2022-12-13 格式:PPT 页数:276 大小:4.75MB
返回 下载 相关 举报
单片机原理及应用ppt课件.ppt_第1页
第1页 / 共276页
单片机原理及应用ppt课件.ppt_第2页
第2页 / 共276页
单片机原理及应用ppt课件.ppt_第3页
第3页 / 共276页
单片机原理及应用ppt课件.ppt_第4页
第4页 / 共276页
单片机原理及应用ppt课件.ppt_第5页
第5页 / 共276页
点击查看更多>>
资源描述

《单片机原理及应用ppt课件.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用ppt课件.ppt(276页珍藏版)》请在三一办公上搜索。

1、1,单片机原理及应用,2,目录,单片机概述 单片机芯片的硬件结构 MCS51单片机指令系统 MCS51汇编语言程序设计 单片机存储器扩展 单片机的中断与定时系统 单片机I/O扩展与应用 单片机串行数据通信 MCS51单片机应用与开发技术,3,第一章单片机概述,单片机的概念单片机的发展单片机的应用,4,什么是单片机?单片机将计算机的五大部件集中在同一块集成电路硅片上的计算机。,第一节单片机的概念,单片机的名称:单片微型计算机(SCMC)微控制器(MCU)嵌入式控制器(EMCU),单片机与一般微机最根本的不同之处:单片机的五大部件集成在一块集成电路硅片上。,5,什么是通用单片机和专用单片机? 通用

2、单片机是一种基本芯片。专用单片机是针对一种产品或一种控制应用专门设计的,单片机与单片机系统:单片机系统是在单片机芯片的基础上扩展其它电路或芯片构成的具有一定应用功能的计算机系统。,6,单片机应用系统与单片机开发系统:单片机开发系统即是单片机系统开发调试的工具。 仿真器、编程器等,机器语言:基本的的语言形式,多出现在应用系统中,汇编语言:单片机开发中最常用的程序设计语言,高级语言:很具发展潜力。,单片机的程序设计语言和软件常用单片机语言:汇编语言、高级语言c51。,7,单片机的分类: 4位单片机特点:一次处理4位二进制数代表产品:COP4XX系列(NS公司)TMP47XXX系列(Toshiba公

3、司)用途:计算器、家用电器等, 8位单片机特点:一次处理8位二进制数代表产品:MCS51系列(Intel公司)M6805系列(Motorola公司)用途:工业控制、智能仪表、家用电器和办公自动化系统,8, 16位单片机特点:一次处理16位二进制数代表产品:MCS96系列(Intel公司)M68HC16系列(Motorola公司)用途:过程控制、智能仪表、家用电器和计算机外设等, 32位单片机特点:一次处理32位二进制数代表产品:M68300系列(Motorola公司)SH系列(日立公司)用途:多媒体、蜂窝电话、光驱等计算机外设,9,第二节单片机的发展,单片机的发展历史第一阶段:4位单片机阶段。

4、主要特点是:价格便宜,具有一定的控制功能。主要代表系列有:日本NEC公司的uMOS40系列、松下公司的MN1400系列,夏普公司的SM系列,富士通的MB88系列等等。,第二阶段:(19761978年)低、中档8位单片机阶段。以Intel公司的MCS48为代表。这个系列的单片机片内集成有8位CPU。并行I/O口,8位定时器/计数器,寻址范围不大于4K,无串行口。,10,第三阶段:(1978至1982)高档8位单片机阶段。这阶段推出的普遍带有串行I/O口,有多种中断处理系统,多个16位定时器/计数器。片内RAM、ROM容量较大,寻址范围可达64K,有的片内还带有A/D转换接口。主要代表系列有Int

5、el公司的MCS51,Motorola公司的6801,Zilog公司的Z8等。,第四阶段:(1982至今)8位单片机完善发展和16位、32位单片机推出阶段。这阶段的主要特征是一方面发展16位单片机及专用单片机,另一方面同时不断完善高栏8位单片机,改善其结构,以满足不同的用户需要。,11,8位单片机的市场前景,8位单片机用途广泛(美国)每家226个办公室42个每汽车35个,注意:基于Internet、无线数字传输的嵌入式应用将会是32位机最广泛的市场。,12,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面: CPU功能增强 内部资源增多 引脚

6、的多功能化 低电压和低功耗,13,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面: CPU功能增强采用亚微米的CMOS工艺提高运算速度,计划把80C51设计成1/3时钟周期执行一条指令,并可在33MHZ时钟下运行。 内部资源增多 引脚的多功能化 低电压和低功耗,14,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面: CPU功能增强 内部资源增多增加了A/D和D/A转换器、DMA通道、总线接口、晶振和LCD驱动电路。 引脚的多功能化 低电压和低功耗,15,8位单片机的新发展,为了减小体积,

7、增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面: CPU功能增强 内部资源增多 引脚的多功能化采用一脚多用设计方案,减少引脚数量,提高应用灵活性。 低电压和低功耗,16,8位单片机的新发展,为了减小体积,增强功能,提高灵活性和可靠性,8位单片机的新发展体现在下面4个方面: CPU功能增强 内部资源增多 引脚的多功能化 低电压和低功耗制造成3V电源的单片机;采用CMOS工艺,设立掉电和空闲两种工作方式。,17,几种8位单片机的性能概况(1)Intel公司的MCS51系列(2)Philips公司的80C51系列(3)Microchip公司的PIC系列(4)Atmel公司的AT8

8、9、AT90、AT91和智能IC卡四个系列(5)Motorola公司的M68HC05、M68HC11系列,18,MCS-51系列单片机特性,19,除了Intel公司外,Siemens、Philips和Fujitsu等公司都在80C51基础上推出与Intel公司的80C51兼容的新型单片机,统称为80C51系列。Philips公司的80C51系列单片机性能卓著,产品最齐全,最具有代表性。它以80C51为内核,新增功能电路有:A/D转换器捕捉输入/定时输出PWM(Pulse Width Modulator)脉冲宽度调制器I2C总线接口视频显示控制器监视定时器E2PROM,20,80C51系列单片机

9、主要性能特点,21,PIC系列单片机分低档、中档和高档三个层次。1、产品特点:价格低:率先采用RISC(精简指令系统计算机)技术速度高:两级指令流水线结构采用哈佛双总线结构可靠性好:采用OTP(一次性程序)技术,比熔丝式EPROM更为可靠2、主要应用:嵌入式单片机的主流产品之一。,22,PIC系列中档单片机性能表,23,Atmel公司是世界上著名的高性能、低功耗、非易失性存储器和数字集成电路的一流半导体制造公司。单片机产品分为AT89、AT90、AT91和智能IC卡等四个系列。1、产品特点:E2PROM存储器技术FLASH闪速存储器技术2、主要应用:计算机外部设备、通信设备、自动化工业控制航空

10、航天仪表、雷达系统、导弹机器人、各类武器系统,24,AT90系列单片机选型表,25,Motorola公司是世界最具影响力的单片机厂商,其8位机约占8位机市场的30%份额。该公司共分为M6805、M68HC05、M68HC08 、 M68HC11等几个系列。,26,M6805系列单片机主要性能表,27,M68HC05系列单片机主要性能表,28,M68HC11系列单片机主要性能表,29,第三节单片机的应用,单片机应用的特点1、控制系统的在线应用,2、软硬件结合,(1)计算机在控制系统中的离线应用。由微型机或小型机实现(2)计算机在控制系统中的在线应用。由单片机实现,要求:设计人员既要掌握汇编语句编

11、程技术,又要具备较扎实的硬件理论和实践知识。,30,(1)广泛性:微电子时代的必然发展趋势,意义:有利于产品的小型化、多功能化和智能化;改变了的传统的控制系统设计思想,传统:,控制设计思想,现代:,控制设计思想,4、应用的广泛性及其重要意义,3、应用现场环境恶劣,注意:使用时,应根据环境的温度情况选择合适的芯片。,31,单片机的应用领域1、工业自动化方面2、仪器仪表方面3、家用电器方面4、信息和通信产品方面5、军事装备方面,32,参考书,单片机原理及实用技术张振荣北京人民邮电出版社MCS51系列单片机系统原理与设计苏凯冶金工业出版社单片机原理及其接口技术胡汉才清华大学出版社,33,第二章单片机

12、芯片的硬件结构,MCS51单片机的逻辑结构及信号引脚MCS51单片机的内部存储器MCS51单片机并行输入/输出口电路MCS51单片机时钟电路与时序MCS51单片机工作方式,34,第一节逻辑结构及信号引脚,MCS51单片机结构框图,35,MCS51单片机芯片内部逻辑结构,中央处理器内部数据存储器内部程序存储器定时器/计数器并行I/O口串行口中断控制系统时钟电路位处理器总线,36,1.中央处理器,注意:控制器的时钟脉冲由振荡器OSC电路提供。,PC:存放将要执行的指令地址。IR:存放正在执行的指令地址。ID:存放指令码。定时与控制电路:产生时序输出信号和微操作控制信号,控制器:PC、PC加1寄存器

13、、指令寄存器(IR)、指令译码 器(ID)、定时与控制电路。,ALU:用于进行算术、逻辑运算。ACC:用于存放操作数或操作结果。B:用于存放操作数。PSW:用于存放指令执行后的状态信息。TMP:用于存放中间操作数(对用户不开放)。,运算器:ALU、ACC、B、PSW、TMP1、TMP2。,37,2.内部数据存储器由RAM和RAM地址寄存器组成。用于存放可读写的数据。,根据片内ROM的结构,单片机可分为:无ROM型ROM型EPROM型E2PROM型 FLASH型,3.内部程序存储器由ROM和ROM地址寄存器组成。用于存放程序和原始数据。,38,4.定时器/计数器2个16位(80C51、8051)

14、用于将其定时或计数的结果对单片机进行控制。,5.并行I/O口4个8位(P0、P1、P2、P3)用于使单片机和存储器或外设之间并行传送8位数据。,6.串行口1个全双工串行口用于单片机和其它数据设备之间的串行数据传送。,39,7.中断控制系统5个中断源、2级中断,10.总线,9.位处理器即布尔处理器。特别适用于控制目的和解决逻辑问题,8.时钟电路典型的晶振频率为12MHZ,40,MCS51单片机的信号引脚,1. 信号引脚介绍,41,(1)主电源及时钟引脚(2)控制引脚(3)输入/输出引脚,VCC (40脚)、VSS (20脚)XTAL1 (19脚)、XTAL2 (18脚),RST/VPD(9脚):

15、复位信号/备用电源ALE/PROG(30脚):地址锁存控制信号/编程脉冲PSEN(29脚):外部程序存储器读选通信号EA/VPP(31脚):访问程序存储器控制信号/编程电源,P0:8位三态双向I/O口,可驱动8个LSTTL负载P1:8位准双向I/O口,可驱动4个LSTTL负载P2:8位准双向I/O口,可驱动4个LSTTL负载P3:8位准双向I/O口,可驱动4个LSTTL负载,42,2. 信号引脚的第二功能 - 引脚“复用”,可概况为:,“一组与三个”,一组:P3口,三个:9脚RST/VPD 30脚-ALE/PROG 31脚-EA/VPP,43,第二节内部存储器,MCS-51单片机的存储器结构特

16、点,(1)数据存储区与程序存储区完全分开,且各有自己的一套系统,(2)分为内外存储器,44,存储器的配置情况:,物理上:片内程序存储器、片外程序存储器片内数据存储器、片外数据存储器,逻辑上:片内外统一的64KB的程序存储器片内数据存储器64KB片外数据存储器,45,内部数据存储器物理上分为3块:00H7FH(0127)低128字节RAM;80HFFH(128255)高128字节RAM同上128字节专用寄存器(SFR)块,SFR,RAM,RAM,0FFH,80H,7FH,00H,0FFH,80H,46,(1) 寄存器区,内部数据存储器低128单元按用途可分为3个区域:,(2) 位寻址区,(3)

17、用户RAM区,47,(1) 寄存器区,内部数据存储器低128单元按用途可分为3个区域:,4组寄存器组(R0R7)由PSW中的RS1和RS0位确定当前工作寄存器组两种访问通用寄存器的形式:MOVR0,09HMOV08H,09H,48,(3) 用户RAM区,(2) 位寻址区,16个RAM单元、128位既可进行字节操作,也可进行位操作两种访问位的形式:SETB0FHSETB21H.7,用于存放用户数据或作为堆栈区使用。,49,内部数据存储器高128单元(SFR),1. 专用寄存器简介,(1)程序计数器 PC,16位程序地址寄存器存放下一条要执行的指令地址具有自动加1功能没有地址,不可寻址,(2)累加

18、器 A,8位寄存器存放操作数或结果数据传送中转站作为变址寄存器,50,(3)B寄存器,(4)程序状态字 PSW,8位寄存器主要用于乘除运算ABBAA/BAB,例如:MOVA,05HMOVB,03HMULABDIVAB,AC、OV、P的状态在指令执行过程中自动形成;CY的状态在执行算术和逻辑指令时,可以被硬件或软件置位或清除;F0、RS1、RS0由软件设置。,51,CY进位标志位,AC辅助进位标志位,F0用户标志位由用户根据程序执行的需要通过传送指令确定。,在位操作中,充当累加器。,如:RLCA,在某些逻辑运算中也会影响到进位标志位。,如:ANLC,bit,52,OV溢出标志位带符号数加减运算:

19、超出(128-127)范围,置位乘法运算:乘积超过255,置位除法运算:除数为0,置位,RS1、RS0寄存器组选择位用于选择当前工作通用寄存器组有利于程序中保护现场。,例如:MOVPSW,08HMOVR0,43H,53,例:设程序执行前F00,RS1RS000B,请问机器执行如下程序后MOVA,0FHADDA,F8HPSW中各位的状态是什么?,答:PSWC1H,P奇偶标志位表明累加器中1的个数的奇偶性。01的个数为偶数;11的个数为奇数;,54,(5)数据指针 DPTR,唯一供用户使用的16位寄存器由DPH、DPL拼成可用来存放片内ROM、片外ROM和片外RAM的地址访问外部数据存储器时作地址

20、指针使用MOVXA,DPTR访问程序存储器时作为基址寄存器使用MOVCA,ADPTR,例如:将片外RAM2000H单元中的数据X,取入累加器。MOVDPTR,2000HMOVXA,DPTR,55,2、 专用寄存器的字节寻址,根据不同的型号,可字节寻址的专用寄存器个数不同。8051、80C51、8031等有21个;8052等有26个。分布不连续。PC不可寻址。只能使用直接寻址方式。,56,3、 专用寄存器的位寻址,80C51的位寻址空间:位寻址区(128位) + 专用寄存器可位寻址区(83位)211位,57,MCS51的堆栈操作,堆栈本身是数据结构范畴内的一种线性表结构 在物理上表现为一个特定的

21、存储区域 采用LIFO(FILO)的存取规则,(1) 堆栈的功用,现场保护和断点保护,数据的临时存放,常用在编程过程中,(2) 堆栈的开辟,堆栈只能开辟在内部数据存储器中的低128字节中。最好设置在用户RAM区(30H7FH),注意:在编程中尽量少的运用多级子程序嵌套和多重中断,58,(3) 堆栈指示器(SP),功能:用于存放堆栈的栈顶地址。,(4) 堆栈类型,(5) 堆栈使用方式,自动方式指令方式,59,内部程序存储器,80C51中含有4KB的ROM单元作为程序存储器。地址为 0000H0FFFH,其中位于存储区前部的43个单元为系统保留区,分为6个特殊功能区。地址为 0000H002AH,

22、0000H0002H为系统启动单元 0003H000AH为外部中断0中断地址区 000BH0012H为定时器/计数器0中断地址区0013H001AH为外部中断1中断地址区001BH0022H为定时器/计数器1中断地址区0023H002AH为串行中断地址区,60,第三节并行输入/输出口电路,MCS-51系列共有4个8位并行双向口。分别表示为P0、P1、P2、P3。每个I/O端口内部都有一个8位数据输出锁存器和一个8位数据输入缓冲器。其中四个数据输出锁存器和端口号同名,且为SFR中的一个。,61,1、P0口,字节地址80H,位地址80H87H,可作为地址/数据线,也可作为通用I/O口。,A1,A2

23、,62,2、P1口,字节地址90H,位地址90H97H,只可作为通用I/O口。,63,3、P2口,字节地址0A0H,位地址0A0H0A7H,既可作为高8位地址线使用,又可作为通用I/O口使用。一般不作数据传送工作。,64,4、P3口,字节地址0B0H,位地址0B0H0B7H,只可作为通用I/O口。主要用于第二功能控制逻辑。,65,第四节时钟电路与时序,(1)振荡脉冲信号的产生,什么是时钟电路?时钟电路就是用来产生单片机工作所需要的时钟信号的电路。,1、时钟信号的产生,66,(2)MCS-51各时钟信号的产生,2、 外部脉冲信号的引入,注意:振荡电路产生的振荡脉冲并不是直接拿来使用的,而是经分频

24、后再为系统所用的!,原因:在多片单片机系统中,为了使单片机之间时钟信号同步。,注意:外时钟信号电平持续时间应大于20ns,且脉冲频率应低于12MHZ!,67,4个:节拍(P)、状态(S)、机器周期、指令周期,MCS-51共有111条指令。按长度分为单字节指令、双字节指令和三字节指令。不同的指令可以在不同的机器周期内完成。,时序定时单位,典型指令时序,节拍(P)振荡脉冲的周期。状态(S)振荡周期的2倍。机器周期振荡周期的12倍。指令周期执行一条指令需要的时间。,时序关系:1个机器周期6个状态12个振荡周期(节拍),68,69,第五节工作方式,1、复位方式和复位电路,(1) 复位操作,功能:,初始

25、化单片机,使其进行工作状态,系统重新启动,程序计数器和特殊功能寄存器复位状态,注意:复位后,ALE变为低电平,PSEN变为高电平!,70,(2) 复位信号及其产生,片内复位电路在每个机器周期的S5P2时刻对施密特触发器进行采样,以确定是否有复位操作发生。,(3) 复位方式,上电自动复位,手动复位,71,2、程序执行方式,2个方式:单步执行工作方式 连续执行工作方式,(1) 单步执行工作方式单片机在控制面板上的单步执行键控制下一条一条地执行用户程序中的指令。,利用单片机外部中断功能实现主要用于用户程序调试,(2) 连续执行工作方式所有单片机都需要的一种工作方式。,72,3、低功耗方式,(1) 待

26、机方式,PCON.0 - IDL标志位 “1”有效,振荡器保持工作,保证中断逻辑、串行口和定时器/计数器电路时钟,中断方式退出,(2) 掉电保护方式,PCON.1 - PD标志位 “1”有效,只保证内部RAM数据不丢失,数据转存 - “掉电中断”接通备用电源 - 支持内部RAM 数据,现实方法:,硬件复位方式退出,73,4、EPROM的编程和校验方式,EPROM编程:利用特殊的手段将用户程序写入单片机内部 的EPROM。校验:对写入的程序代码连续读出校验的过程。,8751H片内含有4KB的EPROM,具有编程、校验和保密编程等工作方式。,74,(1) 编程方式,(2) 程序校验方式,(3) 加

27、密方式,8751一旦完成保密编程以后,用户可以让它自由执行EPROM中的程序,但不能以任何形式读出和对它进行局部修改。,75,第三章MCS51单片机指令系统,MCS51单片机指令格式和寻址方式MCS51单片机指令分类介绍,76,第一节指令格式和寻址方式,1、指令系统概述,指令计算机适用于控制各功能部件完成某一指定动作 的指示和命令。,指令系统指令的集合,因机器而异。如:Z80有150条基本指令Intel8080有70条基本指令MCS51有111条基本指令,指令的三种表示形式:二进制形式直接为CPU执行16进制形式阅读和书写汇编形式编写程序,77,2、MCS-51 单片机指令格式,操作码,操作数

28、或操作数地址,(1)一字节指令(49)(2)二字节指令(45)(3)三字节指令(17),如:INCDPTR和MOVA,Rn,如:MOVA,data,如:MOVDPTR,data16 和 MOV direct,#data,标号:操作码操作数1,操作数2,操作数3;注释,78,(1) 寄存器寻址,特点:指令码中含有操作数所在的寄存器号。MCS51根据该寄存器可找到操作数。,范围:,通用寄存器R0R7,部分专用寄存器(A、B、DPTR等),(2) 直接寻址,范围:只限于内部RAM和专用寄存器,3、MCS-51 单片机寻址方式,寻址方式:如何指定操作数的所在单元,特点:指令码中含有操作数地址。机器通过

29、该地址寻找操作数。,79,(4) 立即寻址,特点:指令码中含有操作数。,(3) 寄存器间接寻址,特点:指令码中含有操作数地址所在的寄存器号。机器通过寄存器可找到操作数地址,再根据该地址可找到操作数。,范围:,内部RAM低128单元 (只能使用R0和R1),外部RAM (使用DPTR、R0或R1),例:MOVA,R0,80,(5) 变址寻址,特点:操作数地址基地址地址偏移量;指令码中隐含存放基地址的寄存器号(PC/DPTR);DPTR/PC中的基地址常常是表格始地址,A中存放偏移量rel。,功能:主要用于访问程序存储器中的数据表格。,例:MOVA,ADPTR,81,(6) 位寻址,特点:操作数是

30、可寻址位,指令码中含有位地址。,范围:,内部RAM中的20H 2FH位寻址区,高128单元中的可位寻址专用寄存器,表示方法:直接使用位地址位名称表示方法单元地址加位数表示方法专用寄存器符号加位数的表示方法,(7) 相对寻址,功能:主要用于解决程序中的转移问题,特点:目的地址 = 转移指令地址+转移指令字节数+REL,注意:在程序中,相对地址偏移量常用符号表示。,82,4、MCS-51 单片机寻址方式小结,对片内外程序存储器只能使用变址寻址方式,内部数据存储器寻址方式灵活,外部数据存储器只能使用寄存器间接寻址方式,83,第二节指令分类介绍,指令格式中符号意义说明,通用格式:MOV ,;,特点:源

31、操作数和目的操作数都在内部RAM中。,1、内部RAM数据传送指令组(16条),(1)立即数传送指令(2)直接型数据传送指令(3)寄存器寻址型数据传送指令(4)寄存器间址型数据传送指令,数据传送类指令,84,指令通式: MOV A,#data MOV Rn,#data MOV Ri,#data MOV direct,#data MOV DPTR,#data16,例如:请编程完成将数据X送到20H单元的操作,1. MOV R0,#20H MOV R0,#X,2. MOV 20H,#X,85,指令通式: MOV A,direct MOV direct,A MOV Ri,direct MOV Rn,d

32、irect MOV direct2,direct1,例如:已知(40H)=X,编程完成将X送到50H单元。,1. MOV R0,#50H MOV R0,40H,2. MOV 50H,40H,86,指令通式: MOV A,Rn MOV Rn,A MOV direct,Rn 特点: 指令码中含有Rn的寄存器号,例如:已知R7=X,编程完成将X送到20H单元。,1. MOV A,R7 MOV 20H,A,2. MOV 20H,R7,87,指令通式: MOV A,Ri MOV Ri,A MOV direct,Ri 特点: 指令码中含有Ri的寄存器号; Ri中应预先放有8位二进制地址。,例如:编程完成将

33、20H单元中的数据与30H单元中的数据之间的交换。,MOV A,20H MOV 20H,30H MOV 30H,A,88,2、外部RAM数据传送指令组(4条),特点:只能使用间接寻址。助记符为MOVX,且须以累加 器A为中介。,说明: 第1、2条指令可在外部RAM的64K范围内寻址; 第3、4条指令能对外部RAM 0000H00FFH范围寻址。,指令通式: MOVX A,DPTR MOVX DPTR,A MOVX A,Ri MOVX Ri,A,89,例如:已知外部RAM的88H单元中有一数据X,试编写程序将X传送到外部RAM的1818H单元。,MOV R0,#88H MOV DPTR,#181

34、8H MOVX A,R0 MOVX DPTR,A,90,3、程序存储器数据传送指令组(2条),特点:使用变址寻址。助记符MOVC,也须以累加器A为中 介。单向传送。,指令通式: MOVC A,A+DPTR MOVC A,A+PC,说明: 两条指令均为单字节查表指令; DPTR/PC中存放被查表的初始地址, A中存放被查表的项数。,91,例3.1以查表方法把累加器中的十六进制数转换为ASCII码,并送回累加器中。其查表程序如下: 2000H HBA:INC A 2001H MOVC A,A+PC 2002H RET 2003H DB 30H 2004H DB 31H 2005H DB 32H 2

35、00CH DB 39H 200DH DB 41H 200EH DB 42H 2012H DB 46H,92,例:已知累加器A中有一个09范围内的数,试用查表指令编出能查找出该数平方值表的程序。,方法一 以DPTR为基址寄存器查表。 MOV DPTR,#2000H MOVC A,A+DPTR ORG 2000H DB 0 DB 1 DB 4 DB 9 DB 81 END,93,方法二 以PC为基址寄存器查表。单元地址 指令码 ORG 1FFBH1FFBH 2402H ADD A,#data1FFDH 83H MOVC A,A+PC1FFEH 80FEH SJMP$2000H 00H DB 0 0

36、1H DB 1 DB 4 DB 9 DB 81 END,起始地址PC当前值data,94,4、数据交换指令组(4条),指令通式: XCHA,Rn XCH A, direct XCH A, Ri XCHD A,Ri,说明: 只有累加器A可作目的操作数。 这几条指令执行后会影响PSW中的P标志位。 最后一条指令用作代码转换。,95,例二:已知50H中有一个09的数,请编程把它变为相应的ASCII码程序。,MOVR0,50HMOVA,30HXCHD A,R0MOVR0,A,例一:已知外部RAM的20H单元中有一个数X,内部RAM20H单元中有一个数Y,试编写可以使它们互相交换的程序。,MOVR1,2

37、0HMOVXA,R1XCH A, R1MOVX R0,A,96,5、堆栈操作指令组,指令通式:,说明: 均为双字节指令; A和Rn不可直接出现在指令中,A必须用ACC或它的物理地址(E0H),Rn必须用它的物理地址(00H1FH)。,PUSHdirectPOP direct,例:利用堆栈作为转存介质编写30H和40H单元中内容的互换。,MOV SP, 50HPUSH 30HPUSH 40HPOP 30HPOP 40H,97,算术运算类指令,1、加法指令组(不带CY位加法指令),ADD A,RnADD A,directADD A,RiADD A,#data,注意: (1)目的操作数只能是累加器A

38、。 (2)参加运算的两个操作数必须是8位二进制数;操作结果也是一个8位二进制数,且会对PSW中标志位产生影响。 (3)若将两个操作数看作带符号数,则根据OV位判断结果是否溢出。,98,例一:(A)=0C2H,(R0)=0A9H,执行ADD A,R0指令后,A和PSW中的值是多少?,例二:执行下列指令后,A和PSW中的值是多少? MOV A,#5AH ADD A,#6BH,(A)=6BH, (PSW)=85H,(A)=C5H, (PSW)=44H,99,2、带进位加法指令组,ADDC A,RnADDC A,directADDC A,RiADDC A,#data,注意:(1)目的操作数只能是累加器

39、A。 (2)主要用于多字节加法运算。(3)其中所加的CY中的值是指令执行前的CY值,不是执 行中形成的CY值。,例一:(A)=85H,(R0)=30H,(31H)=FFH,CY=1,试问CPU执行如下指令后累加器A和CY中的值是多少? (1)ADDC A,R0 (2)ADDC A,31H,100,例二:两个三字节无符号数相加,被加数放在内部RAM20H-22H单元(低位在前),加数放在内部RAM2AH-2CH单元(低位在前)。编程序实现,将它们计算的结果放在被加数单元中。,MOV R0,#20H MOV R1,#2AH MOV R7,#03H CLR CLOOP:MOV A,R0 ADDC A

40、,R1 MOV R0,A INC R0 INC R1 DJNZ R7,LOOP CLR A ADDC A,#00H MOV R0,A,101,3、带借位减法指令组,SUBB A,RnSUBB A,directSUBB A,RiSUBB A,#data,注意: (1)在单片机内部,减法操作是在控制器控制下采用补码加法来实现的。在实际应用中,可按二进制减法法则进行。 (2)MCS-51中没有不带借位的减法指令。 (3)进行不带借位减法运算时,可结合“CLR C”指令应用。 (4)若将两个操作数看作带符号数,则根据OV位判断结果是否溢出。,102,例二:判断执行如下程序后累加器A和PSW中的值是多少

41、? CLR C MOV A,#52H SUBB A,#0B4H,例一:(A)=0C9H,(R2)=54H,(CY)=1。试问CPU执行指令SUBB A,R2 后累加器A和PSW中的值是多少?,(A)=74H, (PSW)=04H,(A)=9EH, (PSW)=C5H,103,4、加1指令组,INC AINC RnINC directINC RiINC DPTR,例一:(A)=0FFH,(R3)=0FH,(30H)=0F0H,(R0)=40H,(40H)=00H。执行下列指令后,各寄存器及单元中的结果是多少?是否改变了PSW的状态? INC A INC R3 INC 30H INC R0,注意:

42、 只有INC A指令可以影响PSW中的奇偶标志位P,其它指令不会影响标志位。,104,5、减1指令组,DEC ADEC RnDEC directDEC Ri,注意: 只有DEC A指令可以影响PSW中的奇偶标志位P,其它指令不会影响标志位。,105,6、乘除指令组,MUL ABDIV AB,注意: 执行这两条指令,进位标志CY总是被清“0”,例一:已知两个8位无符号乘数分别放在30H和31H单元中,试编出令它们相乘并把积的低8位放入32H单元,高8位放入33H单元的程序。,MOV R0,#30HMOV A,R0INC R0MOV B,R0MUL ABINC R0MOV R0,AINC R0MO

43、V R0,B,106,7、十进制调整指令,DA A,功能:用于对BCD码十进制数加法运算的结果进行修正。,注意:(1)DA指令不影响溢出标志。(2)使用中通常紧跟在加法指令之后,不能跟在减法指令之后。(3)借助进位标志可实现多位BCD数加法结果的调整。,例一:试写出能完成85+59的BCD加法程序,并对其工作过程进行分析。,MOV A,#85HADD A,#59HDA AEND,107,例二:已知R0和R1中分别存有BCD被减数91和BCD减数36,试编程求它们的BCD差,并存入R3中。,CLR CMOV A,#9AHSUBB A,R1ADD A,R0DA AMOV R3,ACLR CEND,

44、步骤:(1)求BCD减数的补数; (2)BCD被减数加减数的补数; (3)对和进行十进制加法调整。,108,例三:4位压缩BCD数的相加程序。设一个加数存放在30H、31H单元,另一个加数存放在32H、33H单元,试编程序将和存放到30H、31H单元。,MOV R0,#30HMOV R1,#32HMOV A,R0ADD A,R1DA AMOV R0,AINC R0INC R1MOV A,R0ADDC A,R1DA AMOV R0,A,109,逻辑运算及移位类指令,1、逻辑与运算指令组,ANL A,RnANL A,directANL A,RiANL A,#dataANL direct,AANL

45、direct,#data,功能: 主要用于将某存储单元或累加器A中某几位清“0”。,例:已知R0中有一个ASCII码,试通过编程把它变为BCD码。,MOV A,R0ANL A,#0FHMOV R0,A,110,2、逻辑或运算指令组,ORL A,RnORL A,directORL A,RiORL A,#dataORL direct,AORL direct,#data,功能: 主要用于将某存储单元或累加器A中某几位置“1”。,例:设(A)=0AAH,P1=0FFH,试通过编程把累加器A中的低4位送入P1口低4位,而P1口高4位不变。,MOV R0 ,AANL A,#0FHANL P1,#0F0HO

46、RL P1,AMOV A,R0,111,3、逻辑异或运算指令组,XRL A,RnXRL A,directXRL A,RiXRL A,#dataXRL direct,AXRL direct,#data,功能: 主要用于将某存储单元或累加器A中某几位置取反。,例:已知外部RAM30H中有一数6EH,试编写程序令其高4位不变,低4位取反。,MOV R0 ,30HMOVXA,R0XRL A,#0FHMOVX P0,A,112,4、累加器清零和取反指令组,CLRACPLA,注意: 其中CPLA取反指令常用于对某个存储单元或某个存储区域中带符号数的求补。,例:已知30H单元中有一负数X,试写出求X的补码的

47、程序。,MOV A,30HCPL AINC AMOV 30H,A,113,5、移位指令组,RL ARR ARLC ARRC ASWAP A,114,例一:已知30H、31单元中有一个16位的二进制数(30H单元为低8位),请通过编程令其扩大二倍。,CPL CMOV R1,#30HMOV A,R1RLC AMOV R1,AINC R1MOV A,R1RLC AMOV R1,A,115,例二:在43H、44H单元中有两个BCD数,请通过编程将它们紧缩成一个字节并放入43H单元中(其中43H单元中的BCD数做为紧缩BCD数的高位)。,MOV R1,#43HMOV A,R1SWAP AINC R1OR

48、L A,R1MOV 43H,A,116,控制转移类指令,1、无条件转移指令组,2、条件转移指令组,3、子程序调用与返回指令组,4、空操作指令,117,控制转移类指令,LJMP addr16AJMP addr11SJMP relJMP A+DPTR,1、无条件转移指令组,特点:(1)不会影响PSW中的标志位。 (2)指令的操作对象是PC的地址。 (3)第2、3条指令是相对转移指令,在子程序中 很有用。,118,长转移指令,LJMP addr16 ;(PC) addr16,例:已知某单片机监控程序起始地址为A080H,试问用什么办法可使单片机开机后自动执行监控程序。,答:为使开机后能自动转入A08

49、0H处执行,应在0000H处 存放一条如下指令:LJMP0A080H,说明: (1)把指令码中的addr16送入PC,使机器执行下条指令时 无条件转移到addr16处执行程序。 (2)可以在64KB范围内转移。 (3)一般情况,addr16可用符号地址表示。,119,绝对转移指令,AJMP addr11 ;(PC) (PC)+2,(PC10-0) addr11,例:已知指令KWR:AJMP addr11中,KWR=3100H,addr11=10110100101B,则转移的目标地址是多少?,答:程序转移到35A5H处执行。,注意: AJMP指令的目标转移地址不是与AJMP指令地址在同一个2KB

50、区域,而是应与AJMP指令取出后的PC地址在同一个2KB区域。,说明:(1)(PC) (PC)+2,确定程序转移的页面地址。 (2)(PC10-0) addr11,确定程序转移的页内地址。,120,短转移指令,SJMP rel ;(PC) (PC)+2,(PC) (PC)+rel,1、根据偏移量计算转移的目标地址: 例一:835AH SJMP 35H 例二:835AH SJMP 0E7H,答:目标地址=835AH+02H+35H=8391H,答:目标地址=835AH+02H-19H=8343H,说明:(1)rel是一个8位的带符号偏移字节。 (2)rel的取值范围是-128到+127。 (3)

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号