收藏 分销(赏)

单片机应用技术优品文档.ppt

上传人:二*** 文档编号:10296271 上传时间:2025-05-19 格式:PPT 页数:189 大小:15MB
下载 相关 举报
单片机应用技术优品文档.ppt_第1页
第1页 / 共189页
本文档共189页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机应用技术,1,第一章 单片机概述,1-1,单片机的历史及发展概述,1-2,单片机的应用,1-3,单片机的开发和开发工具,1-1 单片机的发展概况,单片机的概念,单片机:将微处理器,(CPU),、存储器、,I/O,接口电路和相应实时控制件集成在一块芯片上,称其为单片微型计算机,简称单片机。,单片机的发展历史和发展趋势,4位单片机 (1971-1974),低档8位单片机,(1974-1978),高档8位单片机,(1978-1982),16位单片机,(1982-1990),新一代单片机 (90年代以来),发展趋势,:,单片机在集成度、功能、速度、可靠性、,应用领域等全方位向更高水平发展。,1-2 单片机的应用,应用特点,体积小:基本功能部件满足要求,可靠性高:,BUS大多在内部;易采取电磁屏蔽,功能强:实时响应速度;I/O,直接操作,使用方便:硬件设计简单;提供开发工具资料,性能价格比高:电路板小;接插件少,易产品化:研制周期短,机电一体化:电脑缝纫机,智能仪表:测量仪,实时控制:汽车,家电:电冰箱、洗衣机、(,MOTOROLA,),网络通信:通信协议集成其中,计算机外设:键盘、打印机,保健 产品:按摩器,多机应用,应用:量大面广,1-3 单片机的开发和开发工具,一、,单片机应用系统开发条件,单片机芯片,开发工具,资料手册,二、单片机应用系统的开发过程,系统需求调查;,可行性分析;,系统方案设计;,系统建造;,系统调试;,系统方案局部修改、再调试;,生成正式产品。,三、,单片机应用系统设计的基本原则与方法,二、一般设计方法,确定系统功能与性能,确定系统基本结构,硬件设计,软件设计,1),任务确定,2),软件结构设计,一、设计原则:,可靠性高,性能价格比高,操作简便,设计周期短,四、,单片机应用系统的调试,五、,单片机开发系统,一、通用型单片机开发系统,二、软件模拟开发系统,第二章 MCS51单片机的结构,内部结构,存储器的配置,I/O口的应用功能,时序及电路,2-1 MCS-51单片机的内部结构(80C51),存储器,I/O,接口,CPU,总线控制器,说明:,中央处理机CPU (,8位,),存储器:片内数据存储器RAM (,128个字节,),片内程序存储器EPROM(,4 KB,),I/O接口:4个8位并行口(,P0、P1、P2、P3口,1,个串行I/O接口。,2,个16位定时器/计数器。,5,个中断源,二,级优先权的中断系统,MCS51系列部分单片机配置一览表,2-2 中央处理器CPU,中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。,它由,运算部件,和,控制部件,两大部分组成。,一、运算器,运算部件是以算术逻辑单元ALU为核心,加上累加器A、寄存器B、暂存器TMP1和TMP2、程序状态寄存器PSW及专门用于位操作的布尔处理机组成的,它能,实现数据的算术逻辑运算,位变量处理和数据传送,操作。,用户关心,1.,算术逻辑单元ALU,2.,累加器ACC:,8位,,专门存放操作数或运算结果。,3.寄存器B:,8位,,专门为乘除法而设置的寄存器。,4.,程序状态字PSW,(Programe State Word),P,OV,RS0,RS1,F0,AC,Cy,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,PSW,程序状态字PSW,C,AC,F0,RS1,RS0,OV,-,P,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,进位标志位,辅助进位标志位,用户自定义标志位,溢出标志位,奇偶标志位,寄存器区选择,3区,1,1,2区,0,1,1区,1,0,0区,0,0,二、控制器,控制部件是,单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信息传送控制等部件。,CPU执行指令时,由程序存储器中读取的指令代码送入指令存储器,经译码器译码后由定时与控制电路,发出相应的控制信号,完成指令所指定的操作。,MCS-51单片机的存储器结构为,哈佛结构,,既:程序存储器和数据存储器分开寻址。,从物理结构上可分为:片内、片外程序存储器,片内、片外数据存储器 4个部分,2-3,存储器和特殊功能寄存器,一、,MCS51单片机存储器分类及配置,从寻址空间分布可分为,:,程序存储器,内部数据存储器,外部数据存储器,3,大部分,从功能上可分为,:,程序存储器,内部数据存储器,特殊功能寄存器,位地址空间,外部数据存储器,5,大部分。,重点,重点,二、程序存储器,计算机的工作是按照事先编制好的程序命令一条条循序执行的,程序存储器就是用来存放这些已编好的程序和表格常数,它由只读存储器ROM或EPROM组成。,程序运行的入口地址,MCS51单片机程序存储器中有复位和中断源共,7个固定的入口地址,用户不能更改。,MCS51单片机复位、中断入口地址,0000H,单元开始取指令来执行程序。,三、内部数据存储器,MCS51,系列单片机的内部数据存储器由读写存储器,RAM,组成,用于存储数据。,内部数据存储器,RAM,块共分为,工作寄存器区、位寻址区和数据缓冲区,3,个部分,。,1、工作寄存器和RAM地址对照表,T0定时器/计数器溢出中断标志位。,方式2、3 n=8,系统方案局部修改、再调试;,行扫描法,就是通过行线发出低电平信号,如果该行线所连接的键没有按下的话,则列线所连接的输出端口得到的是全“1”信号;如果有键按下的话,则得到的是非全“1”信号。,标号:操作码 操作数1,操作数2 ;,3-5 控制转移类指令,ORG伪指令说明其后面程序的目标代码在存储器中存放的起始地址。,X 0,R1(Y)01H,例:顺序执行下列指令序列,求每一步执行结果。,(如微型打印机、功能键、LED/LCD显示器等),2-5 外部引脚说明,定时器/计数器0(低字节),2、位寻址区,3、数据缓冲区,30H-7FH是数据缓冲区,也即用户RAM区,共80个单元。,用户RAM区又可分为数据区和堆栈区,MCS51单片机堆栈区不是固定的,且堆栈属向,上生,长型,为了避开工作寄存器区和位寻址区,一般设在30H以后的范围内。,堆栈区,数据区,30H,7FH,四、特殊功能寄存器SFR,SFR,又称为专用寄存器。它专用于控制、管理单片机内算术逻辑部件、并行,I/O,口锁存器、串行口数据缓冲器、定时器,/,计数器、中断系统等功能模块的工作。,97H,电源控制,0B8H,中断优先级控制,99H,串行数据缓冲器,0B0H,口3,98H,串行控制,0A0H,口2,8BH,定时器/计数器1(低字节),90H,口1,80H,定时器/计数器1(高字节),80H,口0,8AH,定时器/计数器0(低字节),83H和82H,数据指针,8CH,定时器/计数器0(高字节),81H,堆栈指针,88H,定时器/计数器控制,0D0H,程序状态字,89H,定时器/计数器方式控制,0F0H,B寄存器,0A8H,允许中断控制,0E0H,累加器,地址,名称,地址,名称,IP,P,3,P,2,P,1,P,0,DPTR,SP,PSW,B,ACC,标识符,PCON,SBUF,SCON,TL,1,TH,1,TL,0,TH,0,TCON,TMOD,IE,标识符,说明:,PC:,程序地址寄存器(,16位,),始终指向下一条指令的内存地址。访问范围:0000,0FFFFH,ACC:,累加器(8位),专门存放操作数或运算结果。,B:,8位,,专门为乘除法而设置的寄存器。,SP:,堆栈指针(,8位,),始终指向堆栈的栈顶位置。,遵循“先进后出”的原则。,DPTR:,数据地址指针(,16位,),存放程序存储器或外部数据存储器的地址。可分DPH和DPL两个独立8位寄存器。,程序状态字PSW,C,AC,F0,RS1,RS0,OV,-,P,PSW.7 PSW.6 PSW.5 PSW.4 PSW.3 PSW.2 PSW.1 PSW.0,进位标志位,辅助进位标志位,用户自定义标志位,溢出标志位,奇偶标志位,寄存器区选择,3区,1,1,2区,0,1,1区,1,0,0区,0,0,思考:,访问内部数据存储器与外部数据存储器的区别?,1、地址不同。,访问内部数据存储器,MOV,指令,访问外部数据存储器,MOV,X,指令,内部数据存储器的地址为,8,位(,00H-7FH,),外部数据存储器的地址为,16,位(,0000H-FFFFH,),2,、访问内,/,外部存储器使用的指令不同。,思考:,什么叫哈佛结构?,程序存储器用来存放什么?,程序运行的入口地址是什么?,内部数据存储器分为哪几个部分?,位寻址区有多少个位?,堆栈指针SP,是几,位,寄存器?堆栈是向(大、小)地址生长?,2-4 输入/输出口(I/O口),四个(P0、P1、P2、P3)双向8位I/O口,共32根I/O口线。,每个I/O线均由锁存器,输出电路和输入缓冲器组成。所以每个I/O既可作输入又可作输出;每一条口线可独立用作输入又可用作输出。,一、I/O口的应用功能,P0:系统扩展,一般I/O口(输出时,需接上拉电阻),P1:,专供用户使用的I/O口,P2:,系统扩展,通用I/O口,P3:功能口,每位独立定义,通用I/O口,二、I/O的特点,1.P0,口:,P0,口是一个三态双向口,可作为,地址,/,数据分时复,用口,,也可作为,通用,I/O,接口。,(1)地址/数据分时复用功能,当,P0,口作为地址,/,数据分时复用总线时,可分为两种情况:一种是从,P0,口输出地址或数据,另一种是从,P0,口输出数据。,1,(2)通用I/O接口功能,在输出数据时,由于,T1,截止,输出级是漏极开路电路,要使,1,信号正常输出,,必须外接上拉电阻,。,R,“,1”,“,0”,截止,P0,口作为通用,I/O,口使用时,是准双向口。其特点是在输入数据时,,应先把口置,1(,写,1),,此时锁存器的,Q,端为,0,,使输出级的两个场效应管,T1,、,T2,均截止,引脚处于悬浮状态,才可作高阻输入。,2.P1,口,P1口只有一种通用输入输出I/O接口功能。,不需要外接电阻,;但P1口是准双向口,其特点是在输入数据时,应先把口置1(,写1,)使输出级的场效应管V1截止,引脚处于悬浮状态,才可作高阻输入。,3、P2口,P2口也是一准双向口。它具有通用I/O接口或高8位地址总线输出两种功能。,当作为准双向通用I/O接口使用时,其工作原理与P1相同。,4、P3口,当P3口作为通用I/O接口时,第2功能输出线为高电平,使与非门3的输出取决于口锁存器的状态。在这种情况下,P3口仍是1个准双向口,它的工作方式、负载能力均与P1、P2,口相,同。,当,P3,口作为第,2,功能使用时,其锁存器,Q,端必须为高电平,否则,V1,管导通,引脚被箝位在低电平,无法输入或输出第,2,功能信号。当,Q,端为高电平时,P3,口的口线状态就取决于第,2,功能输出线的状态。,P3,口第二功能表,2-5 外部引脚说明,1,主电源引脚,VCC,:接,+5V VSS,:接地,2,外接晶体引脚,XTAL1,、,XTAL2,3,输入,/,输出引脚,P0-P3,口,4,控制线,(1)ALE/PROG,:地址锁存有效信号输出,(,2,),PSEN,:片外程序存储器读选通信号,(,3,),RST/VPD,:,RST,即为,RESET,,,VPD,为备用电源,(4)EA/VPP(31,脚,),:片外程序存储器选用端,2-6 单片机工作的基本时序,1.机器周期和指令周期,(1),振荡周期,:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期。,(2),状态周期,:每个状态周期为时钟周期的 2 倍,也称S状态,是振荡周期经二分频后得到的。,(3),机器周期,:一个机器周期包含 6 个状态周期S1S6,也就是 12 个时钟周期。在一个机器周期内,CPU可以完成一个独立的操作。,(4),指令周期,:它是指CPU完成一条操作所需的全部时间。每条指令执行时间都是有一个或几个机器周期组成。MCS-51 系统中,有单周期指令、双周期指令和四周期指令。,2,6,1、2、4,思考:外接晶振为12 MHz时,MCS51单片机的4个时间周期的具体值为多少?,答:振荡周期=1/12 s;,状态周期=1/6 s;,机器周期=1 s;,指令周期=1-4 s。,2.MCS-51 的典型时序,(1)单周期指令时序,(2)双周期指令时序,访问外部RAM的双指令周期,外部数据存储器的寻址和数据选通,3.复位电路,(b),开关复位电路,(,a,)上电复位电路,复位后内部寄存器状态,在,RST/VPD,端持续给出,2,个机器周期的高电平,就可以完成复位操作。,堆栈指针SP=07H,P0-P3=FFH,其余寄存器均为0,2-7 定时器/计数器,一、定时器,/,计数器,T0,、,T1,的结构,T1,T0,T0,、,T1,的控制,说明,:,两个16位定时器/计数器T0、T1,定时器/计数器的工作方式及控制由,TMOD寄存器和,TCON寄存器完成。,二、基本功能,1,),定时功能时,每个机器周期定时器,加1,。,2,),计数功能时,在外部事件相应输入脚(T0和T1)产生负跳变,计数器,加1,。,K1,K2,可预置初值的,加法,计数器,中断,请求,功能,选择,启动,控制,内部时钟脉冲,(定时),T,X,外部输入脉冲(计数),溢出信号,计数脉冲,计数初值,三、方式和控制寄存器,1,、定时器,/,计数器的方式寄存器,TMOD,C/T=1,为计数器方式,;C/T =0,为定时器方式。,GATE=1,外部启动定时器,/,计数器;,GATE=0,程序启动定时器,/,计数器。,M1M0,工作方式控制位,T0 分成,两个独立的 8 位,计数器,T1 在方式 3 时停止工作,3,1,1,自动重装入初值的,8 位,计数器,2,1 0,16 位,定时器/计数器,1,0,1,13 位,定时器(TH的 8 位和TL的低 5 位),0,0 0,说 明,方式,M1 M0,2,、定时器,/,计数器控制寄存器,TCON,IT0,IE0,IT1,IE1,TR0,TF0,TR1,TF1,与中断有关,T0,运行控制位,:“1”,启动,T0;“0”,关闭,T0,。由软件进行设置。,T0,定时器,/,计数器溢出中断标志位。,当,T0,计数溢出时,由,硬件置位,,在允许中断的情况下,向,CPU,发出中断请求信号,,CPU,响应中断转向中断服务程序时,由,硬件自动将该位清零,。,四、计算时间常数X(初值,),加法计数器是计满溢出时才申请中断,所以在给计数器赋初值时,不能直接输入所需的计数值,而应输入的是计数器计数的最大值与这一计数值的差值。,初值,X,的计算方法,:,计数功能,:,X=2,计数值,定时功能,:,X=2,定时时间,/T,其中:方式,0,:,n=13,;方式,1,:,n=16,;方式,2,、,3 n=8,T=12,晶振频率,=,机器周期,例:计算定时1 ms对应的初值,设单片机晶振频率为 12 MHz,方式1。,解,X=M定时时间/T,机器周期=1212 MHz=1 s,所以:X=2,16,1ms/1 s=FC17H,例:若晶振频率为6MHz,试计算MCS-51单片机定时/计数器的最小定时时间和最大定时时间。,解:先确定机器周期:,机器周期 T=126 MHz=2 s,计算最小定时时间:,对于定时器的几种工作方式来说,最小定时时间都是一样的,即:,X=M定时时间/,T,min,=(M-X)T=12s=2s,计算最大定时时间:,在方式1下的定时时间最长,则最大定时时间为,Tmax=(M-X)T=(2,16,-0)2s=131ms,五、定时器/计数器的初始化,定时/计数器在使用之前需要进行初始化。,初始化编程包括:,要能正确写入控制字;,能进行计数初值的计算。,一般情况下,包括以下几个步骤:,(1),确定工作方式,即对,TMOD,寄存器进行赋值。,(2),计算计数初值,并写入寄存器,TH0,、,TL0,或,TH1,、,TL1,中。,(3),根据需要,置位,ETx,允许,T/C,中断。,(4),置位,EA,使,CPU,开中断,(,需要时,),。,(5),置位,TRx,启动计数。,思考题,1、,MCS-51单片机有几个定时/计数器?,2、定时/计数器的核心是1个(加1、减1)计数器,它的输入脉冲有两个来源:一个是(内部时钟脉冲,(定时),另一个是(,外部,部时钟脉冲(,计数,))。,3、定时/计数器有几种工作方式?如何选择和设定?,4种,4、MCS-51单片机定时/计数器在使用之前需要进行初始化,在编程时主要注意两点:第一(,正确写入控制字,);第二(,计数初值的计算,)。,中断的定义,计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。,断点,主程序,中断服务程序,有中断请求,对外设,进行处理,继续执行,返回断点,中断源:,任何能够引发中断事件的来源,2-8 MCS-51单片机的中断系统,一、,MCS-51单片机的中断系统结构,IE,IP,TCON,的高,4,位,SCON,的低,2,位,采用中断技术的优点(1)可方便地处理随机事件(实时处理、故障处理)。(2)提高处理器的使用效率和提高计算机的工作速度。,1、5个中断源,2,个外部中断源信号,2,个定时器,T0,、,T1,溢出中断请求,1,个串行口数据发送、接收结束中断请求,2、中断请求寄存器(TCON、SCON中的部分标志),中断请求标志位:,TF1、TF0、IE1、IE0、RI、TI,登记各中断源请求信号:=1,有中断请求;,=0,无中断请求。,CPU响应中断后,TI,RI标志必须软件清零,其余中断标志,自动清零。,外部中断触发方式选择位:IT0、IT1,=1:负边沿触发中断请求;,=0:低电平触发中断请求。,3、中断允许控制(,IE,),EX0,ET0,EX1,ET1,ES,X,X,EA,(MSB),(LSB),中断允许控制位:,=1,开中断;,=0,关中断。,总允许开关,源允许开关,例:允许,CPU,响应,INT0,的中断请求,SETB EX0,SETB EA,4、2级中断的优先级控制(IP),对于每,1,个中断源,均可通过对,IP,的设置来确定其优先等级。,置,1,为高优先级,清,0,为低优先级。,PX0,PT0,PX1,PT1,PS,X,X,X,(MSB),(LSB),同级的中断优先级顺序为:,外部中断,0 T0,中断 外部中断,1 T1,中断 串行口中断,高级,低级,例如,某软件中对寄存器,IE,、,IP,设置如下,:,MOV IE,8FH,MOV IP,06H,则此时该系统中的中断优先次序为什么,?,答,:,1,、除串口中断禁止外,其余均允许。,1,1,1,1,ES,X,X,1,中断允许控制位:,=1,开中断;,=0,关中断。,2、允许中断源的中断优先次序为:,T0,INT1,INT0,T1,高级别,低级别,0,1,1,0,0,X,X,X,PX0,PT0,PX1,PT1,PS,X,X,X,二、中断响应的条件、过程,1.中断响应的条件,单片机响应中断的条件为中断源有请求(中断允许寄存器IE相应位置1),且CPU开中断(即EA=1)。,2.,中断响应过程,单片机一旦响应中断,,自动,转到各中断源对应的中断服务程序的,入口地址,执行中断服务程序。,各中断源中断服务程序的入口地址,中断源,入口地址,外部中断,0,0003H,T0中断,000BH,外部中断,1,0013H,T1中断,001BH,串行口中断,0023H,3、中断返回,中断返回指令:,RETI,=RET指令+通知CPU中断服务已结束,思考题,1、MCS-51单片机的中断源有几个?分别是什么?各中断源所对应的中断服务程序的入口地址是什么?,2、寄存器IE、IP和TCON的全称是什么?作用是什么?,2-9 MCS-51单片机的串行口,一、MCS-51串行口的结构,发送器,接收器,说明:,1,、MCS-51单片机内部有1个功能很强的,全双工,串行口。,2、发送器:并,串数据格式转换,添加标识位和校验位,一帧数据发送结束,设置发送结束标志,申请中断。,3、接收器:串,并,数据格式转换,删除标识位和校验位,保存有效数据,设置接收结束标志,申请中断。,4、控制器:,接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。,5、串行口数据缓冲器SBUF,SBUF是两个在物理上独立的接收、发送缓冲器,可同时发送、接收数据。,二、串行口控制,1、串行口控制寄存器SCON,RI,TI,RB8,TB8,REN,SM2,SM1,SM0,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,SM0、SM1:串行口工作方式选择位,SM2:多机控制位,用于多机通讯,REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收,TB8:发送的第9位数据位,可用作校验位和地址/数据标识位,RB8:接收的第9位数据位或停止位,TI:发送中断标志,发送一帧结束,TI=1,必须软件清零,RI:接收中断标志,接收一帧结束,RI=1,必须软件清零,2、电源控制寄存器PCON,SMOD,GF1,GF0,PD,IDL,D,7,D,6,D,5,D,4,D,3,D,2,D,1,D,0,PCON的最高位SMOD是串行口波特率系数控制位。SMOD=1时,波特率增大一倍。其余各位与串行口无关。,三、串行接口的工作方式,1、方式0,为同步移位寄存器方式,用于,扩展并行I/O接口,,波特率是固定的,(1,)方式,0,输出,8051,(1,)方式,0,输入,2、方式1、2、3共性问题,写入,SBUF,采样,(a)发送时序图,TXD,数据输出,TI,D,0,D,1,D,2,D,3,D,4,D,5,D,6,D,7,停止位,起始位,RXD,输入数据,(b)接收时序图,D,0,D,1,D,2,D,3,D,4,D,5,D,6,D,7,停止位,起始位,RI,检测,负跳变,RXD:接收数据端。,TXD:发送数据端。,发送:写入SBUF,同时启动发送,一帧发送结束,TI=1。,接收:REN=1,允许接收。将接收数据装入SBUF,并使RI=1。,3,、方式,1,、,2,、,3,差别,数据位不同。,波特率可变、固定。,方式,1,、,3,波特率:,B=(2,SMOD,/32)T1,溢出率。,方式,2,波特率:,B=(,2,SMOD,/64)fosc,4,、波特率的选择,思考题:51系列单片机主要有哪些部分组成?各自作用是什么?,第,3,章,MCS-51,单片机指令系统,寻址方式,指令系统,3-1 MCS-51指令格式及寻址方式,一、汇编语言指令格式,1.,标号:指令的符号地址,2.,操作码:指明指令功能。,3.,操作数:指令操作对象,(,立即数、寄存器、存储器,),4.,注释行:说明指令在程序中的作用。,操作码和操作数是指令主体。,标号:,操作码,操作数,1,,操作数,2,;注释,二、寻址方式,寻址方式,就是寻找操作数地址的方式。寻址方式的多少是反映指令系统优劣的主要指标之一。,在 MCS-51单片机指令系统中,有以下7种寻址方式:,(1)立即寻址;,(2)直接寻址;,(3)寄存器寻址;,(4)寄存器间接寻址;,(5)基址寄存器加变址寄存器间接寻址;,(6)相对寻址;,(7)位寻址。,1、立即寻址,立即寻址方式是指操作数包含在指令字节中。跟在指令操作码后面的数就是参加运算的数,该操作数称为立即数。立即数有一字节和二字节两种。,例如:,MOV A,3AH,;,将立即数3AH传送到累加器A中,MOV DPTR,0DFFFH,“,#”,表示为立即数,2、直接寻址,指令中直接给出操作数所在的,存储器地址,,以供取数或存数的寻址方式称为直接寻址。,例:,MOV A,,40H,;把片内RAM地址为40H单元的内容送到A中。,直接寻址方式中可以访问 3 种存储器空间:,(1)内部数据存储器的低 128 个字节单元(00H7FH);,(2)特殊功能寄存器;,(3)位地址空间。,3、寄存器寻址,在该寻址方式中,参加操作的数存放在寄存器里。,寄存器包括8个工作寄存器R0R7,累加器A,寄存器B、,数据指针DPTR和布尔处理器的位累加器C。,例:MOV,A,R0,;把寄存器R0中的内容传送到累加器A中,4、寄存器间接寻址,在这种寻址方式中,寄存器的内容为操作数的,地址,。,例:,MOV,A,,R0,;将以工作寄存器R0中的内容为地址的片内RAM单元的数据传送到A中去,注意:,寄存器间接寻址只能使用寄存器,R0、R1,作为地址指针,寻址内部RAM区的数据。,为间址符,5、基址加变址寻址,这种寻址方式用于,访问程序存储器中的数据表格,它以基址寄存器DPTR或PC的内容为基本地址,加上变址寄存器A的内容作为操作数的地址。,例如:MOVC A,DPTR+A,6、相对寻址,相对寻址是以当前程序计数器PC值加上指令规定的偏移量rel,而构成实际操作数地址的寻址方法。,它用于访问程序存储器,常出现在相对,转移指令,中。,目的地址=当前PC值+rel,7、位寻址,位寻址是在位操作指令中直接给出位操作数的地址,可以对片内RAM中的,128位,和特殊功能寄存器SFR中的,93位,进行寻址。,例如:SETB,PSW.3,;(PSW.3)1,比较:,MOV C,40H;C 40H,MOV A,40H;A 40H,位地址,字节地址,7 种寻址方式及使用空间,三、指令分类,按指令的功能,MCS-51 指令系统可分为下列 5 类,共计111条指令:,(1)数据传送;,(2)算术运算;,(3)逻辑运算;,(4)位操作;,(5)控制转移。,四、符号的约定意义,Rn:当前选定的寄存器区中的 8 个工作寄存器R0-R7,n=0-7。,Ri:当前选定的寄存器区中的 2 个寄存器R0、R1,i=0、1。,Direct:8位内部RAM单元的地址(00H-7FH)或特殊功能寄存器地址。,data:指令中的 8 位常数。,data16:指令中的 16 位常数。,Addr16:16 位的目的地址,用于LJMP,LCALL指令。,Addr11:11位的目的地址,用于AJMP,ACALL指令。,Rel:8 位带符号的偏移量字节,用于所有条件转移指令中。,Bit:部数据RAM或特殊功能寄存器中的可直接寻址位。,3-2 数据传送类指令,传送类指令不影响PSW(除P位)。,数据传送类指令一览表,数据传送类指令一览表,例:顺序执行下列指令序列,求每一步执行结果。,该数不为0、不为负,则必为正数,MOV TH1,#3CH;,4、控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。,BIT-JMP:JB ACC.,3、动态显示器接口电路,(2)串行口扩展方法,功能强:实时响应速度;,例:设双字节数 X 存在片内RAM 41H、40H单元,Y存在42H、43H单元,编程求 Z=X+Y,并存入片内RAM单元44H、45H、46H。,例:将位地址20H的一位数传送到位地址30H中:MOV C,20H MOV 30H,C,2-9 MCS-51单片机的串行口,POP DPH ;,功能强:实时响应速度;,MOV A,#0,3-6布尔操作类指令,SETB TR1 ;,从物理结构上可分为:片内、片外程序存储器,例:顺序执行下列指令序列,求每一步执行结果,。,MOV A,,,#30H,MOV 4FH,,,A,MOV R0,,,#20H,MOV R0,,,4FH,MOV 21H,,,20H,;A=30H,;(4FH)=30H,;R0=20H,;(20H)=30H,;(21H)=30H,解2:,MOV R0,#60H,MOV A,R0,解1:MOV A,60H,例:用两种寻址方式将片内RAM 60H单元的数据传送给累加器A。,例:若在外部程序存储器中,TAB,单元开始依次存放,0-9,的平方值,数据指针,DPTR=3A00H,,用查表指令取得,2003H,单元的数据后,要求保持,DPTR,中的内容不变。,ORG2000H,TAB:DB 00,,,01,,,04,,,09,,,,,81H,;平方表,MOV A,,,#03H,;,A03H,PUSH DPH,;保护,DPTR,高,8,位入栈,PUSH DPL,;保护,DPTR,低,8,位入栈,MOV DPTR,,,#TAB,;确定表首地址(基地址),MOVC A,,,A+DPTR,;,A(TAB+03H),POP DPL,;弹出,DPTR,低位,POP DPH,;弹出,DPTR,高位,执行结果:,A,09H,,,DPTR=3A00H,。,例:,内部RAM 2AH和2BH单元中存放的ASCII码,转换为压缩的BCD码存放在20H单元中。,MOVA,#0;A=0,MOVR1,#2BH;R1=2BH,MOVR0,#2AH ;R0=2AH,XCHDA,R1;A=05H,SWAP A ;A=50H,XCHDA,R0;A=58H,XCHA,20H ;(20H)=58H,2BH,35H,2AH,38H,XX,20H,XX,58H,3-3 算术运算类指令,一、加、减法指令,目的操作数 源操作数,影响相应标志位,例:设双字节数,X,存在片内,RAM 41H,、,40H,单元,,Y,存在,42H,、,43H,单元,编程求,Z=X+Y,,并存入片内,RAM,单元,44H,、,45H,、,46H,。,ADDS:MOV A,40H,ADD A,42H,MOV 44H,A,MOV A,41H,DDC A,43H,MOV 45H,A,MOV A,#0,ADDC A,#0,MOV 46H,A,RET,;,取被加数低字节,;加上加数低字节,;保存和的低字节,;取被加数高字节,;加上加数高字节,;保存和的高字节,;求高字节进位,;子程序结束,二、十进制调整指令和乘、除法指令,DA A ;对A寄存器,加6,调整,例:,MOV A,36H,ADD A,45H,DA A,0 0 1 1 0 1 1 0 36,0 1 0 0 0 1 0 1 45,0 1 1 1 1 0 1 1 7B,0 0 0 0 0 1 1 0 06,+,+,1 0 0 0 0 0 0 1 81,DA A加6调整,MUL AB ;BA=AB,若乘积大于,FFH,,则溢出标志,OV,置,1,,否则,OV,清零。乘法指令执行后进位标志,CY,总是零,即,CY=0,。,DIV AB ;AAB,之商,,BAB,之余数,进位标志位,CY,和溢出标志位,OV,均被清零。若,B,中的内容为,0,时,溢出标志,OV,被置,1,,即,OV=1,,而,CY,仍为,0,。,例:利用除法指令把累加器A中的8位二进制数转换为BCD数,并以压缩形式存放在内部RAM区M,1,、M,2,单元中。,MOV B,64H ;除数100 送B,DIV AB,;得百位数,MOV M,1,A ;百位数存于M1中,MOV A,0AH ;取除数10,XCH A,B ;上述余数与除数交换,DIV AB ;得十位数和个位数,SWAP A ;十位数存于A的高4位,ADD A,B ;组成压缩BCD数,MOV M,2,A ;十、个位压缩BCD数存M,2,若上述程序执行前,:A=A8H(168),则执行后,:(M1)=01H,(M2)=68H,。,3-4,逻辑运算及移位类指令,目的操作数 源操作数,目的操作数 源操作数,逻辑操作指令表,例:A=01B,表示随机状态,为1或0,执行下述一组指令执行后A的值如何?XRL A,#0C0H;将累加器A的内容D,7,、D,6,取反,ORL A,#03H;将累加器A的内容D,1,、D,0,置1ANL A,#0E7H;将累加器A的内容D,4,、D,3,清0 解:执行上述指令后,A=100011B。,思考:,如何将累加器A中的数据高4位清0,低位不变?如何将寄存器R2中的数据奇数位取反,偶数位不变?,例:设A=43H,CY=0,则执行指令:,RL A ;A=86H,CY=0,RLC A ;A=0CH,CY=1,RR A ;A=06H,CY=1,RRC A ;A=83H,CY=0,3-5 控制转移类指令,一、无条件转移指令,二、条件转移指令,例:将片外RAM首地址为DATA1的一个数据块传送到片内RAM首地址为DATA2的存储区中,当数据块中有0时停止传送,MOV R0,#DATA1 ;R0作为外部数据块的地址指针,MOV R1,#DATA2 ;R1作为内部数据块的地址指针,LOOP:MOVX A,R0 ;取外部RAM数据送入A,JZ HERE,;数据为零则终止传送,MOV R1,A ;数据传送至内部RAM 单元,INC R0 ;修改指针,指向下一数据地址,INC R1,SJMP LOOP ;循环取数,HERE:,MOV R7,#0,例:,当从,P1,口输入数据为,01H,时,程序继续执行,否则等待,直到,P1,口出现,01H,。,MOV A,,,#01H,;立即数,01H,送,A,WAIT,:,CJNE A,,,P1,,,WAIT,;,P101H,,则等待,MOV R0,,,#2,.,例:将内部RAM中从DATA单元开始的 10 个无符号数相加,相加结果送SUM 单元保存。设相加结果不超过8位二进制数,则相应的程序如下:,解:MOV R0,0AH ;给 R0 置计数器初值,MOV R1,DATA ;数据块首址送R1,CLR A ;A清零,LOOP:ADD A,R1 ;加一个数,INC R1 ;修改地址,指向下一个数,DJNZ R0,LOOP,;R0 减 1,不为零循环,MOV SUM,A ;存 10 个数相加和,三、子程序调用与返回指令,(1)RET 指令必须作子程序的最后一条指令;,RETI指令必须作中断服务程序的最后一条指令。,(2)RET指令只能恢复返回地址,RETI指令除恢复断点地址外,还恢复CPU响应中断时硬件自动保护的现场信息。执行RETI指令后,将清除中断响应时所置位的优先级状态触发器,使得已申请的同级或低级中断申请可以响应。,3-6布尔操作类指令,MCS-51在硬件上设置了一个,独立的布尔处理器,也称为位处理机有自己相应的累加器,即进位标志位CY。,有自己的存储器空间,即内部RAM的位寻址区的128位和特殊功能寄存器SFR中的可位寻址的寄存器中93位。,例:将位地址20H的一位数传送到位地址30H中:MOV C,20H MOV 30H,C,X,X,例:使仪表蜂鸣器间断发声的程序。,N1:CLR P2.3;BEEP响,CALLDELAY1;延时,SETB P2.3;BEEP不响,CALLDELAY2;延时,SJMPN1,影响标志位的指令,第4章 MCS-51汇编语言程序设计,伪指令,汇编语言程序设计,4.1 伪 指 令,一、汇编起始指令 ORG,指令格式:ORG nn,功能:指明后面的程序或数据块的起始地址。,二、等值指令EQU,指令格式:字符名称 EQU 数字或汇编符号,功能:使指令中的字符名称,等价,于给定的数字或汇编符号。,三、定义字节指令DB,指令格式:标号:DB 8位二进制数表,功能:把 8 位二进制数表依次存入从标号开始的连续的存储单元中。,四、汇编结束指令
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服