单片机原理与应用课件全全书教学教程完整版电子教案最全幻灯片

上传人:沈*** 文档编号:181857527 上传时间:2023-01-18 格式:PPT 页数:344 大小:15.27MB
返回 下载 相关 举报
单片机原理与应用课件全全书教学教程完整版电子教案最全幻灯片_第1页
第1页 / 共344页
单片机原理与应用课件全全书教学教程完整版电子教案最全幻灯片_第2页
第2页 / 共344页
单片机原理与应用课件全全书教学教程完整版电子教案最全幻灯片_第3页
第3页 / 共344页
点击查看更多>>
资源描述
单片机原理与应用 第1章 单片机的基础知识1.1单片机技术的发展及应用1.1.1 单片机的发展历史1.1.2 单片机的应用领域1.1.2 单片机的应用领域1.2单片机的数制和表示1.2.1 1.2.1 二进制数和十六进制数二进制数和十六进制数二进制数可以表示单片机中的数据信号、地址信号和控制命令,后缀用字母B表示。例如:01101001B是8位二进制数。为了缩短数字的位数,可以用十六进制表示,十六进制的后缀用字母H表示。例如:69H是十六进制数,且有01101001B=69H。二进制与十六进制转换原码、反码计补码【例1-1】机器字长为8位,求+105补和-105补。1.2.2 BCD码1.2.3单片机的数据类型1.3 单片机中的字符简体中文字符集汉字的点阵编码字模举例取模选项 1.4 单片机系统开发与仿真 1.4 单片机系统开发与仿真单片机开发的在系统编程(ISP)和在应用编程(IAP)技术本章小结第2章 单片机内部结构和汇编指令学习目标学习目标(1 1)熟悉单片机的内部结构和应用模式。)熟悉单片机的内部结构和应用模式。(2 2)掌握单片机引脚信号功能,内部资源。)掌握单片机引脚信号功能,内部资源。(3 3)掌握单片机的存储器空间分配及各)掌握单片机的存储器空间分配及各I/OI/O口的特点。口的特点。(4 4)掌握单片机汇编指令的格式、寻址方式、字节数及执行)掌握单片机汇编指令的格式、寻址方式、字节数及执行时间。时间。(5 5)掌握单片机汇编指令的寻址方式。)掌握单片机汇编指令的寻址方式。(6 6)掌握具体的五大类汇编指令。)掌握具体的五大类汇编指令。学习重点和难点学习重点和难点(1 1)单片机存储器配置与空间的分布。)单片机存储器配置与空间的分布。(2 2)程序状态寄存器)程序状态寄存器(PSW)(PSW)。(3 3)单片机的)单片机的I/OI/O口的特点。口的特点。(4 4)汇编指令的格式及寻址方式。)汇编指令的格式及寻址方式。(5 5)熟练掌握总共)熟练掌握总共111111条汇编指令。条汇编指令。MCS-51MCS-51是美国是美国IntelIntel公司的公司的8 8位单片机系列位单片机系列这一系列的单片机有多种型号:这一系列的单片机有多种型号:8051/8751/80318051/8751/8031、8052/8752/80328052/8752/8032、80C51/87C51/80C3180C51/87C51/80C31、80C52/87C52/80C3280C52/87C52/80C32生产工艺1 1生产工艺有两种:生产工艺有两种:HMOSHMOS工艺工艺 高密度短沟道高密度短沟道MOSMOS工艺工艺CHMOSCHMOS工艺工艺 互补金属氧化物的互补金属氧化物的HMOSHMOS工艺工艺产品型号中带有字母产品型号中带有字母“C”“C”的即为的即为CHMOSCHMOS芯片,芯片,CHMOSCHMOS芯片的电平既与芯片的电平既与TTLTTL电平兼容,又与电平兼容,又与CMOSCMOS电平电平兼容,具有低功耗的特点,如兼容,具有低功耗的特点,如87C5187C51。80518051的功耗为的功耗为630mW630mW,80C5180C51的功耗只有的功耗只有120mW120mW。功能基本型:基本型:5151子系列,子系列,8051/8751/80318051/8751/8031、80C51/87C51/80C3180C51/87C51/80C31增 强 型:增 强 型:5 25 2 子 系 列 是,子 系 列 是,8 0 5 2/8 7 5 2/8 0 3 28 0 5 2/8 7 5 2/8 0 3 2、80C52/87C52/80C3280C52/87C52/80C32。通常选用增强型芯片。通常选用增强型芯片。片内程序存储器配置即掩膜即掩膜ROMROMEPROMEPROMROMLessROMLessFlash ROMFlash ROM如:如:80C5180C51有有4K4K字节的掩膜字节的掩膜ROMROM、87C5187C51有有4K4K字节的字节的EPROMEPROM、80C3180C31在芯片内无程序存储器、在芯片内无程序存储器、89S5189S51具有具有Flash ROM 4KFlash ROM 4K字节。字节。现在人们普遍采用具有现在人们普遍采用具有FlashFlash存储器的芯片。存储器的芯片。分类芯片型号存储器类型及字节数片内其它功能单元数量ROM RAM并口串口定时/计数器中断源总线型基本型80C31 无128 4 个1 个2 个5 个80C514K 掩模128 4 个1 个2 个5 个87C514K EPROM128 4 个1 个2 个5 个89C514K Flash128 4 个1 个2 个5 个增强型80C32 无256 4 个1 个3 个6 个80C528K 掩模256 4 个1 个3 个6 个87C528K EPROM256 4 个1 个3 个6 个非总线型89C20512K Flash128 2 个1 个2 个5 个 注:表中加黑的是ATMEL 公司AT89 系列产品,应用方便,应优先选用。89S528K Flash256 4 个1 个3 个6 个89C4051 4K Flash 256 2 个1 个2 个5 个2.1 单片机内部结构组成2.1.1 80C512.1.1 80C51单片机的片内结构单片机的片内结构微处理器微处理器(运算器和控制器)(运算器和控制器)存储器存储器I/O I/O 接口组成接口组成80C51单片机基本型包含有一、一、CPUCPU系统系统1 1个个8 8位微处理器位微处理器(CPU)(CPU)。时钟电路。时钟电路。总线控制。总线控制。二、存储器系统二、存储器系统128B128B数据存储器(数据存储器(RAMRAM,可再扩展,可再扩展64K64K)。)。4KB4KB程序存储器程序存储器(ROM/EPROM/Flash(ROM/EPROM/Flash,可外扩至,可外扩至64K)64K)。特殊功能寄存器(特殊功能寄存器(SFRSFR)。)。三、三、I/OI/O口和其他功能单元口和其他功能单元4 4个个8 8位的并行位的并行I/OI/O接口接口P0P0P3P3。2 2个个1616位定时位定时/计数器。计数器。5 5个中断源,其中包括个中断源,其中包括2 2个优先级嵌套中断。个优先级嵌套中断。1 1个可编程的全双工串行个可编程的全双工串行I/OI/O接口。接口。80C5180C51单片机基本型单片机基本型/增强型的组成增强型的组成2.1.2 80C51 单片机的CPU80C5180C51单片机的核心是一个单片机的核心是一个8 8位高性能的位高性能的CPUCPU。主要由运算器和控制器构成。主要由运算器和控制器构成。一、运算器一、运算器算术算术/逻辑运算单元逻辑运算单元ALUALU累加器累加器ACCACC寄存器寄存器B B暂存寄存器暂存寄存器程序状态字寄存器程序状态字寄存器PSWPSW程序状态字寄存器PSW 程序状态字寄存器程序状态字寄存器PSW PSW 是状态标志寄存器,是状态标志寄存器,它用来保存它用来保存ALU ALU 运算结果的特征(如:结果是否为运算结果的特征(如:结果是否为0 0,是否,是否有进位等)和处理器的状态。有进位等)和处理器的状态。这些特征和状态可以作为控制程序转移的条件,以供程序这些特征和状态可以作为控制程序转移的条件,以供程序判别和查询。判别和查询。PSWPSW的各位定义如下,其字节地址为的各位定义如下,其字节地址为D0HD0H。Cy Cy 进位、借位标志。也可写为进位、借位标志。也可写为C C。在执行算术运算和逻辑运算指令时,用于记录最高位的进在执行算术运算和逻辑运算指令时,用于记录最高位的进位或借位。有进位、借位时位或借位。有进位、借位时Cy=1Cy=1,否则,否则Cy=0 Cy=0。CyCy可以被硬可以被硬件或软件置位或清零,在位处理器中,它是位累加器。件或软件置位或清零,在位处理器中,它是位累加器。AC AC 辅助进位、借位标志。辅助进位、借位标志。用于表示用于表示Acc.3Acc.3有否向有否向Acc.4Acc.4进位、借位。当进行加法或减进位、借位。当进行加法或减法操作而产生由低法操作而产生由低4 4位数位数(十进制的一个数字十进制的一个数字)向高向高4 4位数进位数进位或借位时,位或借位时,AcAc将被硬件置位,否则就被清将被硬件置位,否则就被清0 0。AcAc用于十进用于十进制调整。制调整。RS1 RS1、RS0 RS0 当前工作寄存器组选择控制位。当前工作寄存器组选择控制位。RS1RS1、RS0=00 RS0=00 0 0组(组(00H00H07H07H)RS1RS1、RS0=01 RS0=01 1 1组(组(08H08H0FH0FH)RS1RS1、RS0=10 RS0=10 2 2组(组(10H10H17H17H)RS1RS1、RS0=11 RS0=11 3 3组(组(18H18H1FH1FH)OV OV 溢出标志。溢出标志。表示表示AccAcc在有符号数算术运算中的溢出。即超出了带符号数在有符号数算术运算中的溢出。即超出了带符号数的有效范围(的有效范围(128128127127)。有溢出时)。有溢出时OV=1OV=1,否则,否则OV=0OV=0。P P 奇偶标志。奇偶标志。表示表示AccAcc中中“1”1”的个数的奇偶性。若的个数的奇偶性。若1 1的个数为奇数,则的个数为奇数,则P P置位,否则清置位,否则清0 0。F0 F0、F1 F1 用户标志位,由用户自己定义。用户标志位,由用户自己定义。二、控制器二、控制器程序计数器程序计数器指令寄存器指令寄存器IRIR指令译码器指令译码器IDID控制逻辑电路控制逻辑电路采用双列直插式(采用双列直插式(DIPDIP)QFP44QFP44(Quad Flat PackQuad Flat Pack)LCCLCC(Leaded Chip CarrierLeaded Chip Carrier)总线型DIP40 引脚封装(1 1)电源及时钟引脚()电源及时钟引脚(4 4 个)个)VCCVCC:电源接入引脚;:电源接入引脚;VSSVSS:接地引脚;:接地引脚;XTAL1XTAL1:晶体振荡器接入的一个引脚(采用外部振荡器时,:晶体振荡器接入的一个引脚(采用外部振荡器时,对对CHMOSCHMOS型而言,如型而言,如80C5180C51,此引脚作为外部振荡信号的输,此引脚作为外部振荡信号的输入端);入端);XTAL2XTAL2:晶体振荡器接入的另一个引脚。(采用外部振荡器:晶体振荡器接入的另一个引脚。(采用外部振荡器时,对时,对CHMOSCHMOS型而言,此引脚悬空)。型而言,此引脚悬空)。总线型DIP40 引脚封装(2 2)控制线引脚()控制线引脚(4 4 个)个)RST/VPDRST/VPD:复位信号输入引脚:复位信号输入引脚/备用电源输入引脚;备用电源输入引脚;ALE/ALE/:地址锁存允许信号输出引脚:地址锁存允许信号输出引脚/编程脉冲输入引脚;编程脉冲输入引脚;/VPP /VPP:内外程序存储器选择引脚:内外程序存储器选择引脚/片内片内EPROMEPROM(或(或FlashROMFlashROM)编程电压输入引脚;)编程电压输入引脚;:外部程序存储器选通信号输出引脚。:外部程序存储器选通信号输出引脚。EAPSEN总线型DIP40 引脚封装(3 3)并行)并行I/OI/O口引脚(口引脚(32 32 个,分成个,分成4 4 个个8 8 位口)位口)P0.0P0.7P0.0P0.7:一般:一般I/O I/O 口引脚或数据口引脚或数据/低位地址总线复用引脚;低位地址总线复用引脚;P1.0P1.7P1.0P1.7:一般:一般I/O I/O 口引脚;口引脚;P2.0P2.7P2.0P2.7:一般:一般I/O I/O 口引脚或高位地址总线引脚;口引脚或高位地址总线引脚;P3.0P3.7P3.0P3.7:一般:一般I/O I/O 口引脚或第二功能引脚。口引脚或第二功能引脚。与并行口与并行口P3(P3.0P3.7)P3(P3.0P3.7)复用的第二功能引脚信号复用的第二功能引脚信号分别是:分别是:串行口输入和输出引脚串行口输入和输出引脚RXD RXD 和和TXDTXD;外部中断输入引脚外部中断输入引脚 和和 ;外部计数输入引脚外部计数输入引脚T0 T0 和和T1T1;外部数据存储器写和读控制信号外部数据存储器写和读控制信号 和和 。0INT1INTWRRD2.2.2 80C51单片机的复位一、复位电路一、复位电路(a a)上电复位电路)上电复位电路 (b b)按键)按键与上电复位与上电复位二、单片机复位后的状态1.1.程序计数器程序计数器PCPC的值为的值为0000H0000H2.2.单片机启动后,片内单片机启动后,片内RAMRAM为随机值,运行中的复位为随机值,运行中的复位操作不改变片内操作不改变片内RAM RAM 的内容。的内容。3.P03.P0P3 P3 为为FFHFFH,SP SP 为为07H07H,SBUFSBUF不定,不定,IPIP、IE IE 和和PCON PCON 的有效位为的有效位为0 0,其余的特殊功能寄存器的状态,其余的特殊功能寄存器的状态均为均为00H00H。相应的意义为:相应的意义为:P0P0P3=FFHP3=FFH,相当于各接口锁存器已经写入,相当于各接口锁存器已经写入1 1,此时,此时不但可用于输出,也可以用于输入;不但可用于输出,也可以用于输入;SP=07HSP=07H,堆栈指针指向片内,堆栈指针指向片内RAM RAM 的的07H 07H 单元(第一单元(第一个入栈内容将写入个入栈内容将写入08H 08H 单元);单元);IPIP、IE IE 和和PCON PCON 的有效位为的有效位为0 0,各中断源处于低优先,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;级且均被关断,串行通信的波特率不加倍;PSW=00HPSW=00H,当前工作寄存器为第,当前工作寄存器为第0 0 组。组。2.2.3 80C51单片机CPU的时钟与时序时序:指令微操作的时间次序称作时序时序:指令微操作的时间次序称作时序单片机的时钟信号用来为单片机芯片内部的各种微操作提单片机的时钟信号用来为单片机芯片内部的各种微操作提供时间基准供时间基准一、时钟产生方式一、时钟产生方式内部时钟方式内部时钟方式外部时钟方式外部时钟方式内部时钟方式内部时钟方式 外部时钟方式外部时钟方式电容器电容器C1 C1 和和C2 C2 的作用是稳定频率和快速起振,的作用是稳定频率和快速起振,电容值在电容值在530 pF530 pF,典型值为,典型值为30 pF30 pF。晶振晶振CYS CYS 的振荡频率范围为的振荡频率范围为1.212 MHz1.212 MHz,典型值为典型值为12 MHz 12 MHz、6 MHz6 MHz或或11.0592MHz11.0592MHz当系统要与当系统要与PCPC机通信时,应选择晶振频率为机通信时,应选择晶振频率为11.0592MHz11.0592MHz,这样便于将波,这样便于将波特率设定为标称值。特率设定为标称值。二、80C51 的时钟信号晶振周期(时钟周期)晶振周期(时钟周期)S S 状态状态机器周期机器周期指令周期指令周期三、80C51 的典型时序单周期指令时序单周期指令时序三、80C51 的典型时序单字节双周期指令时序单字节双周期指令时序S1S2S3S4S5S6第第1 1机器周期机器周期P P1 1P P2 2ALEALE读操作码读操作码空读空读3 3次次S1S2S3S4S5S6第第2 2机器周期机器周期三、80C51 的典型时序访问外部访问外部RAMRAM的双周期指令时序的双周期指令时序S1S2S3S4S5S6第第1 1机机器器周周期期P P1 1P P2 2A AL LE E读读操操作作码码空空读读S1S2S3S4S5S6第第2 2机机器器周周期期数数据据地地址址及及选选通通80C51单片机最小系统2.3 80C51单片机的存储器组织随机存取存储器(随机存取存储器(RAMRAM)只读存储器(只读存储器(ROMROM)2.3.1 80C51 单片机的程序存储器配置寻址范围:寻址范围:64KB64KB一芯片内、外程序存储器的选择一芯片内、外程序存储器的选择1 1引脚接高电平引脚接高电平2.3.1 80C51单片机的程序存储器配置2 2引脚接低电平引脚接低电平2.3.1 80C51单片机的程序存储器配置二程序存储器的几个特殊单元二程序存储器的几个特殊单元0000H0000H:单片机复位后的入口地址;:单片机复位后的入口地址;0003H0003H:外部中断:外部中断0 0 的中断服务子程序入口地址;的中断服务子程序入口地址;000BH000BH:定时:定时/计数器计数器0 0 溢出中断服务子程序入口地址;溢出中断服务子程序入口地址;0013H0013H:外部中断:外部中断1 1 的中断服务子程序入口地址;的中断服务子程序入口地址;001BH001BH:定时:定时/计数器计数器1 1 溢出中断服务子程序入口地址;溢出中断服务子程序入口地址;0023H0023H:串行接口的中断服务子程序入口地址。:串行接口的中断服务子程序入口地址。对于增强型单片机,对于增强型单片机,002BH 002BH 为定时为定时/计数器计数器2 2 溢出或溢出或T2EX T2EX 负跳变中断服务子程序入口地址。负跳变中断服务子程序入口地址。ROM低端的入口地址 基本程序结构2.3.2 80C51单片机的数据存储器配置工作工作寄存器区寄存器区位寻址区位寻址区通用通用RAMRAM区区0000H H1 1FHFH3030H H7 7FHFH3232个字节个字节1616个字节个字节8080个字节个字节8080H HFFHFFHSFRSFR区区直接寻址直接寻址访问访问间接寻址间接寻址访问访问增强型增强型附加空间附加空间外部外部RAMRAM(或或I I/O O)6464K K00000000H HFFFFHFFFFHRDRDWRWR一、工作寄存器区80C51 80C51 单片机片内单片机片内RAM RAM 的低端地址为的低端地址为00H00H1FH 1FH 的共的共32 32 个个字节单元,分成字节单元,分成4 4 个工作寄存器组,每组占个工作寄存器组,每组占8 8 个单元。个单元。寄存器寄存器0 0 组:地址组:地址00H00H07H07H;寄存器寄存器1 1 组:地址组:地址08H08H0FH0FH;寄存器寄存器2 2 组:地址组:地址10H10H17H17H;寄存器寄存器3 3 组:地址组:地址18H18H1FH1FH。当前工作寄存器组从某一组工作寄存器换至另一组工作寄当前工作寄存器组从某一组工作寄存器换至另一组工作寄存器时,原来工作寄存器组的各寄存器的内容将被屏蔽保存器时,原来工作寄存器组的各寄存器的内容将被屏蔽保护起来。利用这一特性可以方便地完成护起来。利用这一特性可以方便地完成快速现场数据保护快速现场数据保护任务任务二、位寻址区内部内部RAMRAM中地址为中地址为20H 20H 2FH 2FH 的共的共16 16 个字节单元个字节单元128 128 个位的地址范围是个位的地址范围是00H00H7FH7FH三、通用RAM 区地址为地址为30H 30H 7FH 7FH 的共的共80 80 个字节单元为通用个字节单元为通用RAM RAM 区区数据缓冲器数据缓冲器80C51 80C51 的堆栈一般设在的堆栈一般设在30H30H7FH7FH的范围内。的范围内。栈顶的位置由栈顶的位置由SP SP 寄存器指示。寄存器指示。复位时复位时SP SP 的初值为的初值为07H07H,2.3.3 80C51 单片机的特殊功能寄存器一、与运算器相关的寄存器(一、与运算器相关的寄存器(3 3 个)个)累加器累加器ACCACC,8 8 位。位。ACCACC是是80C51 80C51 单片机中最频繁使用的寄单片机中最频繁使用的寄存器,用于向存器,用于向ALUALU提供操作数,许多运算的结果也存放在累提供操作数,许多运算的结果也存放在累加器中;加器中;寄存器寄存器B B,8 8 位。主要用于乘、除法运算。也可以作为位。主要用于乘、除法运算。也可以作为RAM RAM 的一个单元使用;的一个单元使用;程序状态字寄存器程序状态字寄存器PSWPSW,8 8 位。它用来保存位。它用来保存ALU ALU 运算结果的运算结果的特征和处理器状态。其中特征和处理器状态。其中RS1RS1和和RS0RS0位用来设定当前工作寄位用来设定当前工作寄存器组。存器组。二、指针类寄存器(二、指针类寄存器(3 3 个)个)堆栈指针堆栈指针SPSP,8 8 位。它总是指向栈顶。复位初始值为位。它总是指向栈顶。复位初始值为07H07H;数据指针数据指针DPTRDPTR,16 16 位。用来存放位。用来存放16 16 位的地址。位的地址。它由两个它由两个8 8 位寄存器位寄存器DPH DPH 和和DPL DPL 组成,可对片外组成,可对片外64 KB 64 KB 范范围的围的RAM RAM 或或ROM ROM 数据进行间接寻址或变址寻址操作。数据进行间接寻址或变址寻址操作。三、与口相关的寄存器(三、与口相关的寄存器(7 7 个)个)并行并行I/O I/O 口口P0P0、P1P1、P2P2、P3P3,均为,均为8 8 位。通过对这位。通过对这4 4 个寄个寄存器的读存器的读/写操作,可以实现数据从相应并口的输入写操作,可以实现数据从相应并口的输入/输出;输出;串行口数据缓冲器串行口数据缓冲器SBUFSBUF;串行口控制寄存器串行口控制寄存器SCONSCON;串行通信波特率倍增寄存器串行通信波特率倍增寄存器PCONPCON(一些位还与电源控制相(一些位还与电源控制相关,所以又称为电源控制寄存器)。关,所以又称为电源控制寄存器)。四、与中断相关的寄存器(四、与中断相关的寄存器(2 2 个)个)中断允许控制寄存器中断允许控制寄存器IEIE;中断优先级控制寄存器中断优先级控制寄存器IPIP。五、与定时五、与定时/计数器相关的寄存器(计数器相关的寄存器(6 6 个)个)定时定时/计数器计数器T0 T0 的两个的两个8 8 位计数初值寄存器位计数初值寄存器TH0TH0、TL0TL0,可,可以构成以构成16 16 位的计数器,位的计数器,TH0 TH0 存放高存放高8 8 位,位,TL0 TL0 存放低存放低8 8 位;位;定时定时/计数器计数器T1 T1 的两个的两个8 8 位计数初值寄存器位计数初值寄存器TH1TH1、TL1TL1,它,它们可以构成们可以构成16 16 位的计数器,位的计数器,TH1 TH1 存放高存放高8 8 位,位,TL1 TL1 存放低存放低8 8 位;位;定时定时/计数器的工作方式寄存器计数器的工作方式寄存器TMODTMOD;定时定时/计数器的控制寄存器计数器的控制寄存器TCONTCON。80C51 的特殊功能寄存器(SFR)与片内与片内RAM RAM 统一编址的统一编址的21 21 个特殊功能寄存器(个特殊功能寄存器(SFRSFR),),离散地分布在离散地分布在80H80HFFH FFH 的地址空间中。的地址空间中。字节地址能被字节地址能被8 8 整除的(即十六进制的地址码尾数为整除的(即十六进制的地址码尾数为0 0 或或8 8 的)单元是具有位地址的寄存器。的)单元是具有位地址的寄存器。在在SFR SFR 地址空间中,有效位地址共有地址空间中,有效位地址共有83 83 个个2.4单片机指令系统和寻址方式简介1.1.指令系统概述指令系统概述机器语言程序机器语言程序汇编语言汇编语言汇编语言是用助记符、符号和数字来表示指令的程序语言,汇编语言是用助记符、符号和数字来表示指令的程序语言,容易理解和记忆,它与机器语言指令是一一对应的容易理解和记忆,它与机器语言指令是一一对应的2.2.指令格式指令格式 标号标号:操作码操作码 目的操作数目的操作数 ,源操作数,源操作数 ;注释;注释 例如:例如:MOV A,#00HMOV A,#00H3.3.寻址方式概述:七种寻址方式寻址方式概述:七种寻址方式立即寻址、寄存器寻址、寄存器间接寻址、直接寻址、基立即寻址、寄存器寻址、寄存器间接寻址、直接寻址、基址加变址寻址、相对寻址、位寻址址加变址寻址、相对寻址、位寻址1.立即寻址立即寻址方式立即寻址方式(也称立即数寻址也称立即数寻址)是直接在指令中给出操作是直接在指令中给出操作数数MOV A,#05HMOV A,#05H需要在操作数前面加前缀标志需要在操作数前面加前缀标志“#”#”2.寄存器寻址寄存器寻址方式就是指令中的操作数为某一寄存寄存器寻址方式就是指令中的操作数为某一寄存器的内容。器的内容。MOV A,R0 MOV A,R0 3030H H0000H HACCACCSFRSFRR R0 03030H HMOV AMOV A,R R0 0E E8 8H HROMROMRAMRAM操作数操作数在在R03.寄存器间接寻址寄存器中存放操作数的地址寄存器中存放操作数的地址MOV A,R0MOV A,R05 5AHAH3030H HACCACCSFRSFR5 5AHAHMOV AMOV A,R R0 0E E6 6H HROMROMRAMRAM3030H HR R0 0R0中的内容为中的内容为操作数的地址操作数的地址4.直接寻址指令中直接给出操作数的单元地址指令中直接给出操作数的单元地址MOV A,50HMOV A,50HMOV 50H,60HMOV 50H,60H5.基址加变址寻址以以DPTRDPTR或者或者PCPC的内容作为基地址,然后在这个基地址的基的内容作为基地址,然后在这个基地址的基础上加上地址偏移量础上加上地址偏移量A A的内容形成真正的操作数地址的内容形成真正的操作数地址MOVC A,A+DPTRMOVC A,A+DPTR6.相对寻址相对寻址只出现在相对转移指令中。相对寻址只出现在相对转移指令中。目的地址目的地址=源地址源地址+相对转移指令字节数相对转移指令字节数+rel+relrelrel是单字节的带符号的是单字节的带符号的8 8位二进制补码数位二进制补码数相对偏移在相对偏移在-128-128+127+127单元之间单元之间7.位寻址操作数是操作数是8 8位二进制数中的某一位。指令中给出的是位地址,位二进制数中的某一位。指令中给出的是位地址,即片内即片内RAMRAM某一单元中的一位某一单元中的一位SETB bitSETB bitRn Rn 当前工作寄存器当前工作寄存器R0R0R7(n=0R7(n=07)7)。Ri Ri 当前工作寄存器区中当前工作寄存器区中RORO、R1(i=0R1(i=0,1)1)。direct direct 直接地址直接地址#data#data 包含在指令中的包含在指令中的8 8位立即数。位立即数。#data16#data16 包含在指令中的包含在指令中的1616位立即数。位立即数。rel rel 相对转移指令中的偏移量,补码(相对转移指令中的偏移量,补码(-128-128+127+127)。)。DPTR DPTR 数据指针数据指针bit bit 直接寻址位。直接寻址位。C C或或Cy Cy 进位标志位或位处理机中的累加器。进位标志位或位处理机中的累加器。addr11 11addr11 11位目的地址。位目的地址。addr16 16addr16 16位目的地址。位目的地址。间接寻址寄存器前缀,如间接寻址寄存器前缀,如RiRi,A+DPTRA+DPTR。(X)(X)表示表示X X地址单元或寄存器中的内容。地址单元或寄存器中的内容。(X)(X)表示以表示以X X的内容为地址间接寻址单元的内容。的内容为地址间接寻址单元的内容。2.5数据传送类指令通用格式如下:通用格式如下:MOV MOV 目的操作数目的操作数,源操作数源操作数 1.以累加器为目的操作数的指令 MOV A,Rn MOV A,Rn ;(;(RnRn)A,n=0A,n=07 7 MOV A,Ri MOV A,Ri ;(;(RiRi)A,i=0A,i=0,1 1 MOV A,direct MOV A,direct ;(;(directdirect)AA MOV A,#data MOV A,#data ;#dataA#dataA源操作数可以是寄存器、直接地址、间接地址、和立即数源操作数可以是寄存器、直接地址、间接地址、和立即数 MOV A,R4 MOV A,R4 ;(;(R4R4)AA,寄存器寻,寄存器寻址址 MOV A,R0 MOV A,R0 ;(;(R0R0)AA,寄存,寄存器间接寻址器间接寻址 MOV A,60H MOV A,60H ;(;(60H60H)A,A,直接寻址直接寻址 MOV A,#20H MOV A,#20H ;20HA,20HA,立即数寻址立即数寻址2.以Rn为目的操作数的指令 MOV Rn MOV Rn,A A ;(A)Rn,n=0(A)Rn,n=07 7MOV Rn,direct MOV Rn,direct ;(direct)Rn(direct)Rn,n=0n=07 7MOV Rn,#data MOV Rn,#data ;#dataRn#dataRn,n=0n=07 7把源操作数的内容送入当前工作寄存器区的把源操作数的内容送入当前工作寄存器区的R0R0R7R7中的某一中的某一个工作寄存器个工作寄存器例如:例如:(A A)=42H,=42H,执行指令执行指令 MOV R0 MOV R0,A A 后后 ,R0R0的内容为的内容为42H.42H.3.以直接地址direct为目的操作数的指令 MOV direct MOV direct,A A ;(A)direct(A)directMOV directMOV direct,Rn Rn ;(;(RnRn)directdirect M O V d i r e c t M O V d i r e c t,R i R i ;(;(R iR i)direct,i=0direct,i=0,1 1 MOV direct1 MOV direct1,direct2 direct2 ;(;(direct2direct2)(direct1direct1)MOV directMOV direct,#data#data ;#data direct#data direct把源操作数的内容送入直接地址单元把源操作数的内容送入直接地址单元directdirect指的是内部指的是内部RAMRAM或或SFRSFR地址地址例如:例如:(43H)=12H,(43H)=12H,执行指令执行指令 MOV 20H,43H MOV 20H,43H后后 20H 20H单元的内容为单元的内容为12H.12H.MOV RiMOV Ri,A A ;(A)(A)(RiRi),),i=0i=0,1 1MOV RiMOV Ri,direct direct ;(direct)(direct)(RiRi),),i=0i=0,1 1MOV RiMOV Ri,#data#data ;#data#data(RiRi),),i=0i=0,1 1把源操作数内容送入把源操作数内容送入R0R0或或R1R1指定的存储单元中指定的存储单元中4.以寄存器间接地址为目的操作数的指令例如:例如:(A A)=12H,(R0)=30H,=12H,(R0)=30H,执行指令执行指令MOV R0,AMOV R0,A后结果为后结果为RAMRAM中中(30H)=12H(30H)=12HMOV R0,AMOV R0,AMOV 30H,AMOV 30H,A。5.十六位数据传送指令 MOV DPTR,#data16 MOV DPTR,#data16 将高将高8 8位立即数位立即数dataHdataH送入送入DPHDPH,低,低8 8位立即数位立即数dataLdataL送入送入DPLDPL。如如“MOV DPTR,#1234H”MOV DPTR,#1234H”,执行结果为(,执行结果为(DPHDPH)=12H,(DPL)=34H=12H,(DPL)=34H。6.堆栈操作指令PUSH directPUSH direct功能:首先将堆栈指针功能:首先将堆栈指针SPSP加加1 1,然后把,然后把directdirect中的内容送到中的内容送到堆栈指针堆栈指针SPSP所指的内部所指的内部RAMRAM单元中。单元中。例如:当(例如:当(SPSP)=60H,(A)=12H,(B)=34H,=60H,(A)=12H,(B)=34H,执行下列执行下列指令指令 PUSH ACC PUSH ACC ;(;(SPSP)+1=61HSP,(A)61H+1=61HSP,(A)61HPUSH B PUSH B ;(SP)+1=62HSP,(B)62H(SP)+1=62HSP,(B)62H结 果 为(结 果 为(6 1 H6 1 H)=1 2 H,(6 2 H)=3 4 H,=1 2 H,(6 2 H)=3 4 H,(SP)=62H(SP)=62H(2)(2)出栈指令出栈指令 POP direct POP direct功能:将堆栈指针功能:将堆栈指针SPSP指示的栈顶内容送到指示的栈顶内容送到directdirect字节单元字节单元中,堆栈指针中,堆栈指针SPSP减减1 1。例如:当(例如:当(SPSP)=62H,(62H)=12H,(61H)=34H,=62H,(62H)=12H,(61H)=34H,执行下列指令执行下列指令 POP ACC POP ACC ;(SP)A,(SP)-1SP(SP)A,(SP)-1SP POP PSW POP PSW ;(SP)PSW,(SP)-1SP(SP)PSW,(SP)-1SP结果为结果为 (A A)=12H,(PSW)=34H,(SP)=60H=12H,(PSW)=34H,(SP)=60H。7.查表指令(1)MOVC A,A+PC(1)MOVC A,A+PC(2)MOVC A,A+DPTR(2)MOVC A,A+DPTR读程序存储器中表格数据读程序存储器中表格数据执行这两条指令时,单片机的引脚信号执行这两条指令时,单片机的引脚信号 有效有效PSEN例如:当(例如:当(A A)=06H,=06H,执行地址执行地址2000H2000H处的指令处的指令 2000H:MOVC A,A+PC 2000H:MOVC A,A+PC该 指 令 占 用 一 个 字 节,下 一 条 指 令 的 地 址 为该 指 令 占 用 一 个 字 节,下 一 条 指 令 的 地 址 为2001H,(PC)=2001H,2001H,(PC)=2001H,再加上再加上A A中的中的06H,06H,得到得到2007H,2007H,结果是将结果是将程序存储器中的程序存储器中的2007H2007H的内容送入累加器的内容送入累加器A A。例如:(例如:(DPTRDPTR)=2000H,(A)=06H,=2000H,(A)=06H,执行指令执行指令 MOVC A,A+DPTR MOVC A,A+DPTR结果是将程序存储器中结果是将程序存储器中2006H2006H单元内容送入累加器单元内容送入累加器A A中。中。8.累加器A与片外RAM传送指令MOVX A,Ri MOVX A,Ri ;(;(RiRi)AAMOVX A,DPTR MOVX A,DPTR ;(;(DPTRDPTR)AAMOVX RiMOVX Ri,A A ;AA(RiRi)MOVX DPTR,A MOVX DPTR,A ;AA(DPTRDPTR)可以实现可以实现I/OI/O接口输入接口输入/输出数据输出数据RiRi间址作低间址作低8 8位地址指针,高位地址指针,高8 8位地址由位地址由P2P2口送出口送出寻址范围寻址范围64KB64KB读写信号9.字节交换指令 XCH A,Rn XCH A,Rn XCH A,Ri XCH A,Ri XCH A,direct XCH A,direct功能:将累加器功能:将累加器A A中的内容与源操作数的内容进行互换中的内容与源操作数的内容进行互换)(;)(;)(;,RiA RidirectA direct RnA Rn A XCH例:若(例:若(R0)=80H,(A)=20H。执行指令 XCH A,R0 后,(A)=80H,(R0)=20H。1/18/202310510.半字节交换指令 XCHD A,Ri XCHD A,Ri功能:将功能:将RiRi间接寻址的单元内容与累加器间接寻址的单元内容与累加器A A中内容的低中内容的低4 4位位互换,高互换,高4 4位内容不变。该操作只影响标志位位内容不变。该操作只影响标志位P P。例如:例如:(R0R0)=30H,(30H)=67H,(A)=20H,=30H,(30H)=67H,(A)=20H,执行指令执行指令XCHD A,R0XCHD A,R0后,后,(A)=27H,(30H)=60H(A)=27H,(30H)=60H。11.累加器半字节交换指令SWAP ASWAP A功能:将累加器功能:将累加器A A的高的高4 4位和低位和低4 4位互换。位互换。例如:例如:(A)=56H,(A)=56H,执行指令执行指令SWAP A SWAP A,结果结果(A)=65H.(A)=65H.2.6算术运算和逻辑运算类指令2.6.12.6.1算术运算类指令算术运算类指令MCS-51MCS-51算术运算指令包括加、减、乘、除、基本四则运算算术运算指令包括加、减、乘、除、基本四则运算针对针对8 8位二进制无符号数位二进制无符号数其中:其中:表示有影响,表示无影响,表示有影响,表示无影响,0 0表示清零表示清零 指令指令 标志标志ADD、ADDC、SUBBDAMULDIVCY00ACOVP1.加法指令 ADD A,Rn ADD A,Rn ;(;(A A)+(Rn)A+(Rn)A ADD A,Ri ADD A,Ri ;(;(A A)+(Ri)A+(Ri)A ADD A,direct ADD A,direct ;(;(A A)+(direct)A+(direct)A ADD A,#data ADD A,#data ;(;(A A)+data A+data A影响标志位影响标志位ACAC、CYCY、OVOV、P P算数运算影响标志位示例算数运算影响标志位示例例:有例:有2 2个参与相加的机器数,一个是个参与相加的机器数,一个是84H84H,另一个是,另一个是8DH8DH。试分析运算过程及其对状态标志的影响。试分析运算过程及其对状态标志的影响。结果结果:CYCY为为1 1;ACAC为为1 1;OVOV为为1 1;P P为为0 0 1/18/2023111例例3-13-1:设(:设(A A)=0C3H,(R0)=0AAH,=0C3H,(R0)=0AAH,执行指令执行指令 ADD A,R0 ADD A,R0 (A A):1100 0011:1100 0011 +(R0):1010 1010 +(R0):1010 1010 10110 1101 10110 1101所得和为所得和为6DH,6DH,标志位标志位CY=1,AC=0,P=1CY=1,AC=0,P=1,OV=1,OV=1,溢出标志溢出标志OVOV在在CPUCPU内部根据异或门输出置位,内部根据异或门输出置位,OV=C7 OV=C7 2.带进位加法指令 ADDC A,Rn ADDC A,Rn ;(;(A A)+(Rn)+CY A ADDC +(Rn)+CY A ADDC A,Ri A,Ri ;(;(A A)+(Ri)+CY A ADDC +(Ri)+CY A ADDC A,direct A,direct ;(;(A A)+(direct)+CY A+(direct)+CY AADDC A,#data ADDC A,#data ;(;(A A)+data+CYA+data+CYA功能:同时把源操作数所指出的内容和进位标志位功能:同时把源操作数所指出的内容和进位标志位CYCY都加到累加都加到累加器器A A中,结果存放在中,结果存放在A A中中将影响标志位将影响标志位AC,CY,OV,PAC,CY,OV,P常用于多字节加法常用于多字节加法例例3-23-2:设(:设(A A)=85H,(20H)=0FFH,CY=1,=85H,(20H)=0FFH,CY=1,执行指令执行指令 ADD A,20H ADD A,20H (A A):1000 0101:1000 0101 +(R0):1111 1111 +(R0):1111 1111 11000 0101 11000 0101所得和为所得和为85H,85H,标志位标志位CY=1,AC=1,OV=0,P=1CY=1,AC=1,OV=0,P=13.增1指令INC AINC AINC Rn INC Rn ;n=0n=07 7INC directINC directINC Ri INC Ri ;i=0i=0,1 1INC DPTRINC DPTR不影响不影响PSWPSW4.十进制调整指令十进制调整指令DA A DA A ;调整;调整A A的内容为正确的的内容为正确的BCDBCD码码 两个压缩的两个压缩的BCDBCD码按二进制相加后,必须经过调整方能码按二进制相加后,必须经过调整方能得到正确的和。得到正确的和。当当A A中低中低4 4位出现了非位出现了非BCDBCD码(码(10101010 11111111)或低)或低4 4位的位的进位进位AC=1AC=1,则应在低,则应在低4 4位加位加6 6调整。调整。当当A A中高中高4 4位出现了非位出现了非BCDBCD码(码(10101010 11111111)或高)或高4 4位的位的进位进位CY=1CY=1,则应在高,则应在高4 4位加位加6 6调整。调整。执行十进制调整指令后,执行十进制调整指令后,PSWPSW中的中的CYCY表示结果的百位值表示结果的百位值 1/18/2023116例:若(例:若(A A)0110 1001B0110 1001B,表示的,表示的BCDBCD码为码为 BCD69)(R2R2)0101 1000B0101 1000B,表示的,表示的BCDBCD码为码为 BCD58)(,执行指令:,执行指令:ADD A,R2DA A(A A)0010 0111B0010 0111B,即,即 BCD27)(且(且(CYCY)1 1,即正确的结果为:,即正确的结果为:127127 1/18/20231175.5.带借位减法带借位减法)()(;)()()(;)()()(;)()()(;,CYdataAA data#CYRiAA RiCYdirectAA direct CYRnAA Rn A SUBB用此组指令完成不带借位的减法,只需先清用此组指令完成不带借位的减法,只需先清CYCY为为0 0即可即可 CYCY为为1 1,表示,表示D7D7位需借位位需借位 ACAC为为1 1,表示,表示D3D3位需借位位需借位 OV OV为为1 1,表示,表示“D6D6有借位有借位D7D7无借位无借位”或或“D7D7有借位有借位D6D6无借无借位位”1/18/2023118例:若(例:若(A A)=C9H=C9H,(,(R2R2)=54H=54H,(,(CYCY)=1=1,试分析指令,试分析指令SUBB ASUBB A,R2R2执行后,累加器的内容及状态标志。执行后,累加器的内容及状态标志。(A):):1 1 0 0 1 0 0 1(201)(CY):):1(1)1 1 0 0 1 0 0 0(R2):):0 1 0 1 0 1 0 0(84)结果:结果:0 1 1 1 0 1 0 0(116)即即:(A A)=74H74H,(CYCY)=0,=0,(ACAC)=0,=0,(OVOV)=1,=1,(P P)=0=0。分析:分析:数据为无符号类型。该指令执行前数据为无符号类型。该指令执行前CY=1CY=1,说明此指令不是运算,说明此指令不是运算的最低字节,即在此指令执行之前,一定执行过低字节的减法并产生的最低字节,即在此指令执行之前,一定执行过低字节的减法并产生了借位。因此,本次相减(了借位。因此,本次相减(201-1-84=116=74H201-1-84=116=74H)结果为)结果为74H74H。1/18/20231196.6.减减1 1指令指令1RiRi Ri1directdirect direct 1RnRn Rn 1AA A DEC)();()(;)(;)(;这组指令仅这组指令仅 DEC ADEC A 影响影响P P标志。其余指令都不影响标志位的状态。标志。其余指令都不影响标志位的状态。1/18/20231207.7.乘法指令乘法指令仅有一条乘法指令仅有一条乘法指令 MUL AB MUL AB;A A与与B B相乘相乘 无符号无符号 结果:结果:B B中为积的中为积的高高8 8位位,A A中为积的中为积的低低8 8位位。CYCY总是被清总是被清0 0;OV=1OV=1表示积大于表示积大于FFHFFH 8.8.除法指令除法指令仅有一条除法指令仅有一条除法指令 DIV AB DIV AB;A A除以除以B B 无符号无符号 结果:结果:A A中为商的中为商的整数整数部分,部分,B B中为中为余数余数 CYCY总是被清总是被清0 0;OV=1OV=1表示除数为表示除数为0 0 1/18/20231212.6.2 逻辑操作类指令 逻辑操作包括与、或、异或、清零、求反、移位等操作逻辑操作包括与、或、异或、清零、求反、移位等操作1.1.累加器累加器A A清零指令清零指令CLR ACLR A 该指令的功能是将累加器该指令的功能是将累加器A A的内容清零,不影响的内容清零,不影响CYCY、ACAC、OVOV等标志位。等标志位。2.2.累加器累加器A A求反指令求反指令CPL ACPL A该指令的功能是将累加器该指令的功能是将累加器A A的内容进行求反操作,不影响的内容进行求反操作,不影响CYCY、ACAC、OVOV等标志位。等标志位。3 3.累加器累加器A A循环左移指令循环左移指令RL ARL A该指令功能是将累加器该指令功能是将累加器A A的内容向左循环移动一位,最高位的内容向左循环移动一位,最高位移入最低位。移入最低位。4 4.累加器累加器A A循环右移指令循环右移指令RR ARR A该指令功能是将累加器该指令功能是将累加器A A的内容向右循环移动一位,最低位的内容向右循环移动一位,最低位移入最高位。移入最高位。5 5.带进位循环左移指令带进位循环左移指令RLC ARLC A该指令功能是将累加器该指令功能是将累加器A A的内容连同进位标志位的内容连同进位标志位CYCY一起向左一起向左循环移一位,循环移一位,ACC.7ACC.7移入移入CY,CYCY,CY移入移入ACC.0ACC.0。6 6.带进位循环右移指令带进位循环右移指令RRC ARRC A该指令功能是将累加器该指令功能是将累加器A A的内容连同进位标志位的内容连同进位标志位CYCY一起向右一起向右循环移一位,循环移一位,ACC.0ACC.0移入移入CY,CYCY,CY移入移入ACC.7ACC.7。例例3-43-4:无符号二进制数(:无符号二进制数(A A)=10101100B=10101100B,CY=0CY=0。执行指令执行指令 RLC A RLC A 的结果为的结果为 A=01011000,CY=1 A=01011000,CY=17.逻辑“与”指令ANL A,#data;ANL A,#data;ANL A,directANL A,direct;ANL A,RnANL A,Rn;ANL A,RiANL A,Ri;ANL directANL direct,#data#dataANL directANL direct,A A功能:位进行逻辑与,结果存入目的操作数功能:位进行逻辑与,结果存入目的操作数例例2-62-6:(:(A A)=
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!