配套课件-单片微型计算机.ppt

上传人(卖家):三亚风情 文档编号:3394303 上传时间:2022-08-26 格式:PPT 页数:445 大小:6.88MB
下载 相关 举报
配套课件-单片微型计算机.ppt_第1页
第1页 / 共445页
配套课件-单片微型计算机.ppt_第2页
第2页 / 共445页
配套课件-单片微型计算机.ppt_第3页
第3页 / 共445页
配套课件-单片微型计算机.ppt_第4页
第4页 / 共445页
配套课件-单片微型计算机.ppt_第5页
第5页 / 共445页
点击查看更多>>
资源描述

1、第1章 单片微型计算机概述 1.1 单片微型计算机发展概况 1.2 微计算机系统概念 1.3 单片机的特点 1.4 计算机中的数和编码1.1 单片微型计算机发展概况单片机体积小、功能强、功耗低、可靠性高和性价比高的特点,在过程控制、机电一体化产品、智能仪器、家用电器、计算机网络及通讯等方面得到广泛应用。单片机经历了一位、4位、8位、16位及32位的发展阶段,世界上一些著名的半导体器件厂家都开发了单片机如Intel、Motorola、Zilog、Philips等。单片机的品种日益增加,在众多的通用型单片机里,以Intel公司的MCS系列单片机最为著名。返回本章首页1.2 微计算机系统概念图1-1

2、 微处理器、微计算机和微计算机系统的关系返回本章首页1.3 单片机的特点(1)体积小、重量轻、功耗低、功能强、性价比高。(2)数据大都在单片机内部传送,运行速度快,抗干扰能力强,可靠性高。(3)结构灵活,易于组成各种微机应用系统。(4)应用广泛,既可用于工业自动控制等场合,又可用于测量仪器、医疗仪器及家用电器等领域。返回本章首页1.4 计算机中的数和编码1.4.1 计数制1.4.2 二进制数(用B表示)1.4.3 十六进制数(用H表示)1.4.4 不同进制数之间的转换1.4.5 数制书写约定1.4.6 计算机中数的表示1.4.7 计算机常用编码 返回本章首页1.4.1 计数制 日常生活中广泛使

3、用的数为十进制数,这是一种逢十进一的计数方法。用的数制还有二进制、八进制和十六进制等。基数小于10的计数制,可用十进制相应的数码作为它的数字符号,一个数一般由多个数码组成。数码在数中的位置不同,其值也不同。返回本节1.4.2 二进制数(用B表示)以2为基数的数制称为二进位计数制,它只包括0和1两个数码,很容易用电子元件的两种不同的状态来表示,例如,用高电平表示1,用低电平表示0。所以,计算机中通常采用二进制数。二进制数的计数特征:逢二进一,运算简单。在加、减、乘、除四则运算中,乘法实质上是做移位加法,除法则是移位减法。返回本节1.4.3 十六进制数(用H表示)为了书写和阅读方便,经常采用十六进

4、制数作为二进制的缩写形式。十进制数、二进制数、十六进制数的对照表如表1-1所示。在计数时,逢十六进一,这样书写长度短,且可方便将十六进制数转换为二进制数或将二进制数转换为十六进制数。表1-1 十进制数、二进制数、十六进制数对照表 返回本节1.4.4 不同进制数之间的转换1二进制转换为十进制基本方法:将二进制数按权展开式,利用十进制数的运算法则求和,即可得到等值的十进制数。2十进制到二进制的转换l 十进制整数转换为二进制整数l 十进制小数转换为二进制小数l 带小数的十进制数转换为二进制数3二进制、十六进制之间的相互转换将二进制数转换为十六进制数,从低位开始,每四位一组,然后将其转换为对应的十六进

5、制数。如最后一组不足四位,需在左边补0。用同样方法可将二进制小数转换十六进制小数。只是分组应从小数点右边开始分成四位一组。十六进制数转换为二进制数,将每位十六进制数直接转换成相应的二进制数。返回本节1.4.5 数制书写约定 在书写计算机程序时,一般不用基数作为下标来区分各种进制,而是用相应的英文字母作后缀来表示各种进制的数。例如:B(Binary)表示二进制数。D(Decimal)表示十进制数,一般D可省略,即无后缀的数字为十进制数。H(Hexadecimal)表示十六进制数。返回本节1.4.6 计算机中数的表示1原码、反码和补码l 原码:在符号位中用0表示正、用1表示负的二进制数,称为原码。

6、例如,x1=1110111B,x1原=01110111B x2=1110111B,x2原=11110111B数0可是0或0。因此,0在原码中形式:0原=0000 0000B,0原=1000 0000Bl 反码:正数的反码=原码;负数的反码=原码的符号位不变而数值按位取反。所谓按位取反,即将各位的1变成0,0变成1。例如,x1=13,x1反=13原=0 0001101B。又如,x2=13,x2原=13原=1 0001101B,x2反=13反=1 1110010B。l 补码:正数的补码=原码;负数的补码=反码1。例如,x1=1101101B,x1补=13原=0 1101101B。又如,x2=110

7、1101B,x2反=10010010B,x2补=10010011B。在补码表示中,“0”是唯一的。即0补=00000000B 2数的小数点表示方法 l 定点表示法:表示小数点的位置是固定不变的。分为纯整数和纯小数两类。数符数符尾数尾数纯整数表示方法纯整数表示方法 纯小数表示方法纯小数表示方法数符数符尾数尾数其格式如下所示:其格式如下所示:l 浮点表示法浮点表示法中小数点的位置是不固定的。任意二进制数N一般可表示为:N=2PS一个浮点数分为阶码和尾数两部分,二者各有表示正负的阶符和数符,常用存储格式:阶符阶码数符尾数 在微计算机中常用的浮点数表示有:(1)四字节浮点数格式(如图1-2所示),它由

8、一个字节指数(EXP)、三个字节尾数构成,共用四个存储单元。(2)三字节浮点数格式(如图1-3所示)。图1-2 四字节浮点数格式 D7 D6 D0第一字节第二字节第三字节第四字节阶符Pf阶码 数符S f尾数高字节尾数中字节尾数低字节 图1-3 三字节浮点数格式 第一字节第二字节第三字节 数符Sf阶符Pf阶码尾数高字节尾数低字节D7 D6 D5D0 返回本节1.4.7 计算机常用编码 常见的编码有BCD码、ASCII码等。1二 十进制编码是一种用二进制编码的十进制数,称BCD码。BCD码用标准的8421的纯二进制码的十六个状态中的十个(如表1-2所示)。用BCD码表示十进制数,只要将每位十进制数

9、用适当的四位二进制码代替即可。表1-2 BCD编码 2字母和符号的编码 微机普遍采用的是ASCII码(如表1-3所示)。ASCII码是一种八位代码,最高位一般用于奇偶校验,其余七位二进制码对128个字符进行编码。表1-3 ASCII(美国标准信息交换码)表 返回本节THANK YOU VERY MUCH!本章到此结束,谢谢您的光临!结束放映返回本章首页第2章 MCS-51单片机的硬件结构 2.1 MCS-51单片机的基本结构 2.2 MCS-51单片机的引脚及片外总线结构 2.3 MCS-51单片机的存储器配置 2.4 CPU的时序及辅助电路2.1 MCS-51单片机的基本结构 2.1.1 M

10、CS-51单片机的基本组成 2.1.2 MCS-51单片机硬件结构特点 2.1.3 MCS-51单片机内部结 2.1.4 输入/输出(I/O)端口结构返回本章首页2.1.1 MCS-51单片机的基本组成图2-1 MCS-51单片机基本结构示意图时钟电路SFR和RAMROMCPU定时/计数器并行端口中断系统串行端口系 统 总 线时钟源T0 T1P0 P1 P2 P3TXD RXD INT0 INT1(1)一个8位微处理器CPU。(2)数据存储器RAM和特殊功能寄存器SFR。(3)内部程序存储器ROM。(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。(5)四个8位可编程的I/O(输

11、入/输出)并行端口,每个端口既可做输入,也可做输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。返回本节2.1.2 MCS-51单片机硬件结构特点 1内部程序存储器(ROM)和内部数据存储器(RAM)容量(如表2-1所示)。2输入/输出(I/O)端口 3外部程序存储器和外部数据存储器寻址空间 4中断与堆栈 5定时/计数器与寄存器区 6指令系统 存储器类型单片机系列掩膜ROMEPROMRAMMCS-5151子系列8031/128B80514KB/128B8751/4KB128B52子系列8032/256B80528KB/256B8752/8KB256B表2-1

12、 MCS-51单片机存储器容量返回本节2.1.3 MCS-51单片机内部结构 1运算器 运算器由8位算术逻辑运算单元ALU(Arithmetic Logic Unit)、8位累加器ACC(Accumulator)、8位寄存器B、程序状态字寄存器PSW(Program Status Word)、8位暂存寄存器TMP1和TMP2等组成。2控制器 主要由程序计数器PC、指令寄存器IR、指令译码器ID、堆栈指针SP、数据指针DPTR、时钟发生器及定时控制逻辑等组成。通道0驱动器通道2驱动器RAM地址锁存器RAM通道0锁存器通 道 2 锁存器ROM/EPROMB寄存器程序地址寄存器缓冲器PC递增器程序计

13、数器PC驱动器DPTR指针VCCGNDP1.0P1.7堆栈指针SPACCTMP2PSW通道3锁存器通道1锁存器通道1驱动器通道3驱动器TMP1SCONTMODPCONTCONTL0TH1TH0TL1IESBUF(TX/RX)IP中断、串行口和定时器逻辑振荡器P3.0P3.7RSTEAALEPSENXTAL2XTAL1ALU(+5V)指令寄存器定时和控制逻辑指令译码器图2-2 MCS-51片内总体结构框图P0.0P0.7P2.0P2.7返回本节2.1.4 输入/输出(I/O)端口结构 正如图2-2所示,MCS-51单片机有4个双向并行的8位I/O口P0P3,P0口为三态双向口,可驱动8个TTL电

14、路,P1、P2、P3口为准双向口(作为输入时,口线被拉成高电平,故称为准双向口),其负载能力为4个TTL电路。1P0口的结构VCCP0.X锁存器读锁存器地址/数据控制D读引脚写锁存器内部总线QQMUXT2P0.XT1CL图2-3 P0口的一位结构图2P1口的结构 VCCP1.X锁存器读锁存器D读引脚写锁存器内部总线QQTP1.X内部上拉电阻 CL 图2-4 P1口的一位结构图3P2口的结构图2-5 P2口的一位结构图VCCP2.X锁存器读锁存器地址控制D读引脚 写锁存器内部总线QQMUXTP2.X内部上拉电阻CL4P3口的结构图2-6 P3口的一位结构图VCCP3.X锁存器读锁存器第二输出功能

15、D读引脚 写锁存器内部总线QQTP3.X内 部 上 拉 电阻第二输入功能CL表2-2 P3口的第二功能表P3.2P3.3位线引脚第二功能P3.010RXD(串行输入口)P3.111TXD(串行输出口)12INT0(外部中断0)13INT1(外部中断1)P3.414T0(定时器0的计数输入)P3.515T1(定时器1的计数输入)16WR(外部数据存储器写脉冲)17RD(外部数据存储器读脉冲)P3.7 P3.6 返回本节2.2 MCS-51单片机的引脚及片外总线结构 2.2.1 MCS-51单片机芯片引脚描述 2.2.2 MCS-51单片机的片外总线结构返回本章首页2.2.1 MCS-51单片机芯

16、片引脚描述 图2-7为MCS-51单片机的引脚配置图。1主电源引脚VCC和VSS 2外接晶振引脚XTAL1和XTAL2 3控制或其他电源复用引脚RST/VPD、ALE/、和/VPP 4输入/输出引脚P0、P1、P2、P3(共32根)图2-7 MCS-51单片机的引脚配置图P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RST/VPDRXD/P3.0TXD/P3.1INT0/P3.2INT1/P3.3T0/P3.4T1/P3.5WR/P3.6RD/P3.7XTAL2XTAL1VSS12345678910111213141516171819208031805187514039383

17、736353433323130292827262521222324VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VppALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0 返回本节2.2.2 MCS-51单片机的片外总线结构地址锁存器CBI/OA15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0D7D6D5D4D3D2D1D0DBABP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RESETP3.0P3.1P3.3P3.4P3.5P3.6P3.7VSSVCC P0.0P0.1P0.2P0.

18、3P0.5P0.6P0.7EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P3.2图2-8 MCS-51片外总线结构示意图 微型计算机中的总线通常分为:(1)地址总线(AB):地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A0-A7);P2口直接提供高8位地址(A8A15)。地址信号是由CPU发出的,故地址总线是单方向的。(2)数据总线(DB):数据总线宽度为8位,用于传送数据和指令,由P0口提供。(3)控制总线(CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令。返回本节2.3 MCS-51单片机的存储器配置 2.3.1 片内数

19、据存储器 2.3.2 片外数据存储器 2.3.3 程序存储器返回本章首页2.3.1 片内数据存储器 片内数据存储器结构如图2-9(a)所示;其具体位地址单元如表2-3所示;专用寄存器的地址映像如表2-4所示。1累加器 累加器是一个最常用的专用寄存器,其自身带有全零标志Z,若A=0则Z=1;若A0则Z0。该标志常用作程序分支的判断条件。特殊功能寄存器通用RAM区位寻址区00H1FH20H2FH30H7FH80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH

20、1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)程序存储器(c)工作寄存器区图2-9 MCS-51单片机存储器结构表2-3 内部数据存储器中的位地址表2-4 特殊功能寄存器地址及功能表 2寄存器(1)PSW:程序状态字寄存器。定义格式如右上边。其中,CY:进借位标志;AC:辅助进借位标志;F0:用户标志;RS1、RS0:工作寄存器组选择(如表2-5所示)。(2)SP:堆栈指针。(3)DPTR:数据地址指针寄存器。D7D6D5D4D3D2D1D0CYACF0RS1RS0OVXPRS1 RS0选择工作寄存器组0 00组(00H07H)0

21、11组(08H0FH)1 02组(10H17H)1 13组(18H1FH)表2-5 工作寄存器组选择控制表返回本节2.3.2 片外数据存储器 外部数据存储器又称外部RAM,当片内RAM不能满足数量上的要求时,可通过总线端口和其他I/O口扩展外部数据RAM,其最大容量可达64K字节,其结构如图2-9(b)所示。在片外数据存储器中,数据区和扩展的I/O口是统一编址的,使用的指令也完全相同,因此,用户在应用系统设计时,必须合理地进行外部RAM和I/O端口的地址分配,并保证译码的唯一性。返回本节2.3.3 程序存储器 程序存储器的结构如图2-9(c)所示,包括片内和片外程序存储器两个部分。其主要用来存

22、放编好的用户程序和表格常数,它以16位的程序计数器PC作为地址指针,故寻址空间为64KB。返回本节2.4 CPU的时序及辅助电路 2.4.1 单片机的时钟电路 2.4.2 振荡周期、时钟周期、机器周期和指令周期 2.4.3 MCS-51单片机指令的取指和执行时 2.4.4 单片机复位电路及复位状态返回本章首页2.4.1 单片机的时钟电路 单片机时钟电路通常有两种形式:1内部振荡方式:MCS-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。把放大器与作为反馈元件的晶体振荡器或陶瓷谐振器连接,就构成了内部自激振荡器并产生振荡时钟脉冲(

23、如图2-10所示)。2外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内(如图2-11所示)。XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部时钟源 图2-10 内部振荡方式 图2-11 外部振荡方式返回本节P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2图2-12 MCS-51单片机各种周期的相互关系2.4.2 振荡周期、时钟周期、机器周期和指令周期 1振荡周期:为单片机

24、提供时钟信号的振荡源的周期。2时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。3机器周期:通常将完成一个基本操作所需的时间称为机器周期。4指令周期:是指CPU执行一条指令所需要的时间。一个指令周期通常含有14个机器周期。若MCS-51单片机外接晶振为12MHz时,则单片机的四个周期的具体值为:振荡周期1/12MHz1/12s0.0833s 时钟周期1/6s0.167s 机器周期1s 指令周期14s返回本节2.4.3 MCS-51单片机指令的取指和执行时序图2-13 MCS-51单片机典型指令的取指和执行时序 返回本节再 读 下 一条指令再 读 下 一条指令XTAL2(OSC)P2S1ALE

25、读操作码读下一个操作码(丢弃)读第二字节(a)单字节,单周期指令 例:MOV A R1(d)单字节,双周期指令,如MOVXP1P2S1P1P2S2P1P2S3P1P2S4P2S5P2S6P2S1P1P1P1P1P2S2P1P2S3P1P2S4P1P2S5P2S6P2S1S2P1P1P1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1P2S1读操作码P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1读下一个操作码(丢弃)(b)双字节,单周期指令 例:ADD A dir(c)单字节,双周期指令 例:INC DPTR读 操 作 码(MOVX)读下

26、一个操作码(丢弃)无取指无ALE无取指地址数据(DATA)访问外部存储器P2S1读操作码P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1P2S2P1P2S1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2S1P1P2S2P12.4.4 单片机复位电路及复位状态 1复位电路 单片机复位电路包括片内、片外两部分。外部复位电路就是为内部复位电路提供两个机器周期以上的高电平而设计的。MCS-51单片机通常采用上电

27、自动复位和按键手动复位两种方式。如图2-14所示。2单片机复位后的状态 单片机运行出错或进入死循环时,可按复位键重新运行。21个特殊功能寄存器复位后的状态为确定值,如表2-6所示。2 2 F C1 RST R11K+5V2 2 F C1 RST+5VR2200 RSTR1+5V C222F 803180518751803180518751803180518751(a)上电复位电路(c)按键脉冲复位电路(b)按键电平复位电路 R11K22FC11K R21K 图2-14 几种复位电路特殊功能寄存器初始状态特殊功能寄存器初始状态A00HTMOD00HB00HTCON00HPSW00HTH000HS

28、P07HTL000HDPL00HTH100HDPH00HTL100HP0P3FFHSBUFBIP00000BSCON00HIE000000BPCON0B表2-6 单片机复位后特殊功能寄存器的状态返回本节THANK YOU VERY MUCH!本章到此结束,谢谢您的光临!结束放映返回本章首页第3章 MCS-51单片机指令系统 3.1 MCS-51指令系统的分类、格式及一般说明 3.2 寻址方式 3.3 分类指令MCS-51单片机指令系统有如下特点:(1)指令执行时间快。(2)指令短,约有一半的指令为单字节指令。(3)用一条指令即可实现2个一字节的相乘或相除。(4)具有丰富的位操作指令。(5)可直

29、接用传送指令实现端口的输入输出操作。3.1 MCS-51指令系统的分类、格式及一般说明 3.1.1 指令分类 3.1.2 指令格式 3.1.3 指令描述符号介绍返回本章首页3.1.1 指令分类 按指令功能,MCS-51指令系统分为数据传递与交换、算术运算、逻辑运算、程序转移、布尔处理操作、CPU控制等6类。布尔处理操作类指令又称位操作指令。返回本节3.1.2 指令格式 在MCS-51指令中,一般指令主要由操作码、操作数组成。指令应具有以下功能:(1)操作码指明执行什么性质和类型的操作。例如,数的传送、加法、减法等。(2)操作数指明操作的数本身或者是操作数所在的地址。(3)指定操作结果存放的地址

30、。返回本节3.1.3 指令描述符号介绍Rn当前选中的寄存器区中的8个工作寄存器R0R7(n=07)。Ri当前选中的寄存器区中的2个工作寄存器R0、R1(i=0,1)。direct8位的内部数据存储器单元中的地址。#data包含在指令中的8位常数。#data16包含在指令中的16位常数。addr1616位目的地址。addr1111位目的地址。rel8位带符号的偏移字节,简称偏移量。DPTR数据指针,可用作16位地址寄存器。bit内部RAM或专用寄存器中的直接寻址位。A累加器。B专用寄存器,用于乘法和除法指令中。C进位标志或进位位,或布尔处理机中的累加器。间址寄存器或基址寄存器的前缀,如Ri,DP

31、TR。/位操作数的前缀,表示对该位操作数取反,如/bit。片内RAM的直接地址或寄存器。()由寻址的单元中的内容。箭头左边的内容被箭头右边的内容所代替。返回本节3.2 寻址方式 3.2.1 立即寻址 3.2.2 直接寻址 3.2.3 寄存器寻址 3.2.4 寄存器间接寻址 3.2.5 变址寻址 3.2.6 相对寻址 3.2.7 位寻址返回本章首页3.2.1 立即寻址 指令中直接给出操作数的寻址方式。立即操作数用前面加有#号的8位或16位数来表示。例如:MOVA,#60H;A#60H MOVDPTR,#3400H;DPTR#3400HMOV30H,#40H;30H单元#40H 上述三条指令执行完

32、后,累加器A中数据为立即数据60H,DPTR寄存器中数据为3400H,30H单元中数据为立即数40H。返回本节3.2.2 直接寻址 指令中直接给出操作数地址的寻址方式,能进行直接寻址的存储空间有SFR寄存器和内部数据RAM。例如:MOVPSW,#20H;PSW#20H PSW为直接寻址寄存器的符号地址。MOVA,30H;A30H内部RAM单元中的内容 30H为直接给出的内部RAM的地址。返回本节3.2.3 寄存器寻址 以通用寄存器的内容为操作数的寻址方式。通用寄存器指A、B、DPTR以及R0R7。例如:CLR A;A0 INC DPTR;DPTRDPTR+1 ADDR5,#20H;R5#20H

33、+R5返回本节3.2.4 寄存器间接寻址 以寄存器中内容为地址,以该地址中内容为操作数的寻址方式。间接寻址的存储器空间包括内部数据RAM和外部数据RAM。能用于寄存器间接寻址的寄存器有R0,R1,DPTR,SP。其中R0、R1必须是工作寄存器组中的寄存器。SP仅用于堆栈操作。例如:MOV R0,A ;内部RAM(R0)A其指令操作过程示意图如图3-1所示。又如:MOVX A,R1;A外部RAM(P2R1)其指令操作过程示意图如图3-2所示。再 如:M O V X D P T R,A;外 部RAM(DPTR)A 其指令操作过程示意图如图3-3所示。片内RAM30HR034HA30H34H图3-1

34、 MOV R0,A间接寻址示意图片外RAM34HP245HA3410H45H10HR1片外RAM2000HDPTR30HA2000H30H图3-2 MOVX A,R1间接寻址示意图 图3-3 MOVX DPTR,A间接寻址示意图返回本节3.2.5 变址寻址 变址寻址只能对程序存储器中数据进行操作。由于程序存储器是只读的,因此变址寻址只有读操作而无写操作,在指令符号上采用MOVC的形式(如图3-4所示)。例如:MOVC A,A+DPTR;A(A+DPTR)又如,MOVC A,A+PC ;A(A+PC)这条指令与上条指令不同的是,基址寄存器是PC。图3-4 变址寻址示意图程序存储器2000HDPT

35、R64H(10H)A2010H64H10H2000H返回本节3.2.6 相对寻址 以当前程序计数器PC的内容为基础,加上指令给出的一字节补码数(偏移量)形成新的PC值的寻址方式。相对寻址用于修改PC值,主要用于实现程序的分支转移。例如,SJMP 08H ;PCPC+2+08H 指令操作示意图如图3-5所示。程序存储器(2000H)200AHSJMP200AH08H2000H+208HPC2000H图3-5 相对寻址示意图返回本节3.2.7 位寻址 位寻址只能对有位地址的单元作位寻址操作。位寻址其实是一种直接寻址方式,不过其地址是位地址。例如:SETB 10H ;将10H位置1若22H单元中存放

36、着数据40H,22H单元的D0位的位地址为10H,执行上述指令后(22H)=41H。又如:MOV 32H,C ;32H进位位C ORL C,32H ;CC32H返回本节3.3 分类指令 3.3.1 数据传送类指令 3.3.2 算术运算类指令 3.3.3 逻辑运算与循环类指令 3.3.4 程序转移类指令 3.3.5 调用子程序及返回指令 3.3.6 位操作指令 3.3.7 空操作指令返回本章首页3.3.1 数据传送类指令 数据传送类指令共28条,是将源操作数送到目的操作数。指令执行后,源操作数不变,目的操作数被源操作数取代。数据传送类指令用到的助记符有MOV、MOVX、MOVC、XCH、XCHD

37、、SWAP、PUSH、POP8种。源操作数可采用寄存器、寄存器间接、直接、立即、变址5种寻址方式寻址,目的操作数可以采用寄存器、寄存器间接、直接寻址3种寻址方式。MCS-51单片机片内数据传送途径如图3-6所示。直接地址direct累加器A直接地址direct间接地址Ri寄存器Rn立即数#data寄存器DPTR图3-6 MCS-51单片机片内数据传送图1以A为目的操作数MOV A,Rn;A RnMOV A,direct;A(direct)MOV A,Ri;A(Ri)MOV A,#data;A#data2以Rn为目的操作数MOV Rn,A;Rn AMOV Rn,direct;Rn(direct)

38、MOV Rn,#data;Rn#data3以直接地址为目的操作数MOV Ri,A;(Ri)AMOV Ri,direct;(Ri)(direct)MOV Ri,#data;(Ri)#data4以间接地址为目的操作数MOV Ri,A;(Ri)AMOV Ri,direct;(Ri)(direct)MOV Ri,#data;(Ri)#data例如:设(30H)=6FH,R1=40H,执行MOV R1,30H后,30H单元中数据取出送入R1间接寻址的40H单元,(40H)=6FH。5以DPTR为目的操作数MOV DPTR,#data16 ;DPTR#data16例如执行 MOV DPTR,#2000H

39、后,(DPTR)=2000H。6访问外部数据RAM MOVX A,DPTR;A (DPTR)MOVX DPTR,A;(DPTR)AMOVX A,Ri;A (P2Ri)MOVX Ri,A;(P2Ri)A7读程序存储器MOVC A,A+DPTR;A (A+DPTR)MOVC A,A+PC;A (A+PC)例如已知A=30H,DPTR=3000H,程序存储器单元(3030H)=50H,执行MOVC A,A+DPTR后,A=50H。8数据交换l 字节交换XCH A,Rn;A RnXCH A,direct;A(direct)XCH A,Ri;A(Ri)l 半字节交换XCHD A,Ri;A03(Ri)03

40、SWAP A;A03A479堆栈操作 所谓堆栈是在片内RAM中按“先进后出,后进先出”原则设置的专用存储区。数据的进栈出栈由指针SP统一管理。堆栈的操作有如下两条专用指令:PUSH direct;SP(SP+1),(SP)(direct)POP direct;(direct)(SP),SP SP-1 PUSH是进栈(或称为压入操作)指令。指令执行过程如图3-7所示。片内RAM30H11H10HSP片内RAM50H40H11H10HSP40H30H片内RAM50H40H11H10H50HSP30H片内RAM40H11H10H34HSP30H34H34H执行前执行前执行前PUSH指令后执行POP指

41、令后图3-7 指令PUSH操作示意图图3-8 指令POP操作示意图【例3.1】将片内RAM 30H单元与40H单元中的内容互换。方法1(直接地址传送法):MOV 31H,30H MOV 30H,40H MOV 40H,31H SJMP$方法2(间接地址传送法):MOV R0,#40H MOV R1,#30H MOV A,R0 MOV B,R1 MOV R1,A MOV R0,B SJMP$方法3(字节交换传送法):MOV A,30H XCH A,40H MOV 30H,A SJMP$方法4(堆栈传送法):PUSH30H PUSH40H POP 30H POP 40H SJMP$返回本节3.3.

42、2 算术运算类指令1加法指令ADD A,Rn;A A+RnADD A,direct;A A+(direct)ADD A,Ri;A A+(Ri)ADD A,#data;A A+#data2带进位加指令ADDC A,Rn;A A+Rn+CADDC A,direct;A A+(direct)+CADDC A,Ri;A A+(Ri)+CADDC A,#data;A A+#data+CC为来自PSW状态寄存器中的进位位C。例如,设A=20H,R0=21H,C=1,执行指令 ADDC,R0后,A=42H。3带借位减指令SUBB A,Rn;A A-Rn-CSUBB A,direct;A A-(direct)

43、-CSUBB A,Ri;A A-(Ri)-CSUBB A,#data;A A-#data C例如,设A=39H,R0=20H,(20H)=32H,C=1,执行指令 SUBB,R0后,A=06H。4乘法指令MUL AB;BA AB A和B中各存放一个8位无符号数,指令执行后,16位乘积的高8位在B中,低8位存A中。例如,A=30H,B=60H,执行 MUL AB 后,A=00H,B=12H。5除法指令 DIV AB;AB商在A中,余数在B中 A和B中各存放一个8位无符号数,A放被除数,B放除数。指令执行后,A中存放商,B中存入余数。若B=00H,则指令执行后OV=1,A与B不变。例如,A=30H

44、,B=07H,执行 DIV AB 后,A=06H,B=06H。6加1指令INC A;A A+1INC Rn;Rn Rn+1INC direct;(direct)(direct)+1INC Ri;(Ri)(Ri)+1INC DPTR;DPTR DPTR+1例如,(30H)=22H,执行 INC 30H 后,(30H)=23H。7减1指令DEC A;A A-1DEC Rn;Rn Rn-1DEC direct;direct(direct)-1DEC Ri;(Ri)(Ri)-1例如,R0=30H,(30H)=22H,执行 DEC R0 后,(30H)=21H。8十进制调整指令DA A ;把A中按二进制

45、相加的结果调整成按BCD码相加的结果例如,A=65BCD,B=78BCD,C=0,执行下列语句ADD A,BDAA后,A=43 BCD,C=1。【例3.2】试把存放在R1R2和R3R4中的两个16位数相加,结果存于R5R6中。解:参考程序如下:MOVA,R2;取第一个数的低8位 ADDA,R4;两数的低8位相加 MOVR6,A;保存和的低8位 MOVA,R1;取第一个数的高8位 ADDCA,R3;两数的高8位相加,并把低8位相加时的进位位加进来 MOVR5,A;把相加的高8位存入R5寄存器中 SJMP$返回本节3.3.3 逻辑运算与循环类指令1“与”操作指令 2“或”操作指令3“异或”操作指令

46、4求反与清除指令5循环指令返回本节3.3.4 程序转移类指令1无条件转移指令l 绝对(短)转移指令AJMP addr11;PC100 addr11 l 长转移指令LJMPaddr16;PC addr16l 短(相对)转移指令SJMPrel;PC PC+2+rell 间接转移指令JMPA+DPTR;PC A+DPTR2条件转移指令l 累加器为零(非零)转移指令l 减1非零转移指令l 两数不等转移指令l 相对偏移量rel的求法0000H07FFH0800H0FFFH1000H17FFH1800H1FFFH2000H27FFH2800H2FFFH3000H37FFH3800H3FFFH4000H47

47、FFH4800H4FFFH5000H57FFH5800H5FFFH6000H67FFH6800H6FFFH7000H77FFH7800H7FFFH8000H87FFH8800H8FFFH9000H97FFH9800H9FFFHA000HA7FFHA800HAFFFHB000HB7FFHB800HBFFFHC000HC7FFHC800HCFFFHD000HD7FFHD800HDFFFHE000HE7FFHE800HEFFFHF000HF7FFHF800HFFFFH表3-1 程序存储器空间32个2K地址范围返回本节3.3.5 调用子程序及返回指令1调用子程序指令LCALL addr16;PCPC+

48、3,SPSP+1,(SP)PC710;SPSP+1,(SP)PC158,PCaddr16ACALL addr11;PC PC+2,SPSP+1,(SP)PC70;SP SP+1,(SP)PC158,PC100addr112返回指令RET ;PC158(SP),SPSP-1 ;PC70(SP),SPSP-1RETI ;PC158(SP),SPSP-1 ;PC70(SP),SPSP-1返回本节3.3.6 位操作指令1位数据传送指令MOVC,bit;C(bit)MOV bit,C;bitC2位状态修改指令CLRC;C0CLRbit;(bit)0CPLC;CCPLbit;(bit)(bit)SETBC

49、;C1SETBbit;(bit)13位逻辑运算指令ANL C,bit;CC(bit)ANL C,/bit;CC(bit)ORL C,bit;CC(bit)ORL C,/bit;CC(bit)4位转移指令JCrel;若C=1,则转移(PCPC+2+rel);否则程序顺序执行JNC rel;若C=0,则转移(PCPC+2+rel);否则程序顺序执JBbit,rel;若(bit)=1,则转移(PCPC+3+rel);否则程序顺序执行JNB bit,rel;若(bit)=0,则转移(PCPC+3+rel);否则程序顺序执行JBCbit,rel;若(bit)=1,则PCPC+3+rel,(bit)0;否

50、则程序顺序执行功能:分别检测指定位是1还是0,若条件符合,则CPU转向指定的目标地址去执行程序;否则,顺序执行下条指令。返回本节3.3.7 空操作指令 NOP ;PC PC+1 这是一条单字节指令。执行时,不作任何操作(即空操作),仅将程序计数器PC的内容加1,使CPU指向下一条指令继续执行程序。这条指令常用来产生一个机器周期的时间延迟。返回本节 本章到此结束,谢谢您的光临!结束放映返回本章首页THANK YOU VERY MUCH!第4章 汇编语言程序设计 4.1 汇编语言基本概念 4.2 汇编语言程序设计4.1 汇编语言基本概念 4.1.1 程序设计语言 4.1.2 汇编语言的语句结构 4

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(配套课件-单片微型计算机.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|