80C51单片机的汇编语言程序设计
更新时间:2023-06-04 08:46:01 阅读量: 实用文档 文档下载
80C51单片机原理介绍
第4章 80C51的汇编语言程序设计4.1 4.2 4.3 4.4 4.5 程序编制的方法和技巧 源程序的编辑和汇编 基本程序结构 子程序及其调用简单I/O设备的并口直接驱动示例
2013-7-19
80C51单片机原理介绍
单片机应用系统由硬件系统和应用程序构成 应用程序设计方法汇编语言 高级语言 汇编语言,生成的目标程序占内存空间少、运行速 度快,具有效率高、实时性强。 高级语言,对系统的功能描述与实现简单,程序阅 读、修改和移植方便,适合于编写复杂的程序。
2013-7-19
80C51单片机原理介绍
4.1 程序编制的方法和技巧4.1.1 程序编制的步骤 任务分析明确任务:功能要求、技术指标 运行环境调研
算法设计将实际问题转化为计算机处理的程序算法 算法比较与优化(内存需求与运行速度)
2013-7-19
80C51单片机原理介绍
流程描述流程图符号开始或结束符号 判断分支符号
“超级循环”框架开始
初始化工作任务符号 程序连接符号
循环扫描、处理程序流向符号 程序流向符号
2013-7-19
80C51单片机原理介绍
4.1.2 程序编制的方法和技巧 强化模块观念程序模块(主程序模块、各种子程序模块) 模块化优点:分块设计、便于阅读、调试方便
采用循环和子程序使程序占用空间减少、结构清晰 循环初值和结束条件,避免“死机”现象 子程序的现场保护(注意栈平衡、寄存器内容) 对中断子程序还有注意保护PSW的内容5
2013-7-19
80C51单片机原理介绍
4.1.3 汇编语言的语句格式Keil的汇编器A51可以识别的语句形式为:[标号:] 指令助记符 [操作数1,] [操作数2,] [操作数3,] [;注释]
标号(即符号地址)非数字字符开头,后跟字母、数字、“-”、“?” 等 不能用已定义的保留字(指令助记符、伪指令等) 后跟英文冒号“:”
指令助记符
是指令功能的英文缩写。6
2013-7-19
80C51单片机原理介绍
操作数数据:二进制(B) 十进制(D或省略D) 十六进制(H),注意A~F开头时要加“0” ASCII码,如 A ,‘1245 符号:符号名、标号或“$”(PC的当前值) 表达式:由运算符和数据构成(见表4.1)
注释英文分号“;”开头7
2013-7-19
80C51单片机原理介绍
表4.1优先级
运 算 符
功
能
表达式及其结果示例 4*(5+6)即44 NOT 55H 即AAH; HIGH 1234H 即12H +5、-6 17 / 5 即3; 17 MOD 5 即2
() NOT、HIGH、 LOW高 ↓ ↓ ↓ ↓ ↓ ↓ ↓ 低·
括号 取反、取高字节、取低 字节 正号、负号 乘、除(取商)、取余 数
+、- *、/、MOD
+、- SHL、SHRAND、OR、XOR <、>、=、<>、 <=、>=
加、减 左移、右移与、或、异或 比较运算符
5+4 即 9; 5-4 =即1 2 SHL 2即8;8 SHR 2 即 245H AND 0FH即05H
MOV A,X>8; 若X>8为真,则为MOV A,01H 若X>8为假,则为MOV A,00H
2013-7-19
80C51单片机原理介绍
4.2 源程序的编辑和汇编目标程序的产生过程如下图:汇编源文件 .ASM
汇编器 A51.EXE
目标文件 (浮动地址) .OBJ
调试目标文件 (绝对地址) 无扩展名
可烧写 目标文件 .HEX
.LST
连接器 BL51.EXE
转换器 OH51.EXE
编译器 C51.EXE .M51
写入芯片 仿真调试
C源文件 .C
.LST
库文件 .LIB
映像文件
2013-7-19
80C51单片机原理介绍
4.2.1 源程序的编辑和汇编源程序的编辑依据汇编语言规则 用好伪指令 ORG LJMP ORG MAIN:MOV MOV MOV LOOP:MOV INC DJNZ SJMP END10
符号不用中文SJMP $ 用于调试
以 .ASM存盘
0000H MAIN 0040H R7,#16 R0,#60H A,#55H @R0,A R0 R7,LOOP $
2013-7-19
80C51单片机原理介绍
源程序的汇编汇编源程序转为目标程序的过程叫汇编 汇编通常在Windows下的集成开发环境完成 用A51.EXE汇编生成.OBJ、.LIB及.LST
目标程序的连接.OBJ、.LIB经BL51.EXE生成无扩展名的绝对地址目标文件 绝对地址目标文件可以用于仿真器调试 调试无误的目标文件用OH51.EXE转换为.HEX文件 .HEX文件经编程器写入单片机存储器11
2013-7-19
80C51单片机原理介绍
4.2.2 伪指令伪指令,也叫汇编命令。仅对汇编过程进行指示 伪指令无对应的单片机可执行代码
起始地址设定伪指令ORGORG 8000H 表达式通常为十六进制地址,例: START:MOV A,#30H ORG可多次使用,但地址值的顺序要由小到大 … … ORG 表达式
结束汇编伪指令END END该伪指令位于源程序的最后一行。2013-7-19 12
80C51单片机原理介绍
定义字节数据表伪指令DB[标号:] DB 字节数据表
1000H 1001H
FEH
FCHFAH 08H
如: ORG 1000H DB -2,-4,-6,8,10,18
0AH12H
定义字数据表伪指令DW[标号:] DW 字数据表 ORG 1400H DATA1:DW 324AH,3CH … …2013-7-19 13
1400H 1401H 1402H 1403H
32H
4AH00H 3CH
大端模式
80C51单片机原理介绍
定义常值为符号名伪指令EQU符号名 EQU 常值表达式 LEN SUM BLOCK EQU EQU EQU CLR MOV MOV LOOP:ADD INC DJNZ MOV 10 21H 22H A R7,#LEN R0,#BLOCK A,@R0 R0 R7,LOOP SUM,A
符号名为: 地址 常数 段名 字符串 寄存器名 位名 比较:标号只能是地址2013-7-19 14
80C51单片机原理介绍
定义位地址为符号名伪指令BIT符号名 BIT 位地址表达式 P1.0 0D7H ;将P1.0的位地址赋给符号名ST ;将位地址为D7H的位定义为符号名 如: ST BIT CF BIT
用BIT定义的“符号名”一经定义便不能重 新定义和改变 其它一些伪指令参见教材表4.2
2013-7-19
80C51单片机原理介绍
4.3 基本程序结构一般不影响标志寄存器PSW的状态。传送类指令有两大类一般传送( MOV ) 特殊传送,如: MOVC MOVX PUSH、POP XCH、XCHD SWAP
2013-7-19
80C51单片机原理介绍
4.3 基本程序结构4.3.1 顺序程序(无分支、无循环)开始
【例4-1】片内RAM的21H单元存放一个十进制数据十 位的ASCII码,22H单元存 放该数据个位的ASCII码。 编写程序将该数据转换成
取十位的ASCII码 保留低半字节 移至高半字节,存回 取个位的ASCII码 保留低半字节 合并到结果单元 结束
压缩BCD码存放在20H单元。
2013-7-19
80C51单片机原理介绍
ORG START:MOV ANL SWAP
MOV MOV ANL ORL SJMP END2013-7-19
0040H A,21H A,#0FH A 20H,A A,22H A,#0FH 20H,A $
;取十位ASCII码 ;保留低半字节 ;移至高半字节 ;存于20H单元 ;取个位ASCII码 ;保留低半字节 ;合并到结果单元
80C51单片机原理介绍
4.3.2 分支程序
(单分支、双分支、多分支)开始
【例4-2】设变量x以补码 的形式存放在片内RAM的 30H单元,变量y与x的关 系是:当x大于0时,y=x;当 x=0时,y=20H;当x小于0 时,y=x+5。编制程序,根 据x的大小求y并送回原单 元。2013-7-19 19
取x至累加器 Y X=0? N Y X>0? N X+05H送Y 20H送Y
结束
80C51单片机原理介绍
ORG 0040H START:MOV A,30H JZ NEXT ANL A,#80H JZ DONE MOV A,#05H ADD A,30H MOV 30H,A SJMP DONE NEXT:MOV 30H,#20H DONE:SJMP DONE END2013-7-19 20
;取x至累加器 ;x = 0,转NEXT ;否,保留符号位 ;x >0,转结束 ;x <0处理 ;X+05H送Y ;x = 0,20H送Y
80C51单片机原理介绍
【例4-3】根据R7的内容x(转移序号)转向相应的处理程序。 设R7内容为0~4,对应的处理程序入口地址分别为PP0~PP4。取分支号,乘2
地址高、低字节存DPTR
X=?
X=0 分支程序PP0
X=1 分支程序PP1
X=2 分支程序PP2
X=3 分支程序PP3
X=4 分支程序PP4
返回
2013-7-19
正在阅读:
80C51单片机的汇编语言程序设计06-04
郑州大学西亚斯国际学院09-22
中国苹果及深加工行业调研与投资前景研究报告(2017版)(目录)04-11
尔雅超星语言与文化05-02
2012年江西省青少年游泳比赛秩序册04-27
户外活动策划书(通用3篇)03-26
数字式红转速表04-22
《自强不息,知恩图报》国旗下的讲话范文03-23
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 汇编语言
- 单片机
- 程序设计
- 80C51
- 2013年4月考试电气安全第二次作业
- 学习张雅琴同志先进事迹有感
- 高中历史第四分册单元填空自测题
- 如何成功追击填权股?
- 多阶段决策优化最短路径问题的矩阵表示的matlab程序(续)1
- 10KV及以下电缆头制作作业指导书
- 药包材标准介绍-上海所-200906
- 血液透析患者中心静脉留置导管失功与处理
- 热喷涂技术代替电镀硬铬介绍
- 《生活与哲学》第三单元复习
- 原来这句日语这样说
- 数字证书应用常见问题解答
- 2021欢度元宵节作文450字
- 经济体制改革和政治体制改革的关系
- 电大计算机网络专科实施方案
- 第三章 产品市场与货币市场均衡答案
- 四年级下册美术教案
- 17.电磁波习题思考题
- 转基因食品的安全问题
- 专业技术人员情绪管理与职场减压答案 82分