单片机原理课件.pptx

上传人(卖家):晟晟文业 文档编号:4294603 上传时间:2022-11-26 格式:PPTX 页数:175 大小:3.11MB
下载 相关 举报
单片机原理课件.pptx_第1页
第1页 / 共175页
单片机原理课件.pptx_第2页
第2页 / 共175页
单片机原理课件.pptx_第3页
第3页 / 共175页
单片机原理课件.pptx_第4页
第4页 / 共175页
单片机原理课件.pptx_第5页
第5页 / 共175页
点击查看更多>>
资源描述

1、二进制数字0与1 数字电路常用高电平代表1,低电平代表0.数字电路的计算通常采用二进制,计算机硬件所能执行的只能是二进制代码,实际上是通过高低电平来进行的。00011逻辑0与逻辑1 逻辑运算的值为1代表真。逻辑运算的值为0代表假。二进制运算 100110011 001000110101111001二进制数与十进制数二进制与十六进制 十六进制 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F10110101B5表示为十六进制0 xB5,8位为一字节BCD码00110101十位09个位09以上BCD码表示十进制数35逻辑运算 逻辑与&A*B 有0得0,全1得1 逻辑或|A+B 有1得

2、1,全0得0 逻辑非!!A 取反1011010111011111脉冲上升沿下降沿脉冲宽度数字电路 逻辑运算电路 编码器 译码器 数显电路 数模、模数转换(D/A,A/D)Digital/Analoge 加法器 触发电路 时序电路几个概念与术语 ROM(Read Only Memerry)只读存贮器只读存贮器 RAM(Read Access Memerry)可读写存贮可读写存贮器器 Rom主要用来存贮程序,主要用来存贮程序,RAM用来存贮计用来存贮计算数据算数据 单片机是集单片机是集CPUCPU、存储器、存储器、I/OI/O接口于一体接口于一体的大规模集成电路芯片。的大规模集成电路芯片。MCS-

3、51MCS-51系列单片系列单片机是目前市场上应用最广泛的单片机机型。机是目前市场上应用最广泛的单片机机型。存贮器D0D1D2D3D4D5D6D700H01H02H03H04H05HD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7数据总线A0A1A2A3A4A5A6A7地址译码电路控制电路A0A1A2A3A4A5A6A7地址总线地址锁存器CS(片选)RD(读取)WR(写入)控制总线三大总线数据总线地址总线控制总线MCS-51系列单片机普通型(51子系列)8051、8031、8751、89C51、89S51等。增强型(52子系列)8032、8052、8752、89C52、89S5

4、2等。结构基本相同,主要差别在存储器的配置上。8031片内没有程序存储器 8051内部设有4KB的掩模ROM程序存储器 8751是将8051片内的ROM换成EPROM 89C51则换成4KB的闪速EEPROM 89S51结构同89C51,4KB的闪速EEPROM可在线编程 增强型的存储容量为普通型的一倍 51系列单片机内部结构系列单片机内部结构P3P1P2 可编程 串行I/O口P0外部中断基准频率源控制128B RAM数据存储器 4KB ROM程序存储器 2个16位定时/计数器 振荡器及 定时电路 CPU 64KB总线扩展控制 可编程并行I/O口内部中断计数脉冲串行输出 串行输入CPUCPU

5、CPU是单片机的核心部件。它由运算器和控制器等部件组成。1.运算器 运算器的功能是 进行算术运算:加、减、乘、除、加1、减1、比较BCD码十进制调整等 逻辑运算:与、或、异或、求反、循环等逻辑操作 位操作:内部有布尔处理器,它以进位标志位C为位累加器,用来处理位操作。可对位置“1”、对位清零、位判断等。操作结果的状态信息送至状态寄存器PSW。运算器组成1.算术逻辑运算单元ALU 用于对数据进行算术和逻辑操作的执行部件,由加法 器和其它逻辑电路(移位电路和判断电路等)组成。2.累加器A 使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送

6、大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。2.程序计数器PC 程序计数器PC是16位的寄存器,用来存放即将要执行的指令地址,可对64KB程序存储器直接寻址。3.指令寄存器 指令寄存器中存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经指令译码器译码后由定时与控制电路发出相应的控制信号,完成指令功能。MCS-51的引脚的引脚 40脚塑料双列直插封装(PDIP)P1P1P3P3P0P0P2P24444脚脚“J J”型脚的方形封装(型脚的方形封装(PLCCPLCC)引脚逻辑图 8051单片机为40脚双列直插式封装 引脚可分为三个部分X1 X2

7、EA PSEN ALE RST VCC GND 8051 P0 P1 P2 P3 P00P07 P10P17 P20P27 P30P37 控制引脚并行I/O口引脚电源及时钟引脚脚控制引脚控制引脚 (1)RST/VPD(9脚):复位与备用电源(2)ALE/PROG*(30脚):第一功能ALE:地址锁存允许 第二功能PROG*:编程脉冲输入端。(3)PSEN*(29脚):读外部程序存储器的选通信号。(4)EA*/VPP(31脚):EA*为内外程序存储器选择控制 EA*=1,访问片内程序存储器,EA*=0,单片机则只访问外部程序存储器。第二功能VPP,用于施加编程电压。8051有4组8位I/O口:P

8、0、P1、P2和P3口,其中 P1、P2和P3为准双向口,P0口则为双向三态输入输出口。MCS-51系列单片机的基本系列单片机的基本I/O口口l双向三态输入输出端口。lP0口身兼两职,既可作为地址总线(AB0-AB7),也可作为数据总线(DB0-DB7)。l作为通用I/O时,是一个漏极开路电路。需外接上拉电阻。l作为地址/数据总线使用时,不需 接上拉电阻。lP0可驱动8个LSTTL,其它P口可以驱动4个LSTLL。并行输入和输出端口P0v 注意在注意在P0口作为通用的口作为通用的I/O口时,必须外接上拉电口时,必须外接上拉电阻阻(如下图)。如下图)。12345678P0口VCC P1口某位结构

9、并行输入和输出端口P1l P1口为8位准双向输入输出端口。l作为输入口使用时,有两种情况。其一是:首先是读锁存器的内容,进行处理后再写到锁存器中,这种操作即读修改写操作,象JBC(逻辑判断)、CPL(取反)、INC(递增)、DEC(递减)、ANL(与逻辑)和ORL(逻辑或)指令均属于这类操作。其二是:读P1口线状态时,打开三态门G,将外部状态读入CPU。注意在注意在P1P1口作为通用的口作为通用的I/OI/O口使用时,在从口使用时,在从I/OI/O端口读入端口读入数据时,应该首先向相应的数据时,应该首先向相应的I/OI/O口内部锁存器写口内部锁存器写“1 1”。v 举例:从举例:从P1P1口的

10、低四位输入数据口的低四位输入数据 MOV P1,#00001111b;MOV P1,#00001111b;先给先给P1P1口底四位写口底四位写1 1 MOV A,P1 ;MOV A,P1 ;再读再读P1P1口的底四位口的底四位并行输入和输出端口P2l P2口作为通用I/O时,准双向输入输出端口。l P2口作为高8位地址总线,AB8-AB15。l P2口与P0一起构成单片机与外电路相连接的扩展端口。通常可以用来扩展存储器、及与其它总线型连接方式的外设。lP2可以驱动4个标准的TTL负载电路。利用利用P0、P2端口扩展端口扩展SRAM、EPROM存储器存储器8051EAP2P0ALEPSENRD7

11、4LS373ROMA15A0PD/PGMA15A0A7A0A7A0RAMRD WRWR并行输入和输出端口P3lP3口作为通用I/O时,为准双向输入输出端口。l P3口的第二功能。P3.0 串行输入口(RXD)P3.1 串行输出口(TXD)P3.2外中断0(INT0)P3.3外中断1(INT1)P3.4定时/计数器0的外部输入口(T0)P3.5定时/计数器1的外部输入口(T1)P3.6外部数据存储器写选通(WR)P3.7外部数据存储器读选通(RD)v注意在注意在P3口的使用时,首先要考虑第二功能的要求。口的使用时,首先要考虑第二功能的要求。MCS-51MCS-51单片机单片机P3口的第二功能口的

12、第二功能引脚引脚第二功能第二功能P3.0P3.0RXD(RXD(串行口输入串行口输入)P3.1P3.1TXD(TXD(串行口输出串行口输出)P3.2P3.2INT0(INT0(外部中断外部中断0 0输入输入)P3.3P3.3INT1(INT1(外部中断外部中断1 1输入输入)P3.4P3.4T0(T0(定时器定时器0 0的外部输入的外部输入)P3.5P3.5T1(T1(定时器定时器1 1的外部输入的外部输入)P3.6P3.6WR(WR(片外数据存储器写选通控制输出片外数据存储器写选通控制输出)P3.7P3.7RD(RD(片外数据存储器读选通控制输出片外数据存储器读选通控制输出)举例举例1 1:

13、P1P1口作为输出口,原本无需接上来电阻,这里是为了口作为输出口,原本无需接上来电阻,这里是为了增强增强P1P1口的驱动能力。口的驱动能力。ORG 0000HSTART:MOV P1,#00H ACALL DELAYMOV P1,#0FFH ACALL DELAY SJMP STARTDELAY:MOV R3,#0FFHDEL2:MOV R4,#0FFH DEL1:NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 0000000011111111ALEWR RDP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V0000000011111111111

14、11111ALEWR RDP3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7读端口:读端口:MOV P3,#11111111BMOV A,P3 89C51P3.41 1 1 1 1 1 1 10 1程序状态字寄存器程序状态字寄存器PSWPSW (1)Cy(PSW.7)进位标志位(2)Ac(PSW.6)辅助进位标志位(3)F0(PSW.5)标志位 由用户使用的一个状态标志位。(4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择控制位1和位0。工作寄存器区的选择工作寄存器区的选择 18181FH1FH3 3区区1 11 1101017H17H2 2区区1 01 0080

15、80FH0FH1 1区区0 10 1000007H07H0 0区区0 00 0R R0 0R R7 7地址地址寄存器寄存器组组RSRS1 1 RSRS0 0(5)OV(PSW.2)溢出标志位 指示运算是否产生溢出。(6)PSW.1位 保留位,未用(7)P(PSW.0)奇偶标志位 P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数MCS-51MCS-51存储器的结构存储器的结构 存储器空间可划分为5类:1.程序存储器空间 2.内部数据存储器空间 3.特殊功能寄存器 4.位地址空间 5.外部数据寄存器空间 内部数据存储器内部数据存储器(a)外部数据存储器外部数据存储器(b)MCS-51单

16、片机存储器空间分配单片机存储器空间分配特特殊殊功功能能寄寄存存器器00H1FH20H2FH30H7FH 80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址特殊功能寄存器中位寻址外部外部ROM内部内部ROM(EA=1)外部外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外外 部部RAM(I/O口口地址地址)0000HFFFFH程序存储器程序存储器(c)工作寄工作寄存器区存器区位寻址区位寻址区通用通用RAM区区程序存储器 l 存放应用程序和表格之类的固定常数。l 分为片内和片外两部分,由EA*引脚上所接电平确定 程

17、序存储器中的0000H地址是系统程序的启动地址 在程序存储器中,以下7个单元具有特殊功能,是留给系统用的。表3-1 5种中断源的中断入口地址外中断0 0003H定时器T0溢出 000BH外中断1 0013H 定时器T1溢出 001BH 串行口 0023H 定时器T2溢出(89C52/S52)002BH 内部数据存储器内部数据存储器 共128128个字节,个字节,字节地址为字节地址为00H00H7FH7FH。00H00H1FH1FH:3232个单元,是个单元,是4 4组通用工作寄存器区组通用工作寄存器区 20H20H2FH2FH:1616个单元,可进个单元,可进行行128128位的位寻址位的位寻

18、址 30H30H7FH7FH:用户:用户RAMRAM区,只区,只能进行字节寻址,用作数据能进行字节寻址,用作数据缓冲区以及堆栈区。缓冲区以及堆栈区。特殊功能寄存器(SFR)CPU对各种功能部件的控制采用特殊功能寄存器集中控制方式,共21个。有的SFR可进行位寻址,其字节地址的末位是0H或8H。表表3-2 SFR的名称及其分布的名称及其分布SFRSFR中的某些寄存器中的某些寄存器 1堆栈指针SP(Stack Point)指示出堆栈顶部在内部RAM块中的位置 复位后,SP中的内容为07H。(1)保护断点(2)现场保护 2.数据指针DPTR 16位特殊功能寄存器,高位字节寄存器用DPH表示,低位 字

19、节寄存器用DPL表示。3.I/O端口P0P3 专用寄存器P0P3分别为I/O端口P0P3的锁存器。4.寄存器B 在执行乘法和除法操作中,用B寄存器暂存数据。在不执行乘、除的情况下,可当作一个普通寄存器来使用。5.串行数据缓冲器SBUF 存放欲发送或已接收的数据,一个字节地址物理上是由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。6.定时器/计数器 两个16位定时器/计数器T1和T0,各由两个独立的8位寄存器组成:TH1、TL1、TH0、TL0,只能字节寻址,但不能把T1或T0当作一个16位寄存器来寻址访问。位地址空间位地址空间 211211个(个(128128个个+83+83个)

20、寻址位。位地址范围为:个)寻址位。位地址范围为:00H00HFFHFFH。内部内部RAMRAM的可寻址位的可寻址位128128个个(字节地址字节地址20H20H2FH)2FH)见见表表3-33-3。特殊功能寄存器特殊功能寄存器SFRSFR为为8383个可寻址位,见个可寻址位,见表表3-43-4。表表3-3 内部的可寻址位及位地址内部的可寻址位及位地址表表3-4 SFR中的位地址分布中的位地址分布 外部数据存储器外部数据存储器 最多可外扩64K字节的RAM或I/O。几点注意:(1)地址的重叠性 程序存储器与数据存储器全部64K字节地址空间重叠(2)程序存储器与数据存储器在使用上是严格区分的(3)

21、位地址空间共有两个区域(4)片外与片内数据存储器由指令来区分(5)片外数据存储区中,RAM与I/O端口统一编址。所有外围I/O端口的地址均占用RAM地址单元,使用与访问外部数据存储器相同的传送指令。内部数据存储器内部数据存储器(a)外部数据存储器外部数据存储器(b)MCS-51单片机存储器空间分配单片机存储器空间分配特特殊殊功功能能寄寄存存器器00H1FH20H2FH30H7FH 80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址特殊功能寄存器中位寻址外部外部ROM内部内部ROM(EA=1)外部外部ROM(EA=0)0000H0000H0FFF

22、H0FFFH1000HFFFFH外外 部部RAM(I/O口口地址地址)0000HFFFFH程序存储器程序存储器(c)工作寄工作寄存器区存器区位寻址区位寻址区通用通用RAM区区时钟电路与时序时钟电路与时序 时钟电路用于产生单片机工作所必需的时钟控制信号。时钟电路 时钟频率直接影响单片机的速度,电路的质量直接影响系统的稳定性。常用的时钟电路有两种方式:内部时钟方式和外部时钟方式。内部时钟方式内部时钟方式 内部有一个用于构成振荡器的高增益反相放大器,其输入端:XTAL1,输出端:XTAL2。C1和C2典型值通常选择为30pF左右。晶体的振荡频率在1.2MHz12MHz之间。某些高速单片机芯片的时钟频

23、率已达40MHz。时钟电路与复位电路时钟电路与复位电路XTAL1XTAL2GND8XX51C01C02机器周期、指令周期与指令时序机器周期、指令周期与指令时序一、时钟周期(振荡周期)单片机的基本时间单位。定义为时钟脉冲频率的倒数在一个时钟周期内,中央处理器仅完成一个最基本的动作若时钟的晶体的振荡频率为fosc,则时钟周期Tosc=1/fosc。二、状态周期在系列单片机中把一个时钟周期定义为一个节拍(用表示),两个节拍定义为一个状态周期(用表示)三、机器周期CPU完成一个基本操作所需要的时间。执行一条指令分为几个机器周期。每个机器周期完成一个基本操作。MCS-51单片机每12个时钟周期为一个机器

24、周期一个机器周期又分为一个机器周期又分为6 6个状态个状态:S1S1S6S6。每个状态又分为每个状态又分为两拍两拍:P1P1和和P2P2。因此,。因此,一个机器周期中的一个机器周期中的1212个时钟周期表示为:个时钟周期表示为:S1P1S1P1、S1P2S1P2、S2P1S2P1、S2P2S2P2、S6P2S6P2。指令周期指令周期指令周期是执行一条指令所需要的时间一般由若干个机器周期组成执行一条指令时,可分为取指令阶段和指令执行阶段。取指令阶段,PC中地址送到程序存储器,并从中取出需要执行指令的操作码和操作数。指令执行阶段,对指令操作码进行译码,以产生一系列控制信号完成指令的执行。ALE信号

25、是为地址锁存而定义的,以时钟脉冲1/6的频率出现,在一个机器周期中,ALE信号两次有效(注意,在执行访问外部数据存储器的指令MOVX时,将会丢失一个ALE脉冲)8051X2X2X1X1VssVssTTLTTL外接时钟源外接时钟源VccVcc时钟电路时钟电路 需外接晶振的频率需外接晶振的频率1.212MHZ,C1和和C2取取3010PFX1X1X2X2C2C2 C1C1X X 8051振荡电路振荡电路S1S2S3S4S5S6S1S2P1 P2 P1 P2 P1 P2P1 P2 P1 P2 P1 P2 P1 P2 P1 P2fosc一个状态周期一个状态周期一个机器周期一个机器周期T=12T=12*

26、(1/fosc)(1/fosc)X2 CPU的时序(时钟周期、的时序(时钟周期、状态周期、机器周期)状态周期、机器周期)若外接晶振为若外接晶振为12MHz时,则单片机的四个周时,则单片机的四个周期的具体值为:期的具体值为:时钟周期时钟周期1/12MHz1/12s0.0833s 状态周期状态周期1/6s0.167s 机器周期机器周期1s 指令周期指令周期14s可用于计算指令、程序的执行时间,以及定可用于计算指令、程序的执行时间,以及定时器的定时时间时器的定时时间 MCS51单片机的单片机的CPU取指令和执行指令取指令和执行指令的时序如下图所示:的时序如下图所示:复位:是单片机初始化操作,其主要功

27、复位:是单片机初始化操作,其主要功能是把包括能是把包括PC在内的一些专用寄存器赋予在内的一些专用寄存器赋予初始数据,使单片机从这些出值开始工作。初始数据,使单片机从这些出值开始工作。单片机运行出错或进入死循环时,可使单片机运行出错或进入死循环时,可使其复位后重新运行。其复位后重新运行。单片机本身一般是不能自动进行复位单片机本身一般是不能自动进行复位的,必须配合相应的外部电路才能实现。的,必须配合相应的外部电路才能实现。复位和复位电路复位和复位电路MCS-51单片机各寄存器的复位状态单片机各寄存器的复位状态 00HTCON0000HPC00HTMOD00000BPCON0000000BIE不定不

28、定SBUF 000000BIP00HSCON0FFHP0P300HTH10000HDPTR00HTL107HSP00HTH000HPSW00HTL000HACC复位状态复位状态寄存器寄存器复位状态复位状态寄存器寄存器复位操作复位操作上电自动复位上电自动复位和和按钮复位按钮复位 最简单的上电自动复位电路最简单的上电自动复位电路:外部复位电路外部复位电路按键手动复位按键手动复位,有,有电平方式电平方式和和脉冲方式脉冲方式两种。两种。电平方式电平方式 脉冲方式脉冲方式单片机最小系统示例单片机最小系统示例指令 指令格式 寻址方式 指令系统 标号:标号:操作码操作码 操作数操作数1 1,操作数,操作数2

29、 2 ;注释;注释 换行表示一条指令结束。换行表示一条指令结束。例:例:LOOPLOOP:MOV AMOV A,#40H#40H;取参数;取参数MOVMOV_move_move传送传送XCHXCH_exchange_exchange交换交换ANLANL_and logic_and logic与逻辑运算与逻辑运算XRLXRL_exclusive or_exclusive or异或运算异或运算MULMUL_Multiply_Multiply乘法乘法RRRR_rotate right_rotate right右循环右循环SJMPSJMP_short jump_short jump短跳转短跳转RETR

30、ET_return _return 子程序返回子程序返回指令格式指令格式机器语言指令格式机器语言指令格式操作码操作码 操作数操作数1 1 操作数操作数22有单字节、双字节和三字节指令。有单字节、双字节和三字节指令。举例:举例:汇编语言:汇编语言:机器语言:机器语言:MOV AMOV A,R0R0E8HE8HMOV R6MOV R6,#32H#32H7E 32H7E 32HMOV 40HMOV 40H,#100H#100H75 40 64H75 40 64H111010000111111000110010011101010100000001100100指令寻址方式指令寻址方式操作数类型操作数类型

31、 位位(b)(b)位寻址区中的一位二进制数据位寻址区中的一位二进制数据 字节字节(B)8(B)8位二进制数据位二进制数据 字字(W)16(W)16位双字节数据位双字节数据1.1.立即寻址方式立即寻址方式举例:举例:8 8位立即数:位立即数:MOV AMOV A,#40H#40H ;A A40H40H 16 16位立即数:位立即数:MOV DPTRMOV DPTR,#2100H#2100H;DPTRDPTR2100H2100H执行指令执行指令 MOV AMOV A,40H 40H 后后 A=A=2.2.直接寻址方式直接寻址方式41H 78H40H 56H56H 3.3.寄存器寻址方式寄存器寻址方

32、式 MOV AMOV A,R0R0;A AR0R04.4.寄存器间接寻址方式寄存器间接寻址方式例例:MOV AMOV A,R0R0;A A(R0)(R0)设指令执行前设指令执行前 A=20HA=20H,R0=40HR0=40H,地址为,地址为40H40H存储器存储器 单元内容如图所示单元内容如图所示。41H 67H 40H 34H0100 0000A0010 0000R00100 0000R05.5.变址间接寻址方式变址间接寻址方式 数据地址数据地址 =基地址基地址 +偏移量。偏移量。例:例:MOVC AMOVC A,A+DPTRA+DPTR;A A(A+DPTR)(A+DPTR)设指令执行前

33、设指令执行前 A=09HA=09H,DPTR=2000HDPTR=2000H,存储器单元内容如图所示。,存储器单元内容如图所示。2008H 89H2009H 12H6.6.位寻址方式位寻址方式 指令给出位地址。一位数据在存储器位寻址区。指令给出位地址。一位数据在存储器位寻址区。例:例:MOV CyMOV Cy,40H40H;CyCy(位地址位地址40H)40H)28H 0110001029H 11010111位寻址区位地址位地址40H40H指令功能分类:指令功能分类:数据传送、数据操作、布尔处理、程序控制。数据传送、数据操作、布尔处理、程序控制。1.1.数据传送指令数据传送指令实现寄存器、存储

34、器之间的数据传送。实现寄存器、存储器之间的数据传送。内部传送指令内部传送指令 外部传送指令外部传送指令 交换指令交换指令 堆栈操作指令堆栈操作指令 查表指令查表指令 一、一、内部传送指令内部传送指令:MOV A,Rn ;ARn,Rn=R0R7 MOV A,direct ;A(direct),MOV A,Ri;A(Ri),Ri=R0、R1MOV A,#data ;A d,例子:MOV AMOV A,R1R1;MOV A,30HMOV A,30H;MOV A,R1MOV A,R1;MOV A,#34HMOV A,#34H;1 1)以累加器为目的操作数的指令以累加器为目的操作数的指令 MOV RnM

35、OV Rn,directdirect ;Rn(n)Rn(n)MOV RnMOV Rn,#data#data;Rn data Rn data MOV RnMOV Rn,A A;Rn Rn(A A)2 2)以寄存器)以寄存器RnRn为目的操作的指令为目的操作的指令 MOV direct,Rn;directRnMOV direct,A ;MOV direct,Ri;MOV direct,#data ;MOV direct,direct2 ;例:例:MOV 20H,R1 MOV 20H,R1 MOV 20H,AMOV 20H,AMOV 20H,30HMOV 20H,30HMOV 20H,R1MOV 2

36、0H,R1MOV 20H,#34HMOV 20H,#34H(3 3)以直接地址为目的操作数的指令)以直接地址为目的操作数的指令 MOV RiMOV Ri,A A;(RiRi)(A A),),MOV RiMOV Ri,directdirect;(RiRi)(directdirect),MOV RiMOV Ri,#data#data;(RiRi)data data,例:例:MOV R0,AMOV R0,AMOV R1,20HMOV R1,20HMOV R0,#34HMOV R0,#34H(4 4)以间接地址为目的操作数的指令)以间接地址为目的操作数的指令 (5 5)十六位数的传递指令)十六位数的传

37、递指令 MOV DPTR,#data16 例例3-2-13-2-1:顺序执行下列指令序列,求每一步执行结果顺序执行下列指令序列,求每一步执行结果。MOV AMOV A,#30H#30HMOV 4FHMOV 4FH,A AMOV R0MOV R0,#20H#20HMOV R0MOV R0,4FH4FHMOV 21HMOV 21H,20H20H地址内容60H32H32H58H习题习题1 1:用两种寻址方式实现,将片内用两种寻址方式实现,将片内RAM 60HRAM 60H单元的数单元的数据传送给累加器据传送给累加器A A。解:解:MOV A,#60HMOV A,#60HMOV R0MOV R0,#6

38、0H#60H MOV AMOV A,R0R0;A=30HA=30H;(4FH)=30H(4FH)=30H;R0=20HR0=20H;(20H)=30H(20H)=30H;(21H)=30H(21H)=30HMOV R0MOV R0,60H 60H MOV AMOV A,R0R0解:解:MOV A,60HMOV A,60HA=60HA=60HA=32HA=32HA=58HA=58HA=32HA=32H习题习题2 2:综合练习:综合练习:给出每条指令执行后的结果 MOV 23H,#30HMOV 12H,#34HMOV R0,#23HMOV R7,#22HMOV R1,12HMOV A,R0MOV

39、34H,R1MOV 45H,34HMOV DPTR,#6712HMOV 12H,DPHMOV R0,DPLMOV A,R0二、二、外部传送指令外部传送指令实现片外数据存储器和实现片外数据存储器和A A累加器之间的数据传送。累加器之间的数据传送。指令格式:指令格式:MOVX MOVX 目的操作数,源操作数目的操作数,源操作数寻址方式:片外数据存储器用寄存器间址方式。寻址方式:片外数据存储器用寄存器间址方式。1.DPTR1.DPTR作作1616位数据位数据指针,寻址指针,寻址64KB64KB片外片外RAMRAM空间空间MOVX AMOVX A,DPTRDPTR;A(DPTR)A(DPTR)读数据读

40、数据MOVX DPTRMOVX DPTR,A A;(DPTR)A (DPTR)A 写数据写数据2.Ri2.Ri作作8 8位数据位数据指针,寻址指针,寻址256B256B片外片外RAMRAM空间空间MOVXMOVX A A,RiRi;A(Ri)A(Ri)读数据读数据MOVXMOVX RiRi,A A;(Ri)A(Ri)A写数据写数据3、使用时应当首先将要读或写的地址送入DPTR或Ri中,然后再用读写命令。小结小结:1、在51中,与外部存储器RAM打交道的只可以是A累加器。所有需要送入外部RAM的数据必需要通过A送去,而所有要读入的外部RAM中的数据也必需通过A读入。在此我们可以看出内外部RAM的

41、区别了,内部RAM间可以直接进行数据的传递,而外部则不行,比如,要将外部RAM中某一单元(设为0100H单元的数据)送入另一个单元(设为0200H单元),也必须先将0100H单元中的内容读入A,然后再送到0200H单元中去。2、要读或写外部的RAM,当然也必须要知道RAM的地址,在后两条指令中,地址是被直接放在DPTR中的。而前两条指令,由于Ri(即R0或R1)只是一个8位的寄存器,所以只提供低8位地址。因为有时扩展的外部RAM的数量比较少,少于或等于256个,就只需要提供8位地址就够了。三、三、交换指令交换指令 实现片内实现片内RAMRAM区的数据双向传送。区的数据双向传送。1.1.字节交换

42、指令字节交换指令XCH AXCH A,RnRn ;A A Rn RnXCH AXCH A,RiRi;A A(Ri)(Ri)XCH AXCH A,direct ;A A(n)(n)片内 RAM地址内容2BH35H2AH38H20H习题习题4 4:将片内将片内RAM60HRAM60H单元与单元与61H61H单元的数据交换。单元的数据交换。例:例:设设A=29HA=29H,执行指令,执行指令 XCH AXCH A,2AH2AH后,后,A=A=?(2AH)=(2AH)=?38H29HXCH 60HXCH 60H,61H 61H 对吗?对吗?29 H2.2.半字节交换指令半字节交换指令XCHD AXCH

43、D A,RiRi ;A A0 03 3 (Ri)(Ri)0 03 3SWAP ASWAP A ;A A4 47 7 A A0 03 3是将A中的值的高、低4位进行交换。例:(A)=39H,则执行SWAP A之后,A中的值就是93H。例例7 7已知(已知(A A)56H56H,(,(R0R0)20H20H,(,(20H20H)78H78H,(,(10H10H)18H18H,(,(R4R4)8AH8AH;单独执行指令:单独执行指令:XCH AXCH A,10H10H XCH A XCH A,R4R4 XCH A XCH A,R0R0指令执行后:指令执行后:(A A)=18H=18H,(10H10H

44、)=56H=56H;(A A)=8AH=8AH,(R4R4)=56H=56H;(A A)=78H=78H,(R0R0)=20H=20H,(,(R0R0)=(20H20H)=56H=56H。例例8 8已知已知(A)(A)7AH7AH,(,(R1R1)48H48H,(,(48H48H)0DH0DH;执行指令执行指令:XCHDXCHDA A,R1R1指令执行后:指令执行后:(A A)7DH7DH,(,(R1R1)48H48H,(R1)(R1)(48H48H)0AH0AH。四、堆栈操作指令四、堆栈操作指令 入栈指令:入栈指令:PUSH n ;SPSP+1,(SP)(n)出栈指令:出栈指令:POP n

45、;(n)(SP),SPSP-1堆栈操作PUSH directPOP direct第一条指令称之为推入,就是将direct中的内容送入堆栈中,第二条指令称之为弹出,就是将堆栈中的内容送回到direct中。推入指令的执行过程是,首先将SP中的值加1,然后把SP中的值当作地址,将direct中的值送进以SP中的值为地址的RAM单元中。例例3 35 5已知当前(已知当前(SPSP)38H38H,(,(10H10H)70H70H;该指令的执行过程如图39所示:指令的执行过程如图310所示:例:(例:(SPSP)=40H=40H,(,(40H40H)=68H=68H,(,(A A)=20H=20HPOPP

46、OPACCACC指令执行后;(指令执行后;(SPSP)3FH3FH,(,(40H40H)68H68H,(,(A A)68H68H例:例:MOV SPMOV SP,#5FH#5FHMOV AMOV A,#100#100MOV BMOV B,#20#20PUSH ACCPUSH ACCPUSH BPUSH BPOP BPOP BPOP ACCPOP ACC这有什么意义呢?这有什么意义呢?ACC中的值本来就是100,B中的值本来就是20,是的,在本例中,的确没有意义,但在实际工作中,则在PUSH B后往往要执行其他指令,而且这些指令会把A中的值,B中的值改掉,所以在程序的结束,如果我们要把A和B中的

47、值恢复原值,那么这些指令就有意义了。五、五、查表指令查表指令 实现从程序存储器读取数据到实现从程序存储器读取数据到A A累加器累加器,只能使用变址间接寻只能使用变址间接寻址方式址方式。多用于查常数表程序,可直接求取常数表中的函数值。多用于查常数表程序,可直接求取常数表中的函数值。1 1DPTRDPTR为基址寄存器为基址寄存器MOVCMOVC A A,A+DPTR A+DPTR;A A(A+DPTR)(A+DPTR)查表范围为查表范围为 64KB 64KB 程序存储器任意空间,称为远程查表指令程序存储器任意空间,称为远程查表指令 。2 2PCPC为基址寄存器为基址寄存器MOVCMOVC A A,

48、A+PCA+PC;PC(PC)+1,A A(A+PC)(A+PC)常数表只能在查表指令后常数表只能在查表指令后256B256B范围内。范围内。CyACF0RS1RS0OVPMCS-51 MCS-51 的程序状态字寄存器的程序状态字寄存器 PSW PSW 为标志寄存器。为标志寄存器。1 1标志位标志位(自动设置状态自动设置状态)1 1)CyCy:进位标志位:进位标志位保存运算后最高位的进位保存运算后最高位的进位/借位状态,当有进位借位状态,当有进位/借位,借位,Cy=1Cy=1,否则,否则Cy=0Cy=0。2 2)ACAC:辅助进位标志位:辅助进位标志位保存低半字节的进位保存低半字节的进位/借位

49、状态,当借位状态,当D D3 3产生进位产生进位/借位,借位,AC=1AC=1,否则,否则AC=0AC=0。用于十进制调整。用于十进制调整。3 3)OVOV:溢出标志位:溢出标志位OV=CyOV=Cy7 7 CyCy6 6,补码运算产生溢出,补码运算产生溢出OV=1OV=1,否则,否则OV=0OV=0。4 4)P P:奇偶标志位:奇偶标志位反映累加器反映累加器A A中数据的奇偶性。当中数据的奇偶性。当1 1的个数为奇数,的个数为奇数,P=1P=1,否则,否则P=0P=0。2 2用户选择位用户选择位(编程设置状态编程设置状态)1 1)F0F0:用户自定义标志位。:用户自定义标志位。2 2)RS1

50、RS1、RS0RS0:工作寄存器区选择位。工作寄存器区选择位。复位时,复位时,PSW=00HPSW=00HRS1 RS0 RS1 RS0 工作寄存器工作寄存器 0 0 00 0 0区区 0 1 10 1 1区区 1 0 21 0 2区区 1 1 31 1 3区区例:复位后,设置使用工作寄存器例:复位后,设置使用工作寄存器2 2区,其余标志位不变。区,其余标志位不变。解:解:MOV PSWMOV PSW,#CyACF0RS1RS0OVP 18H 18H1)不带进位加法:ADD A,源操作数ADD A,#DATA ;例:ADD A,#10HADD A,direct ;例:ADD A,10HADD

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

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

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


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

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


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