单片机课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《单片机课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课件
- 资源描述:
-
1、第 4 章 汇编语言程序设计 第第4章章 汇编语言程序设计汇编语言程序设计 4.1 概述概述 4.2 MCS-51汇编语言程序设计汇编语言程序设计 顺序、循环、分支、子程序顺序、循环、分支、子程序 第 4 章 汇编语言程序设计 4.1 概概 述述 4.1.1 计算机常用的编程语言计算机常用的编程语言 程序设计语言:程序设计语言:低级语言和高级语言。低级语言和高级语言。 低级语言:低级语言:机器语言机器语言 汇编语言:汇编语言: 采用特定的助记符号来描述机器指令采用特定的助记符号来描述机器指令 高级语言:高级语言: 高级语言程序要经过解释程序或编译程序的编高级语言程序要经过解释程序或编译程序的编
2、 译,形成目标程序后,才能执行。译,形成目标程序后,才能执行。常用的高级语言:常用的高级语言:BASIC,FORTRAN,PASCAL,C等。等。第 4 章 汇编语言程序设计 4.1.2 MCS-51汇编语言伪指令汇编语言伪指令 1ORG(Origin) 汇编起始地址命令汇编起始地址命令 功能:用于规定目标程序的起始地址。功能:用于规定目标程序的起始地址。 格式:格式: 标号:标号: ORG 地址地址 地址项:地址项:16位绝对地址,也可以用位绝对地址,也可以用标号标号或表达式表示。或表达式表示。如果不用如果不用ORG规定,则汇编得到的目标程序将从规定,则汇编得到的目标程序将从0000H开始。
3、开始。第 4 章 汇编语言程序设计 一个源程序中,可多次使用一个源程序中,可多次使用ORG指令以规定不同程序段指令以规定不同程序段的的起始起始位置。地址应从小到大顺序排列,不允许重叠。位置。地址应从小到大顺序排列,不允许重叠。例如:例如:ORG 4000HLJMP MAINORG 4200H MAIN:MOV A, 30H 第 4 章 汇编语言程序设计 2END(END of assembly)汇编终止命令)汇编终止命令 功能:用于终止源程序的汇编工作。功能:用于终止源程序的汇编工作。 END之后的指令,汇编程序不予处理。之后的指令,汇编程序不予处理。 格式:格式: 标号:标号: END 表达
4、式表达式 只有主程序模块才有只有主程序模块才有“表达式表达式” 项,且项,且“表达式表达式”的值等于的值等于该程序模块的入口地址。而其他程序模块就没有该程序模块的入口地址。而其他程序模块就没有“表达式表达式”项项。“标号:标号:”也是选择项。也是选择项。 一个源程序只能有一个一个源程序只能有一个END命令。命令。第 4 章 汇编语言程序设计 3EQU(Equate) 赋值命令赋值命令 功能:用于给字符名称赋予一个特定值。赋值以后,其值在功能:用于给字符名称赋予一个特定值。赋值以后,其值在整个过程中有效。整个过程中有效。 格式:格式: 字符名称字符名称 EQU 赋值项赋值项 “赋值项赋值项”:可
5、以是常数、地址、标号或表达式。:可以是常数、地址、标号或表达式。 8位或位或16位二进制数。赋值以后的字符名称即可位二进制数。赋值以后的字符名称即可作地址使用,也可作立即数使用。作地址使用,也可作立即数使用。 PA8155 EQU 8001H给标号给标号PA8155赋值赋值8001H。 第 4 章 汇编语言程序设计 4DB(Define Byte) 定义数据字节命令定义数据字节命令 功能:用于从指定的地址单元开始,在程序存储器中存放字功能:用于从指定的地址单元开始,在程序存储器中存放字节数据。节数据。 格式:格式:标号:标号: DB 8位数表位数表 例如例如: DB “how are you?
6、” ;1个字节存放个字节存放1个字符个字符ASCII 常使用本命令存放数据表格,例如存放数码管显示的十六进常使用本命令存放数据表格,例如存放数码管显示的十六进制数的字形码,可使用多条制数的字形码,可使用多条DB命令定义:命令定义: DB C0H,F9H,A4H,B0HDB 99H,92H, 82H,F8H DB80H,90H, 88H,83H DBC6H,A1H,86H, 84H第 4 章 汇编语言程序设计 查表时,为确定数据区的起始位置,可采用两种方法:查表时,为确定数据区的起始位置,可采用两种方法:(1)根据)根据DB命令前一条指令的地址确定。命令前一条指令的地址确定。例:例: 8100H
7、 MOV A, #49H (1字节)字节) TAB: DB C0H, F9H, A4H, B0H(2)使用)使用ORG 指令专门规定指令专门规定例:例: ORG 8100H TAB: DB C0H, F9H, A4H, B0H 定义的数码管字形码从定义的数码管字形码从8100地址开始存放。地址开始存放。第 4 章 汇编语言程序设计 5DW(Define Word)定义数据字命令定义数据字命令 功能:用于从指定地址开始,在程序存储器单元中定义功能:用于从指定地址开始,在程序存储器单元中定义16位位的数据字(两个字节)。的数据字(两个字节)。 格式:格式: 标号:标号: DW 16位数表位数表 存
8、放规则:高存放规则:高8位在前(低地址),低位在前(低地址),低8位在后(高地址)。位在后(高地址)。例:例: DW 100H,1ACH ;按顺序存;按顺序存01H, 00H, 01H, ACH DW “AA” ;存入;存入41H,41H(ASCII码)码) DW“A” ;存入;存入00H,41H DW “ABC” ;不合法,大于两个字节;不合法,大于两个字节 第 4 章 汇编语言程序设计 注意:注意: DB和和DW定义的数表,数的个数不得超过定义的数表,数的个数不得超过80个。个。如果数据的数目较多时,可使用多个定义命令。如果数据的数目较多时,可使用多个定义命令。 在在 MCS-51程序设计
9、应用中,常以程序设计应用中,常以DB定义数据,定义数据,以以DW定义地址。定义地址。第 4 章 汇编语言程序设计 6DS(Define Storage) 定义存储区命令定义存储区命令 功能:用于从指定地址开始,保留指定数目的功能:用于从指定地址开始,保留指定数目的字节字节单元为存单元为存储区,供程序运行使用。汇编时对这些单元不赋值。储区,供程序运行使用。汇编时对这些单元不赋值。 格式:格式: 标号:标号: DS 16位数表位数表 例:例: ADDRTABL: DS 20 例:例: ORG 8100H DS 08H注意:对注意:对MSC-51单片机来说,单片机来说,DB、DW、DS命令只能对程序
10、命令只能对程序存储器使用,不能对数据存储器使用。存储器使用,不能对数据存储器使用。第 4 章 汇编语言程序设计 7BIT 位定义命令位定义命令 功能:功能: 用于给字符名称赋以位地址。用于给字符名称赋以位地址。 格式:格式: 字符名称字符名称 BIT 位地址位地址 例如:例如: AAA BIT 40HBBB BIT 50H第 4 章 汇编语言程序设计 4.2 MCS-51汇编语言程序设计汇编语言程序设计 汇编和高级语言程序设计的过程:汇编和高级语言程序设计的过程: 首先对问题进行分析,然后确定算法,再根据算法首先对问题进行分析,然后确定算法,再根据算法流程编写程序,最后是调试程序。流程编写程序
11、,最后是调试程序。 汇编语言程序设计的汇编语言程序设计的独特点独特点在于:在于: (1) 用汇编语言进行程序设计时,对用汇编语言进行程序设计时,对数据的存放、寄存器数据的存放、寄存器和工作单元的使用等要由设计者安排和工作单元的使用等要由设计者安排。而高级语言程序设计。而高级语言程序设计时,这些工作都由计算机软件安排,程序设计者不必考虑。时,这些工作都由计算机软件安排,程序设计者不必考虑。第 4 章 汇编语言程序设计 (2) 汇编语言程序设计要求设计人员必须对所使用的汇编语言程序设计要求设计人员必须对所使用的计算机的硬件结构有较为详细的了解计算机的硬件结构有较为详细的了解。特别是对。特别是对各类
12、寄各类寄存器、端口、定时器存器、端口、定时器/计数器、中断等计数器、中断等内容要熟悉,以便内容要熟悉,以便在程序设计时能熟练使用。在程序设计时能熟练使用。汇编语言程序共有四种结构形式:汇编语言程序共有四种结构形式: 顺序结构、循环结构、分支结构(选择结构)和顺序结构、循环结构、分支结构(选择结构)和子程序结构。子程序结构。第 4 章 汇编语言程序设计 4.2.1 顺序程序顺序程序 例例4.1 设三字节无符号数相加,设三字节无符号数相加, 被加数:在内部被加数:在内部RAM 20H22H单元(低位在前),单元(低位在前),加数:加数: 在内部在内部RAM 30H32H单元(低位在前),单元(低位
13、在前),结果:结果: 存于内部存于内部RAM2022H单元,进位位存于单元,进位位存于23H单元。单元。 利用利用ADDC指令进行多字节加法运算。指令进行多字节加法运算。第 4 章 汇编语言程序设计 ORG 5000H MOV R0,#20H;被加数的低字节地址;被加数的低字节地址MOV R1,#30H;加数的低字节地址;加数的低字节地址MOV A, R0ADDA, R1;低字节相加;低字节相加MOV R0,A;存放字节相加结果;存放字节相加结果INCR0INCR1MOV A, R0ADDC A, R1;中间字节带进位相加;中间字节带进位相加MOV R0, A;存中间字节相加结果;存中间字节相
14、加结果第 4 章 汇编语言程序设计 INCR0INCR1MOV A,R0ADDC A, R1;高字节带进位相加;高字节带进位相加MOV R0,A;存高字节相加结果;存高字节相加结果 INC R0MOV A, #00HADDC A, #00HMOV R0, A;进位位送;进位位送23HEND第 4 章 汇编语言程序设计 例例4.2 将片内将片内RAM 20H单元的内容拆成两段,每段单元的内容拆成两段,每段4位。并将位。并将它们分别存入它们分别存入21H与与22H单元中。单元中。 (20H) =0101, 1010=5AH (21H) =0AH ;存放低存放低4位位 (22H) =05H ;存放高
15、存放高4位位第 4 章 汇编语言程序设计 ORG 5000HSTART:MOV R0,#21H;R021H MOV A,20H;A(20H) ANL A,#0FH;A #0FH(A) MOV R0,A;(;(R0)(A),保存低保存低4位位INC R0;R0 (R0)1 MOV A,20H;A(20H) SWAP A;高低半字节交换;高低半字节交换 ANL A,0FH ;A 0FH MOV R0,A;(;(R0)(A)END第 4 章 汇编语言程序设计 4.2.2 循环程序循环程序 循环初态循环初态第 4 章 汇编语言程序设计 循环程序一般由四个主要部分组成循环程序一般由四个主要部分组成: (
16、1) 初始化部分初始化部分: 为循环程序做准备为循环程序做准备, 如规定循环次数、如规定循环次数、 给给各变量和地址指针预置初值。各变量和地址指针预置初值。 (2) 处理部分处理部分: 为反复执行的为反复执行的程序段程序段, 是循环程序的是循环程序的实体实体, 也也是循环程序的主体。是循环程序的主体。 (3) 循环控制部分循环控制部分: 这部分的作用是修改循环变量和控制变这部分的作用是修改循环变量和控制变量量, 并判断循环是否结束并判断循环是否结束, 直到符合结束条件时直到符合结束条件时, 跳出循环为止。跳出循环为止。 (4) 结束部分结束部分: 这部分主要是对循环程序的结果进行分析、这部分主
展开阅读全文