1 / 44
文档名称:

北京航空航天大学出版社《单片机基础》第4章课件.ppt

格式:ppt   页数:44
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

北京航空航天大学出版社《单片机基础》第4章课件.ppt

上传人:所以所以 2012/6/25 文件大小:0 KB

下载得到文件列表

北京航空航天大学出版社《单片机基础》第4章课件.ppt

文档介绍

文档介绍:单片机基础(第3版)
李广弟等编著
北京航空航天大学出版社
第4章 80C51单片机汇编语言程序设计
单片机程序设计语言概述
机器语言和汇编语言
机器语言即二进制代码语言,能直接被计算机直接读取并执行。
汇编语言是指用助记符表示的指令语言。
单片机使用的高级语言
采用高级语言开发单片机系统,大大提高了研制开发效率,且软件程序的易移植性好。不足之处是,高级语言生产的目标程序代码较长,运行速度较慢,对实时性要求高的系统不适应。目前应用较广泛的是C语言。
80C51 单片机汇编语言的语句格式
80C51汇编语言语句格式:
[<标号>]: <操作码> [<操作数>] ;[<注释>]
1. 标号
标号由1~8个ASIIC字符组成,第一个字母必须是字母,其余可以是字母、数字或其他特定符号;
不能使用本汇编语言已经定义的符号作为标号;
标号后边必须跟以冒号“:”;
同一标号在一个程序中只能定义一次,不能重复定义;
一条语句可以有标号也可以没有标号,取决于本程序中有无其他语句需要访问这条语句。
2. 操作码
规定语句执行的操作内容,用指令助记符表示。
3. 操作数
用于为指令操作提供数据。
4. 注释
注释以“;”开头,注释不属于语句的功能部分,只是对语句的解释说明。
5. 分界符(分隔符)
冒号(:) 用于标号之后;
空格( ) 用于操作码和操作数之间;
逗号(,) 用于操作数之间;
分号(;) 用于注释之前。
汇编语言程序的基本结构形式
单片机汇编语言程序共有三种基本结构形式
顺序结构程序
分支结构程序
循环结构程序
顺序程序结构
顺序程序是最简单的程序结构,即顺序结构。
程序按顺序一条一条地执行指令。
MOV DPTR, #2002H
MOVX A, ***@DPTR
MOV DPTR, #2004H
MOVX ***@DPTR, A
MOV DPTR, #2001H
MOVX A, ***@DPTR
MOV DPTR, #2003H
MOVX ***@DPTR, A
MOV DPTR, #2000H
MOVX A, ***@DPTR
MOV DPTR, #2002H
MOVX ***@DPTR, A
SJMP $
顺序结构
【例】将地址为2000H、2001H、2002H的片外数据存储器单元的内容分别传送到2002H、2003H、2004H存储单元中去。
【例】将30H单元内的两位BCD码拆开并转换成ASCII码,存入RAM 31H和32H两个单元中顺序存放。

MOV A, 30H ;取值
ANL A, #0FH ;取低4位
ADD A, #30H ;转换成ASCII码
MOV 32H, A ;保存结果
MOV A, 30H ;取值
SWAP A ;高4位与低4位互换
ANL A, #0FH ;取低4位(原来的高4位)
ADD A, #30H ;转换成ASCII码
MOV 31H, A ;保存结果
SJMP $
结束
取数据低4位
转换成ASCII码
存ASCII码
取数据高4位
转换成ASCII码
存ASCII码
开始
【例】设X、Y两个小于10的整数分别存于片内30H、31H单元,试求两数的平方和并将结果存于32H单元。
MOV A,30H ;取30H单元数据
MOV B,A ;将X送入B寄存器
MUL AB ;求X2,结果在累加器中
MOV R1,A ;将结果暂存于R1
MOV A,31H ;取31H单元数据
MOV B,A ;将Y送入B寄存器
MUL AB ;求Y2,结果在累加器中
ADD A,R1 ;求X2+ Y2
MOV 32H,A ;保存数据
SJMP $ ;暂停
3字节加法程序 被加数在内部RAM的50H、51H、52H单元中;加数在内部RAM 的53H、54H、55H单元中;相加之和存放在50H、51H、52H单元中,进位位存放在位寻址区的20H位中。
DEC R0
DEC R1
MOV A, ***@R0
ADDC A, ***@R1
MOV ***@R0, A
CLR A
ADDC A, #00H
MOV R0, #20H
MOV ***@R0, A
MOV R0, #52H
MOV R1, #55H
MOV A, ***@R0
ADD A, ***@R1
MOV ***@R0, A
DEC R0
DEC R1
MOV A, ***@R0
ADDC A, ***@R1
MOV ***@R0, A
分支程序结构
程序分支是通过条件转移指令实现的,即根据条件对程序的执行进行判断,满足条件则进行程序转移,不满足条件就顺序执行程序。
分支程序又分为单分支和多重分支结构。
MCS-51指令系统中,可实现单分支转移的指令有JZ、JNZ、CJNE、DJNZ