




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二讲 : 指令与编程本讲 重点:寻址方式;MCS-51指令集;伪指令;汇编语言与简单程序设计 .专业提供单片机编程器 ,仿真器 ,实验板 ,无线收发模块 ,超声波测距模块 .TEL宋占孝制作一步一步 教你学 单片机 之 :2单片微机原理及应用单片微机原理及应用 教学课件教学课件第三章 指令系统及程序设计 ( P.43)51系列单片机指令集含有 111条指令 每条 指令在执行时要花去一定的 时间 ,以机器周期为单位。按指令 执行时间 分类:单周期 (64条 );双周期 (45条 );4周期 (2条 )按指令的 功能 分类,可分为 5大类:数据传送类 ( 29条); 算术运算类 ( 24条)逻辑运算及移位类 ( 24); 控制转移类 ( 17条)位操作类 ( 17条)每 条指令在程序存储器 ROM中占据一定的 空间 ,以字节为单位。按指令 所占字节数 分类:单字节 (49条 );双字节 (46条 );3字节 (16条 )单片微机原理及应用单片微机原理及应用 教学课件教学课件ASM-51指令的格式 (P.44) 方括符 表示可选项 标号 代表指令所在地址, 1-8个字母 /数字,“ :” 结尾 操作码 就是指令功能助记符,指令实体 目的操作数 源操作数 注释 ,以 “ ;” 开头标号 :操作码 目的操作数 ,源操作数 ;注释 单片微机原理及应用单片微机原理及应用 教学课件教学课件51单片机指令的 寻址方式 (P.45) 寄存器寻址 立即寻址 寄存器间接寻址 直接寻址 变址寻址 (基址寄存器 +变址寄存器间接寻址 ) 相对寻址 位寻址寻址方式: 指令按地址获得操作数的方式七种寻址方式 ,一条指令可能含多种寻址方式单片微机原理及应用单片微机原理及应用 教学课件教学课件寄存器寻址 ( P.45)从 寄存器 中读取操作数 或 存放操作数进 寄存器例: MOV A, B ; ( A) ( B)MOV 30H, R0 ; ( 30H) ( R0)MOV A, R1 ; ( A) ( R1)单片微机原理及应用单片微机原理及应用 教学课件教学课件立即寻址 ( P.45)操作数直接就出现在指令中例: MOV A, #64H ; (A) 立即数 64HADD A, #05H ; (A)(A)+ 立即数 05H注意: 符号 “ #” 表明其后跟的是 立即数 ,立即数 就是数字量本身。单片微机原理及应用单片微机原理及应用 教学课件教学课件寄存器间接寻址 ( P.46)寄存器中的 内容 是一个 地址 ,由该 地址 单元寻址到所需的 操作数注意 :1) “ 间接 ” 表示某寄存器中的 “ 内容 ” 只是一个“ 单元地址 ” ,这个地址单元中存放的 数据 才是要找的 “ 操作数 ” 。2) 符号 “ ” 表示 “ 在 ” ,其 含义 与 读音 皆同“ at” 。例: MOV R1, #30H ;(R1) 立即数 30H , 立即数MOV R1, #0FH ;(30H) 立即数 0FHMOV A, R1 ;(A)(30H)=#0FH单片微机原理及应用单片微机原理及应用 教学课件教学课件直接寻址 ( P.46)指令中 直接 给出了操作数所在 单元的地址或名称 例: MOV R1, 1FH ; (R1) ( 1FH)MOV 30H, 4AH ; (30H) ( 4AH)在 本单片机中规定:访问特殊功能寄存器 SFR只能 采用直接寻址方式。例如:MOV A, SP ; (A) (SP) MOV A, 81H ; (A) (SP) MOV P1, #5AH ; (P1)(#5AH) MOV 90H,#5AH ; (P1)(#5AH) MOV B, 30H ; (B) (30H) SFR的地址见 P.33表相同相同单片微机原理及应用单片微机原理及应用 教学课件教学课件在 本单片机中访问特殊功能寄存器 SFR只能 采用直接寻址方式的 原因: SFR分布在 80H 0FFH范围内,而 52系列 单片机有 256字节的片内 RAM,其中的80H 0FFH的 RAM与 SFR所占 地址重叠 。MOV A, 90H 等效于 MOV A, P1 属直接寻址 MOV A, R0 ; 事先已知 (R0) = #90H 执行的操作: A (90H) 属寄存器间接寻址 , 随意写的指令如: MOV A, 85H 则是非法的! 于是规定: 80H 0FFH范围内的 RAM只能用 寄存器间接寻址 方式,而 SFR只能用 直接寻址 方式。 从而解决了地址冲突的问题。例如:单片微机原理及应用单片微机原理及应用 教学课件教学课件存储器配置 ( 片内 RAM) 89C51片内 RAM 128字节 ( 00H7FH ) 89C52片内 RAM 256字节 ( 00H0FFH )00H20H2FH7FH1FH30H80HFFH52子系列才有的 RAM区普通 RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中 92个位可位寻址80HFFH89C51 128字节89C52 256字节只能直接寻址只能寄存器间接寻址单片微机原理及应用单片微机原理及应用 教学课件教学课件变址寻址 ( P.47)也称为 : 基址寄存器 +变址寄存器 间接寻址以 16位的 地址指针寄存器 DPTR或 16位的 PC寄存器为基址寄存器 ,以 累加器 A 为变址寄存器 ,两者中的“ 内容 ” 形成一个 16位的 “ 地址 ” ,该 “ 地址 ” 所指的存储单元中的内容才是操作数。P47例 :设: A中已存有 #A4H, DPTR中已存有 #1234HMOVC A, A+DPTR; ( A) (A)+(DPTR)操作: 将 A4H+1234H=12D8H单元中的 数 放进累加器 A单片微机原理及应用单片微机原理及应用 教学课件教学课件相对寻址 ( P.47)当前 PC值加上指令中规定的偏移量 rel, 构成实际的操作数地址例: SJMP rel 操作:跳转到的 目的地址 = 当前 16位 PC值 + rel注意 :1) “ 当前 PC值 ” 指程序中 下一条指令所在的首地址,是一个 16位数;2) 符号 “ rel” 表示 “ 偏移量 ” ,是一个带符号的单字节数 ,范围是 :-128+127 (80H7FH), 在实际编程中, “ rel” 通常用标号代替单片微机原理及应用单片微机原理及应用 教学课件教学课件位寻址 ( P.48)指令中直接给出了操作数所在的 位地址 。例: CLR P1.0 ; (P1.0) 0SETB ACC.7 ; (ACC.7) 1CPL C ; ( C ) NOT( C )注意 :1) 位地址里的数据只可能是 一个 0 或 1 2) 有的位地址十分明确 ,如 P1.0, ACC.7等 ,有的位地址则 “ 不太明确 ” ,如:MOV A, 17H ; (A)(17H),17H 是 字节地址 MOV ACC.0, 17H ;(ACC.0)( 17H),这里 ACC.0是 位地址 所以该指令中的 17H是 22H单元的第 7位单片微机原理及应用单片微机原理及应用 教学课件教学课件 片内 RAM中有 128个位可按位寻址的位, 位地址: 00H7FH 分布在: 20H2FH 单元; 另外,在 SFR中还有 92个位 可按位寻址00H20H2FH7FH1FH30H80HFFH52子系列才有的 RAM区普通 RAM区位寻址区工作寄存器区27H22H21H20H26H24H25H23H28H07 06 05 04 03 02 01 000F 0E 0D 0C 0B 0A 09 0817 16 15 14 13 12 11 101F 1E 1D 1C 1B 1A 19 1827 26 25 24 23 22 21 202F 2E 2D 2C 2B 2A 29 2837 36 35 34 33 32 31 303F 3E 3D 3C 3B 3A 39 3847 46 45 44 43 42 41 402FH 7F 7E 7D 7C 7B 7A 79 78位 地址总共128个可按位寻址的位单元地址17D7 D6 D5 D4 D3 D2 D1 D0单片微机原理及应用单片微机原理及应用 教学课件教学课件位寻址 ( P.48)指令中直接给出了操作数所在的 位地址 。例: CLR P1.0 ; (P1.0) 0SETB ACC.7 ; (ACC.7) 1CPL C ; ( C ) NOT( C )注意 :1) 位地址里的数据只可能是 一个 0 或 1 2) 有的位地址十分明确 ,如 P1.0, ACC.7等 ,有的位地址则 “ 不太明确 ” ,如:MOV A, 17H ; (A)(17H),17H 是 字节地址 MOV ACC.0, 17H ;(ACC.0)( 17H),这里 ACC.0是 位地址 所以该指令中的 17H是 22H单元的第 7位单片微机原理及应用单片微机原理及应用 教学课件教学课件MCS-51指令集功能分五类,共 111条指令单片微机原理及应用单片微机原理及应用 教学课件教学课件MCS-51指令集 ( 五大类功能) P.49页数据 传送 类指令: ( 29条 )算术 运算类指令: ( 24条 )逻辑 运算及移位类指令: ( 24条 )控制 转移 类指令: ( 17条 )位 操作(布尔操作)类指令:( 17条 )单片微机原理及应用单片微机原理及应用 教学课件教学课件内部存储器间传送: ( MOV16 条)外部数据存储器与累加器间传送 :( MOVX4 条)程序存储器向累加器传送:( MOVC2 条)数据交换:( XCH, XCHD, SWAP5 条)堆栈操作: ( PUSH, POP2 条)(一 )数据传送类指令 ( 5种 /29条) P.49 见 P.49的表 3 2单片微机原理及应用单片微机原理及应用 教学课件教学课件Acc 累加器Direct 直接寻址 Ri 间接寻址Rn 寄存器 #data 立即数Rn: R0R7Ri: R0, R1#data: 8位立即数#data16: 16位立即数direct: 直接地址rel: 8位带符号偏移量(一 )数据传送类指令 ( 5种 /29条)内部存储器间传送指令 (16条 ): MOV 类指令的 操作方向 总是 后面 的操作数 指向 前面 的操作数 !例 :MOV A, 30H ( A) ( 30H) 单片微机原理及应用单片微机原理及应用 教学课件教学课件数据传送类 指令 (续) P.52外部数据存储器与累加器间传送 (4条 ):MOVX类指令可在 累加器 与以 DPTR或 Ri所代表的外部 RAM 之间进行数据传送。例如 : MOVX A, DPTR (A) (DPTR)MOVX A, Ri (A) (Ri) MOVX DPTR, A (DPTR) (A) MOVX Ri, A ( Ri) (A)单片微机原理及应用单片微机原理及应用 教学课件教学课件程序存储器向累加器传送指令( 2条):MOVC A, A+DPTRMOVC A, A+PC 通常称为查表指令,寻址方式属 :“ 基址寄存器 + 变址寄存器 间接寻址 ”数据传送类 指令 (续) P.52A+DPTR或 A+PC指向 程序存储器 中的某单元。拟传送给累加器 ACC 的数据就是程序中事先写进去的 表格数据。 这些表格数据往往用伪指令 DB,DW 等定义在程序中。单片微机原理及应用单片微机原理及应用 教学课件教学课件数据传送类 指令 (续)数据交换指令 (5条 ): P.53XCH A, direct (字节互换 )XCH A, Ri (字节互换 ) XCH A, Rn (字节互换 )( A) ( direct) 或 (Ri), 或 (Rn)XCHD A, Ri累加器 Acc的 低 4位 与 (Ri)的 低 4位 互换,各自的高 4位不变SWAP A累加器 Acc的 低 4位 与自身的 高 4位 互换单片微机原理及应用单片微机原理及应用 教学课件教学课件堆栈操作指令 (2条 ): P.54PUSH 压栈指令POP 弹栈指令 堆栈区由特殊功能寄存器 堆栈指针 SP 管理 堆栈区可以安排在 RAM区任意位置,一般不安排在 工作寄存器区 和 可按位寻址的 RAM区 ,而是放在 RAM区的 靠后 的位置 堆栈总是指向 栈顶 通常 PUSH与 POP两条指令 成对使用数据传送类 指令 (续)单片微机原理及应用单片微机原理及应用 教学课件教学课件例如:设 (A)=7BH; (35H)=11H并且知道( SP) 60HPUSH ACC ;(61H) #7BHPUSH 35H ;(62H) (35H)即: (62H) #11HPOP ACC ;(A) (62H)即: (A) #11HPOP 5AH ;(5AH) (61H) 即: (5AH) #7BH单片微机原理及应用单片微机原理及应用 教学课件教学课件(二 )算术运算类指令 ( 6种 /24条) P.54加法运算: (ADD4 条 )带进位加法运算 : (ADDC4 条 )带借位减法运算 : (SUBB4 条 )加 1/减 1操作: (INC, DEC9 条 )单字节乘 /除法运算 : (MUL, DIV2 条 )十进制调整: (DA A1 条 )单片微机原理及应用单片微机原理及应用 教学课件教学课件(二 )算术运算类指令 (续) P.55加法运算: ( ADD4 条)带进位加法运算 : ( ADDC4 条)带借位减法运算: ( SUBB4 条)所有的加法 (ADD)、 带进位加法 (ADDC)、 带借位减法 (SUBB)运算都是以 A为一个加数或被减数 ,最终结果也存进 A 。加法 (ADD)、 带进位加法 (ADDC) 以及带借位减法(SUBB)运算中 ,如果产生了进位或借位 ,将自动对PSW中的 Cy标志位 置 “ 1” 。带进位加法 (ADDC):(A)(A)+(Cy)+(第二操作数 )带借位减法 (SUBB):(A)(A)-(Cy)-(第二操作数 )单片微机原理及应用单片微机原理及应用 教学课件教学课件(二 )算术运算类指令 (续) P.57加 1/减 1操作: ( INC, DEC9 条)INC, DEC与 用加 /减法指令做 加 1/减 1 操作不同之处在于 INC、 DEC不影响标志位 .单字节乘 /除运算 : (MUL, DIV2 条 )两个单字节数的乘 /除法运算只在 A与 B之间进行。MUL AB: (A)与 (B)相乘 , 积为 16位 数 ,(A)积的 高 8位 ; (B)积的 低 8位DIV AB: (A)除以 (B),结果用 2字节表示 ,(A)商的 整数 部分 ;(B)余数单片微机原理及应用单片微机原理及应用 教学课件教学课件(二 )算术运算类指令 (续) P.60BCD码 是指 “ 用二进制表达的十进制数 ” 。如: 十进制数 20可以用二进制数 00010100B表示 ; 也可以用十六进制数 14H表示; 还可以用 BCD码 00100000B 或 2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年莆田教练员理论模拟考试
- 2025年四平出租车从业资格考什么
- 委托协议的时效
- 役前训练工作汇报
- 校园环保的题目及答案
- 小学语文猫题目及答案
- 培训课件 知识
- 2024年青海省退役军人事务厅下属事业单位真题
- 2024年澄江市紧密型医疗共同体总医院招聘笔试真题
- 2024年郴州桂东县事业单位招聘考试真题
- 丁腈橡胶材质报告
- DB15-T 3586-2024 黄河灌区高标准农田盐碱地改良效果综合评价方法
- 2024-2030年中国宠物家具行业市场发展趋势与前景展望战略分析报告
- DL∕T 901-2017 火力发电厂烟囱(烟道)防腐蚀材料
- DL∕T 664-2016 带电设备红外诊断应用规范
- 河北省承德市平泉市2023-2024学年七年级下学期期末数学试题(无答案)
- DL-T448-2016电能计量装置技术管理规程
- 2024建筑工程劳务分包合同标准范本
- QB/T 2660-2024 化妆水(正式版)
- 《化工和危险化学品生产经营单位重大生产安全事故隐患判定标准(试行)》解读课件
- 基于Python+MySQL的员工管理系统的设计与实现
评论
0/150
提交评论