8051 指令.

Slides:



Advertisements
Similar presentations
主讲人:刘利 交通大学网络控制课程系列 上海交通大学机电控制研究所 交通大学网络控制课程系列 考试课、专业基础课、必修课
Advertisements

第7章 AT89S51单片机的 串行口 1.
6 单片机的中断与定时系统 I/O设备必须通过I/O接口与计算机连接。 I/O接口的功能: 1.速度匹配: 锁存数据、传送联络信号。
第三章 计算机系统 的组成与工作原理 本章学习目标 理解模型机的结构及工作过程 掌握单片机的结构 掌握单片机I/O口的使用
第5章 中断系统 5.1 中断的概念 5.2 MCS-51单片机的中断流程 5.3 MCS-51的中断响应条件和中断处理
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
第四章 指令系统及汇编语言程序设计.
第四章 指令系统及汇编语言程序设计.
本章分为四节,主要介绍: 4.1 程序编制的方法和技巧 4.2 源程序的编辑和汇编 4.3 基本程序结构 4.4 常用程序举例.
项目2 2个LED发光二极管控制 知识与能力目标 熟悉单片机的I/O口功能与特性。
得技通电子 问题 1 右何者非為假指令 (1) XRL (2) EQU (3) MACRO (4) ORG.
本章小结 C51单片机指令系统概述 C51单片机寻址方式 C51单片机指令系统
单片机原理与应用.
第2章 MCS-51单片机指令系统与汇编语言程序设计
報告者:朱耿育 紀翔舜 組員:詹以群 張永傑 指導老師:梁新潁
复 习 一. 计算机中的数和编码 1. 2,10,16进制数及其之间的转换(整数) 按权展开,除x取余 2
第二部分 微机原理 第4章 汇编语言 程序设计 主讲教师:喻红.
单片机应用技术 项目一 循环彩灯装置 第6讲 指令功能及汇编语言程序设计(一) 《单片机应用技术》精品课程组 湖北职业技术学院机电工程系.
本章内容: 中断的概念 MCS-51单片机中断系统 外部事件中断及应用
6.3 定时器/计数器的应用 初始化 初始化的内容如下:
第8章 模拟接口 8.1 模拟接口概述 8.2 DAC及其接口 8.3 ADC及其接口.
第二部分 微机原理 第3章 MCS-51的 指令系统 主讲教师:喻红.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第6章 MCS - 51单片机内部定时器/ 计数器 及串行接口 6.1 定时器/计数器的结构及工作原理 6.2 方式和控制寄存器
單晶片微電腦控制實習 使用計時中斷作走馬燈 計時器的基礎實習 國立大甲高工 電機科 2018年11月21日
本章分为三节,主要介绍: 6.1 计算机串行通信基础 C51的串行口 6.3 单片机串行口应用举例.
第3章 AT89C51指令系统 3.1基本概念内部结构和引脚功能 指令、指令系统、机器代码
逻辑运算类指令 包括与、或、非、异或、清0及移位等共24条;一般不影响PSW中的标志位;助记符有:ANL、ORL、XRL、RL、RLC、RR、RRC、CLR和CPL共9种。 一、逻辑与指令 ANL A,Rn ;A←(A)∧( Rn) ANL A,direct;A←(A)∧(direct)
单片机原理及应用 MCS-51系列单片机的基本硬件结构 MCS-51指令系统 MCS-51单片机的系统扩展与应用.
单片机原理及应用 ——基于Proteus与Keil C 哈工大出版社
4.A/D与D/A转换器 1).DAC0832与MCS-51接口
第2章 单片机的结构原理与 简单应用 (课时:10学时).
第八章 MCS-51与数码显示器和键盘的接口 一、MCS-51与数码显示器接口 数码显示器是单片机应用产品中最常用的廉价的输 出设备,它由8个发光二极管按一定规律排列而成, 当某一发光二极管导通时,则会被点亮,控制不同 组合的二极管导通,就能显示出各种字符。 1.显示器的结构.
本 章 重 点 单片机的简单I/O扩展 8255A可编程并口芯片 8279可编程键盘/显示器接口芯片 单片机键盘接口技术
单片机原理 单 片 机 单片机接口技术 单片机应用技术.
第七章 定时/计数器.
第三章 指令系统.
第3章 指令系统及程序设计举例 3.1 指令格式与寻址方式 一、指令格式 1. 指令 操作码 目标操作数,源操作数
第10章 综合实训 课题一 水温控制系统设计 一、实训目的 二、课题要求 熟悉常用温度传感器AD590的特性及接口电路的设计方法;
第8章 MCS-51串行口 8.1 串行口及其通信方式 8.2 IBM-PC系列机与 单片机 的通信技术.
第2章 单片机系统组成原理 2.1 MCS-51单片机组成原理 2.2 单片机复位电路设计 2.3 MCS-51存储器配置
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
单元五 MCS-51单片机内部资源 5.1 任务九 单片机计数并显示 5.2 任务十 单片机流水灯控制 5.3 任务十一 两台单片机数据互传
本 章 重 点 单片机的结构特点 单片机的存储器特点 I/O端口的特点 CPU时序 课时安排:3个课时.
一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置. 一、任务描述 二、任务分析 三、任务演示 四、相关知识 五、任务布置.
第四章 指令系统及汇编语言程序设计.
第4章 中断技术 一个完整的微机系统是由硬件和软件共同构成的。微机系统的硬件有CPU、存储器和I/O口,外设组成。CPU与存储器之间的信息交换比较简单,而CPU与外设之间进行信息交换之前必须确定外设是否准备好,即选择I/O传送方式。I/O传送方式有4种:无条件、查询、中断和DMA。本章学习中断传送方式的有关内容。
单片机系统设计 教师:朱华贵 2016年03月01日
数码管数字时钟电路的设计 1. 系统硬件电路的设计
第3章 MCS-51指令系统 介绍MCS—51系列单片机的寻址方式 介绍MCS—51系列单片机的指令系统
第4章 80C51系列指令系统 教学目的:熟悉80C51系列单片机的寻址方式及 每一种寻址方式对应的寻址空间;掌 握每一条指令功能。
本章内容 MCS-51单片机指令系统的格式 MCS-51单片机寻址方式 指令系统的分析
5-6 串列埠模式0輸出埠擴充實習.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
CPU中的专用寄存器(SFR) 一、累加器Acc 二、通用寄存器B 三、程序计数器PC 四、堆栈指针SP 五、数据指针DPTR
第五讲:AT89C51单片机存储器结构 一、半导体存储器 二、存储器空间划分方法 三、数据存储器(RAM) 四、程序存储器(ROM)
3.1 指令系统简介 一、几个概念 二、汇编语言指令格式 三、指令的分类 四、指令的符号说明 主讲:吴政江 下一页.
第三章 计算机系统的组成与工作原理.
汽车单片机应用技术 学习情景1: 汽车空调系统的单片机控制 主讲:向楠.
四、手工汇编 完成汇编的方法有两种:手工汇编和汇编程序汇编 1.手工汇编步骤 A
单片机原理与应用.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
简单芯片扩展I/O接口 8155可编程接口芯片及其使用 键盘及显示器接口设计 A/D和D/A转换接口技术
单片机应用技术 (C语言版) 第3章 MCS-51指令系统及 汇编程序设计
第二章 MCS-51单片机程序设计 第一章 8086程序设计 第三章 微机基本系统的设计 第四章 存贮器与接口 第五章 并行接口
第4章 MCS-51汇编语言程序设计 教学基本要求: (1)、了解MCS-51汇编语言程序设计的特点;
第2章 80C51单片机的硬件结构 教学基本要求: (1)、熟悉单片机的定义、名称、分类方法;
第三章 8086的指令系统 8086指令特点 8086的寻址方式 8086的指令格式及数据类型 8086的指令集.
第1章 微型计算机基础.
Presentation transcript:

8051 指令

暫存器-1 累積器:ACC,簡稱A 乘法暫存器: B 程式計數暫存器: PC 堆疊指標:SP 5 資料指標暫存器:DPTR (DPH, DPL) 1. 由一個高位元組(DPH)以及一個低位 元組(DPL)所組成 2. 它可以二者合一,成為一個16位元的暫 存器,當做存取資料的位址指標用, 3. 或者是2個獨立的8位元存器(DPH, DPL),視作 一般暫存器來用。

暫存器-2 6. P0~P3: 8051晶片與外界溝通的主要管道 P0沒有輸出提升電阻 P1、P2、P3則有提升電阻。 BIT表示法: P0.0~P0.7 P1.0~P1.7 P2.0~P2.7 P3.0~P3.7

暫存器-3 7.串列資料: SCON, SMOD 串列資料緩衝器:SBUF MOV SBUF, A (指發送緩衝暫存器) MOV A, SBUF (指接收緩衝暫存器) 計時計數器: TMOD, TCON, THX, TLX 中斷: IE, IP 程式狀態暫存器: PSW

8051定址模式 立即定址(Immediate Addressing) 將某個位址或暫存器直接存入一個值 立即定址的前置符號為# 直接定址(Direct Addressing) 直接將某個位址的值傳給CPU中的某一個暫存器  間接定址(Indirect Addressing) 利用暫存器R0,R1,SP及DPTR當成指標,間接取得指標內的資料 間接定址的前置符號為@ 暫存器定址(Register Addressing) 凡透過R0~R7 暫存器作資料的搬移或加減運算統稱為暫存器定址 索引定址法 利用DPTR或PC為基底值然後加上ACC所得位址

8051定址模式 1. 立即常數定址(immediate constants) MOV A, #127 (A)=127 2.直接定址(direct addressing) MOV A, 7FH (A)=(7FH)=65H A 常數127 Cpu內記憶體7FH 65H A

8051定址模式 3.間接定址(indirect addressing) (a) MOV A, @R0; 搬移cpu內MEM (b) MOVX A, @DPTR;搬移外部MEM (A)=((DPTR))=77H DPTR 45H 77H A R0 Cpu內記憶體45H 外部記憶體1245H 1245H 1245H A 77H

8051定址模式 4. 暫存器定址 (register addressing) MOV A, R7 (A)=(R7)=7AH R7=7AH

8051定址模式 5.索引定址 (index addressing) MOVC A, @A+PC; 搬移ROM資料 PC=1234H A=23H 66H ROM: (A)+(PC)=1257H A (A)=66H 1257H

8051定址模式 5.索引定址 (index addressing) MOVX A, @A+DPTR; 搬移外部RAM資料 A)+(PC(A)=((A)+(DPTR))=77H DPTR=1234H A=23H 66H 外部RAM: (A)+(DPTR)=1257H A (A)=66H 1257H

8051指令

符號 Rn: R0~R7 Ri: R0, R1 direct: 0~127 data (常數) 123(十進位) 23H(十六進位) 10011110B(二進位)

資料轉移指令MOV ** 將資料從mem,暫存器搬移至A暫存器 (read) MOV A, Rn :暫存器暫存器內容移至累加器 MOV A, direct :直接位元組內容移至累加器 MOV A, @Ri : 間接位元組內容移至累加器 MOV A, #data : 常數值移至暫存器 ** 將A暫存器資料搬移至mem,暫存器(write) MOV Rn, A : (Rn) (A) MOV direct, A : (direct)  (A) MOV @Ri, A : ((Ri)) ( A)

資料轉移指令-example 1 MOV A, # 33H (A)=33H MOV A, #01011100B (A)=5CH MOV A, #1  (A)=1 MOV R1, A  ( R1)=(A) ( R1)=(A)=1

資料轉移指令-example 2 MOV A, direct :直接位元組內容移至累加器 MOV A, @Ri : 間接位元組內容移至累加器 MOV A, 33H given (33H)=65H (A)=65H MOV @R1, A given (R1)=30H, (A)=10H (30H)=10H MOV A, R1 given (R1)=22H (A)=22H MOV A, direct :直接位元組內容移至累加器 MOV A, @Ri : 間接位元組內容移至累加器 MOV A, Rn : 暫存器內容移至累加器

資料轉移指令MOVX, PUSH , POP XCH **CPU外部RAM的資料移入累加器(8位元位址) MOVX A, @Ri :CPU外部RAM的資料移入累加 器(8位元位址) MOVX A, @DPTR : CPU外部RAM的資料移入累 加器(16位元位址) **CPU將資料移入/取出 堆疊區SP PUSH direct :直接位元組的內容放置SP POP direct : 從SP拿回資料至直接位元組 **CPU將A資料與暫存器暫存器內容互換 XCH A, direct : 累加器與直接位元組的內容換 XCH A, Rn : 累加器與暫存器的內容交換

資料轉移指令-3 [1] Given (R1)=33H, (33H)=77H, (DPTR)=1111H (1111H)=66H MOVX A, @R1 (A)=(外部RAM(R1))=((外部RAM (33H))=77H MOVX A, @DPTR (A)=((DPTR))=(1111H)=66H

資料轉移指令-4 PUSH A PUSH 30H PUSH R1 … POP R1 POP 30H POP A stack stack PUSH A PUSH 30H PUSH R1 … POP R1 POP 30H POP A 30H SP SP A A SP 30H A A SP R1 30H A FILO:FIRST IN LAST OUT

資料轉移指令-5 Given (A)=34H, (R1)=56H, (30H)=78H XCH A, 30H (A)=78H, (30H)=34H XCH A, R1 (A)=56H, (R1)=34H

算數運算指令 加: ADD, ADDC, INC 減: SUBB, DEC 乘:MUL 除:DIV

算數運算指令add, addc Add A ,Rn : 加暫存器至累加器 Add A,direct : 加直接位元組至累加器 Add A,@Ri : 加間接位元組至累加器 Add A,#data : 加常數值至累加器 Addc A,Rn : (A) (A)+(Rn)+(CY) Addc A,direct : (A)(A)+(direct)+(CY ) Addc A,@Ri : (A)(A)+((Ri))+(CY ) Addc A,#data : (A) (A)+data+(CY)

算數運算指令-2 Given (A)=20H, (R1)=30H, (30H)=66H, (CY)=1 ADD A,#03H (A)= (A)+3H= 20H+3H=23H ADDC A, R1 (A)= (A)+ (R1)+ (CY)= 20H+30H+1=51H

算數運算指令subb, INC Subb A, Rn :累加器-暫存器Rn-CY Subb A, direct : 累加器-direct-CY Subb A, @Ri : 累加器-(Ri)-CY Subb A, #data : 累加器-data-CY INC (DEC) A : 累加器+(-)1 INC (DEC) Rn : 暫存器+(-)1 INC (DEC) direct : 直接位元組+(-)1 INC (DEC) @Ri : 間接位元組+(-)1

Given (A)=10 INC A ; (A)=(A)+1=11 Given (A)=20 DEC A ; (A)=(A)-1=19 Given (R1)=20 DEC R1 ; ( R1)=(R1)-1=20-1=19 Given (A)=30, (R2)=10, CY=0 SUBB A, R2 ;(A)=(A)-(R2)-(CY)=30-10-0=20

算數運算指令MUL, DIV Mul A ,B : A, BA*B Div A, B : A, BA/B Given (A)=15, (B)=20 MUL A, B (A)x(B)=15x20=300(A)=1, (B)=44 Given (A)=17, (B)=4 DIV A, B ; 17/4=4…1 (A)=4, (B)=1

邏輯運算指令 ANL, ORL, XOR RL, RLC, RR, RRC CLR

邏輯運算指令ANL,ORL 對每一位元做AND/OR運算 ANL A ,Rn : 暫存器AND至累加器(每一位元) ANL A,direct : 直接位元組AND至累加器 ANL A,@Ri : 間接位元組AND至累加器 ANL A,#data : 常數值AND至累加器 ORL A ,Rn : 暫存器AND至累加器 ORL A,direct : 直接位元組OR至累加器 ORL A,@Ri : 間接位元組OR至累加器 ORL A,#data : 常數值OR至累加器

[1] ANL A, R1 ; (A)=(A) and (R1) Given (A)=10110010, (R1)=11110000, (30H)=22H [1] ANL A, R1 ; (A)=(A) and (R1) (A): 10110010 (R1): 11110000 -------------------- 10110000 [2] ORL A, #11100000B ; (A): 10110010 D0H: 11100000 -------------------------- 11110010=F0H

AND A, 30H ORL A, @R1 10110010 00100010 -------------------- A or ((R1))=A or (30H) =A or 22H=B2H ---------------- 10110010=B2H

邏輯運算指令XRL,CLR XRL A , Rn : 暫存器XOR至累加器 XRL A, direct : 直接位元組XOR至累加器 *兩資料相同為0,不相同為1 XRL A , Rn : 暫存器XOR至累加器 XRL A, direct : 直接位元組XOR至累加器 XRL A, @Ri : 間接位元組XOR至累加器 XRL A, #data : 常數值XOR至累加器 *清除累加器為0 CLR A : 清除累加器; A=0

邏輯運算指令RL,RLC,RR,RRC **左旋轉 RL A : 累加器向左旋轉 RLC A : 累加器與CY一起向左旋轉 **右旋轉 RR A : 累加器向右旋轉 RRC A : 累加器與CY一起向右旋轉

Given (A)=10H, (R1)=33H XRL A, #FFH ; (A)=EFH XRL A, R1 ; 00010000 00110011 ------------------- 00100011=23H

RL A ;(A)=(A)*2 A7 A6 A5 A4 A3 A2 A1 A0 0 = A6 A5 A4 A3 A2 A1 A0 0 (A)=23H=00100011 RL A=001000110=01000110=46H

RR A; (A)=(A)/2 0 A7 A6 A5 A4 A3 A2 A1 A0 =0 A7 A6 A5 A4 A3 A2 A1 (A)=23H=00100011 RR A=000100011=00010001=11H

RLC A; (A)=2*(A)+(CY) CY A7 A6 A5 A4 A3 A2 A1 A0CY Given ( CY)=1, (A)=23H=00100011 RLC A (CY)00100011(CY)=01000111=47H, (CY)=0

RRC A (CY)  A7 A6 A5 A4 A3 A2 A1 A0  (CY) (A) =CY A7 A6 A5 A4 A3 A2 A1 (CY) = A0 (CY) =1, (A)=23H=00100011 RRC A (CY) 00100011 (CY) (A)=10010001=91H (CY) =1

程式跳躍指令--副程式呼叫 ACALL, LCALL, RET ACALL address : 絕對副程式呼叫(0~+-127) LCALL address :絕對副程式呼叫(0~65535) RET : 從副程式返回 (RETI 中斷反返回)

CALL---RET . CALL DRLAY MOV A,#56H . DRLAY: MOV R0,#56H . . . RET

跳躍指令 無條件跳躍 AJMP, JMP 有條件跳躍 JZ, JNZ CJNE JB JNB

無條件跳躍 AJMP address : 絕對位址跳躍(0~+-127) JMP @A+DPTR : 跳到一間接位址

有條件跳躍1 JZ rel : 若零值旗標(PSW.Z)=0 就跳躍 JNZ rel : 若零值旗標(PSW.Z)!=0就跳躍

有條件跳躍2 CJNE A, direct, rel :若累加器與直接位元組內容不相同就跳躍至rel CJNE A, #data, rel:若累加器與data內容不相同就跳躍至rel CJNE Rn, #data, rel:若Rn與data內容不相同就跳躍至rel CJNE @Ri, #data, rel: ((Ri))與data內容不相同就跳躍至rel NOP : 沒動作(短暫時間延遲 1 MT=12TOSC)

程式跳躍指令3 CJNE A, direct, rel CJNE A, 30H, LOOP1 CJNE A, #data, rel CJNE Rn, #data, rel CJNE R2, 30H, LOOP1 CJNE @Ri, #data, rel CJNE @R1, #30H, LOOP1

有條件跳躍4 JC rel JNC rel JB bit, rel JNB bit, rel JBC bit, rel JC LOOP1 JNC LOOP1 JB bit, rel JB PSW.5, LOOP1 JNB bit, rel JNB 25H.5, LOOP1 JBC bit, rel JBC PSW.5, LOOP1

布林運算指令 CLR C  CY=0 CLR bit SETB C CY=1 SETB bit CLR P0.1 P0.1=0 CLR PSW.Z PSW.Z=0 SETB C CY=1 SETB bit SETB P1.2 P1.2=1 SET TMOD.3  TMOD.3=1

布林運算指令 ANL C, bit ANL C, /bit ORL C, bit ORL C, /bit ANL C, P3.1 (CY)=)CY)and P3.1 ANL C, /bit ANL C, /20H.4 ORL C, bit ORL C, 23H.4 ORL C, /bit ORL C, /PSW.7

布林運算指令 MOV C, bit MOV C, PSW.0 MOV bit ,C MOV 22H.3, C