资源预览内容
第1页 / 共133页
第2页 / 共133页
第3页 / 共133页
第4页 / 共133页
第5页 / 共133页
第6页 / 共133页
第7页 / 共133页
第8页 / 共133页
第9页 / 共133页
第10页 / 共133页
亲,该文档总共133页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
单片机原理及应用单片机原理及应用第第 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=A(A*B=B A) (A/B=AB)B)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 RS12.3 RS1、 RS0RS0与片内工作寄存器组的对应关系与片内工作寄存器组的对应关系 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个位地址个位地址MSBMSBMost Significant Bit Most Significant Bit (最高有效位)最高有效位)LSB LSB Least Significant Bit 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-51MCS-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-R7directdirect RiRi直接给出操作数直接给出操作数地址的方式地址的方式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+DPTRMOVC 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作中介作中介directdirectdirectdirect算术运算类指令(算术运算类指令(算术运算类指令(算术运算类指令(24242424条)条)条)条) 加法加法加法加法指令(指令(指令(指令(8 8 8 8条)条)条)条) A A ,RnRnRiRi#data#dataADDADDRnRnRiRi#data#datadirectdirectdirectdirectA A ,RnRnRiRi#data#dataADDCADDCRnRnRiRi#data#data减法减法减法减法指令指令指令指令(4(4(4(4条条条条) ) ) ) directdirectdirectdirectA A ,RnRnRiRi#data#dataSUBBSUBBRnRnRiRi#data#dataADDC A , B (A+B+CYADDC A , B (A+B+CYA )A )SUBB A , B (A B SUBB A , B (A B CYCYA )A )算术操作类指令(24条)加法加法指令(指令(8条)条) RnADDC A , direct Ri #data 0011,0110,1010,1101+ 1010,1100,1101,1100 1110,0011,1000,1001 1010,1101+ 1101,1100 1000,1001MOV A,#0ADHADD A,#0DCHMOV 20H,AMOV A,#36HADDC A,#0ACHMOV 21H,ABCD码码: 0011 0100BCDBCDBCDBCD码调整码调整码调整码调整指令指令指令指令(1(1(1(1条条条条) ) ) ) DA A DA A 注意注意注意注意:DA ADA A指令只能跟在指令只能跟在指令只能跟在指令只能跟在ADDADD或或或或ADDCADDC加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。加法指令后,不适用于减法指令。十进制十进制二进制二进制BCDBCD码码0123456789 10 11 12 13 14 15000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001 00000001 00010001 00100001 00110001 01000001 01011 81 6+3 4十进制十进制0001 10000001 0110+BCD码码0010 11100011 01000010 1110-0000 0110差差6BCDBCD码调整指令码调整指令nBCD码也叫码也叫8421码码,就是将十进制的数就是将十进制的数以以8421的形式展开成二进制,大家知的形式展开成二进制,大家知道十进制是道十进制是09十个数组成,这十个数十个数组成,这十个数每个数都有自己的每个数都有自己的8421码:码: n举个例子:举个例子: 321的的8421码码就是就是 n3 2 1 0011 0010 0001 n原因原因:0011=8x0+4x0+2x1+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1 BCDBCD码调整指令码调整指令DAA该指令有何用途呢该指令有何用途呢? 注意:注意:DA A 指令只能跟在指令只能跟在进行进行BCD码运算的码运算的ADD或或ADDC加法指令后,不适加法指令后,不适用与减法指令。用与减法指令。BCDBCD码调整指令码调整指令n例如例如:n87+13加加1减减1指令指令A中存放结果的低中存放结果的低8位位B中存放结果的高中存放结果的高8位位乘法乘法指令(指令(1条)条)除法除法指令(指令(1条)条)MUL ABDIV ABA中存放结果的商中存放结果的商B中存放结果的余数中存放结果的余数A中存放结果的低中存放结果的低8位位B中存放结果的高中存放结果的高8位位乘法乘法指令(指令(1条)条)MUL AB例如例如:MOV A,#02HMOV B,#03HMUL ABA=06HB=00H乘法乘法指令(指令(1条)条)MUL AB例如例如:MOV A,#20MOV B,#20MUL AB20=14HA=90HB=01Hn20*20=400n20=14Hn400=0190H提示:除法除法指令(指令(1条)条)DIV ABA中存放结果的商中存放结果的商B中存放结果的余数中存放结果的余数例如例如:MOV A,#25MOV B,#03DIV ABA=08HB=01H3.4.3 3.4.3 逻辑运算指令逻辑运算指令逻辑与逻辑与指令(指令(6条)条) 逻逻辑辑与与指指令令常常用用于于屏屏蔽蔽字字节节中中的的某某些些位位。若若清清除除某某位位,则则用用和和该位该位相与相与;若;若保留保留某位,则用某位,则用和该位和该位相与相与。逻辑或逻辑或指令(指令(6条)条) 逻逻辑辑或或指指令令常常用用于于使使字字节节中中的的某某些些位位置置,其其它它位位保保持持不不变变。若若置位置位某位,则用某位,则用和该位和该位相或相或;若保留某位,则用和该位相或。;若保留某位,则用和该位相或。逻辑异或逻辑异或指令(指令(6条)条) 逻辑异或指令常用于使字节中的某些位进行逻辑异或指令常用于使字节中的某些位进行取反取反操作,其它位保操作,其它位保持不变。若某位取反,则持不变。若某位取反,则用和该位相异或用和该位相异或;若保留某位,则用;若保留某位,则用和该位相异或。和该位相异或。累加器累加器A清清0和取反和取反指令指令A.0A.7A.0A.7A.0A.7A.0A.7CYCYn RL An RR An RLC An RRC A注意注意注意注意: :执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给执行带进位的循环移位指令之前,必须给CYCY置位或清零。置位或清零。置位或清零。置位或清零。循环移位循环移位循环移位循环移位指令指令指令指令nMOV A,#01HnMOV P1,AnRL AnMOV P1,A循环移位循环移位指令指令3.4.4 3.4.4 3.4.4 3.4.4 控制转移类指令控制转移类指令控制转移类指令控制转移类指令 无条件转移无条件转移无条件转移无条件转移指令指令指令指令(4(4(4(4条条条条) ) ) )1) 1) 长转移指令:长转移指令:长转移指令:长转移指令:LJMP AAAAH LJMP AAAAH ; AAAAHAAAAHPCPCPC=0000HPC=0000HPC=AAAAHPC=AAAAH0000H0000H0001H0001HAAA9HAAA9HAAAAHAAAAH0002H0002H假设执行该指假设执行该指令前,令前,PCPC的值的值为为0000H0000H。注意注意注意注意: : : :该指令可以转移到该指令可以转移到该指令可以转移到该指令可以转移到64 KB64 KB64 KB64 KB程序存储器中的任意位置。程序存储器中的任意位置。程序存储器中的任意位置。程序存储器中的任意位置。 PC高5位(保持不变) PC低11位A10A9A800 001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)1111位转移地址的形成示意图位转移地址的形成示意图转移范围转移范围2k2k程序计数器PC2)2)2)2)绝对转移指令绝对转移指令绝对转移指令绝对转移指令AJMP AJMP addr11 addr11 ; PC+2PC+2PCPC, addr11 addr11 PC.10PC.0PC.10PC.0PCPC2002H2002H2003H2003H0000H0000H0001H0001H2004H2004H2005H2005H2006H2006HPCPCPCPCPCPC2006H2006H2003H2003HPCPC0002H0002HPCPC3)3)3)3)相对转移指令相对转移指令相对转移指令相对转移指令 例: SJMP 03HSJMP 03H 03H03H03H03H就是当前就是当前就是当前就是当前PCPC值值值值与目的与目的与目的与目的PCPC值值值值相对差相对差相对差相对差PCPCJMPA+DPTR4)散转指令)散转指令 功能:功能:将将DPTR中的内中的内容作为基地址,通过容作为基地址,通过修修改改A的内容实现散转的内容实现散转 !一般应用在键盘程序中一般应用在键盘程序中1)累加器累加器A判判0指令(指令(2条)条)条件转移条件转移指令(指令(8条)条)2)判别进位标志)判别进位标志CY状态指令(状态指令(2条)条)3)判别某位)判别某位Bit状态指令(状态指令(2条)条)4)减)减1非零转移指令(非零转移指令(2条)条)5)比较转移指令()比较转移指令(4条)条)条件转移指令的共同特点:条件转移指令的共同特点:都是相对转移指令都是相对转移指令条件转移类指令范例(一)问答题问答题:2.将将00H0FH这这16个数顺序地置入片内个数顺序地置入片内RAM20H2FH单元中。单元中。2FH.21H20H0FH.01H00H数据地址条件转移类指令范例(一) 将将00H0FH这这16个数顺序地置入片内个数顺序地置入片内RAM20H2FH单元中。单元中。可以用16个MOV指令将16个数据依次装入存储器中!采用循环方式将16个数据依次装入存储器中!条件转移类指令范例(一) MOVR0,#20HMOVR7,#10HCLRALOOP:MOVR0,AINCAINCR0DJNZR7,LOOPSJMP$将地址20H放入R0中,明确了数据起始地址循环次数16放入R7,明确循环15次累加器A=0实现数据00放入20H中A=01RO=21判断作用!判断什么?判断R7的值,(-1不等于0则跳转)MOVR0,#20HCLRA LOOP:MOVR0, AINCAINCR0CJNE A, #10H, LOOPSJMP $条件转移类指令范例(二)条件转移类指令范例(二)将地址20H放入R0中,明确了数据终点起始地址累加器A=0实现数据00放入20H中A=01RO=21判断作用!判断什么?判断A的值与#10H是否相等(比较不相等则跳转) MOV R0, #20H MOV A, #10H MOV 30H,#00HLOOP: MOV R0, 30H INC30H INCR0 DEC A JNZLOOP SJMP $条件转移类指令范例(三)条件转移类指令范例(三)将20H放入R0中将10H放入A中将00H放入30H地址下将30H地址下内容放入R0内容地址下30H下内容+1R0下内容+1A的内容-1A不等于0则跳转3FH.30H.X变量X的值从00-0F不等于0则跳转 MOV R0, #20H MOV A, # 0FH MOV 30H,#00H LOOP: MOVR0, 30H INC30H INCR0 SUBBA,#0FH JNCLOOP SJMP$条件转移类指令范例(四)条件转移类指令范例(四)将20H放入R0中将0FH放入A中将00H放入30H地址下将30H地址下内容放入R0内容地址下30H下内容+1R0下内容+1带借位将A的内容-1判断CY不等于1则跳转无借位则跳转带借位减法指令,15-1=14. . .1-1=01-1=00-10-1有借位顺次执行有借位顺次执行调用和返回调用和返回指令(指令(8条)条)1)绝对调用绝对调用指令(指令(1条)条)2K范围内调用子程序指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期ACALL addr11a10a9a810001addr70PC PC+2SP SP+1,(SP)PC07SP SP+1,(SP)PC815PC010 addr112比较 PUSH direct POP direct比较 AJMP addr11调用和返回调用和返回指令(指令(8条)条)2)长调用长调用指令(指令(1条)条)助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期LCALL addr1600010010addr158addr70PCPC+3SPSP+1,SPPC07SP SP+1,SPPC815PC addr16264K范围内程序存储器内调用子程序指令3)返回返回指令指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期RET00100010PC815 (SP), SP SP-1PC07 (SP), SP SP-1子程序返回指令子程序返回指令2RETI00110010PC815 SP, SP SP-1PC07 SP, SP SP-1中断返回指令中断返回指令24)空操作空操作指令指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明NOP00000000空操作空操作消耗消耗1个机器周期个机器周期 硬件延时硬件延时3.4.5 位操作类指令单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F7F77776F6F67675F5F57574F4F47473F3F37372F2F27271F1F17170F0F0707 MSB 位地址 LSB7E7E76766E6E66665E5E56564E4E46463E3E36362E2E26261E1E16160E0E06067D7D75756D6D65655D5D55554D4D45453D3D35352D2D25251D1D15150D0D05057C7C74746C6C64645C5C54544C4C44443C3C34342C2C24241C1C14140C0C04047B7B73736B6B63635B5B53534B4B43433B3B33332B2B23231B1B13130B0B03037A7A72726A6A62625A5A52524A4A42423A3A32322A2A22221A1A12120A0A020279797171696961615959515149494141393931312929212119191111090901017878707068686060585850504848404038383030282820201818101008080000RAM位寻址区位地址表位寻址区位地址表1. 位传送指令位传送指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期MOV C,bit10100010CY bit位传送指令,结果影响位传送指令,结果影响CY标志标志2MOV bit,C10010010bit CY位传送指令,结果不影响位传送指令,结果不影响PSW2 例例:MOV 20H,21H MOV C,21H2. 位置位和位清零指令位置位和位清零指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期CLR C11000011CY 0位清位清0指令,结果影响指令,结果影响CY标志标志1CLR bit11000010 bitbit 0位清位清0指令,结果不影响指令,结果不影响PSW1SETB C11010011CY1位置位置1指令,结果影响指令,结果影响CY标志标志1SETB bitbit 1位置位置1指令,结果不影响指令,结果不影响PSW111010010 bit3. 位运算指令位运算指令助记符格式助记符格式机器码机器码(B)相应操作相应操作指令说明指令说明机器周期机器周期ANL C,bit10000010 bitCY CYbit位与指令位与指令2ANL C,/bit10110010 bit位与指令位与指令2ORL C,bit01110010 bitCY CYbit位或指令位或指令2ORL C,/bit10100010 bit位或指令位或指令2CPL C10110011位取反指令位取反指令2CPL bit10110010位位取取反反指指令令,结结果果不影响不影响CY2CY CYbitCY CYbitCYCYbitbit4. 位判断转移指令位判断转移指令助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期JB bit,rel00100000bit rel若若bit=1,则则PCPC+rel,否否则则顺顺序执行序执行2JNB bit,rel00110000 bit rel若若bit=0,则则PCPC+rel,否否则则顺顺序执行序执行2JBC bit,rel00010000 bit rel若若 bit=1,则则PCPC+rel,bit0,否则顺序执行否则顺序执行25. 判判CY标志转移指令(条件转移指令)标志转移指令(条件转移指令)助记符格式助记符格式机器码机器码(B)相应操作相应操作机器周期机器周期JC rel01000000若若CY=1,则则PCPC+rel,否则顺序执行否则顺序执行2JNC rel01010000若若CY1,则则PCPC+rel,否则顺序执行否则顺序执行23.5 MCS - 513.5 MCS - 51汇编语言的伪指令汇编语言的伪指令 伪指令伪指令是是对汇编过程起控制作用对汇编过程起控制作用,是程序员,是程序员发给汇编程序的命令,指示如何完成汇编工作。发给汇编程序的命令,指示如何完成汇编工作。伪指令没有对应的机器代码,不产生目标程序。伪指令没有对应的机器代码,不产生目标程序。1) 1) 设置目标程序起始地址伪指令设置目标程序起始地址伪指令ORG(ORiGinORG(ORiGin) )n伪指令格式为伪指令格式为: : ORG ORG 地址地址( (十六进制表示十六进制表示) )该伪指令的作用是该伪指令的作用是指明后面的程序指明后面的程序或或数据块数据块的起的起始地址始地址, , 后面的后面的源程序源程序或或数据块数据块就依次连续存就依次连续存放,直到遇到另一个放,直到遇到另一个ORGORG指令为止。指令为止。 例例: ORG 0100HSTART: MOV SP, 60H MOV R0, 2FH MOV R2, 0FFH 在一个源程序中,可多次使用在一个源程序中,可多次使用ORGORG指令,来规定指令,来规定不同的程序段的起始地址。但是,不同的程序段的起始地址。但是,地址必须由小地址必须由小到大排列,地址不能交叉、重叠到大排列,地址不能交叉、重叠。例如:例如:ORG 2000HORG 2000H ORG 2500H ORG 2500H ORG 3000H ORG 3000H 2) 2) 汇编结束命令束命令 END(END of assembly)END(END of assembly)n指令格式指令格式: : END END 汇编语言源程序的言源程序的结束束标志,用于志,用于终止源程止源程序的序的汇编工作。工作。在整个源程序中只能有一条在整个源程序中只能有一条ENDEND命令,且位于程序的最后命令,且位于程序的最后。3) 3) 定定义字字节伪指令指令 DBDB(Define ByteDefine Byte)n指令格式指令格式: : DB DB 项或或项表表其中其中项或或项表指一个字表指一个字节数据或用逗号分开的字数据或用逗号分开的字节数据串,或以数据串,或以单( (双双) )引号括起来的字符串。引号括起来的字符串。 ORG 2000HORG 2000H TAB: DB 30H,7FH,24 TAB: DB 30H,7FH,24 DB DB C C, ,5 5, ,ABAB汇编后:汇编后:(2000H2000H)= 30H= 30H(2001H2001H)= 7FH= 7FH(2002H2002H)= 18H= 18H(十进制数(十进制数2424)(2003H2003H)= 43H= 43H(字符(字符C C的的ASCIIASCII码)码)(2004H2004H)= 35H= 35H(字符(字符5 5的的ASCIIASCII码)码) (2005H2005H)= 41H= 41H(字符(字符A A的的ASCIIASCII码)码) (2006H2006H)= 42H= 42H(字符(字符B B的的ASCIIASCII码)码)注意:注意:DBDB功功能能:从从指指定定单单元元开开始始定定义义(存存储储)若若干干个个字字节节,1010进进制制数数自自然然转转换换成成1616进制数,字符按进制数,字符按ASCIIASCII码存储。码存储。4) 4) 定义字定义字(2(2字节字节) )伪指令伪指令DWDW(Define WordDefine Word)n指令格式指令格式: : DW DW 项或项表项或项表例例, , ORG 2000HORG 2000H DW 1246H DW 1246H,7BH7BH,1010汇编后:汇编后:(2000H2000H)=12H=12H;第第1 1个字个字(2001H2001H)=46H =46H (2002H2002H)=00H=00H;第第2 2个字个字(2003H2003H)=7BH=7BH(2004H2004H)=00H=00H;第第3 3个字个字(2005H2005H)=0AH =0AH 5) 5) 赋值伪指令赋值伪指令EQUEQU指令格式指令格式: : 标号标号 EQU EQU 数字或汇编符号数字或汇编符号该伪指令功能是使标号该伪指令功能是使标号等价于等价于给定的数字或汇编给定的数字或汇编符号。符号。例例: : TEST EQU 2000HTEST EQU 2000H 表表示示标标号号TEST=2000HTEST=2000H,在在汇汇编编时时,凡凡是是遇遇到到标号标号TESTTEST时,均以时,均以2000H2000H来代替。来代替。注注意意:在在同同一一个个源源程程序序中中, , 同同一一个个标标号号只只能能赋赋值值一次。一次。6) 6) 预留存储空间伪指令预留存储空间伪指令 DSDS指令格式:指令格式: 标号:标号: DS DS 表达式表达式 该伪指令的功能是从该伪指令的功能是从标号地址标号地址开始,保留若开始,保留若干字节的内存空间以备存放数据。保留的字节单干字节的内存空间以备存放数据。保留的字节单元数由表达式的值决定。元数由表达式的值决定。例如:例如: ORG 1000HORG 1000H DS 20H DS 20H DB 30H,8FH DB 30H,8FH汇编后从汇编后从1000H1000H开始,预留开始,预留32(20H)32(20H)个字节的内存个字节的内存单元,然后单元,然后(1020H)=30H(1020H)=30H,(1021H)=8FH(1021H)=8FH。 7) 7) 位地址定义伪指令位地址定义伪指令 BITBIT指令格式指令格式: : 标号标号 BIT BIT 位地址位地址 该伪指令的功能是将该伪指令的功能是将位地址位地址赋予前面的标赋予前面的标号,经赋值后可用该标号代替号,经赋值后可用该标号代替BITBIT前面的位地址。前面的位地址。例如:例如: FLG FLG BITBIT F0 F0简单程序设计 结构特点结构特点: 按指令的先后顺序依次执行。按指令的先后顺序依次执行。问答题问答题问答题问答题:3.:3.:3.:3.将将20H20H单元的两个压缩单元的两个压缩BCDBCD码拆开变成码拆开变成ASCIIASCII码,码, 存入存入21H21H、22H22H单元。单元。( (假设假设20H20H中的中的BCDBCD码为码为00110100)00110100)20H20H21H21H22H22HA AB B0011压缩BCD码0011 0011 0100低四位ASCII码高四位ASCII码程序设计-举例例例1 1.将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H,22H单元.(假设20H中的BCD码为00110100)BCD码表示范围:0-9ASCII码表示为:30H-39H程序设计-启示方法1.将BCD码除以10H,恰好是将BCD码分别移到了A.B的低4位,然后再各自与30H相或,即成为ASCII码.ORG 0000HMOV A,20HMOV B,#10HDIV ABORL B,#30HMOV 22H,BORL A,#30HMOV 21H,ASJMP $END 开始 (20H)A10HB A/B (A中为高4位BCD码,B中为低4位BCD码) B+30HB B(22H) A+30HA A(21H) 结束简单程序例1-方法1源程序如下:20H20H21H21H22H22HA AB B0011 0100PCPCPCPC0011 01000001 0000PCPC001100000000 0100PCPC0011 0100PCPCPCPCPCPC0011PCPC ORG 0000H MOV R0,#20H MOV A,#30H XCHD A,R0 MOV 22H,A MOV A,R0 SWAP A ORL A , #30H MOV 21H, A SJMP $ END简单程序例1-方法2 开始 #20HR0#30HA A的低4位(20H)的低4位 A(22H)(20H)A A的低4位A的高4位 A(21H) 结束 A+30HAPCPCPCPCPCPCPCPCPCPCPCPCPCPCPCPC源程序如下:20H20H21H21H22H22HA AR0R000110010 000000110100000001000011 01000011 00000011 00000011PCPC0011 END
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号