单片机原理与应用实验指导书
第二章 基本编程实验
实验一 存储器块清零
一、实验目的
1. 掌握存储器读写方法 2. 了解存储器的块操作方法
二、实验设备
1.伟福Lab6000增强型开放式通用实验/仿真系统; 2.计算机。
三、实验要求
指定存储器中某块的起始地址和长度,要求能将其内容清零。
四、实验说明
通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,调试方法。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请学生修改程序,完成此操作。
五、程序框图
结束 是否清除完 是 否 地址加1 当前地址内容清零 设置块长度 设置块起始地址
实验二 内存块移动
一、 实验目的
1. 了解内存的移动方法。 2. 加深对存储器读写的认识。
二、实验设备
1.伟福Lab6000增强型开放式通用实验/仿真系统; 2.计算机。
14
单片机原理与应用实验指导书
三、实验要求
将指定源地址和长度的存储块移到指定目标位置。
四、实验说明
块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。另外,若源块地址和目标块地址有重叠,该如何避免?
五、程序框图
结束 目标地址加1 是否移动完 是 源地址加1 否 保存到目标地址中 从源地址取数 设置移动长度 设置块的目标地址 设置块的源地址
实验三 无符号十进制的加法
一、实验目的
1.掌握无符号十进制加法的方法; 2.了解BCD码到十进制间的转换。
二、实验设备
1.伟福Lab6000增强型开放式通用实验/仿真系统; 2.计算机。
三、实验要求
完成内RAM存储器中连续若个字节单元的十进制加法。
四、实验说明
在8031内部RAM存储器以20H为起始地址的区域中,连续存入两个5字节的十进制数(低位
15
单片机原理与应用实验指导书
在前),求这两个数的和,并将结果存入以3000H为起始地址的外部RAM存储器区域中(低位在前)。 即:(24H23H22H21H20H)+(29H28H27H26H25H)=(3005H3004H3003H3002H3001H3000H)
五、程序框图
清零进位位Cy
R7-1=0 ? 是 结束 否 R0=R0+1,R1=R1+1,DPTR=DPTR+1 A中内容送入@DPTR 十进制调整 A与@R1带进位位加法 @R0送入A中 相加的字节总个数送入R7 DPTR指向和的最低字节地址 R1指向最低位加数字节地址 R0指向最低位被加数字节地址
实验四 程序跳转表
一、实验目的
1. 了解程序的多分支结构;
2. 了解多分支结构程序的编程方法。
16
单片机原理与应用实验指导书
二、实验设备
1.伟福Lab6000增强型开放式通用实验/仿真系统; 2.计算机。
三、实验要求
在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
四、实验说明
多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
五、程序框图
跳转到相应程序段 设置调用号 根据调用号查表 得到跳转地址 调用返回
实验五 数据排序
一、实验目的
1. 了解数据排序的简单算法。
二、实验设备
1.伟福Lab6000增强型开放式通用实验/仿真系统; 2.计算机。
三、实验要求
给出一组随机数,将此组数据排序,使之成为有序数列
四、实验说明
有序的数列更有利于查找。本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在 数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序。
五、程序框图
17
单片机原理与应用实验指导书
设置数据区长度 设置数据区地址 清除交换标志 当前地址取数A 地址加1 当前地址取数B 是 A<=B? 否 设置交换标志 否 数据比较完 是 否 全部有序? 是 交换A,B数位置 结束 18