




免费预览已结束
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
顺序顺序 分支分支 循环三种结构程序的基本编程训练循环三种结构程序的基本编程训练 1 拆字程序 定义一个压缩BCD码数据并保存在片外RAM8000H单元 分离为非压缩BCD码数存 入片内RAM30H和31H单元 以断点调试方式观察分离结果 分析如下 先将片外8000H单元的压缩BCD码数取到片内 然后经过逻辑运算后保存分离后的 结果 源程序如下 ORG8000H MOVDPTR 8000H MOVXA DPTR MOV30H A SWAPA MOV31H A ANL30H 0FH ANL31H 0FH SJMP END 步骤 先建一个工程并将以上源程序增加到工程 然后构造对象 编译成功后 启动调试 先不 要运行程序 点击查看 内存变量窗口 在内存地址栏输入X 8000H 在8000H地址栏设定新 的数值 方法同上 输入新的数值 如97H 全速运行程序观察运行后的结果 30H单元应为 07H 31H单元应为09H 2 拚字程序 定义一个二位的非压缩BCD码数据并保存在片外RAM8000H 个位 和8001H 十位 单元 拚接为压缩BCD码数据存入片内RAM30H单元 以断点调试方式观察拚接结果 源程序如下 ORG0000H MOVDPTR 8000H MOVXA DPTR MOVB A INCDPTR MOVXA DPTR ORLA B 也可以用ADDA B指令实现 MOV30H A SJMP 3 用DB伪指令定义10个无序数据 采用冒泡排序的方法将其从小到大或从大到小排序后存入 片外RAM2000H开后的单元 调试程序观察排序结果 分析如下 用DB伪指令定义的数据均存储在程序存储器空间 为了便于处理可以在片内定义 一个十字节的缓冲区 先将DB伪指令定义的十个数据取到缓冲区 排完序后再顺序存储到片 外RAM2000H始后的十个单元 源程序如下 ORG0000H MOVDPTR TAB MOVR0 40H MOVR2 0AH LP1 CLRA MOVCA A DPTR MOV R0 A INCDPTR INCR0 DJNZR2 LP1 LP3 MOVR0 40H MOVR1 41H MOVR2 09H CLRF0 LP2 MOVA R0 MOVB R1 CLRC SUBBA B JCNEXT MOVA R0 XCHA R1 XCHA R0 SETBF0 NEXT INCR0 INCR1 DJNZR2 LP2 JBF0LP3 MOVR0 40H MOVDPTR 2000H MOVR2 0AH LP4 MOVA R0 MOVX DPTR A INCR0 INCDPTR DJNZR2 LP4 SJMP TAB DB79H 21H 09H 34H 25H 90H 75H 64H 56H 29H END 程序运行后 查看片外存储器2000H开始以后的单元的内容观察排序后的结果 4 用DB伪指令定义10个包含0 正数 负数的一组数据 分别统计其中0 正数 负数各数的个数 统计结果保存到内部RAM30H 31H 32H单元 调试程序观察统计结果 源程序如下 ORG 0000H MOV DPTR TAB MOV R2 0AH CLR A MOV 30H A MOV 31H A MOV 32H A LP CLR A MOVC A A DPTR JNZ NOZERO INC 30H SJMP NEXT NOZERO JB ACC 7 NDATA INC 31H SJMP NEXT NDATA INC 32H NEXT INC DPTR DJNZ R2 LP SJMP TAB DB 79H 21H 09H 34H 25H 20H 75H 00H 56H 00H END 程序运行结果 30H 02H 31H 05H 32H 03H 一 程序设计选题 1 完成两个4字节数的BCD码数的相加 和存入内部数据存储器24H 20H单元 观察运算结 果 分析分析 设BCD码被加数存储在30H开始后的4个单元 加数存储在40H开始以后的4个单元 BCD加 法运算可以用二进制数的加法运算指令 但运算后要调整 设所有数据均为低位在低地址单 元高位在高地址单元 源程序如下 ORG 0000H MOV R0 30H MOV 50H 40H MOV 51H 20H MOV R2 04H CLR C LP MOV A R0 MOV R1 50H ADDC A R1 DA A MOV R1 51H MOV R1 A INC R0 INC 50H INC 51H DJNZ R2 LP CLR A ADDC A 00H MOV R1 51H MOV R1 A SJMP END 步骤 先建一个工程并将以上源程序增加到工程 然后构造对象 编译成功后 启动调试 先不 要运行程序 点击查看 内存变量窗口 在内存地址栏输入D 30H 33H四个单元分别输入新 的数据 如 12H 34H 56H 78H 在40H 43H四个单元地址栏输入新的数值 如 23H 45H 67H 89H 全速运行程序观察运行后的结果 20H 24H五个单元的值应依次为 35H 79H 23H 68H 01H 该程序事实上实现了78563412和89674523两个十进制数的相加运算 2 将外部数据存储器中的10个十六进制数转换成ASCII码存放回原单元 观察转换结果 分析如下 查ASCII码表知道0 9十个数码转换成ASCII码时只需将数码加上30H A F6个数码 则应加上41H 设十个16进制数码依次存储在片外2000H以后的单元 源程序如下 ORG 0000H MOV DPTR 2000H MOV R2 0AH LP MOVX A DPTR CJNE A 09H NEXT SJMP ADD30H NEXT JNC ADD41H ADD30H ADD A 30H SJMP TOL ADD41H ADD A 41H TOL MOVX DPTR A INC DPTR DJNZ R2 LP SJMP END 步骤 先建一个工程并将以上源程序增加到工程 然后构造
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阳江市消防救援支队政府专职消防员招录笔试真题2024
- 年关食品安全培训心得
- 工业安全管理培训教学课件
- Ethyl-3-hydroxy-2-2-4-trimethylpentanoate-d6-生命科学试剂-MCE
- 山东事业单位笔试真题2025
- 江西公务员真题试卷
- 2025年安阳事业单位真题
- 2025年安吉事业单位真题
- 2025年漯河市事业单位考试真题
- 消费与零售:2025年物联网+零售行业市场规模及增长趋势分析报告
- 老年痴呆科普课件
- 2025年泉州大队委笔试题目及答案
- 义乌市国有资本运营有限公司2025年度员工公开招聘笔试参考题库附带答案详解
- CRT2000 消防控制室图形显示装置-使用说明书-V1.0
- 文旅演艺活动
- 口腔科无菌操作课件
- 房地产中介服务操作流程手册
- 中风病人的护理措施
- 2025年大邑人才引进面试题及答案
- 新零售业态选址模型-洞察及研究
- 工业园区污水处理站运行成本优化初步设计评估报告
评论
0/150
提交评论