分支与循环程序设计

上传人:gbs****77 文档编号:10728135 上传时间:2020-04-14 格式:DOC 页数:16 大小:680KB
返回 下载 相关 举报
分支与循环程序设计_第1页
第1页 / 共16页
分支与循环程序设计_第2页
第2页 / 共16页
分支与循环程序设计_第3页
第3页 / 共16页
点击查看更多>>
资源描述
微机实验 报告 1 实验名称 分支与循环程序设计 成 绩 指导教师 专业班级 姓 名 白 学 号 联系电话 一 任务要求 1 熟练掌握 Keil 环境下汇编语言程序的调试方法 加深对汇编语言指令 机器码 寻址方式等基本内容的理解 掌握分支程序和简单程序的设计与调试方法 了解 并行 IO 口的使用 2 设有 8bits 符号数 X 存于外部 RAM 单元 按以下方式计算后的结果 Y 也存于外部 RAM 单元 请按要求编写完整程序 3 利用 51 系列单片机设计一个 24 小时制电子时钟 电子时钟的时 分 秒数值分 别通过 P0 P1 P2 端口输出 以压缩 BCD 码的形式 P3 0 为低电平时开始计时 为高电平时停止计时 设计 1s 延时子程序 延时误差小于 10us 晶振频率 12MHz 4 1 实现 4 位十进制加 减 1 计数 千位 百位由 P1 口输出 十位 个位由 P2 口 输出 利用 P3 7 状态选择加 减计数方式 2 利用 P3 口低四位状态控制开始和停止计数 控制方式自定 二 设计思路 微机实验 报告 2 1 先在外部 RAM 取数 然后判断该符号数是否为负数 若为负数 则取相反数并存 数 若为正数 则接着判断该数是否大于等于 64 若满足 则求平方并存数 先 存低位 后存高位 若小于 64 则接着判断该数是否大于 10 若满足 则求该数 的一半并存数 若小于等于 10 则取相反数并存数 2 第一步先编可以延时 1S 的子程序 DELAY 接着判断 P3 O 是否满足开始计数条件 若不满足 则重复判断 若满足 则对时分秒分别赋值 调用延时子程序 判断 是否满足计时条件 若不满足 则重复判断直至满足 若满足 则秒钟自加一 循环 判断秒钟循环满 60 次后出循环 对分钟自加一 然后继续循环 最后判断 分钟循环满 60 次后出循环 对时钟自加一 然后判断时钟循环满 24 则回到初值 时分秒重新赋值并重新开始循环 3 判断 P3 7 若为 1 则进行加一计数 若为 0 则跳转至另一程序进行减一计数 加一计数中 先取低位 P1 送 A 自加一 送 P1 判断是否有溢出 若有 则取高 位 P2 送 A 自加一 送 P2 然后回判断循环 减一计数同理 即先取低位 P1 送 A 自减一 送 P1 判断是否有进位 若有 则取高位 P2 送 A 自减一 送 P2 然后回判断继续循环 三 资源分配 1 2000H 片外 RAM 存数 2001H 存结果低八位 2002H 存结果高八位 B 寄存器 暂存结果高八位 2 P3 0 存计时判断位 R0 R1 R2 存延时子程序中各重循环的循环次数 R3 R4 R5 存时分秒的循环次数 P0 P1 P2 存时分秒的输出值 3 P1 P2 分别存十进制计数的低两位 高两位 P3 7 存计数方式的控制位 微机实验 报告 3 四 流程图 1 8 bit 符号数的判断与计算 开 始 取 数 放 入 A A 64 A 10 A 低 字 节 存 A A 高 字 节 存 B DPTR加 1 存 A DPTR再 加 1 存 B A A 2 A取 反 DPTR加 1 存 A 结 束 A 77 0 Y N Y N 微机实验 报告 4 2 时钟设计 开 始 P3 0 0 R3 24 P0 00H R4 60 P1 00H R5 60 P2 00H P3 0 0 Y N P2加 1 并 调 整 为 十 进 制 NY R5 0 P1加 1 并 调 整 为 十 进 制 R4 0 P0加 1 并 调 整 为 十 进 制 R3 0 DELAY 1S Y Y N N Y N 微机实验 报告 5 3 十进制加减一计数器 开 始 对 P1 P2赋 初 值 P3 7 0 P1 1 P1 1 C 1 C 0 P2 1 调 用 延 时 1s子 程 序 P2 1 五 源代码 含文件头说明 语句行注释 1 8 bit 符号数的判断与计算 ORG 0000H LJMP START ORG 1000H START MOV DPTR 2000H 地址指针赋初值 MOV A 22 MOVX DPTR A MOVX A DPTR 取数 JB ACC 7 DD CJNE A 64 AA 若 A 64 则转 AA AA JC BB 若 A 64 则转 BB MOV B A MUL AB 求 A 的平方 微机实验 报告 6 INC DPTR MOVX DPTR A 存结果低八位 INC DPTR MOV A B MOVX DPTR A 存结果高八位 SJMP BB CJNE A 10 CC 若 A 10 则转 CC CPL A EE INC DPTR MOVX DPTR A SJMP CC JC DD 若 A 10 则转 DD RR A 若 A 10 则右移一位 SJMP EE DD CPL A INC A SJMP EE END 微机实验 报告 7 2 时钟设计 ORG 0000H LJMP START ORG 1000H START JB P3 0 START 若为 0 则开始计时 RESTA MOV R3 24 MOV P0 00H 时钟赋初值 LOOP3 MOV R4 60 MOV P1 00H 分钟赋初值 LOOP2 MOV R5 60 MOV P2 00H 秒钟赋初值 微机实验 报告 8 LOOP1 ACALL DELAY 调用延时 1S 子程序 LOOP JB P3 0 LOOP 若为 1 则停止计时 MOV A P2 ADD A 01H DA A MOV P2 A DJNZ R5 LOOP1 判断秒钟是否结束循环 MOV A P1 ADD A 01H DA A MOV P1 A DJNZ R4 LOOP2 判断分钟是否结束循环 MOV A P0 ADD A 01H DA A MOV P0 A DJNZ R3 LOOP3 判断时钟是否结束循环 LJMP RESTA DELAY MOV R0 12 NOP DELAY3 MOV R1 130 DELAY2 MOV R2 212 NOP NOP DELAY1 NOP DJNZ R2 DELAY1 DJNZ R1 DELAY2 微机实验 报告 9 DJNZ R0 DELAY3 RET END 3 十进制加减计数器 ORG 0000H LJMP START ORG 1000H START MOV P1 12H MOV P2 92H LOOP ACALL DELAY MOV A P2 微机实验 报告 10 JB P3 7 AA 若为 1 则转 AA 实现记数加 1 ADD A 99H DA A 实现十进制减 1 MOV P2 A JC BB 判断是否产生借位 若产生 则对高位减 1 MOV A P1 ADD A 99H DA A MOV P1 A AJMP LOOP AA ADD A 01H DA A 实现十进制加 1 MOV P2 A JNC BB 判断是否产生进位 若产生 则对高位加 1 MOV A P1 ADD A 01H DA A MOV P1 A BB AJMP LOOP DELAY MOV R0 12 NOP DELAY3 MOV R1 130 DELAY2 MOV R2 212 NOP NOP DELAY1 NOP DJNZ R2 DELAY1 DJNZ R1 DELAY2 DJNZ R0 DELAY3 微机实验 报告 11 RET END 六 程序测试方法与结果 1 8 bit 符号数的判断与计算 1 令片外 RAM 中数据为 64 2 令片外 RAM 中数据为 22 微机实验 报告 12 3 令片外 RAM 数据为 1 4 令片外 RAM 数据为 2 2 时钟设计 1 令 P3 0 0 程序按十进制正常运行 微机实验 报告 13 2 令 P3 0 0 暂停计数 3 设置断点观察延时子程序的延时时间 刚好为 1s 微机实验 报告 14 3 十进制加减 1 计数器 1 将 P3 7 置 1 计数器实现加一计数 2 将 P3 7 置 0 计数器实现减一计数 微机实验 报告 15 七 思考题 1 实现多分支结构程序的主要方法有哪些 举例说明 a 分支地址表法 b 转移指令表法 c 地址偏移量表法 2 在编程上 十进制加 1 计数器与十六进制加 1 计数器的区别是什么 怎样用十进制加 法指令实现减 1 计数 a 十进制加 1 计数器满十进 1 十六进制加 1 计数器满 16 进 1 十进制加法需用 DA A 指令进行调整 b 用 ADD A 99H DA A 指令 即可实现减 1 计数 本人承诺 本报告内容真实 无伪造数据 无抄袭他人成果 本人完全了解学校 相关规定 如若违反 愿意承担其后果 签字 白如海 2017 年 10 月 20 日 微机实验 报告 16 其它说明 1 标题 黑体 小四号 2 正文 宋体 五号 1 5 倍行距 3 流程图使用 SmartDraw7 或 Visio 软件绘制 4 不要加封面
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!