单片计算机及其应用课件_第1页
单片计算机及其应用课件_第2页
单片计算机及其应用课件_第3页
单片计算机及其应用课件_第4页
单片计算机及其应用课件_第5页
已阅读5页,还剩430页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片计算机及其应用单片计算机及其应用第一章绪论第二章MCS—51单片机的结构和原理第三章MCS51指令系统第四章汇编语言程序设计第五章MCS-51单片机内部定时/计数器及其应用第六章单片机系统扩展第七章MCS-51系统的串行接口第八章MCS-51单片机的中断系统第九章单片机应用系统的组成第

本章内容SingleChipMicrocomputer什么是单片机单片机特点及应用单片机的结构特点一、什么是单片机

1、微型计算机硬件结构——常见的微机外形台式微机便携式微机立式微机微型计算机硬件结构——微机硬件组成

显示器主机键盘鼠标微型计算机硬件结构——运算器控制器CPU存储器输入接口电路输入设备输出设备输出接口电路硬件系统内部结构硬件系统——构成微机的实体和装置软件系统——微机系统所使用的各种程序的总称软件系统与硬件系统共同构成实用的微机系统,两者是相辅相成、缺一不可的。

软件系统+微型计算机系统运算器控制器CPU存储器输入接口电路输入设备输出设备输出接口电路硬件系统微型计算机系统CPU输入设备输出设备软件系统+微型计算机系统硬件系统输入接口设备输出接口设备运算器控制器存储器单片微型计算机是指集成在一个芯片上的微型计算机,简称单片机——单片机实质上就是一个芯片2、单片微型计算机单片机内部结构示意图

CPU

存储器定时器/计数器

中断系统P0-P3TxDRxD

TINT并行I/O口串行I/O口单片机应用系统

单片机应用系统单片机+接口电路及外设等+软件硬件单片机应用系统由硬件和软件组成硬件是应用系统的基础软件是在硬件的基础上对其资源进行合理调配和使用,从而完成应用系统所要求的任务,二者相互依赖,缺一不可注:本课程的重点1.掌握单片机应用系统硬件原理的分析方法。2.掌握软件设计与调试的基本技能。

二、单片机的结构特点2、引脚采用分时复用技术。由于芯片集成度高,而引脚又不宜过多,因此将部分引脚设计为多功能的,例如,地址总线和数据总线采用分时复用等。1、存储结构。采用ROM和RAM严格分开的哈佛结构,可分为:内部ROM、RAM,外部ROM、RAM。3、特殊功能寄存器(21个)采用特殊功能寄存器来控制单片机的功能状态,如定时/计数器、串行口和中断逻辑等。4、全双工串行接口内部具有全双工串行接口,可实现单机或多机通讯,为实现分布式控制系统提供了可能。5、布尔处理器内部具有布尔处理器,可十分方便的进行二进制位逻辑运算,进行组合逻辑设计三、单片机的特点及应用

1.单片机的特点体积小,重量轻电源单一,功耗低功能强,价格低运行速度快,抗干扰能力强,可靠性高可以嵌入到电子产品中——嵌入式应用系统2.单片机应用

工业方面民用方面仪表方面电讯方面数据处理方面汽车方面A、单片机应用模式1、单机应用 即在一个应用系统中仅使用了一个单片机,其主要应用领域有:智能产品、智能仪表、测控系统、数控控制机智能接口。2、多机应用

多机应用是单片机在高科技领域中应用的主要模式,其高可靠性、高控制功能及高运行速度的“三高”技术,在未来的高科技工程系统中采用单片机多机系统作为主要的发展方向。其应用模式可分为功能弥散系统、并行多机处理系统和局部网络系统。B、单片机的供应状态

单片机通过执行指令流来完成预先设定的功能,其指令的存放方式取决于片内ROM的配置情况:

1、片内ROM配置即单片机片内带有掩模ROM,其内容由厂家出厂时设定,因而其生产周期长、经济风险大但成本较低。征对以上特点,已有厂家推出了一次性(即OTP型)用户可编程的单片机,因而兼具成本低、周期短、低风险等优点。2、片内EPROM配置

适用于样机开发,可多次重写。3、片内E2PROM配置适用于样机开发,可多次重写,其重写比EPROM更方便,目前使用最为广泛。4、片内无ROM配置由于片内无ROM,因而需在片外扩展ROM,其电路复杂,灵活性差,已逐渐被淘汰。C、单片机的等级集成电路依据其使用环境可分为三个等级1、商用级温度范围为0~70OC,限用于机房及办公环境2、工业级温度范围为-45~85OC3、军用级温度范围为-50~125OC

不同级别之间价格相差很大,如军用级为商用级的10倍乃至上百倍。单片机为工业级产品。3.单片机种类

◆生产厂商:美国微芯片公司:PIC16C××系列、PIC17C××系列、PIC1400系列,美国英特尔公司的MCS-48和MCS-51系列,美国摩托罗拉公司的MC68HC05系列和MC68HC11系列,美国齐洛格公司的Z8系列,日本电气公司的μPD78××系列,美国莫斯特克公司和仙童公司合作生产的F8(3870)系列等。

A、单片机的分类(按用途)(1)通用型单片机它可向开发者提供较多资源,具有较强的通用性,适应性较强,应用较为广泛,便于普及和推广,但有时会造成大量资源的浪费。(2)专用型单片机专门征对特殊使用场合的具体要求而设计,通常是微控制系统的集成产品,因而其抗干扰能力比通用型强,适用于各种恶劣环境,但由于其专用性强,其应用范围受到了很大的限制。B、按字长分类(1)4位机主产于日本,如SM系列,UPD系列等,其特点是价格便宜,其数值运算能力差。(2)8位机目前市面上的主导机型,如Intel,Motorola,Zilog等厂家的产品,由于其功能强大,价格低廉,品种繁多,数值处理能力一般,应用范围较广。(3)16位机、32位机具有强大的数值处理能力,且具有并行功能,适用于有大量数据处理的应用系统,由于其字长较长,运行速度较高,因而数据处理速度高。它的发展壮大直接推动了信息化时代的到来。如TMS320C50,进行一次乘法运算仅需60ns。◆单片机的发展经历了由4位机到8位机,再到16位机的发展过程◆目前8位单片机仍是单片机的主流机型;2-1关于MCS-51系列2-2MCS-51系列单片机的结构原理2-3 MCS-51单片机的引脚及其片外总线结构2-4MCS-51单片机的工作方式2-5MCS-51单片机的时序第二章MCS—51单片机的结构和原理一、MCS-51系列型号型号片内程序存储器片内数据存储器8031NO128Bytes80514KROM128Bytes87514KEPROM128Bytes8032NO256Bytes89C514KE2PROM128Bytes89C528KE2PROM256Bytes89C20512KE2PROM128Bytes2-1关于MCS-51系列二、MCS-51的主要特点1、单+5V供电,40引脚封装2、8位字长CPU3、片内有振荡电路和时钟电路4、32根I/O线5、64K外部RAM(不含内部RAM)6、64K外部ROM(含内部ROM)7、2个16位定时/计数器(8X52有3个)8、具有2个优先级别的5个中断源(8X52有6个)9、可编程的全双工串行口,如工作方式、波特率等10、布尔处理器11、128个用户可寻址位单元12、128字节内部RAM(8X52有256个字节)时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图中央处理器CPU:8位,运算和控制功能内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。定时/计数器:两个16位的定时/计数器,实现定时或计数功能。并行I/O口:4个8位的I/O口P0、P1、P2、P3。串行口:一个全双工串行口。中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ2-2MCS-51系列单片机的结构原理一、基本组成1、8051单片机的基本组成中央处理器CPU:8位,运算和控制功能内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。定时/计数器:两个16位的定时/计数器,实现定时或计数功能。并行I/O口:4个8位的I/O口P0、P1、P2、P3。串行口:一个全双工串行口。中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZ1

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

2.

器80318751805189C51片内RAM片内ROM256B(字节)4K64K64K(1)程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令

中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址org 0000h ljmp main org 002bhMain: mov sp,#60h ……..0000HFFFFH(64K)内部外部(2)数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可作一般RAM读写也可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS1注意:一个单元地址对应有8个位地址

MSB——MostSignificantBit(最高有效位)

LSB——LeastSignificantBit(最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表(P11)(3)特殊功能寄存器(高128个单元)

MCS-51内部安排有21个特殊功能寄存器各特殊功能寄存器的符号及地址见表2-2。分别由于以下各个功能单元:CPU:ACC、B、PSW、SP、DPTR(由两个8位寄存器DPL、DPH组成)并行口:P0、P1、P2、P3中断系统:IE、IP定时/计数器:TMOD、TCON、TH1、TL1、TH0、TL0串行口:SCON,SBUF,PCON高128个单元☆离散分布有21个特殊功能寄存器SFR。☆

11个可以进行位寻址:ACC、B、PSW、IE、IP、P0、P1、P2、P3、SCON、TCON☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。3、CPU由运算器、控制器和若干SFR(ACC,B,PSW,SP,DPTR)构成。(1)运算器:实现数据的算术运算和逻辑运算。(2)累加器ACC:提供一个操作数并存放运算结果,其进位标志CY同时也是布尔处理器的累加器。(3)寄存器B:用于乘法和除法操作,也用作暂存器。(4)CPU标志寄存器CY:进位标志,有进位或借位时为1,否则为0

AC:辅助进位标志当D3向D4有进位或借位时为1,否则为0

F0:用户标志RS1、RS0:工作寄存器组OV:溢出标志,结果超过-128~+127时,OV=1,否则为0CYACF0RS1RS0OV—PPSW

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H10第2区10H~17H(4)CPU标志寄存器P:奇偶校验标志,当ACC中“1”的个数为奇数个时,P=1PSW.1:保留位,用户可使用。椎栈指针SP:先入后出的特殊存储器指针。数据指针DPTR:用于存放16位地址,可分为DPH和DPL。MOV SP,#60HMOV DPL,#0FFHMOV DPH,#0FH4、并行I/O口P0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.74个8位并行I/O口:P0,P1,P2,P3;均可作为双向I/O端口使用。输入时可以缓冲,输出时可以锁存。(1)特点:P0:访问片外扩展存储器时,

复用为低8位地址线和数据线

P2:高8位地址线。P1:双向I/O端口

P3:第二功能1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51片外扩展存储器时P0、P2口自动作为总线使用(2)I/O口的字节地址和位地址(3)下面分别介绍4个I/O口的结构1)P0口的位结构锁存器三态缓冲器场效应管P0口既可用作I/O口,也可用作地址/数据总线,但二者不能兼用,用作I/O口时,必须在管脚上接上拉电阻。用作地址/数据总线时,地址和数据采取分时复用方式。用作输入时,必须对输出锁存器置“1”—“读引脚”操作B、P1口的位结构P1口由于只能作为I/O口使用,因而输出控制电路结构同P0口不同。C、P2口位结构P2口既可用作I/O口,也可用作高8位地址总线。D、P3口位结构P3口既可用I/O口,又分别具有第二功能,但二者不能混用,其第二功能如下表所示。P3口第二功能ALEWR

RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7指令1:MOVP1,#00H指令2:MOVP1,#0FFH指令3:MOVP1,#0AAH000000001111111101010101E输出举例指令4:CLRP1.0指令5:SETBP1.0111111110+5V1111111111111111F输入举例S0+5V4.7kWALEWR

RDP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7读端口:MOVP3,#11111111BMOVA,P389C51××××××××寄存器A注:当I/O端口作为输入使用时,需先向端口写入“1”,使内部的FET截止,再读入引脚的状态。你知道P3.4对应寄存器A哪一位吗?P3.4你知道这是为什么吗?1111111101一、MCS-51单片机信号引脚简介

P3口线的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.7(2)、振荡电路:XTAL1、XTAL2(3)、复位引脚:RST(4)、并行口:P0、P1、P2、P3(7)、ALE:地址锁存控制信号(1)、电源线:VCC(+5V)、VSS(地)EAPSEN(5)、EA:访问程序存储控制信号(6)、PSEN:外部ROM读选通信号RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C511、管脚图2-3 MCS-51单片机的引脚及其片外总线结构二、片外三总线结构1、地址总线(AB)由P2,P0提供16位地址2、数据总线(DB)由P0口提供8位数据3、控制总线(CB)由P3口和RST、EA、ALE、PSEN组成2-4 MCS-51单片机的工作方式一、复位方式

在振荡电路工作时,在RST引脚上加上一个至少保持2个机器周期的高电平,单片机完成复位。其复位电路结构和内容如图所示

复位电路复位不影响RAM内容。使PC指向0000H,重新执行程序。复位可分为上电自动复位和按键复位两种方式。复位方式、程序执行方式、单步执行方式、掉电方式、节电方式复位电路复位电路结构和内容二、程序执行方式

本方式是单片机的基本工作方式,复位后,程序自0000H开始执行。用户的程序一般不可能从0000H开始存放。因此,需要从0000H开始存放一条转移指令,以使执行转移到用户程序的入口地址。三、单步执行方式

在外界脉冲的控制下,单片机每执行一条指令就暂停下来。四、掉电和节电方式用于低功耗系统设计PDGF0—IDLGF1——SMOD

D0

D7PCON五、编程和校验方式

对于内部含有EPROM或EEPROM的单片机,可用于对其编程或对其校验。2-5 MCS-51单片机的时序一、时序在执行指令的过程中,CPU的控制器发出的一系列特定的控制信号在时间上的相互关系。内部控制信号和外部控制信号。二、区别几个概念1、振荡周期(时钟周期):振荡信号周期,fOSC2、状态周期:又叫S周期,可分为P1和P2两拍,其中P1通常完成逻辑操作,而P2通常完成内部寄存器与寄存器间的数据传输,fosc/2。3、机器周期:单片机的基本操作周期,fosc/12。(教材P25)包含六个状态周期。4、指令周期:执行一条指令的周期,分别有单、双和四机器周期指令。5、ALE信号:可作为一种周期信号使用。三、MCS-51指令的取指/执行时序

指令的处理都包括取指(取操作码或操作数)和执行(指令的逻辑功能)两个阶段,每出现一次ALE信号,CPU就进行一次取指操作。 指令寄存器译码地址译码程序计数器地址寄存器累加器A运算器①②存储器内部数据总线外部地址总线AB数据缓冲器外部数据总线DB寄存器区外部控制总线CB内部控制信号时钟及清零三、MCS-51指令的取指/执行时序取指过程例:MOVA,#09H74H

09H;把09H送到累加器A中执行过程PC=0000H0001H0000H0002H0111010000001001(PC)(PC)0001H0002H0000H外部控制总线CB取指过程(PC)执行过程指令的处理都包括取指(取操作码或操作数)和执行(指令的逻辑功能)两个阶段,每出现一次ALE信号,CPU就进行一次取指操作四、访问外部ROM时序在S1P2时刻ALE信号有效。2.P0口送出ROM的低8位地址,P2口送出高8位地址,A7-A0只持续到S2结束,故在外部要用锁存器,可用ALE作为锁存信号,A15-A8在整个读指令过程中都有效3.在S3P1时刻/PSEN开始有效,可以用它选通外部ROM的使能端,被选种的ROM单元的内容,从P0口读入CPU,然后/PSEN失效。4.在S4P2后开始第二次读入,其过程与第一次相同。五、访问外部RAM时序本章作业:除7题外在同一机器周期的S5状态产生的ALE信号的下降沿,将P0总线上出现的低8位地址锁存在外部的锁存器中。读数据寻址方式数据传送类指令算术运算类指令逻辑操作类指令控制转移类指令位操作指令常用伪指令第

MCS

51

指令系统

本章内容SingleChipMicrocomputer概述MCS-51系列单片机的指令系统专用于51系列单片机,共有111条指令,具在丰富灵活的寻址方式,其指令格式与8086的指令系统相同,甚至某些指令还完全相同。使用时应注意区别。在111条指令中,从存储空间的占用上看,单字节指令占49条,双字节指令占45条,三字节指令占17条;从执行时间上看,在111条指令中,单机器周期指令占64条,双机器周期指令占45条,仅乘法和除法两条指令为四机器周期指令。因而无论是存储空间的利用率,还是时间的执行效率都是较高的,再加上灵活的寻址方式,特别适合于实时测量和控制场合。因而,单片机又常被称为微控制器。§3-1指令的格式及标识操作码70数据或寻址方式70双字节指令:标号:操作码操作数或操作数地址;注释单字节指令:操作码70三字节指令:操作码70数据或寻址方式70数据或寻址方式70指令按字节长度可以分为三种:指令的格式:例如:MOVA,R0例如:MOVA,30H例如:MOVDPTR,#2010H操作码助记符、目的操作数、源操作数是指令的核心部分。方括号中内容为可选项,其有无视具体的指令而异。一、指令的格式二、关于标号

标号不允许只用数字,而应以字母打头,后面跟数字,不可使用运算符号,不能同十六进制数发生混淆,较好的取名原则是见名知义。便于程序员在调试程序时更加顺利,往往一个标号就是一个功能入口,因而在使用标号时应特别小心,用并非每句指令都需要标号。三、关于指令中的符号标识符号含义Rn表示当前选定寄存器组的工作寄存器R0~R7Ri表示作为间接寻址的地址指针R0~R1#data表示8位立即数,即00H~FFH#data16表示16位立即数,即0000H~FFFFHaddr16表示16位地址,用于64K范围内寻址addr11表示11位地址,用于2K范围内寻址direct8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址Rel带符号的8位偏移量(-128~+127)Bit位寻址区的直接寻址位(X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容←将←后面的内容传送到前面去四、关于注释

为了增强程序的可读性,使别人易读,或防止日久遗忘,可适当加些注释。注释由“;”开始。§3-2 寻址方式

在程序行中,操作码代表了该句指令的功能,而功能的对象却由操作数决定,由操作数指出参与运算的数或该数所在的地址。取得操作数的地址的方法叫做寻址方式。寻址方式与计算机的存储空间结构是密切相关的。灵活运用各种寻址方式,可以大大的提高程序的运行效率。MCS-51基本七种寻址方式一、寻址方式(找信方式)我的信在他那!找信去!②①注:找信是寻找信的“地址”!你能说出第二封信的“地址”吗?目的地#XXH操作数MOVP1,#55HMOVA,#01H#55H目的地信寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址目的地寄存器寻址P31直接寻址P32立即数寻址P32寄存器间接寻址P33变址寻址P33相对寻址P34位寻址P35内部RAM或SFR区操作数XXHMOVP1,20H20H目的地20H注:寻址是寻操作数的“地址”!直接给出地址

20H——直接寻址目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址寄存器目的地操作数XXHMOVP1,A寄存器R0-R7A

B

DPTR你能说出为什么叫寄存器寻址吗?寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVP1,@R0目的地寄存器操作数3AH内部RAM3AH65H3AHR0R1

DPTR寄存器间接寻址寄存器目的地2号信在2号箱子里1号你能说出1号箱子和2号箱子分别对应内存中哪一部分吗?寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,R0对!寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,@R0对!寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里面MOVP1,20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,20H对!④地址是内存20H寻址比较MOVP1,R0③地址是寄存器R0MOVP1,@R0②地址在寄存器R0里MOVP1,20H④地址是内存20HMOVP1,#20H①直接将20H这个数送P1口错!错!错!MOVP1,#20H对!寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址MOVCA,@A+DPTR目的地寄存器操作数内部RAM3AH65H3AH基址寄存器12H变址寄存器34H内部RAM46H65HADPTRPC46H目的地寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址XXH位寻址操作数SJMP54HPC+54HPC2002H······2002H=2056HPC2056H寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址20H······27H21H28H21H20H100000000想一想:如果想使27H单元的第3位置1,该怎么办呢?单元地址2FH2EH2DH2CH2BH2AH29H28H

26H25H24H23H22H21H20H7F776F675F574F47372F271F170F07

MSB

位地址

LSB7E766E665E564E46

362E261E160E067D756D655D554D45352D251D150D057C746C645C544C44

342C241C140C047B736B635B534B43

332B231B130B037A726A625A524A42

322A221A120A027971696159514941

312921191109017870686058504840

30282018100800位寻址地址表

例:SETB3DH

3D

3C

3B3F

3E3A

393827H寄存器寻址直接寻址立即数寻址寄存器间接寻址变址寻址相对寻址位寻址SETB3DH20H······27H21H28H21H20H000000010§3-3MCS—51指令系统的分类2.1数据传送指令(29条)

2.2算术运算指令(24条)2.3逻辑运算指令(24条)2.4控制转移指令(17条)2.5位操作指令(17条)2.6常用伪指令(17条)目的地址源地址数据MOV<目的操作数>,<源操作数>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA2.1数据传送指令(29条不影响标志位CYACOV)

——8位数据传送指令(15条)

2.1数据传送指令(29条)

——16位数据传送指令(1条)

MOVDPTR,#data16

——外部数据传送指令(4条)

MOVX<目的操作数>,<源操作数>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA——交换和查表类指令(9条)

,AXCHdirect@DPTR@RidirectA@DPTR@Ri1)字节交换指令(3条)

2)低半字节交换指令(1条)

XCHDA,@Ri3)累加器A中高4位和低4位交换(1条)

SWAPA4)查表指令(2条)

MOVCA,@A+PCMOVCA,@A+DPTR5)堆栈操作指令(2条)

PUSHdirectPOPdirect举例例3-1

将片内RAM30H单元的内容送到片外60H;将片外4312H单元的内容送到片内31H单元:

MOV A,30H MOVR0,#60H MOV @R0,A MOVDPTR,#4312H MOV A,@DPTR MOV 31H,A0000HFFFFH(64K)内部外部数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可作一般RAM读写也可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS1directdirect2.2算术运算类指令(24条)

——普通加法指令(4条)A,Rn@Ri#dataADDRn@Ri#dataADD A,RnADD A,directADD A,@RiADD A,#data注意:1.本指令影响Cy,AC,Ov,P等标志。

2.求和操作既可看成是有符号数运算,也可看成是无符号数运算,完全由程序员编程时自行设定。

3.计算机运算时的规定参见教材P38。 2.2算术运算类指令(24条)

——带进位加法指令(4条)directdirectA,Rn@Ri#dataADDCRn@Ri#data

ADDC A,Rn ADDC A,direct ADDC A,@Ri ADDC A,#data

除相加时要考虑进位外,其余操作与前面相同。2.2算术运算类指令(24条)

——减法指令(4条)

directdirectA,Rn@Ri#dataSUBBRn@Ri#data

SUBB A,Rn SUBB A,direct SUBB A,@Ri SUBB A,#data

减法指令是带借位的,若不需要带借位减,则在作减法指令前清除借位位,即CLR C

减法指令影响OV、CY、AC标志位助记符格式机器码(B)相应操作指令说明机器周期INCA00000100A

A+1影响PSW的P标志1INCRn00001rrrRn

Rn+1n=0~7,rrr=000~1111INCdirect0101direct(direct)

(direct)+1

1INC@Ri0000011i(Ri)

(Ri)+1i=0,11INCDPTR10100011DPTR

DPTR+1

2DECA00010100A

A-1影响PSW的P标志1DECRn00011rrrRn

Rn-1n=0~7,rrr=000~1111DECdirect00010101direct(direct)

(direct)+1

1DEC@Ri0001011i(Ri)

(Ri)-1i=0,11——加1减1指令——乘法指令(1条)

MULAB——除法指令(1条)

DIVAB两个8位操作数相乘,形成16位的积,其中A为积的低位而B为积的高位。需要进行更多位的乘法运算,需另外编程方能实现。举例见教材P40两个8位操作数相除,其中A为被除数而B为除数;运算后,结果仍然在AB中,其中A为商而B为余数。 同乘法指令相同,需要进行更多位的除法运算,需另外编程方能实现。十进制调整指令

DA A;实现BCD码加法

BCD码相加后,根据Ac和Cy的状态对A中的数作适当调整,使运算结果为BCD码。 这条指令对加法结果的调整规则是:

(1)若累加器A低4位大于9或辅助进位标志AC=1.则低4位加6;

(2)若累加器A高4位大于9或CY=1,则高4位加6;

(3)若1、2条件都满足时,则A加66H;

(4)若1、2条件都不满足时,则A加00H;

(5)若果加器A的最高位因调整而产生进位时,将CY置1,若不产生进位整前的状态而并不清零。

DA指令只影响进位标志CY。例3-3

设ACC中为压缩BCD码56H,R3中为压缩BCD码67H,且Cy=1,求ACC与R3的压缩BCD码之和

MOV A,#56H MOV R3,#67H ADDC A,R3 DA A ;A=?

(A)=01010110(R3)=01100111+)(Cy)=00000001

和=10111110

调整+)01100110

100100100BCD码为1242.3逻辑及移位类指令

——逻辑与指令(6条)

助记符格式机器码(B)相应操作指令说明机器周期ANLA,direct01010101directA

A∧direct按位相与1ANLA,Rn01011rrrA

A∧Rnn=0~7,rrr=000~1111ANLA,@Ri0101011iA

A∧(Ri)i=0,11ANLA,#data01010100dataA

A∧#data

1ANLdirect,A01010010direct(direct)

(direct)∧A不影响PSW的P标志1ANLdirect,#data01010011directdata(direct)

(direct)∧#data不影响PSW的P标志2——逻辑或指令(6条)

01000011directdata助记符格式机器码(B)相应操作指令说明机器周期ORLA,direct01000101directA

A∨direct按位相或1ORLA,Rn01001rrrA

A∨Rnn=0~7,rrr=000~1111ORLA,@Ri0100011iA

A∨(Ri)i=0,11ORLA,#data01000100dataA

A∨#data

1ORLdirect,A01000010direct(direct)

(direct)∨A不影响PSW的P标志1ORLdirect,#data(direct)

(direct)∨#data不影响PSW的P标志2——逻辑异或指令(6条)

助记符格式机器码(B)相应操作指令说明机器周期XRLA,direct01100101directA

A

(direct)按位相异或1XRLA,Rn01101rrrA

A

Rnn=0~7,rrr=000~1111XRLA,@Ri0110011iA

A

(Ri)i=0,11XRLA,#data01100100dataA

A

#data

1XRLdirect,A01100010direct(direct)

(direct)

A不影响PSW的P标志1XRLdirect,#data01100011directdata(direct)

(direct)#data不影响PSW的P标志2——累加器A清0和取反指令助记符格式机器码(B)相应操作指令说明机器周期CLRA11100100A

00HA中内容清0,影响P标志1CPLA11110100A中内容按位取反,影响P标志1AAA.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:执行带进位的循环移位指令之前,必须给CY置位或清零。——循环移位指令例3-4

设(20H)=(X7X6X5X4X3X2X1X0) (21H)=(Y7Y6Y5Y4Y3Y2Y1Y0)试编程使(30H)=Y2Y1Y0X4X3X2X1X0程序清单: MOV 30H,20H ANL 30H,#00011111B;B:二进制O:八进制D:十进制H:十六进制

MOV A,21H RL A SWAP A ANL A,#11100000H ORL 30H,A例3-5若ACC=X7X6X5X4X3X2X1X0,试编程将A中的低5位送至P1口,但不能影响P1口的高3位。程序清单:

MOV A,#0AAH ANL P1,#11100000B ORL P1,A2.4控制转移类指令

——无条件转移指令(4条)1)长转移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假设执行该指令前,PC的值为0000H。注意:该指令可以转移到64KB程序存储器中的任意位置。PC高5位(保持不变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)11位转移地址的形成示意图程序计数器PC2)绝对转移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相对转移指令

例:SJMP03H

03H03H就是当前PC值与目的PC值相对差PC——条件转移指令(8条)

1)累加器A判0指令(2条)助记符格式机器码(B)相应操作机器周期JZrel0110000若A=0,则PC

PC+rel,否则程序顺序执行2JNZrel01110000若A≠0,则PC

PC+rel,否则程序顺序执行22)减1非零转移指令(2条)助记符格式机器码(B)相应操作机器周期DJNZRn,rel11011rrrrelRn

Rn-1,若Rn≠0,则PCPC+rel,否则顺序执行2DJNZdirect,rel11010101directrel(direct)

(direct)-1,若(direct)≠0,则PCPC+rel,否则顺序执行23)比较转移指令(4条)助记符格式机器码(B)相应操作机器周期CJNEA,#data,rel10110100datarel若A≠#data,则PC

PC+rel,否则顺序执行;若A<#data,则CY=1,否则CY=02CJNERn,#data,rel10111rrrdatarel若Rn≠#data,则PC

PC+rel,否则顺序执行;若Rn<#data,则CY=1,否则CY=02CJNE@Ri,#data,rel1011011idatarel若(Ri)≠#data,则PC

PC+rel,否则顺序执行;若(Ri)<#data,则CY=1,否则CY=02CJNEA,direct,rel10110101directrel若A≠(direct),则PC

PC+rel,否则顺序执行;若A<(direct),则CY=1,否则CY=02——调用和返回指令(8条)

1)绝对调用指令(1条)助记符格式机器码(B)相应操作机器周期ACALLaddr11a10a9a810001addr7~0PC

PC+2SPSP+1,(SP)

PC0~7SPSP+1,(SP)

PC8~15PC0~10

addr1122)长调用指令(1条)助记符格式机器码(B)相应操作机器周期LCALLaddr1600010010addr15~8addr7~0PC

PC+3SPSP+1,SP

PC0~7SPSP+1,SP

PC8~15PCaddr1623)返回指令助记符格式机器码(B)相应操作机器周期RET00100010PC8~15

(SP),SP

SP-1PC0~7

(SP),SP

SP-1子程序返回指令2RETI00110010PC8~15

SP,SP

SP-1PC0~7

SP,SP

SP-1中断返回指令2助记符格式机器码(B)相应操作指令说明NOP00000000空操作消耗1个机器周期4)空操作举例例3-6

根据累加器A命令键键值,设计命令键操作程序入口跳转表。程序如下:

CLR C RLC A ;乘2,若用LJMP指令则乘3 MOV DPTR,#JPTAB JMP @A+DPTRJPTAB: AJMP CCS0 AJMP CCS1 AJMP CCS2例3-7测试P1口输入的100个数中0~9各数的概率分布程序

MOV40H,#100READ:MOVA,P1CHK0:CJNEA,#0,CHK1 INC30H DJNZ40H,READ SJMPEENDCHK1:CJNEA,#1,CHK2 INC31H DJNZ40H,READ SJMPEENDCHK2:CJNEA,#2,CHK3 INC32H DJNZ40H,READ SJMPEENDCHK3:CJNEA,#3,CHK4 INC33H DJNZ40H,READ SJMPEENDCHK4:CJNEA,#4,CHK5 INC34H DJNZ40H,READ SJMPEENDCHK5:CJNEA,#5,CHK6 INC35H DJNZ40H,READ SJMPEENDCHK6:CJNEA,#6,CHK7 INC36H DJNZ40H,READ SJMPEENDCHK7:CJNEA,#7,CHK8 INC37H DJNZ40H,READ SJMPEENDCHK8:CJNEA,#8,CHK9 INC38H DJNZ40H,READ SJMPEENDCHK9:INC39H DJNZ40H,READEEND:SJMP$2.5位操作类指令单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM

位寻址区位地址表助记符格式机器码(B)相应操作指令说明机器周期MOVC,bit10100010CY

bit位传送指令,结果影响CY标志2MOVbit,C10010010bit

CY位传送指令,结果不影响PSW22.位置位和位清零指令助记符格式机器码(B)相应操作指令说明机器周期CLRC11000011CY

0位清0指令,结果影响CY标志1CLRbit11000010bitbit

0位清0指令,结果不影响PSW1SETBC11010011CY

1位置1指令,结果影响CY标志1SETBbitbit

1位置1指令,结果不影响PSW111010010bit1.位传送指令3.位运算指令助记符格式机器码(B)相应操作指令说明机器周期ANLC,bit10000010bitCY

CY∧bit位与指令2ANLC/bit10110010bit位与指令2ORL,bit01110010bitCY

CY∨bit位或指令2ORLC/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,结果不影响CY2CY

CY∧bitCY

CY∨bitCYCYbitbit例3-8设A、B、D代表位地址,试编程实现D为A与B之异或,即D=AB+AB。

MOV C,B

MOC D,C MOV C,A ANL C,/B ORL C,D MOV D,CANL C,/A ;C与A相与 助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PC

PC+3+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PC

PC+3+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PC

PC+3+rel,bit0,否则顺序执行24.位转移指令5.判CY标志指令助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=0,则PC

PC+2+rel,否则顺序执行2JNCrel01010000若CY≠0,则PC

PC+2+rel,否则顺序执行2常用伪指令定位伪指令ORG定义字节数据伪指令DB定义字数据伪指令DW定义空间伪指令DS符号定义伪指令EQU或=数据赋值伪指令DATA数据地址赋值伪指令XDATA汇编结束伪指令END++(P1.1)U(P2.2)V(TF0)W(IE1)X(20H.0)Y(21H.1)ZU(V+W)Q(P3.3)Q=U(V+W)(X+Y)Z MOV C,P2.2 ORL C,TCON.5 ANL C,P1.1 MOV F0,C MOV C,TCON.3 ORL C,/00H ANL C,F0 ANL C,/09H MOV P3.3, C例3-9编程实现下图所示的逻辑功能补例:条件转移类指令范例——方案一还有什么方法实现循环的终止?将00H~0FH这16个数顺序地置入片内RAM20H~2FH单元中。

MOVR0,#20H MOVR7,#16 CLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$JMP1.ASM条件转移类指令范例——方案二MOVR0,#20H MOVR7,#0FH CLRALOOP:MOV@R0,AINCAINCR0CJNEA,#0FH,LOOPSJMP$JMP2.ASM条件转移类指令范例——方案三

MOVR0,#20H MOVA,#0FH;???? MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$JMP3.ASM条件转移类指令范例——方案四

MOVR0,#20H MOVA,#0FH MOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#01HJNCLOOPSJMP$JMP4.ASM练习1

设内部RAM中33H单元中内容为44H,34H单元中内容为0AFH,R0中内容为33H,R1中内容为00H,给出以下每一条指令执行后A中的值和PSW中P的值。

MOVA,#34H MOVA,34H MOVA,R1 MOVA,@R0

注意:对PSW中P标志的影响。练习2设内部RAM30H单元中内容为52H,请给出以下程序结果:

MOVA,#30H MOVA,30H MOVR0,#30H MOVA,@R0 MOV30H,#30H设P1口内容为0AAH(P1口地址为90H),请给出以下程序结果:

MOVR0,#30H MOV10H,P1 MOVA,10H MOV@R0,A MOV40H,@R0本章主要知识点指令的七种寻址方式。难点:寄存器间接寻址各类指令的主要功能。难点:查表指令难点:条件转移指令作业:2.22.42.6第

汇编语言程序设计

本章内容SingleChipMicrocomputer§4-0概述§4-2运算程序设计§4-3数据的拆拼和转换§4-1循环程序设计§4-5查表程序§4-6散转程序设计§4-7I/O端口控制程序§4-8子程序调用时的参数传递概述最早人们只能用机器语言(二进制)编写程序;为了方便记忆,人们开始用助记符形式的汇编语言编写程序,称为低级语言。然后再用汇编系统将其翻译成机器语言,该过程称为汇编;为了用更接近人的语言编写程序,程序设计师们发明了高级语言,如:BASIC、FORTRAN、PASCAL、

C、JAVA

然后再用编译

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论