已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章 80C51汇编语言 程序设计 4.1 概述 4.1.1 汇编语言程序设计的步骤 分析问题 确定算法 画出程序流程图 分配内存单元 编写汇编语言源程序 汇编语言程序的调试 4.1 概述 汇编语言编程的注意事项 编写程序时应尽量使程序简短及缩短运行时间; 应尽量采用循环结构和子程序; 尽量少用无条件转移指令; 在设计程序时,还要考虑程序与数据的存放地 址; 对于通用子程序,要考虑保护现场; 对于中断处理,除了保护处理程序中用到的寄存 器外,还要保护程序状态字; 充分利用累加器。 4.2 基本结构程序设计 程序设计的基本结构有:顺序结构、分支结构和循环结构。 4.2.1 顺序结构程序 例4-2 将30H单元的2个BCD码拆开并分别存入到31H和32H 单元中。 解:方法一:先把30H中低4位BCD码交换出来,存入31H 中,再把高4位BCD码交换到低4位存入32H中。 4.2 基本结构程序设计 方法一: ORG 0000H LJMP MAIN ORG 0030H MAIN:MOV R0,#32H MOV R0, #00H MOV A, 30H XCHD A, R0 SWAP A MOV 31H, A SJMP $ END 见42 a 方法二: ORG 0000H LJMP START ORG 0030H START: MOV A, 30H ANL A, #0FH MOV 31H, A MOV A, 30H ANL A, #0F0H SWAP A MOV 32H, A SJMP $ END 见 42 b 4.2 基本结构程序设计 4.2.2 分支结构 例- 两个单字节无符号数比较大小。 设两个单字节无符号数分别存在内部 RAM 30H 和31H 单元中,找出其中的大 数存入32H 单元中。 解:两个单字节无符号数比较大小的方 法通常是做减法,然后根据是否产生借位 判断大小。还有一点要注意:累加器 在 减法运算前装的是被减数,减法运算后装 的是差。思路框图如图 -所示。 4.2 基本结构程序设计 ORG 0000H LJMP START ORG 0030H START:MOV R0,#30H MOV A,R0 INC R0 CLR C SUBB A,R0 JC BIG2 ADD A,R0 SJMP NEXT BIG2: MOV A, R0 NEXT: INC R0 MOV R0,A SJMP $ END 4.2 基本结构程序设计 例:4-5编程实现函数 ,已知(30H)=x, (31H)=y 。 1 x 0 0 x0 1 x 0 解:算法:先判x0,再判另外的两种情况。 程序框图: 程序: ORG 0050H MOV A, 30H JNZ LOP1 ;x0转移 MOV 31H, #00H SJMP NEXT LOP1: JB ACC.7, LOP2 ;x 0转移 MOV 31H, #01H SJMP NEXT LOP2: MOV 31H, #0FFH NEXT: SJMP $ END y 4.2 基本结构程序设计 例:4-6例:某单片机应用系统中有8个按键,扫描后得到的键 号,存放在R2中,8个按键的处理程序的入口分别为KEY0、 KEY1、KEY7,请编写程序。 解:根据已知条件得到以下框图: 难点:无专用的多分支指令。 解决方法:用散转指令和转移指令配合使用。 4.2 基本结构程序设计 程序1:用AJMP 和JMP 程序 KEY: MOV DPTR, #TAB; 转移表的首址 MOV A, R2 RL A JMP A+DPTR TAB: AJMP KEY0 AJMP KEY1 AJMP KEY2 AJMP KEY3 AJMP KEY4 AJMP KEY5 AJMP KEY6 AJMP KEY7 KEY0: RET KEY1: RET KEY7: RET 4.2 基本结构程序设计 程序2:用LJMP 和JMP 程序 KEY: MOV DPTR, #TAB; 转移表的首址 MOV A, R2 RL A ADD A, R2 JMP A+DPTR TAB: LJMP KEY0 LJMP KEY1 LJMP KEY2 LJMP KEY3 LJMP KEY4 LJMP KEY5 LJMP KEY6 LJMP KEY7 KEY0: RET KEY1: RET KEY7: RET 4.2 基本结构程序设计 4.2.3 循环结构程序 例:对内部RAM 30H3FH清零,请编程。 解: ORG 0000H LJMP START ORG 0050H START:MOV R0, #30H ;R0指向30H MOV R7, #16 ;设定循环次数 LOP:MOV R0, #00H INC R0 DJNZ R7, LOP SJMP $ END 4.2 基本结构程序设计 例:4-10 设计一个延时50ms的程序 DEL :MOV R7, #200 DEL1:MOV R6, #123 NOP DEL2:DJNZ R6, DEL2 DJNZ R7, DEL1 RET 4.2 基本结构程序设计 4.3 子程序设计 例:4-9已知(30H)=x,(31H)=y ,(32H)=f,实现函数 f小于255 DL : MOV DPTR,#TAB MOVC A,A+DPTR RET TAB: DB 00H,01H,04H,09H,10H DB 19H,24H,31H,40H,51H DB 64H,79H,90H,0A9H END ORG 0000H AJMP START
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 4086.4-2025数据分析与决策统计分布数值表第4部分:F分布
- 2025年国际商务专家职业资格考试备考题库及答案解析
- 2025年银行从业人员职业资格《银行业务知识与操作能力》备考题库及答案解析
- 商铺租赁维修责任合同协议2025年
- 商铺租赁合同协议2025年续签条款
- 商场转租合同协议2025年细则
- 汽车租赁2025年合同协议书
- 民宿热水器维修合同协议2025
- 2025年360度全方位绩效考核应用考试试题及答案
- 基金合同合伙协议模板
- 2025江苏海氧深冷科技有限公司招聘工作人员9人考试模拟试题及答案解析
- 广东省广州市花都区2024-2025学年上学期九年级期中考试数学试题(含答案)
- (完整word版)英语四级单词大全
- 2023年学习兴税(电税条线)知识考试题库(含答案)
- 动态心电图简介及操作课件
- 血液透析充分性的评估与管理
- 黑龙江专升本植物生理练习题
- 腹膜透析感染诊治指南
- GB/T 4857.4-2008包装运输包装件基本试验第4部分:采用压力试验机进行的抗压和堆码试验方法
- 《环境保护法》课件
- 美国波多里奇质量奖课件
评论
0/150
提交评论