
MCS-51单片机的指令系统 和时序.ppt
201页第二章MCS-51单片机的指令系统 和时序,本章内容:指令的格式;指令的功能;指令在执行时所包含的操作;指令的长度、执行时间本章目录:,2.0 震荡器、时钟电路和CPU的时序2.1 指令系统概述2.2 寻址方式2.3 数据传送指令2.4 算逻运算和移位指令2.5 控制转移和位操作指令2.6 位操作指令2.7 汇编语言的构成及伪指令,,MCS-51内部有一个高增益反相放大器.在单片机引脚的XTAL1和XTAL2分别是此放大器的输入和输出端.与作为反馈元件的晶体一起构成了一个自激震荡器 如果使用外部震荡器信号,其外来的信号加在XTAL1的引脚上XTAL1,XTAL2,,,,,,,,,,,,,,,XTAL2XTAL1,,,,,,,,NC,外时钟,使用外时钟时的电路连接,3.1.1 震荡器、与时钟电路:,20P,20P,3.1.2 MCS-51单片机的时序,关于时序的基本概念:时序:CPU执行指令时所需控制信号的时间顺序时序图中时间参数的描述: ① 时钟周期; ② 机器周期; ③ 指令周期。
返回,时钟周期 T:时序中最小的时间单位,由外接晶体或外输入时钟来决定其值为石英振荡器频率fosc的倒数 例如:在单片机外接12MH的晶体,则单片机的系统时钟的频率为12M, 时钟周期为1/12µs.,,,,,,T,,机器周期:完成特定功能所需要的时间 机器周期由12个时钟周期构成,为了描述方便将其分6个状态(S1-S6),每个状态又分为P1和P2两拍 既: S1P1,S1P2,S2P1,S2P2,S3P1,S3P2 … S6P1,S6P2 一种描述时序图时间参数的定标方法,,,,,,T,S2,S6,S5,S4,S3,,,,机器周期,P1,,,S1,P2,指令周期:既执行一条指令所需要的时间, 它是时序图中最大的时间单位 在MCS-51系统中,不同的指令它所包含的机器周期数不同.它们分别是: 1,单机器周期指令; 2,双机器周期指令; 3,四机器周期指令假设:我们使用一个12M的晶体震荡器,那么 一个机器周期为:1/12µs×12×1=1µs; 两个机器周期为:1/12µs×12×2=2µs; 四个机器周期为:1/12µs×12×4=4µs。
可见指令的运算速度与它所包含的机器周期数有关.机器周期数越少,执行的速度就越快MCS-51单片机的指令系统除了乘、除法指令为四个机器周期外,其余都是单周期和双周期指令),指令的字节数:MCS-51单片机的指令系统有: 单字节 (占用1个ROM存储单元 — 1个 字节); 双字节 (占用2个ROM存储单元 — 2个字节); 三字节指令(占用3个ROM存储单元 — 3个字节)返回,ROM,ROM,ROM,单字节指令,双字节指令,三字节指令,问 题:,指令的字节数与指令执行的时间是什么关系?指令的字节数越多,其执行的时间就越长?指令的字节数越少,执行就越快?要回答此问题,只能从指令执行的时序中寻找答案,指令特点:在程序存储器ROM中仅占一个存储单元在ALE第一次有效(S2P1)时,从ROM中读取指令的操作码,送入指令寄存器IR中并译码执行在ALE第二次有效时,封锁PC加一,使第二次读数无效一)单字节单周期指令的时序,,,机器周期,,,,,读操作码一,,读操作无效,ALE,返回,S1,S2,S6,S5,S4,S3,【注意】:每一个机器周期出现两次ALE信号;ALE信号对应这从ROM中读指令。
所以在一个机器周期中CPU可以完成两次取指操作;3. 对于单字节单周期的指令,CPU通过译码后封死 PC,取消第二次取指(实际上指令的后半部不做任何工作)指令特点:指令长度为两个字节,并存储在ROM相邻的两个单元中要想完整的将这样的指令执行完,必须从ROM中读两次操作码OP2-2,OP2-1,,n+1n,程序ROM,PC,,,,(二)双字节单周期指令时序,返回,在ALE第一次有效时,CPU 从ROM的n单元中取出指令的第一个字节OP2-1,并送入IR译码,通过译码CPU知道这是一条双字节指令,所以使PC加一,指向n+1单元;在ALE第二次有效时,从ROM的n+1单元取出指令的第二个字节OP2-2送入IR进行译码,并产生对应的操作,最后在S6P2时完成本条指令的运行S1,S2,S6,S5,S4,S3,,,机器周期,,,,,读操作码一,,读操作码二,ALE,,OP2-2,OP2-1,,n+1n,程序ROM,PC,,,,指令特点:单字节,却需要两个机器周期运行 如: INC DPTR DPTR为两个8位的寄存器,加一时,必须分两步完成.既第一步DPL加一,如果DPL加一有进位则还要进行第二步对DPH加一. 参见教科书 : 502页附表Ⅱ。
三)单字节双周期指令的时序,返回,在指令周期的第一个ALE时,将ROM中的操作码OP取出,经IR译码后得知为单字节双周期指令所以一面执行该指令,同时封锁后面三次ALE有效时的PC+1,在第二个机器周期的S6P2时,完成操作S1,S2,S6,S5,S4,S3,,,机器周期1,,,,读操作码,,读无效,S1,S2,S6,S5,S4,S3,,读无效,,读无效,,,,机器周期2,,ALE,小 结,在MCS-51的111条指令中,可以分为六种基本的时序: 1,单字节单周期指令; 4,双字节单周期指令; 2,单字节双周期指令; 5,双字节双周期指令; 3,单字节四周期指令; 6,三字节双周期指令.,返回,2.1 MCS-51指令系统的概述,MCS-51共有111条指令,其长度(字节数)和执行时间(指令周期)各不相同2.1.1 指令格式2.1.2 指令的三种表示形式2.1.3 指令的字节数2.1.4 指令的分类,继续,2.1.1 指令格式:,指令格式:既指令的结构形式操作码,操作数或操作数地址,,由操作码和操作数(或操作数地址)两部分构成举例:MOV A,#0FFH ADD A,R0,返回,指令的表示形式是识别指令的标志。
1,二进制的表示形式:(以“累加器的内容+08H”为例) 00100100B 操作码 OP (加法) 00001000B 操作数DATA(08H)特点: 直接存储在程序存储器ROM中、被CPU直接识别、 运行的指令形式,也称机器码 缺点:不便于人工阅读、记忆和调试修改2.1.2 指令的三种表示形式,2,十六进制表示方式: 它是对二进制形式的一种简化 00100100B 24H 00001000B 08H 在实验室等少数环境下,可以将这种形式作为输入程序的一种辅助手段但是,这种形式的指令格式必须由对应的监控程序把它们翻译成二进制的“机器码”后存入程序存储器并运行二进制表示的形式 十六进制表示的形式,3,指令的“助记符”方式( “汇编格式”): 00100100B 24H 00001000B 08H ADD A,#08H 一种由英文单词或字母、数字来表征指令功能的形式。
便于阅读、书写和交流; 这种 “汇编”格式的指令必须把它“翻译”为二进制形式 “机器码”后才能为CPU所识别和执行;编程者首先使用汇编格式书写“汇编语言源程序”,然后借助于汇编程序将其“编译”为二进制机器码并送入到单片机ROM单元中并由CPU执行二进制表示形式 十六进制表示 汇编格式,返回,2.1.3 指令的字节数,在指令系统中,因寻址方式不同,指令在程序存储器ROM中所占字节数也各不相同分为单字节、双字节和三字节单字节指令(49条):分无操作数、有操作数两种 ①无操作数:如 INC DPTR 10100011B INC A 00000100B 【特点】:操作数隐含在操作码中 ②含有操作数寄存器名称的单字节指令: 如: MOV A,R0 11101000B MOV A,R1 11101001B 【特点】:寄存器名以三位数代码的形式在指令的后三位。
双字节指令(46条):分两种情况:①指令中含有一个操作数.例如:汇编格式: MOV A , #data 机器码: 01110100B data 或: 78H、#data,n,n+1,,mov a, #data,双字节指令在程序存储器的存放示意图,8位的操作数,指令中含有一个8位的操作数的地址 汇编格式: MOV A ,direct 机器码: E5H、direct 如: MOV A ,20H ;将RAM 20H中的数据送A,n,n+1,,mov a, direct,8位的RAM地址,三字节指令(16条):①指令中的操作数为双字节 MOV DPTR,#data16 1001000B,data15-8,data7-0②指令中分别包含1个字节的操作数和1个字节的操作数地址MOV direct ,#data 举例:MOV 20H,#0FFH,,MOV dptr,#data16,,MOV direct, #data,三字节指令在存储器中存放的方式示意图,指令的字节数与指令的运行时间,指令的字节多是否意味着指令周期就长?,从表中可见,指令的字节数与指令周期不是对等的关系,返回,2.1.4 指令的分类,按照指令的功能,可将111条指令分为五大类 1,数据传送类指令 2,算术运算指令 3,逻辑操作和循环移位指令 4,控制转移类指令 5,位操作指令,1,数据传送类指令:完成数据的传送。
【特点】: ①有8位、16位两种传送指令; ②除了以累加器A为目标的传送对奇偶位PSW.P有影响外,其余的传送类指令对PSW无影响2,算术运算指令: 用于操作数的加、减、乘除运算 【特点】:多数情况下:操作数之一在累加器A中,结果也保留在A中,运算结果要影响PSW(进位标志、奇偶和溢出标志等)。
