软件实验报告详细版

上传人:新** 文档编号:470087571 上传时间:2022-12-18 格式:DOCX 页数:13 大小:22.39KB
返回 下载 相关 举报
软件实验报告详细版_第1页
第1页 / 共13页
软件实验报告详细版_第2页
第2页 / 共13页
软件实验报告详细版_第3页
第3页 / 共13页
软件实验报告详细版_第4页
第4页 / 共13页
软件实验报告详细版_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《软件实验报告详细版》由会员分享,可在线阅读,更多相关《软件实验报告详细版(13页珍藏版)》请在金锄头文库上搜索。

1、本文格式为Word版,下载可任意编辑软件实验报告详细版 本科试验报告 课程名称: 微机原理与接口技术 姓 名: 邵芳琳 学 院(系): 掌握学院 专 业: 自动化 学 号: 3140103307 指导老师: 曹峥 2021 年 11 月 11 日 试验一 存储器块操作试验 一、试验目的 1 熟识 KEIL 集成调试环境和汇编程序的调试方法。 2 把握存储器读写方法; 3 了解内存块的移动方法; 二、试验说明 试验 1 指定某块存储器的起始地址和长度,要求能将其内容赋值。通过该试验同学可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。 块移动是单片机常用操作之一,多用于大量的数

2、据复制和图象操作。例程 2 给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。移动 3000H 起始的 256 个字节到 4000H 起始的 256 个字节。 思索题 1 如何将存储器块的内容置成某固定值(例全填充为 0FFH)? 请用户修改程序,完成此操作。 将 MOV A,#1H 改为 MOV A,#FFH 2 若源块地址和目标块地址有重叠,该如何避开? 源块地址和目标块地址重叠部分数据压制堆栈中,当要使用重叠部分源数据时,直接从堆栈中弹出。 试验内容 1. 试编程将片内 RAM 中的数据依次复制到片外 RAM。假设源数据区的首地址为 40

3、H,目的数据区的首地址为 1000H,数据块长度为 10H。 ORG 0000H MOV R0,#40H MOV A,#01H MOV R5,#10H LOOP: MOV R0,A INC R0 DJNZ R5,LOOP MOV R0,#40H ;起始地址 MOV R2,#10H MOV R3,#00H MOV R7,#10H ;循环次数 LOOP1: MOV A,R0 MOV DPH,R2 MOV DPL,R3 MO DPTR,A INC R0 INC R3 DJNZ R7,LOOP1 LJMP $ END 运行结果: 2. 两个 16 位无符号二进制数分别存放在片外 RAM 首址为 202

4、1H 和 2021H 单元内,将它们相加,结果存入片内 RAM 30H(低 8 位)、31H(高 8 位)。 运行前: 运行后: ORG 0000H MOV A,#11H MOV DPTR,#2021H MO DPTR,A MOV DPTR,#2021H MO DPTR,A MOV R0,A MOV DPTR,#2021H MO A,DPTR ADD A,R0 MOV 30H,A MOV DPTR,#2021H MO A,DPTR MOV R0,A MOV DPTR,#2021H MO A,DPTR ADDC A,R0 MOV 31H,A END 1100+0011=1111 运行结果正确。

5、试验二 数值转换试验 一、试验目的 1 熟识 KEIL 集成调试环境和汇编程序的调试方法。 2 把握简洁的数值转换算法。 3 基本了解数值的各种表达方法。 4 把握数值的加减法运算。 5 把握用查表的方法将 BCD 值转换成 ASCII 值。 二、试验说明 单片机系统内部运算用二进制,而输入输出常用十进制,以符合日常习惯,因此,数制转换是仪表设计中常用的程序之一。 单片机中的数值有各种表达方式,这是单片机的基础。把握各种数制之间的转换是一种基本功。我们将给定的一字节二进制数,转换成二十进制(BCD)码。将累加器 A 的值拆为三个 BCD 码,并存入 RESULT 开头的三个单元,例程 A 赋值

6、#123。 试验 2 主要让同学了解数值的 BCD 码和 ASCII 码的区分,利用查表方法快速地进行数值转换。进一步把握数值的各种表达方式。现在我们给出一个 BCD 数,将其转换成 ASCII 值。如下:将累加器 A 的值转换为二个 ASCII 码,并存入 Result 开头的二个单元,例如 A 赋值#1AH。 思索题 BCD 码转换成二进制数的算法是什么?例如:(91) BCD 对应的二进制数是多少? 将 BCD 码写成权值相加的形式,再将各位转化为二进制。 9101+1100=91=()B 试验内容 1. 把 R 3 中的 8 位二进制整数转换为压缩 BCD 码,存放在 R4, R5 中

7、。 ORG 0000H MOV R3,#10111011B MOV A,R3 MOV B,#100 DIV AB MOV R4,A MOV A,B MOV B,#10 DIV AB MOV R5,A SWAP A ADD A,B MOV R5,A 寄存器结果: 2. 设 4 位 BCD 码 abcd 依次存放在内部 RAM 中 50H53H 单元的低 4 位,(高 4 位为 0)。试编程将其转换成二进制数并存入 R6R7 中。 ORG 0000H MOV 50H,#01 MOV 51H,#02 MOV 52H,#03 MOV 53H,#04 MOV A,50H MOV B,#10 MUL AB

8、 MOV B,#100 MUL AB MOV R1,B MOV R0,A MOV B,#100 MOV A,51H MUL AB ADD A,R0 MOV R0,A MOV A,B ADDC A,R1 MOV R1,A 执行结果: 4 位 BCD 码为 1234,转换为 2 进制数为 4d2 与实际相符。 MOV B,#10 MOV A,52H MUL AB ADD A,R0 MOV R0,A MOV A,R1 ADDC A,#0 MOV R1,A MOV A,R0 ADD A,53H MOV R0,A MOV A,R1 ADDC A,#0 MOV R6,A MOV A,R0 MOV R7,A

9、 试验三 程序跳转表试验 一、试验目的 1 熟识 KEIL 集成调试环境和汇编程序的调试方法。 2 了解简洁的函数计算。 3 把握多分支结构程序的编程方法 二、试验说明 多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。 若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。 三、思索题 1 写跳转程序时要留意些什么? 1)子程序的第 1 条指令前必需有标号,即表明子程序的名称,也作为调用指令的符号地址。 2)要有入口条件,用来说明入子程序时,它所要处理的数据如何得到。另外,要有出口条件,即处理的结果是如何存放的。 3)留意爱护

10、现场和恢复现场,即在调用子程序前将不允许被破坏的内容保存起来;恢复现场即在子程序执行完毕返回主程序前,将保存的内容恢复到爱护现场前的状况; 4)子程序必需以 RET 结束。子程序中,对堆栈的入栈和出栈操作次数必需相同,以保证返回后堆栈指针 SP 的值与调用时始终。 2 可以避开重复书写相同的程序; 可以简化程序的规律结构; 使程序模块化,通用化。 三、试验内容 ORG 0000H MOV R0,#0FCH CJNE R0,#0,NEXT0 MOV R0,#2 MOV A,R0 SJMP NEXT3 NEXT0:CJNE R0,#80H,NEXT1 MOV R0,#2 MOV A,R0 SJMP

11、 NEXT3 NEXT1:JC NEXT2 SETB C MOV A,R0 RRC A SJMP NEXT3 测试结果: X0 X=0 NEXT2:MOV A,R0 MOV B,#2 MUL AB NEXT3:MOV 30H,A END X0 试验四 数据排序试验 一、试验目的 1 熟识 KEIL 集成调试环境和汇编程序的调试方法。 2 把握排序程序的设计方法。 二、试验说明 本例程采纳交换排序法将内部 RAM 中的 5059H 单元中的 10 个单字节无符号二进制数按从小到大的次序排列,并将这一列排序后的数据从小到大依次存贮到外部 RAM 1000H 开头处。 初始: 结果: 三、试验内容

12、画出本试验程序的流程图。 试验五 键盘显示仿真试验 一、试验目的 1 熟识 KEIL 集成调试环境和汇编程序的调试方法。 2 学习使用外围接口工具调试程。 3 熟识键盘显示接口电路及程序设计。 提高试验 1. 依据键盘、LED 仿真板,设计一个走马灯程序,通过按键实现启停、速率及方向的掌握 UpDown BIT 00H StartEnd BIT 01H LAMPCODE EQU 21H ORG 0000H AJMP MAIN ORG 30H MAIN: MOV SP,#5FH MOV P1,#0FFH CLR UpDown ;启动时处于向上的状态 CLR StartEnd ;启动时处于停止状态

13、 MOV LAMPCODE,#01H ;单灯流淌的代码 LOOP: ACALL KEY ;调用键盘程序 JNB F0,LNEXT ;假如无键按下,则连续 ACALL KEYPROC ;否则调用键盘处理程序 LNEXT: ACALL LAMP ;调用灯显示程序 AJMP LOOP DELAY: MOV R7,#100 D1: MOV R6,#100 DJNZ R6,$ DJNZ R7,D1 RET KEYPROC: MOV A,B ;从 B 寄存器中猎取键值 JB ACC.2,KeyStart ;分析键的代码,某位被按下,则该位为 1 JB ACC.3,KeyOver JB ACC.4,KeyUp JB ACC.5,KeyDown AJMP KEY_RET KeyStart: SETB StartEnd ;第一个键按下后的处理 AJMP KEY_RET

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号