单片机的原理与应用bcfc.pptx
单片机原理及应用单片机原理及应用第第 1,2,3 章章 复复 习习光华学院光华学院信息工程系信息工程系王王 超超单片机实物图单片机开发板单片机单片机流水灯流水灯流水灯流水灯数码管数码管数码管数码管电机电机电机电机传感器传感器传感器传感器单片机应用原理n一个微电脑包括微处理器(CPUCPU),存放程序指令的(ROMROM),存放数据的(RAMRAM),输入输出端口(I/OI/O口口)以及时钟时钟,计数器计数器,中断系统中断系统等,它们经过地址总线(Address Address BusBus),数据总线(Dada BusDada Bus),控制总线(Control BusControl Bus)的连接以及输入输出端口与外围设备连接,构成微电脑系统。由于单片机微处理器把微电脑的主要器件制造在一块芯片上,所以可以把单片机微处理器看成是一个不带外围装置的微电脑不带外围装置的微电脑。什么是单片机?测 试 题 n9.8051单片机的内部硬件结构包括了:_、_、_、和_以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过_相连接。n13.8031单片机中片内RAM共有()字节。n A128 B256 C4K D64K工业方面工业方面民用方面民用方面仪表方面仪表方面电讯方面电讯方面数据处理方面数据处理方面汽车方面汽车方面单片机的应用微型计算机硬件结构微型计算机硬件结构硬件系统硬件系统:微机实体和装置软件系统软件系统:微机系统使用的各种程序的总称单片机硬件结构单片机硬件结构MCS-51MCS-51单片机的硬件结构单片机的硬件结构时钟电路CPUROMRAMT0 T1中断系统串行接口并行接口P0 P1 P2 P3TXD RXDINT0 INT1定时计数器结构框图结构框图微处理器微处理器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和和12MHZ测 试 题 n简答题:n1、MCS-51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?测 试 题 n1一个完整的微机系统由_和_两大部分组成.n3.半导体存储器分成两大类_和_,其中_具有易失性,常用于存储_。MCS-51MCS-51单片机信号引脚简介单片机信号引脚简介 P3P3P3P3口线的第二功能口线的第二功能口线的第二功能口线的第二功能VCCVSSXTAL2XTAL1RSTP0.0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7P1.0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0ALEP3.0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.72 2、时钟引脚:时钟引脚:时钟引脚:时钟引脚:XTAL1XTAL1XTAL1XTAL1、XTAL2XTAL2XTAL2XTAL23 3、复位引脚:复位引脚:复位引脚:复位引脚:RSTRSTRSTRST7 7、并行口:并行口:并行口:并行口:P0P0P0P0、P1P1P1P1、P2P2P2P2、P3P3P3P34 4 4 4、ALEALEALEALE:地址锁存控制信号:地址锁存控制信号:地址锁存控制信号:地址锁存控制信号1 1、电源线:电源线:电源线:电源线:VCC(+5V)VCC(+5V)VCC(+5V)VCC(+5V)、VSS(VSS(VSS(VSS(地地地地)EAPSEN6 6、EAEAEAEA:内外程序存储选择控制信号:内外程序存储选择控制信号:内外程序存储选择控制信号:内外程序存储选择控制信号5 5、PSENPSENPSENPSEN:外部:外部:外部:外部ROMROMROMROM读选通信号读选通信号读选通信号读选通信号RXD/TXD/INT0/INT1/T0/T1/WR/RD/1234567891011121314151617181920403938373635343332313029282726252424222180318051 875189C51时钟电路与复位电路时钟电路与复位电路 (1)(1)时钟振荡电路时钟振荡电路测 试 题 n12.单片机8051的XTALl和XTAL2引脚是()引脚n A.外接定时器 B外接串行口 n C.外接中断 D.外接晶振例例:若振荡频率若振荡频率 f foscosc=12MHz=12MHz,则,则MCS-51MCS-51的振的振荡周期,状态周期,机器周期是多少?荡周期,状态周期,机器周期是多少?振荡周期振荡周期(时钟周期时钟周期)=1/12us)=1/12us状态周期状态周期=2*(1/12)us=2*(1/12)us机器周期机器周期=12*(1/12)us=1us=12*(1/12)us=1us 10.在在MCS-51单片机中,如果采用单片机中,如果采用12MHz晶振,一个机器周期为晶振,一个机器周期为_。测 试 题 n18031单片机的()口的引脚,还具有外中断、串行通信等第二功能。na)P0 b)P1 c)P2 d)P3n2单片机应用程序一般存放在()na)RAMb)ROMc)寄存器d)CPUn3已知某数的BCD码为0111 0101 0100 0010 则其表示的十进制数值为()na)7542H b)7542 c)75.42H d)75.42测 试 题 n28051 的引脚RST是_(IN脚还是OUT脚),当其端出现_电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到_电平,8051才脱离复位状态,进入程序运行状态,从ROM_H单元开始取指令并翻译和执行。MCS-51MCS-51的微处理器的微处理器 MCS-51MCS-51的微处理器(的微处理器(CPUCPU)由由运算器运算器和和控制器控制器所构成。所构成。2.3.1 2.3.1 运算器运算器 作用作用:对操作数进行算术、逻辑运算和位操作。对操作数进行算术、逻辑运算和位操作。由由算术逻辑单元算术逻辑单元(ALU)(ALU)、累加器累加器A A、寄存器寄存器B B、位位处理器处理器和和程序状态字寄存器程序状态字寄存器(PSW)(PSW)等构成。等构成。1 1算术逻辑运算单元算术逻辑运算单元ALUALU 它是运算器的的核心它是运算器的的核心.+-*/,&|-.+-*/,&|-.2 2累加器累加器A A(8 8位)位)使用最频繁的寄存器,可写为使用最频繁的寄存器,可写为AccAcc。累加器累加器A A的作用:的作用:(1 1)是)是ALUALU的输入的输入(数据处理源数据处理源)之一,又是运算结之一,又是运算结 果的存放单元。果的存放单元。(2 2)数据传送大多都通过累加器)数据传送大多都通过累加器A A。3.3.寄存器寄存器B B(8(8位位)是为执行是为执行乘、除法乘、除法操作设置的操作设置的,作为作为ALUALU的输入的输入之一。在不执行乘、除法操作的情况下,可当作普之一。在不执行乘、除法操作的情况下,可当作普通寄存器使用。通寄存器使用。(A*B=B A)(A/B=AB)(A*B=B A)(A/B=AB)4 4程序状态字寄存器程序状态字寄存器PSWPSW (Program Status Word)(Program Status Word)(1 1)CyCy(PSW.7PSW.7)进进位位标标志志位位,或或写写为为C,C,有有进进位位或或借借位时硬件置位时硬件置1 1。(2 2)Ac(PSW.6)Ac(PSW.6)辅助进位标志位,用于辅助进位标志位,用于BCDBCD码的十码的十 进进制制调调整整运运算算。当当低低4 4位位向向高高4 4位位数数发发生生进进位位或或借借位位时时,AC,AC被硬件置位被硬件置位,否则被清否则被清0 0。(3 3)F0F0(PSW.5PSW.5)用用户户自自定定义义标标志志位位。可可用用软软件件使使它它置置1 1或或清清0 0,也也可可由由软软件件来来测测试试标标志志F0F0以以控控制制程程序序的的流向。编程时,该标志很有用。流向。编程时,该标志很有用。CyACF0RS1RS0OVPD0HD7 D6 D5 D4 D3 D2 D1 D0PSW表表 2.3 RS1 2.3 RS1、RS0 RS0与片内工作寄存器组的对应关系与片内工作寄存器组的对应关系 RS1RS0寄存器组寄存器组片内片内RAM地地址址通用寄存器通用寄存器名称名称000组组00H07HR0R7011组组08H0FHR0R7102组组10H17HR0R7113组组18H1FHR0R7(4 4)RS1RS1、RS0RS0(PSW.4PSW.4、PSW.3PSW.3):4 4组组工工作作寄寄存存器器区选择控制位区选择控制位1 1和位和位0 0。CyACF0RS1RS0OVPD0HD7 D6 D5 D4 D3 D2 D1 D0PSWRAM共共128个单元个单元测 试 题 n6若由程序设定RS1、RS0=01,则工作寄存器R0R7的直接地址为_。n5INTEL8051单片机是()位的单片机 a)16b)4 c)8d)准16n11.进位标志CY在()中。nA.累加器A B算术逻辑运算部件ALU C程序状态字寄存器PSW D.DPDRn14.当标志寄存器PSW的RS0、RS1分别为1,0时,选用的工作寄存器组为()。n A.组0 B组1 C组2 D.组3(5)OV(5)OV(PSW.2PSW.2):):溢出标志位溢出标志位 指示运算是否产生溢出。各种算术运算指令对该位的影指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第响情况较复杂,将在第3 3章介绍。章介绍。(6)PSW.1(6)PSW.1位位:保留位,未用保留位,未用 (7)P(PSW.0)(7)P(PSW.0):奇偶标志位奇偶标志位,每个指令周期都由硬件置位或清除每个指令周期都由硬件置位或清除.P=1P=1,A A中中“1”“1”的个数为奇数的个数为奇数P=0P=0,A A中中“1”“1”的个数为偶数的个数为偶数注注:奇奇偶偶标标志志位位对对串串行行口口通通讯讯中中的的数数据据传传输输有有重重要要意意义义,常常用用奇奇偶偶检检验验的的方法方法来检验数据传输的可靠性。来检验数据传输的可靠性。CyACF0RS1RS0OVPD0HD7 D6 D5 D4 D3 D2 D1 D0PSW12345678910111213142827262524232221 201918171615EPROM276412345678910111213142827262524232221 201918171615EPROM27641234567891011121314151617181920403938373635343332313029282726252424222112345678910111213142827262524232221 201918171615RAM6264 12345678910111213142827262524232221 201918171615RAM6264 MCSMCS5151存存储储器器的的结结构构80318051875189C51片内片内片内片内RAMRAM片内片内片内片内ROMROM256B(字节)4K64K64K(1)(1)(1)(1)程序存储器程序存储器程序存储器程序存储器程序程序存储器存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,在这三个单元存放一条无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位位0FFFH0FFEHEA=1 EA=0EA=1 EA=0程序程序存储器资源分布存储器资源分布中断入口地址0000HFFFFH(64K)内部外部(2)(2)(2)(2)数据存储器数据存储器数据存储器数据存储器数据数据存储器存储器00HFFH7FH80H(高128B)(低128B)RAM专用寄存器00H00H07H07H08H08H0FH0FH10H10H17H17H18H18H1FH1FH0区区R0R0R7R7R0R0R7R7R0R0R7R7R0R0R7R71区区2区区3区区工作寄存器区工作寄存器区可位寻址区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区数据缓冲区/堆栈区堆栈区内部内部RAMRAM存储器存储器 1 11 1第第第第 3 3 区区区区18H1FH18H1FH 0 10 1第第第第 1 1 区区区区08H0FH08H0FHRS1 RS0RS1 RS0寄存器区寄存器区寄存器区寄存器区片内片内片内片内RAMRAM地址地址地址地址 0 00 0第第第第 0 0 区区区区00H07H00H07H 1 0 1 0第第第第 2 2 区区区区10H17H10H17H工作寄存器区工作寄存器区选择位选择位RS0RS0、RS1RS1测 试 题 n简答题:n2.请画出MCS-51 RAM区的示意图,并注明各区域基本用途.注意注意:一个单元地址对应有一个单元地址对应有8 8个位地址个位地址MSBMost Significant Bit MSBMost Significant Bit (最高有效位)(最高有效位)LSB Least Significant Bit LSB Least Significant Bit(最低有效位)(最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707 MSB 位地址 LSB7E7E76766E6E66665E5E56564E4E46463E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A020279797171696961615959515149494141393931312929212119191111090901017878707068686060585850504848404038383030282820201818101008080000RAM位寻址区位地址表位寻址区位地址表测 试 题 n15.8051的内部RAM中,可以进行位寻址的地址空间为()。nA.00H2FH B20H2FH C 00HFFH D.20HFFH高高128128个单元个单元离散分布有离散分布有2121个个特殊功能寄存器特殊功能寄存器SFRSFR。1111个可以进行个可以进行位寻址。位寻址。特别提示:对特别提示:对SFRSFR只能使用直接只能使用直接寻址方式,书写时寻址方式,书写时可使用寄存器符号,可使用寄存器符号,也可用寄存器单元也可用寄存器单元地址。地址。测 试 题 n4CPU主要的组成部部分为()na)运算器、控制器b)加法器、寄存器nc)运算器、寄存器 d)运算器、指令译码器n811H位寻址所在的单元地址是()na)20H b)30Hc)22H d)70H1)1)堆栈和堆栈指针堆栈和堆栈指针SPSP堆栈是堆栈是按先进后出按先进后出或或后进先出后进先出原则进行存取的原则进行存取的片片内内RAMRAM区域区域。(主要是为子程序调用和中断操作而主要是为子程序调用和中断操作而设立的设立的)堆栈的具体功能是:堆栈的具体功能是:保护断点保护断点(PC(PC的内容的内容);保护现场保护现场(保存有关寄存器单元的内容保存有关寄存器单元的内容)。MCS-51 MCS-51单片机的堆栈区是不固定的,原则上可单片机的堆栈区是不固定的,原则上可设置在内部设置在内部RAM(00HRAM(00H7FH)7FH)的任意单元。但实际应的任意单元。但实际应用中要根据对片内用中要根据对片内RAMRAM的各功能区的使用情况灵活的各功能区的使用情况灵活设置,但应避开工作寄存器区、位寻址区、和用设置,但应避开工作寄存器区、位寻址区、和用户使用的数据区,一般设在户使用的数据区,一般设在2FH2FH地址以后的区域。地址以后的区域。堆栈指针堆栈指针SPSP是一个是一个8 8位的位的SFRSFR。SPSP的内容指示的内容指示出出堆栈顶部堆栈顶部在在RAMRAM区中的位置。区中的位置。单片机单片机复位复位后,后,SPSP中的内容为中的内容为07H07H(即指向即指向07H07H的的RAMRAM单元单元),使堆栈事实上由,使堆栈事实上由08H08H单元开始。单元开始。所以在使用堆栈前,先给所以在使用堆栈前,先给SPSP赋值赋值(一般为一般为2FH2FH以后以后的单元的单元),以规定堆栈的起始位置,以规定堆栈的起始位置(栈底栈底)。当数。当数据存入堆栈后,据存入堆栈后,SPSP的值也随之自动变化。的值也随之自动变化。测 试 题 n8MCS-51的堆栈只可设置在_,一般设在_地址以后的区域,。堆栈寄存器SP是_位寄存器,存放_。复位时,复位时,PCPC初始化为初始化为0000H0000H,使使MCS-51MCS-51单单片机从片机从程序存储器程序存储器0000H0000H单元开始执行程序。单元开始执行程序。除除PCPC之外,复位操作还对其它一些寄存之外,复位操作还对其它一些寄存器有影响,见表器有影响,见表2.3(P26)2.3(P26)。SP=07H SP=07H,P0-P3P0-P3的引脚均为高电平的引脚均为高电平。复位电路复位电路(2)复位电路复位电路单片机复位条件单片机复位条件单片机复位条件单片机复位条件:必须使必须使必须使必须使RSTRST引脚持续引脚持续引脚持续引脚持续2 2微秒微秒微秒微秒高电平高电平高电平高电平(外部时钟外部时钟外部时钟外部时钟12MHz)12MHz)谁知道谁知道复位电路怎么起到复位的作用复位电路怎么起到复位的作用?测 试 题 n68051复位后,PC与SP的值为()n a)0000H,00H b)0000H,07H n c)0003H,07H d)0800H,00H指令系统概述指令系统概述n指令:控制计算机完成指定操作的命令。指令:控制计算机完成指定操作的命令。n指令系统:计算机所能执行的指令的集合。指令系统:计算机所能执行的指令的集合。测 试 题 n4.所谓寻址,其实质就是_。n问答题:n1、MCS-51共有哪几种寻址方式?各有什么特点?并举例说明.指令格式操作码:操作码:用来规定指令进行什么操作。用来规定指令进行什么操作。操作数:操作数:是指令操作的对象。是指令操作的对象。标号标号:代表该指令所存放的第一个字节存储单元的地代表该指令所存放的第一个字节存储单元的地址,故标号又称为址,故标号又称为“符号地址符号地址”。DELAY:MOV R3,#0FFH ;一段延时程序3.3 3.3 指令系统的寻址方式指令系统的寻址方式(寻找操作数)(寻找操作数)有我的信,找信去立即找到信!立即找到信!找信找信是寻找存放信的是寻找存放信的!找到放信的箱子才找到信找到放信的箱子才找到信!“地方”3.3 3.3 指令系统的寻址方式指令系统的寻址方式(寻找操作数)(寻找操作数)找到放信的箱子才找到信找到放信的箱子才找到信!1 10000H0000H0001H0001H0002H0002H2002H2002H2003H2003H2004H2004H2005H2005H2006H2006H80H80H2002H2002H找信找信是寻找存放信的是寻找存放信的!“地方”“地址”找操作数是找操作数是找操作数找操作数的的“地址地址”立即寻址立即寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址信信操作数操作数立即找到信!立即找到信!立即数寻址!立即数寻址!#XXHMOV A,#55H#55HCPUAAMOV Rn,#01HR0-R7R0-R700H00H07H07H08H08H0FH0FH10H10H17H17H18H18H1FH1FH0区区R0R0R7R7R0R0R7R7R0R0R7R7R0R0R7R71区区2区区3区区工作寄存器区工作寄存器区可位寻址区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区数据缓冲区/堆栈区堆栈区内部内部RAMRAM存储器存储器MOV DPTR,#1FFFHDPTRDPTRMOV direct,#88HdirectdirectMOV Direct,#88H直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址70H70H88H10001000ADD A,#55H SUB A,#01H立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址CPU操作数操作数内部内部RAM或或SFR区区20HMOV A,20HA88HAMOV Rn,20HMOV direct,30HMOV Ri,30HAR0-R7R0-R7directdirectRiRi直接给出操作数直接给出操作数地址的方式地址的方式20H直接寻直接寻址址ADD A,20HSUB A,30H寻址比较MOV P1,#20HMOV P1,20HMOV P1,R0MOV P1,R0指出下列指令寻址方式1.MOV P1,#0FFH2.MOV A,F0H3.PUSH 12H立即寻址立即寻址直接寻址直接寻址直接寻址直接寻址立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址CPU88H20H操作数操作数60H寄存器寄存器A操作数操作数操作数操作数MOV P1,A你能说出:你能说出:带圈的圆弧箭头带圈的圆弧箭头代代表的是什么吗?表的是什么吗?谁能说出:谁能说出:寄存器寻址寄存器寻址与与直接寻址直接寻址的的区别区别?AR0-R7R0-R7BDPTRDPTRP1MOV P1,R4CLR A立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址22通过 间接找到 的地址“2号”!“1号”信寄存器操作数寄存器寄存器1CPU3AH寄存器寄存器 R0猜一猜:猜一猜:操作数的地操作数的地址址是多少吗?是多少吗?内部内部RAM3AH我才是操作数我才是操作数65HMOV A,R0AR0R1DPTRDPTR寄寄存存器器间间接接寻寻址址寄寄存存器器MOVX A,DPTR立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址CPU寄存器寄存器3AH3AH程序存储区程序存储区65H操作数操作数变址变址寄存器寄存器02H基址基址寄存器寄存器0300H+0302H0302H88HADPTRPCMOVC A,A+DPTRAMOVC A,A+PC立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址0000H0000H0001H0001H0002H0002H2002H2002H2003H2003H2004H2004H2005H2005H2006H2006HPCPCPCPCPCPC如果想跳到如果想跳到2006H执行,该执行,该给给PC值值加上多少加上多少呢?呢?2006H2006H2003H2003H03H03H03H就是当前就是当前PC值值与目的与目的PC值值相对差相对差SJMP03H03H(PC+03H)SJMP=2003H+03H=2006H操作数哪去了操作数哪去了?03就是操作数就是操作数立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址20H21H27H28H20H21HD7D0000000001想一想:想一想:如果想使如果想使27H单单元的元的D5位位置置1,该怎么办呢?该怎么办呢?00H00H07H07H08H08H0FH0FH10H10H17H17H18H18H1FH1FH0区区R0R0R7R7R0R0R7R7R0R0R7R7R0R0R7R71区区2区区3区区工作寄存器区工作寄存器区可位寻址区可位寻址区20H2FH7F 7807 0030H7FH数据缓冲区数据缓冲区/堆栈区堆栈区内部内部RAMRAM存储器存储器单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707 MSB 位地址 LSB7E7E76766E6E66665E5E56564E4E46463E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A020279797171696961615959515149494141393931312929212119191111090901017878707068686060585850504848404038383030282820201818101008080000位寻址地址表位寻址地址表立即数寻址立即数寻址直接寻址直接寻址寄存器寻址寄存器寻址寄存器间接寻址寄存器间接寻址变址寻址变址寻址相对寻址相对寻址位寻址位寻址SETB 3DH20H21H27H28HD7D020H21H000000001MCS-51单片机指令系统分类介绍单片机指令系统分类介绍 MCS-51单片机指令系统共有单片机指令系统共有111条指令,按功能分条指令,按功能分类,可分下面类,可分下面5大类:大类:n数据传送类(数据传送类(29条)条)n算数操作类(算数操作类(24条)条)n逻辑运算类(逻辑运算类(24条)条)n控制转移类(控制转移类(17条)条)n位操作类位操作类 (17条)条)l常用伪指令(常用伪指令(17条)条)符符 号号含含 义义RnRn表示当前选定寄存器组的工作寄存器表示当前选定寄存器组的工作寄存器R0R0R7R7RiRi表示作为间接寻址的地址指针表示作为间接寻址的地址指针R0R0R1R1#data#data表示表示8 8位立即数,即位立即数,即00H00HFFHFFH#data16#data16表示表示1616位立即数,即位立即数,即0000H0000HFFFFHFFFFHaddr16addr16表示表示1616位地址,用于位地址,用于64K64K范围内寻址范围内寻址addr11addr11表示表示1111位地址,用于位地址,用于2K2K范围内寻址范围内寻址directdirect8 8位直接地址,可以是内部位直接地址,可以是内部RAMRAM区的某一单元或某一专用功能寄存器的地址区的某一单元或某一专用功能寄存器的地址RelRel带符号的带符号的8 8位偏移量(位偏移量(-128-128+127+127)BitBit位寻址区的直接寻址位位寻址区的直接寻址位(X X)X X地址单元中的内容,或地址单元中的内容,或X X作为间接寻址寄存器时所指单元的内容作为间接寻址寄存器时所指单元的内容将将 后面的内容传送到前面去后面的内容传送到前面去指令中一些符号的约定意义指令中一些符号的约定意义n简答题:n3.MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?并举例说明.目的地址目的地址目的地址目的地址 源地址源地址源地址源地址数数数数 据据据据MOV ,MOV A,#20H,A ARnRndirect1direct1RiRiA ARnRndirect2direct2RiRi#data#dataA ARnRndirect2direct2RiRi#data#dataMOVMOVRnRnA A#data#datadirect2direct2direct1direct1A ARnRndirect2direct2RiRi#data#dataRiRiA Adirect2direct2#data#data20H20HA A数据传送指令(数据传送指令(数据传送指令(数据传送指令(29292929条)条)条)条)8 8 8 8位位位位数据传送指令数据传送指令数据传送指令数据传送指令(15(15(15(15条条条条)数据传送指令(数据传送指令(数据传送指令(数据传送指令(29292929条)条)条)条)16161616位位位位数据传送指令(数据传送指令(数据传送指令(数据传送指令(1 1 1 1条)条)条)条)MOVDPTR,#data16 外部外部外部外部数据传送指令数据传送指令数据传送指令数据传送指令(4(4(4(4条条条条)MOVX ,,A ADPTRDPTRRiRiMOVXMOVXA ADPTRDPTRRiRiDPTRDPTRA ARiRiDPTRDPTRA ARiRiA A谁知道谁知道内内RAMRAM中中30H30H中数据中数据外外RAMRAM的的1001H1001H中中?MOV A,30HMOV DPTR,#1001HMOVX DPTR,A片内传送片内传送MOVMOVn在在A累加器、工作寄存器累加器、工作寄存器R0R7、片内、片内RAM与与SFR(direct、Ri)之间传送数据。)之间传送数据。单片机与片外单片机与片外RAMRAM之间的数据传送之间的数据传送(取数(取数/送数)送数)MOVXMOVXn在片外RAM(或外扩I/O口)与A累加器之间传送。仅采用寄存器间接寻址方式。单片机与单片机与ROMROM之间的数据传送之间的数据传送(查表)(查表)MOVCMOVCn读取存放在程序存储器读取存放在程序存储器ROM中的数据,通常是以中的数据,通常是以表格形式存放。采用表格形式存放。采用变址寻址变址寻址方式。方式。nMOVCA,A+DPTRMOVCA,A+PCAROM优点:优点:不改变不改变特殊功能寄存器特殊功能寄存器及及PCPC的状态,根据的状态,根据A A的内容就可以取出的内容就可以取出表格中的常数表格中的常数。缺点:缺点:表格只能存放在表格只能存放在该条查表指令后该条查表指令后面的面的256256个单元之内,表格的大小受到限制,且表格只个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。能被一段程序所利用。注意:注意:PSENPSEN*信号有效。信号有效。单片机与单片机与ROMROM之间的数据传送之间的数据传送(查表)(查表)MOVCMOVC编程时还需要进行编程时还需要进行偏移量偏移量的计算,即的计算,即MOVC A,A+PCMOVC A,A+PC指令指令所在地址所在地址与与表格存放首地址表格存放首地址间间的距离字节数的计算,并需要一条的距离字节数的计算,并需要一条加法加法指令进行指令进行调整。调整。单片机与单片机与ROMROM之间的数据传送之间的数据传送(查表)(查表)MOVCMOVC(2)MOVC A,A+DPTR(2)MOVC A,A+DPTR以以DPTRDPTR作为作为基基址寄存器,址寄存器,A A的内容的内容作为无符号整数和作为无符号整数和DPTRDPTR的内容的内容相加得到一个相加得到一个1616位的地址,把由该地位的地址,把由该地址指出的址指出的程序程序存储器单元的内容送到累加器存储器单元的内容送到累加器A A。例如:例如:MOVC A,A+DPTR MOVC A,A+DPTR 本本指指令令的的执执行行结结果果只只和和指指针针DPTRDPTR及及累累加加器器A A的的内内容容有有关关,与与该该指指令令存存放放的的地地址址及及常常数数表表格格存存放放的的地地址无关址无关。表表格格的的大大小小和和位位置置可可以以在在64K64K程程序序存存储储器器中中任任意意安安排排,一个表格可以为各个程序块公用。,一个表格可以为各个程序块公用。例例:从从程序存储器程序存储器2000H2000H单元开始存放单元开始存放0 09 9的平方值,以的平方值,以DPTRDPTR作为基址寄存器进行查表得的作为基址寄存器进行查表得的平方值平方值,若用以若用以DPTRDPTR作为基址寄存器的查表指令作为基址寄存器的查表指令.程序如下程序如下:MOV DPTR,#2000HMOV DPTR,#2000HMOV A,#09HMOV A,#09HMOVC A,A+DPTRMOVC A,A+DPTR1 1)字节交换指令()字节交换指令(3 3条)条)交换类交换类指令(指令(3 3条)条)A F581内部RAM directXCH A ,Rn Ri2 2)低半字节交换指令()低半字节交换指令(1 1条)条)XCHDA,Ri 这里假设i=0A 8 5F 15B5B寄存器R03 3)累加器)累加器A A中高中高4 4位和低位和低4 4位交换指令(位交换指令(1 1条)条)SWAP A0101 1100PUSH directPOP directPUSH 33HPUSH 34H堆栈操作堆栈操作指令(指令(2条)条)POP 36HPOP 35H.堆栈原则:堆栈原则:后进先出后进先出数据缓冲堆栈区数据缓冲堆栈区堆栈指针堆栈指针 SPSP 内是存放的是堆栈内是存放的是堆栈栈顶的地址栈顶的地址堆栈原则:后进先出堆栈原则:后进先出PUSH directPOP directPUSH 33HPUSH 34H堆栈原则:后进先出堆栈原则:后进先出复位后复位后SP=07HPUSH directPOP directPOP 36HPOP 35H堆栈原则:后进先出堆栈原则:后进先出复位后复位后SP=07H传送类指令分类n单片机内部数据传送指令:单片机内部数据传送指令:nMOVnXCHXCHDnSWAPnPUSHnPOPn单片机单片机内部内部与单片机与单片机外部外部RAM之间的数据传送指之间的数据传送指令:令:MOVXn单片机单片机内部内部与与ROM之间的数据传送指令:之间的数据传送指令:MOVCMOVX 和和MOVC 以以A作中介作中介directdirectdirectd