- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件实验报告讲述
本科实验报告
课程名称:
微机原理与接口技术
姓 名:
邵芳琳
学 院(系):
控制学院
专 业:
自动化
学 号:
3140103307
指导教师:
曹峥
2016年 11月 11日
实验一 存储器块操作实验
一、实验目的
1. 熟悉 KEIL 集成调试环境和汇编程序的调试方法。
2. 掌握存储器读写方法;
3. 了解内存块的移动方法;
二、实验说明
实验 1 指定某块存储器的起始地址和长度,要求能将其内容赋值。通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
块移动是单片机常用操作之一,多用于大量的数据复制和图象操作。例程 2 给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。移动 3000H 起始的 256个字节到 4000H 起始的 256 个字节。
思考题
1. 如何将存储器块的内容置成某固定值(例全填充为 0FFH)? 请用户修改程序,完成此操作。
将MOV A,#1H 改为MOV A,#FFH
2. 若源块地址和目标块地址有重叠,该如何避免?
源块地址和目标块地址重叠部分数据压制堆栈中,当要使用重叠部分源数据时,直接从堆栈中弹出。
实验内容
1. 试编程将片内 RAM 中的数据依次复制到片外 RAM。假设源数据区的首地址为 40H,目的数据区的首地址为 1000H,数据块长度为 10H。
运行结果:
2. 两个 16 位无符号二进制数分别存放在片外 RAM 首址为 2000H 和 2002H 单元内,将它们相加,结果存入片内 RAM 30H(低 8 位)、31H(高 8 位)。
运行前:
运行后:
1100+0011=1111
运行结果正确。
实验二 数值转换实验
一、实验目的
1. 熟悉 KEIL 集成调试环境和汇编程序的调试方法。
2. 掌握简单的数值转换算法。
3. 基本了解数值的各种表达方法。
4. 掌握数值的加减法运算。
5. 掌握用查表的方法将 BCD 值转换成 ASCII 值。
二、实验说明
单片机系统内部运算用二进制,而输入输出常用十进制,以符合日常习惯,因此,数制转换是仪表设计中常用的程序之一。
单片机中的数值有各种表达方式,这是单片机的基础。掌握各种数制之间的转换是一种基本功。我们将给定的一字节二进制数,转换成二十进制(BCD)码。将累加器 A 的值拆为三个 BCD 码,并存入 RESULT 开始的三个单元,例程 A 赋值#123。
实验 2 主要让学生了解数值的 BCD 码和 ASCII 码的区别,利用查表方法快速地进行数值转换。进一步掌握数值的各种表达方式。现在我们给出一个 BCD 数,将其转换成 ASCII 值。如下:将累加器 A 的值转换为二个 ASCII 码,并存入 Result 开始的二个单元,例如 A 赋值#1AH。
思考题
BCD 码转换成二进制数的算法是什么?例如:(91) BCD 对应的二进制数是多少?
将BCD码写成权值相加的形式,再将各位转化为二进制。
9×10^1+1×10^0=91=()B
实验内容
1. 把 R 3 中的 8 位二进制整数转换为压缩 BCD 码,存放在 R4, R5 中。
寄存器结果:
2. 设 4 位 BCD 码 abcd 依次存放在内部 RAM 中 50H~53H 单元的低 4 位,(高 4 位为 0)。试编程将其转换成二进制数并存入 R6R7 中。
执行结果:
4位BCD码为1234,转换为2进制数为4d2与实际相符。
实验三 程序跳转表实验
一、实验目的
1. 熟悉 KEIL 集成调试环境和汇编程序的调试方法。
2. 了解简单的函数计算。
3. 掌握多分支结构程序的编程方法
二、实验说明
多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
三、思考题
1. 写跳转程序时要注意些什么?
1)子程序的第1条指令前必须有标号,即表明子程序的名称,也作为调用指令的符号地址。
2)要有入口条件,用来说明入子程序时,它所要处理的数据如何得到。另外,要有出口条件,即处理的结果是如何存放的。
3)注意保护现场和恢复现场,即在调用子程序前将不允许被破坏的内容保存起来;恢复现场即在子程序执行完毕返回主程
文档评论(0)