第4章 MCS51单片机程序设计.pptVIP

  • 17
  • 0
  • 约1.17万字
  • 约 78页
  • 2018-07-08 发布于福建
  • 举报
第4章 MCS51单片机程序设计

第4章 MCS-51单片机的程序设计 汇编语言、C语言 4.1 MCS-51程序设计语言概述 计算机程序设计语言是指计算机能够理解和执行的语言 理解和执行也可能经过某种中间环节的翻译,但是都与人类所使用的自然语言有较大差别 机器语言 汇编语言 高级语言 机器语言 二进制编码的指令 74H 34H 24H 45H F5H 09H 74H 12H 34H 23H F5H 08H 如果不对照指令系统的机器码,很难看出这段程序要实现什么功能 汇编语言 使用助记符、符号地址、标号等符号来编写程序的系统 RES_LOW DATA 09H RES_HIGH DATA 08H MOV A, #34H ADD A, #45H MOV RES_LOW, A MOV A, #12H ADDC A, #23H MOV RES_HIGH, A 高级语言 面向过程和问题并能独立于机器的通用程序设计语言,是一种接近人类自然语言和常用数学表达式的计算机语言 int a, b, c; a = 0x1234; b = 0x2345; c = a + b; 三种语言的比较 在科学计算、信息处理等方面采用高级语言比较合适;而在实时控制中,通常使用汇编语言 即使在高级语言开发的软件中,对响应速度要求严格的程序段也常用汇编语言编写 单片机程序开发过程 以汇编语言为例 编写汇编语言源程序 如果没有语法错误,经过汇编后,每个源程序文件产生一个相应的浮动(可重定位的)地址目标文件 由连接定位程序(连接定位器)将这些目标文件连接,将浮动地址确定下来,生成一个绝对地址目标文件 4.2 MCS-51单片机的汇编语言 INTS SET 1 IF INTS = 1 MAIN_START EQU 0030H ;主程序开始地址 ELSE MAIN_START EQU 0010H ;主程序开始地址 ENDIF NUM1 DATA 30H NUM2 DATA 31H DSEG AT 60H ;堆栈起始地址 STACK: DS 20H ;堆栈长度 CSEG AT 0000H ;RESET LJMP MAIN ORG MAIN_START MAIN: MOV SP, #STACK – 1 ;初始化SP,设定堆栈大小 4.2.1 汇编语言程序示例 MOV NUM1, #56H MOV A, NUM1 CALL BCD2BIN ;将BCD数转换成二进制 MOV NUM2, A SJMP $ ;原地踏步 ; BCD2BIN子程序的功能是将累加器A中的两位BCD数转换成8位二进制数,仍存放于A中 BCD2BIN: PUSH ACC SWAP A ANL A, #0FH MOV B, #10 MUL AB POP B XCH A, B ANL A, #0FH ADD A, B RET END 4.2.2 程序语句格式 指令语句、汇编语言伪指令语句、汇编控制语句和注释语句 语句的一般格式为 [标号:] 助记符 [操作数列表] [;注释] [标号或符号:] 伪指令 [操作数] [;注释] 4.2.3 表达式 位于操作数字段的数据有三种表示方法 显式记法,如0FFH 使用预定义的符号,如ACC 也可使用表达式,如(2+3) 汇编器在汇编时求值表达式并存入合适位置,所有表达式求值都按16位运算进行 表达式 数制 在常数结尾处加符号标注来表示数值的进制。通常以B表示二进制,O或Q表示八进制,H表示十六进制,D或者不加标注表示十进制 字符和字符串 以一个或两个用单引号引起来的字符构成 汇编器将其ASCII码转换为等价的二进制形式 算术运算 包括加、减、乘、除、求模,分别用符号+、-、*、/、MOD表示 表达式 逻辑运算 包括逻辑或、与、异或和非,分别用符号OR、AND、XOR和NOT表示,实现的是按位运算 特殊运算 包括SHR、SHL、HIGH、LOW、(),分别表示右移、左移、取高字节、取低字节和优先求值 关系运算 关系运算符有EQ、NE、LT、LE、GT和GE,也可以写作=、、、=、、=,分别表示相等、不等、小于、小于或等于、大于、大于或等于 4.2.4 伪指令语句 ORG伪指令 ORG expression 设置汇编计数器的值,指定其后语句的起始地址 伪指令语句 END伪指令 应当是源程序的最后一条语句 通知汇编程序汇编过程应在此结束 汇编器不理会END后面的文件内容 每个程序文件都应以END结束 伪指令语句 EQU和SET伪指令 symbol EQU expre

文档评论(0)

1亿VIP精品文档

相关文档