




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
74 章 4 80C51 的汇编语言程序设计 1 80C51 单片机汇编语言有何特点 答 汇编语言结构紧凑 灵活 汇编成的目标程序效率高 具有占存储空间少 运行速度快 实时性强等优 点 它是面向机器的语言 对于单片机硬件的操作直接 方便 有利于初学者对单片机结构的认知 但它与高级语言相比移植性不好 编程复杂 对编程人员的基础要求高 2 利用 80C51 单片机汇编语言进行程序设计的步骤如何 答 一 任务分析 首先 要对单片机应用系统的设计目标进行深入分析 明确系统设计任务 功能要求和技术指标 然后 对系统的运行环境进行调研 这是应用系统程序设计的基础和条件 二 算法设计 经过任务分析和环境调研后 已经明确的功能要求和技术指标可以用数学方法 或模型 来描述 进而 把一个实际的系统要求转化成由计算机进行处理的算法 并对各种算法进行分析比较 并进行合理的优化 三 流程描述 程序的总体构建 先要确定程序结构和数据形式 资源分配和参数计算等 然后根据程序运行的过程 规划程序执行的逻辑顺序 用图形符号将程序流程绘制在平面图上 应用程序的功能通常可以分为若干部分 用流程图将具有一定功能的各部分有机地联系起来 流程图可以分为总流程图和局部流程图 总流程图侧重反映程序的逻辑结构和各程序模块之间的相互关 系 局部流程图反映程序模块的具体实施细节 3 常用的程序结构有哪几种 特点如何 答 顺序程序 无分支 无循环结构的程序 其执行流程是依指令在存储器中的存放顺序进行的 分支程序 可以改变程序的执行顺序 循环程序 按某种控制规律重复执行的程序 控制一部分指令重复执行若干次 以便用简短的程序完成 大量的处理任务 4 子程序调用时 参数的传递方法有哪几种 答 利用累加器或寄存器 利用存储器 利用堆栈 5 什么是伪指令 常用的伪指令功能如何 答 伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令 常用的伪指令包括 ORG 功能是向汇编程序说明下面紧接的程序段或数据段存放的起始地址 75 END 功能是结束汇编 DB 功能是从标号指定的地址单元开始 在程序存储器中定义字节数据 DW 功能是从标号指定的地址单元开始 在程序存储器中定义字数据空间 EQU 功能是将表达式的值或特定的某个汇编符号定义为一个指定的符号名 BIT 功能是将位地址赋给指定的符号名 6 设被加数存放在内部 RAM 的 20H 21H 单元 加数存放在 22H 23H 单元 若要求和存放在 24H 25H 中 试编写出 16 位无符号数相加的程序 采用大端模式存储 答 程序如下 ORG 0000H MOV R0 21H MOV R1 23H MOV A R0 ADD A R1 MOV 25H A DEC R0 DEC R1 MOV A R0 ADDC A R1 MOV 24H A SJMP END 7 编写程序 把外部 RAM 中 1000H 101FH 的内容传送到内部 RAM 的 30H 4FH 中 答 ORG 0000H MOV DPTR 1000H MOV R0 30H MOV R7 32 LOOP MOVX A DPTR MOV R0 A INC R0 INC DPTR DJNZ R7 LOOP RET 8 编写程序 实现双字节无符号数加法运算 要求 R0R1 R6R7 60H61H 答 ORG 0000H MOV A R1 76 ADD A R7 MOV 61H A MOV A R0 ADDC A R6 MOV 60H A SJMP END 9 若 80C51 的晶振频率为 6MHz 试计算延时子程序的延时时间 DELAY MOV R7 0F6H LP MOV R6 0FAH DJNZ R6 DJNZ R7 LP RET 答 延时时间 2 s 1 1 2 250 2 246 2 2 0 247486 秒 含调用指令 2 个机器周期 10 在内部 RAM 的 30H 37H 单元存有一组单字节无符号数 要求找出最大数存入 BIG 单元 试编写 程序实现 答 ORG 0000H BIG DATA 2FH ONE DATA 2AH TWO DATA 2BH START MOV R7 7 比较次数 MOV R0 30H LOOP MOV A R0 MOV ONE A INC R0 MOV TWO R0 CLR C SUBB A R0 JC NEXT ONE 小 TWO 大继续比下一对数 MOV R0 ONE ONE 大放后面 交换 DEC R0 MOV R0 TWO TWO 小放前面 INC R0 NEXT DJNZ R7 LOOP 77 MOV BIG 37H SJMP END 11 编写程序 把累加器 A 中的二进制数变换成 3 位 BCD 码 并将百 十 个位数分别存放在内部 RAM 的 50H 51H 52H 中 答 单字节二进制数转换为压缩的 BCD 码仅需要 2 个字节 在将压缩的 BCD 码拆分存于 3 个单元 org 0 MOV 52H 0 MOV 51H 0 MOV 50H 0 MOV A 0FDh LCALL DCDTH SJMP DCDTH MOV R7 8 MOV R0 A 暂存于 R0 LOOP CLR C MOV A R0 RLC A MOV R0 A MOV R1 51H MOV A R1 ADDC A R1 DA A MOV R1 A DEC R1 MOV A R1 ADDC A R1 DA A MOV R1 A DJNZ R7 LOOP INC R1 50H 已是结果 R1 指向 51H 51H 单元需拆分 MOV A 00H XCHD A R1 MOV 52H A MOV A R1 78 SWAP A MOV R1 A RET END 12 编写子程序 将 R1 中的 2 个十六进制数转换为 ASCII 码后存放在 R3 和 R4 中 答 ORG 0 MOV R1 5BH MOV A R1 ANL A 0F0H SWAP A ACALL ASCII MOV R3 A MOV A R1 ANL A 0FH ACALL ASCII MOV R4 A SJMP ASCII PUSH ACC CLR C SUBB A 0AH POP ACC JC LOOP ADD A 07H LOOP ADD A 30H RET END 13 编写程序 求内部 RAM 中 50H 59H 十个单元内容的平均值 并存放在 5AH 单元 答 ORG 0000H MOV R7 10 MOV R0 50H MOV B 10 CLR C CLR A LOOP ADDC A R0 INC R0 79 DJNZ R7 LOOP DIV AB MOV 5AH A SJMP END 14 如图 4 10 所示 编制程序实现 上电后显示 P 有键按下时显示相应的键号 0 7 答 实现程序如下 TEMP EQU 30H ORG 0000H JMP START ORG 0100H START MOV SP 5FH MOV P0 8CH 正序显示 P MOV P3 0FFH 输入方式 CLR CY NOKEY MOV A P3 CPL A JZ NOKEY 无键按下 MOV TEMP P3 有键按下 CALL D10ms MOV A P3 CJNE A TEMP NOKEY 去抖动 MOV R2 0 键号计数器复位 MOV A TEMP LP RRC A JNC DONE INC R2 SJMP LP DONE MOV A R2 MOV DPTR CODE P0 MOVC A A DPTR MOV P0 A JMP NOKEY
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大班建构积木活动指南
- 儿童国画鸡课件
- 时间位移课件
- 时钟变时间尺课件
- 2025版高端餐饮连锁加盟合作协议
- 2025版体育赛事赞助担保合同
- 二零二五版房屋代理买卖合同(含市场分析)
- 二零二五年度板材库存管理与购销合同
- 2025版餐饮企业承包合同标准模板下载
- 2025版第一部分智慧交通建设项目投标邀请合同
- 2024年成都新都投资集团有限公司招聘笔试真题
- 新人教版九年级下册初中化学全册课前预习单
- 加药系统改造方案(共6页)
- 内蒙古电网典型事故分析
- 工厂规章制度员工守则.doc
- 螺栓各部位的英文名称
- 线性代数:矩阵2-1矩阵的概念
- 精品]上海市单位退工证明
- 医疗质量与安全分析报告范文
- 600MW机组两车台吊发电机定子吊装方案
- 商铺销售基础知识培训
评论
0/150
提交评论