![[工学]09单片机——第3章——指令系统.ppt_第1页](http://file.renrendoc.com/FileRoot1/2018-12/27/ad21f22a-de77-4ee0-9a30-3a896c8cae6a/ad21f22a-de77-4ee0-9a30-3a896c8cae6a1.gif)
![[工学]09单片机——第3章——指令系统.ppt_第2页](http://file.renrendoc.com/FileRoot1/2018-12/27/ad21f22a-de77-4ee0-9a30-3a896c8cae6a/ad21f22a-de77-4ee0-9a30-3a896c8cae6a2.gif)
![[工学]09单片机——第3章——指令系统.ppt_第3页](http://file.renrendoc.com/FileRoot1/2018-12/27/ad21f22a-de77-4ee0-9a30-3a896c8cae6a/ad21f22a-de77-4ee0-9a30-3a896c8cae6a3.gif)
![[工学]09单片机——第3章——指令系统.ppt_第4页](http://file.renrendoc.com/FileRoot1/2018-12/27/ad21f22a-de77-4ee0-9a30-3a896c8cae6a/ad21f22a-de77-4ee0-9a30-3a896c8cae6a4.gif)
![[工学]09单片机——第3章——指令系统.ppt_第5页](http://file.renrendoc.com/FileRoot1/2018-12/27/ad21f22a-de77-4ee0-9a30-3a896c8cae6a/ad21f22a-de77-4ee0-9a30-3a896c8cae6a5.gif)
已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一个机器周期等于是一个机器周期等于是1212个振个振 荡周期,当晶振为荡周期,当晶振为12MHz12MHz时,时, 则一个机器周期是?则一个机器周期是? 1 复位电路工作原理复位电路工作原理 手动复位 2 P0P0口内部电路口内部电路 P0口某一位的结构图如下图所示,它由一个 输出锁存器、两个三态输入缓冲器、一个转换 开关MUX、一个输出驱动电路(T1和T2)和一个 与门及一个非门组成。 3 (1) P0口用作通用I/O口 MUX与锁存器的Q端接通,与门输出为0 ,T1截止,输出驱动级就工作在需外接上拉电 阻的漏极开路方式。 P0口用作输出口 CPU在执行输出指令时,内部数据总线 的数据在“写锁存器”信号的作用下,由D端进入 锁存器,取反后出现在Q端,再经过T2反向, 则P0.X引脚上的数据就是内部总线的数据。由 于T2为漏极开路输出,故此时必须外接上拉电 阻。 4 P0口用作输入口 数据可以读自端口的锁存器,也可以读 自端口的引脚,这要看输入操作执行的是“读 锁存器”指令还是“读引脚”指令。 方式1:读引脚。CPU在执行“MOV”类输入 指令时(如:MOV A , P0),内部产生的操作 信号是“读引脚”。P0.X引脚上的数据经过缓 冲器2读入到内部总线。注意,在读引脚时, 必须先向电路中的锁存器写入1,使T2截止 ,P0.X引脚处于悬浮状态,可作为高阻抗输 入。 5 方式2:读锁存器。 CPU在执行“读-改-写”类输入指令时(如: ANL P0, A ),内部产生的操作信号是“读 锁存器”,锁存器中的数据经过缓冲器1送 到内部总线,然后与A的内容进行逻辑“与 ”,结果送回P0的端口锁存器并出现在引 脚。除了MOV类指令外,其他的读口操 作指令都属于这种情况。 6 (3)P0口小结 P0口既可作地址/数据总线使用,也可作通用 I/O口使用。当P0口作地址/数据总线使用时,就不能 再作通用I/O口使用了。 P0口作输出口使用时,输出级属漏极开路,必 须外接上拉电阻,才有高电平输出。 P0口作输入口读引脚时,应先向锁存器写1,使 T2截止,不影响输入电平。 漏极开路的8位准双向I/O口,每位能驱动8个LS型 TTL负载。 7 P1P1口的内部电路口的内部电路 P1P1口是唯一的单功能口,仅能作为通用口是唯一的单功能口,仅能作为通用I/OI/O口使用。由口使用。由 于在其输出端接有上拉电阻,故可以直接输出而无需外于在其输出端接有上拉电阻,故可以直接输出而无需外 接上拉电阻。接上拉电阻。 同同P0P0口一样,当作输入口时,必须先向锁存器写口一样,当作输入口时,必须先向锁存器写“1”1” ,使场效应管,使场效应管T T截止。截止。 每位能驱动每位能驱动4 4个个LSLS型型TTLTTL负载。负载。 8 P2P2口内部电路口内部电路 图中的控制信号C决定转换开关MUX的位置:当C=0时, MUX拨向下方,P2口为通用I/O口;当控制信号C=1时, MUX拨向上方,P2口作为地址总线使用。 在实际应用中,P2口通常作为高8位地址总线使用。 每位能驱动4个LS型TTL负载。 9 P3P3口内部电路口内部电路 P3口用作通用I/O口时,第二输出功能信号W=1,P3口的 每一位都可定义为输入或输出,其工作原理同P1口类似。 在真正的应用电路中,P3口的第二功能显得更为重要 。 每位能驱动4个LS型TTL负载。 10 第三讲 第三章第三章 MCS-51MCS-51单片机指令系统单片机指令系统 要点:要点: MCS-MCS-单片机指令系统概述单片机指令系统概述 MCS-MCS-单片机寻址方式单片机寻址方式 MCS-MCS-汇编语言指令系统汇编语言指令系统 难点:难点: 寻址方式寻址方式 指令应用指令应用 11 第三讲 3.1 3.1 概述概述 指令:指令:是是CPUCPU根据人的意图执行某种操作的命令。根据人的意图执行某种操作的命令。 程序设计语言:程序设计语言:是实现人机交换信息的基本工具,是实现人机交换信息的基本工具, 分为机器语言、汇编语言和高级语言。分为机器语言、汇编语言和高级语言。 机器语言:机器语言:用二进制编码表示每条指令,是计算用二进制编码表示每条指令,是计算 机能直接识别和执行的语言。机能直接识别和执行的语言。 汇编语言:汇编语言:是用助记符、符号和数字等表示指令的是用助记符、符号和数字等表示指令的 程序设计语言。它与机器语言指令一一对应。程序设计语言。它与机器语言指令一一对应。 12 指令系统指令系统 一种单片机的全部指令集合称为指令系统。一种单片机的全部指令集合称为指令系统。 指令系统指令系统体现了单片机的性能体现了单片机的性能 是应用单片机程序设计的基础是应用单片机程序设计的基础 13 3.1.1 3.1.1 指令格式指令格式 89C5189C51汇编语言指令格式汇编语言指令格式 标号:操作码 目的操作数,源操作数;注释 汇编语言指令对应的二进制代码格式汇编语言指令对应的二进制代码格式 单字节指令单字节指令 49 49条条 双字节指令双字节指令 46 46条条 三字节指令三字节指令 19 19条条 114条 14 单字节指令单字节指令 49 49条条 操作码和操作数包含在一个字节中。操作码和操作数包含在一个字节中。 1 1、无操作数的单字节指令、无操作数的单字节指令 inc dptr ; inc dptr ; 指令码为指令码为A3HA3H 2 2、含有操作数寄存器编码的单字节指令、含有操作数寄存器编码的单字节指令 MOV A , MOV A , RnRn ;令码为;令码为11101xxx11101xxx ; ; 其中其中xxxxxx为相应的寄存为相应的寄存 ;器号的;器号的n n值。值。 15 双字节指令双字节指令 46 46条条 用一个字节表示操作码,另一个字节表示操作数用一个字节表示操作码,另一个字节表示操作数 或操作数所在的地址或操作数所在的地址 mov a , #datamov a , #data 把第二个字节取出来放入第一个字节的累加把第二个字节取出来放入第一个字节的累加 器器a a中。指令码:中。指令码:“ “ 74H data ”74H data ” 16 三字节指令三字节指令 16 16条条 一个字节操作码,两个字节操作数一个字节操作码,两个字节操作数 mov dptr,#data16 ; 16mov dptr,#data16 ; 16位数据位数据 mov direct,#data mov direct,#data ;8 8位地址和数据位地址和数据 cjne a,#data,rel cjne a,#data,rel ;8 8位数据和地址位数据和地址 lcall addr16 lcall addr16 ;1616位地址位地址 17 助记符意义 助记符助记符意义意义助记符助记符意义意义 MOVMOV数据传输数据传输MULMUL乘法乘法 MOVCMOVC程序存储器传程序存储器传A ADIVDIV除法除法 MOVXMOVX外部数据传输外部数据传输DADA十进制调整十进制调整 PUSHPUSH压入堆栈压入堆栈AJMPAJMP无条件转移无条件转移 POPPOP堆栈弹出堆栈弹出LJMPLJMP长转移长转移 XCHXCH数据交换数据交换SJMPSJMP短转移短转移 XCHDXCHD交换低交换低4 4位位JMPJMP相对转移相对转移 SWAPSWAP高低半字节交换高低半字节交换JZJZ判判A A为为0 0转移转移 ANLANL与运算与运算JNZJNZ判判A A为非为非0 0转移转移 ORLORL或运算或运算JCJC判判CyCy为为1 1转移转移 XRLXRL异或运算异或运算JNCJNC判判CyCy为为0 0转移转移 18 助记符意义 助助记记记记符符意意义义义义助助记记记记符符意意义义义义 SETBSETB置位置位JBJB直接位为直接位为1 1转移转移 CLRCLR清零清零JNBJNB直接位为直接位为0 0转移转移 CPLCPL取反取反JBCJBC 直位为直位为1 1转移,并清该位转移,并清该位 RLRL循环左移循环左移CJNECJNE比较不相等转移比较不相等转移 RLCRLC带进位循环左移带进位循环左移DJNZDJNZ减减1 1不为不为0 0转转 RRRR循环右移循环右移ACALLACALL 绝对调用子程序绝对调用子程序 RRCRRC带进位循环右移带进位循环右移LCALLLCALL长调用子程序长调用子程序 ADDADD加法加法RETRET子程序返回子程序返回 ADDCADDC 带进位加法带进位加法RETIRETI中断子程序返回中断子程序返回 SUBBSUBB带进位减法带进位减法NOPNOP空操作空操作 INCINC加加1 1DECDEC减减1 1 19 寻址方式中常用符号注释寻址方式中常用符号注释 Rn表示当前选定寄存器组的工作寄存器R0R7,n=07 Ri表示作为间接寻址的地址指针R0R,i=0,1 #data表示8位立即数,即00H0FFH。 #data16表示16位立即数,即0000H0FFFFH。 Direct8位直接地址,可为片内RAM区某单元或某专用功能寄存器的地址。 Addr1111位地址,可表示大于2KB范围内寻址,用于ACALL和AJMP指令中。 Addr1616位地址,表示大于64KB范围内寻址,用于LCALL和LJMP指令中。 Rel带符号8位地址偏移量(-128+127),用于SJMP和条件转移指令。 Bit片内RAM或SFR的直接寻址位地址。 间接寻址方式中,表示间接寻址的符号。 加在位地址之前,表示对该位先取反再参与操作。 (X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容。 (X)由X间接寻址的单元的内容,即X指向的地址单元中的内容。 $当前指令所在地址 指令中数据的传送方向,将箭头右边的内容送入箭头左边的单元。 20 3.2 3.2 寻址方式寻址方式 基本概念 寻址就是寻找指令中操作数或操作数所在地址。 寻址方式就是找到存放操作数的地址,并把 操作数提取出来的方法,即寻找操作数或者是操作 数地址的方法。 8051单片机寻址方式共有7种: 寄存器寻址、 直接寻址、 立即数寻址 寄存器间接寻址、 变址寻址、 相对寻址 位寻址。 21 寄存器寻址寄存器寻址 MOV A MOV A,R1 R1 ;AR1AR1 直接寻址直接寻址 MOV A MOV A,81H 81H ;AA(81H81H) MOV AMOV A,SP SP ;ASPASP 立即数寻址立即数寻址 MOV DPTR MOV DPTR,#1638H #1638H ;DPH16DPH16,DPL 38HDPL 38H 寄存器间接寻址寄存器间接寻址 MOV RO MOV RO,#30H #30H ; R0(30H); R0(30H) MOV AMOV A,R0R0 ; A(R0); A(R0)即即A(30H)A(30H) 变址寻址变址寻址 MOV DPTR,#0500H MOV DPTR,#0500H ; DPTR; DPTR 500H500H MOV A,#03H MOV A,#03H ; A3; A3 MOVC A,A+DPTRMOVC A,A+DPTR ; A(500H+3); A(500H+3) 相对寻址相对寻址 SJMP 20H SJMP 20H ; ; 转跳至:转跳至:PCPC+20HPCPC+20H 位寻址位寻址 MOV C,7FH MOV C,7FH ; Cy(7FH); Cy(7FH) MOV C,ACC.7MOV C,ACC.7 ; CyACC.7 ; CyACC.7 22 3.33.3数据传输与交换数据传输与交换 23 查表指令查表指令MOVC A , A + DPTR MOVC A , A + PC 2000H0 2001H1 2002H4 2003H9 2004H16 2005H25 2006H36 2007H49 2008H64 2009H81 MOV A,#6MOV A,#6 ; ;待查项待查项 MOV DPTR,#2000HMOV DPTR,#2000H ; ; DPTRDPTR为表头为表头 MOVC A,A+DPTR MOVC A,A+DPTR ; ; AA结果结果 24 交换指令交换指令 低4位 助记符格式助记符格式 相应操作相应操作 XCH A , Rn XCH A , Rn A A Rn Rn XCH A , direct XCH A , direct A A ( direct )( direct ) XCH A , Ri XCH A , Ri A A ( Ri ) ( Ri ) XCHD A , Ri XCHD A , Ri A A 3-03-0 ( Ri )( Ri )3-03-0 SWAP A SWAP A A A 3-03-0 A A 7-47-4 25 堆栈指令堆栈指令(2 2条)条) 助记符格式助记符格式相应操作相应操作 PUSH direct PUSH directSP SP+1SP SP+1,(SP) (direct)(SP) (direct) POP direct POP directdirect (SP), SP SP-1direct (SP), SP SP-1 注意: 进栈堆栈指针SP先加1,并指向栈顶的上一个空单 元,然后再将直接地址(direct)寻址的单元内容压入当 前SP所指示的堆栈单元中。该操作不影响标志位P。 出栈先将堆栈指针(SP)所指示的内部RAM(栈顶)单 元中内容送入由直接地址寻址的单元中,然后再将栈指 针(SP)减1并回送SP。该操作不影响标志位P。26 单片机堆栈的特点单片机堆栈的特点 需设堆栈指针,如不重置需设堆栈指针,如不重置SP,SP,复位后为复位后为70H70H; 堆栈操作遵循堆栈操作遵循“先进后出先进后出”或或“后进先出后进先出”的原则;的原则; 堆栈操作堆栈操作必须是字节型,且只能直接寻址必须是字节型,且只能直接寻址; 堆栈通常用于临时保护数据及子程序调用时保护现场和堆栈通常用于临时保护数据及子程序调用时保护现场和 恢复现场。恢复现场。 如果系统中设有中断,则如果系统中设有中断,则必须设定堆栈指针必须设定堆栈指针,因,因 为中断服务程序是自动将中断服务程序地址送入堆为中断服务程序是自动将中断服务程序地址送入堆 栈的。栈的。 27 算术运算指令算术运算指令 28 算术运算指令算术运算指令 29 逻辑运算及移位指令 30 逻辑运算及移位指令 31 逻辑运算及移位指令 注意:移位指令只与累加器A有关 32 NOP NOP ;(PC)(PC)+1(PC)(PC)+1 空操作指令是一条单字节单周期指空操作指令是一条单字节单周期指 令。它控制令。它控制 CPUCPU不做任何操作,仅仅是消不做任何操作,仅仅是消 耗这条指令执行所需要的一个机器周期的耗这条指令执行所需要的一个机器周期的 时间,不影响任何标志位,故称为空操作时间,不影响任何标志位,故称为空操作 指令。指令。NOPNOP指令在设计延时程序、拼凑精指令在设计延时程序、拼凑精 确延时时间及在程序等待或修改程序等场确延时时间及在程序等待或修改程序等场 合是很有用的。合是很有用的。 关于空操作指令关于空操作指令 33 【例25】 利用DJNZ指令和NOP指令编写一循环程序,实 现延时1ms(晶振频率为12MHz)。 解:程序如下: DELAY:MOVA,#0AH ;1s LOOP:MOV R2,#30 H;1s DJNZR2,$ ;248s DJNZ R1,LOO P ;1s (1+248+1)10 NOP ;1s NOP;1s NOP;1s NOP;1s NOP;1s RET;2s 总的延时时间为:1+(1+248+1)10+7=998s,若再加 上调用本子程序的调用指令所用的时间2s共1000s,即 1ms。 34 返回指令返回指令返回指令共返回指令共两条:一条是对应两条调用指令:一条是对应两条调用指令 的子程序返回指令的子程序返回指令RETRET,另一条是对应从中断服务程序的另一条是对应从中断服务程序的 返回指令返回指令RETIRETI。 35 位操作指令位操作指令 1 1、位传输:、位传输: MOV C , bitMOV C , bit MOV bit , CMOV bit , C 2 2、位逻辑运算:、位逻辑运算:ANL C,bit ORL C,bit 3、位清0指令: CLR bit 4、位置1指令: SETB bit 5、位取反指令:CPL bit 6、位条件转移: JB bit,rel JNC rel 36 作用:作用: 伪指令不要求计算机做任何操作;伪指令不要求计算机做任何操作; 也没有对应的机器码,不产生目标程序;也没有对应的机器码,不产生目标程序; 不影响程序的执行;不影响程序的执行; 功能:功能: 帮助进行汇编的一些指令,它主要用来指定程序帮助进行汇编的一些指令,它主要用来指定程序 或数据的起始位置,给出一些连续存放数据的地址或或数据的起始位置,给出一些连续存放数据的地址或 为中间运算结果保留一部分存储空间以及表示源程序为中间运算结果保留一部分存储空间以及表示源程序 结束等等。结束等等。 不同版本的汇编语言,伪指令的符号和含义可能不同版本的汇编语言,伪指令的符号和含义可能 有所不同。有所不同。 伪指令伪指令 37 1 1、启始指令、启始指令 格式:格式: 符号:符号: ORG ORG 地址地址( (十六进制表示十六进制表示) ) 例:例: ORG 2000HORG 2000H STARTSTART:MOV AMOV A,#7FH#7FH 38 2 2、字节定义、字节定义 格式:格式: 标号:标号: DB DB 项或项表项或项表 例:例: ORG 2000HORG 2000H TAB1TAB1: DB 30HDB 30H,8AH8AH,7FH7FH,7373 DB 5 DB 5,AA,BCDBCD 39 3 3、字定义、字定义 格式:格式: 标号:标号: DW DW 项或项表项或项表 例:例: ORG 1500HORG 1500H TAB2TAB2: DW 1234HDW 1234H,80H80H 汇编以后:汇编以后:(1500H)=12H(1500H)=12H, (1501H)=34H(1501H)=34H, (1502H)=00H(1502H)=00H, (1503H)=80H(1503H)=80H 40 4 4、等值指令、等值指令 格式:标号:格式:标号: EQU EQU 项项 例:例: TATA B1B1: EQU 1000HEQU 1000H TATA B2B2: EQU 2000HEQU 2000H 用用EQUEQU伪指令对某标号赋值后,该标号的伪指令对某标号赋值后,该标号的 值在整个程序中不能再改变。值在整个程序中不能再改变。 41 5 5、位定义、位定义 格式:标号:格式:标号: BIT BIT 位地址位地址 例:例: close_0close_0:BIT P0.0BIT P0.0 open_0open_0:BIT P1.0 BIT P1.0 经以上伪指令定义后,在程序中就可以把经以上伪指令定义后,在程序中就可以把 close_0close_0和和open_0open_0作为位地址来使用。作为位地址来使用。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿矿山通讯线路布设规程
- 北魏九锡:溯源、名物考辨与物化礼乐视角下的礼制探微
- 北京山区沟域经济:现状、挑战与政策驱动发展路径
- 创新驱动发展:扬州高新技术企业创新能力、创新绩效与企业绩效的关联探究
- AKULA-T:解锁多核环境下温度感知线程放置的创新框架
- 智慧城市建设指标-洞察及研究
- 传统与现代结合的生产工艺-洞察及研究
- 基于大数据分析的铁路安全风险评估-洞察及研究
- 机器学习提升预报精度-洞察及研究
- 污染水体生物修复技术-第1篇-洞察及研究
- GB/T 10081-2005矩形内花键长度系列
- GA/T 1968-2021法医学死亡原因分类及其鉴定指南
- GA 1551.6-2021石油石化系统治安反恐防范要求第6部分:石油天然气管道企业
- 各类机载娱乐系统快速操作指南6.24制
- 《古筝的艺术流派》
- 徐州的传统民俗
- DDI高绩效辅导经典课程讲义
- 公共秩序部车辆管理办法
- 服装企业生产工序分析
- 我的暑假生活PPT模板
- DB11-T 775-2021多孔混凝土铺装技术规程
评论
0/150
提交评论