单片机实验上机--实验五 内存块移动
- 格式:doc
- 大小:33.50 KB
- 文档页数:2
单片机实验报告专业:电子信息工程班级:姓名:学号:指导教师:单片机实验报告实验项目名称:片内外清零、置位和数据块传送程序实验日期: 2010-10-27 实验成绩:实验评定标准:1)实验内容否完整A()B()C()2)实验结果分析是否正确A()B()C()3)实验报告是否按照规定格式A()B()C()一、实验目的1、掌握汇编语言中对芯片内外存储器的清零,置位。
2、掌握8031 内部RAM 和外部RAM 之间的数据传送方法;掌握这两部分RAM 存贮器的特点与应用,掌握各种数据传送方法。
二、实验内容及要求1、将片内从50H开始的连续30个地址内容清零;将片外7000H_79FFH单元内容清零;将片内从20H开始的连续30个地址内容设置为0FEH。
2、试编写将外部的数据存贮区6030~607FH 的内容写入外部RAM 3030~307H 中。
三、实验步骤1、片内外清零、置位打开Keil程序,执行菜单命令“Project”→“New Project ”创建“片内外清零置位”项目,并选择单片机型号为AT89C51。
执行菜单命令“File”→“New ”创建文件,输入源程序,保存为“片内外清零置位.A51”。
在“Project”栏的File项目管理窗口中右击文件组,选择“Add Files to Group ‘Source Group1’”将源程序“片内外清零置位.A51”添加到项目中。
执行菜单命令“Project”→Options for Target ‘Target 1’”,在弹出的对话框中选择“Output”选项卡,选中“Greate HEX File”。
执行菜单命令“Project”→“Build Target 1”,编译源程序。
如果编译成功,则在“Outp ut Window”窗口中显示没有错误,并创建了,“片内外清零置位. HEX”文件。
执行菜单命令“Debug”→“Start/Stop Debug Seesion”,按键F11键,单步运行程序。
第1篇一、实验目的1. 理解操作系统内存分配的基本原理和常用算法。
2. 掌握动态分区分配方式中的数据结构和分配算法。
3. 通过编写程序,实现内存分配和回收功能。
二、实验环境1. 操作系统:Linux2. 编程语言:C语言3. 开发工具:GCC编译器三、实验原理1. 内存分配的基本原理操作系统内存分配是指操作系统根据程序运行需要,将物理内存分配给程序使用的过程。
内存分配算法主要包括以下几种:(1)首次适应算法(First Fit):从内存空间首部开始查找,找到第一个满足条件的空闲区域进行分配。
(2)最佳适应算法(Best Fit):在所有满足条件的空闲区域中,选择最小的空闲区域进行分配。
(3)最坏适应算法(Worst Fit):在所有满足条件的空闲区域中,选择最大的空闲区域进行分配。
2. 动态分区分配方式动态分区分配方式是指操作系统在程序运行过程中,根据需要动态地分配和回收内存空间。
动态分区分配方式包括以下几种:(1)固定分区分配:将内存划分为若干个固定大小的分区,程序运行时按需分配分区。
(2)可变分区分配:根据程序大小动态分配分区,分区大小可变。
(3)分页分配:将内存划分为若干个固定大小的页,程序运行时按需分配页。
四、实验内容1. 实现首次适应算法(1)创建空闲分区链表,记录空闲分区信息,包括分区起始地址、分区大小等。
(2)编写分配函数,实现首次适应算法,根据程序大小查找空闲分区,分配内存。
(3)编写回收函数,回收程序所占用的内存空间,更新空闲分区链表。
2. 实现最佳适应算法(1)创建空闲分区链表,记录空闲分区信息。
(2)编写分配函数,实现最佳适应算法,根据程序大小查找最佳空闲分区,分配内存。
(3)编写回收函数,回收程序所占用的内存空间,更新空闲分区链表。
3. 实验结果分析(1)通过实验,验证首次适应算法和最佳适应算法的正确性。
(2)对比两种算法在内存分配效率、外部碎片等方面的差异。
五、实验步骤1. 创建一个动态内存分配模拟程序,包括空闲分区链表、分配函数和回收函数。
课程名称:单片机原理与嵌入式系统
实验名称:内存块移动与数据排序
实验报告
班级
姓名学号
同组人姓名
实验日期年月日
实验目的
通过上机编、调程序,加强对ASM51汇编语言的学习,掌握内存块移动与数据排程序的编制。
对程序编制能力、程序排错能力进行训练。
实验内容
编程实现以下任务:
1.将外部数据存储器2000H~202FH 中的48字节数据移动到2030H~205FH中。
2.将内部RAM 20H~2FH中的数据加以排序,大数在前,小数在后。
三、实验设备
PC机.
Lab2000P单片机仿真实验系统
四、调试通过的软件清单:
内存块移动程序清单
数据排序程序清单
五、实验收获、总结
六、思考题
内部RAM数据块移动
数据排序小数在前,大数在后。
LGSX-04A单片机、自动控制、计算机控制技术、信号与系统综合实验装置一、概述LGSX-04A单片机、自动控制、计算机控制技术、信号与系统综合实验装置由控制屏、实验挂箱、实验桌组成,通过单片机开发实训台可完成单片机的接口扩展、数据采集、数据显示、键盘控制、定时器、打印机接口等实验,配备有仿真器。
LGSX-04A单片机、自动控制、计算机控制技术、信号与系统综合实验装置设有电流型漏电保护器,控制屏若有漏电现象,漏电流超过一定值,即切断电源,对人身安全起到一定的保护。
LGSX-04A单片机、自动控制、计算机控制技术、信号与系统综合实验装置采用组件式结构,更换实验模块便捷。
如需扩展功能或开发新实验,只需添加实验模块挂箱即可,永不淘汰。
二、主要技术参数1、输入电源:AC220V±10% 50Hz2、工作环境:温度-10℃~+40℃相对湿度<85%(25℃)3、装置容量:200VA4、重量:100Kg5、外形尺寸(cm):160×75×1506、挂箱尺寸(mm):410×240×607、输出电源:有漏电、短路、过流保护A.~220V,通过安全插座输出B.直流稳压电源:±5V/1A ±12V/2A三、装置构成(一)实验屏:实验时放置实验挂箱,并提供实验电源,铁质双面亚光密纹喷塑结构。
(二)实验桌:钢木结构,桌面为防火、防水、耐磨高密度板,电脑桌连体设计,造型美观大方。
(三)实验模块:1、LGDP-01 单片机实验挂箱(一)LED点阵显示模块、点阵式字符液晶显示模块、8253定时计数器、A/D转换、D/A转换、V/F 转换、F/V转换、串引EEPROM、EEPROM、Flash Rom、SRAM、I2C总线接口2、LGDP-02 单片机实验挂箱(二)8251串行口扩展、232总线串行接口、单片机最小应用系统1、单片机最小应用系统2、拔码开关输出3、LGDP-03 单片机实验挂箱(三)ISD 1420语音控制、IC卡读写接口、实时时针/日历、USB接口、RS232转RS485接口4、LGDP-04 单片机实验挂箱(四)8279接口电路、8255 I/O扩展、8155 I/O扩展、动态扫描显示模块、转换接口、MC14433、整列式键盘实验模块5、LGDP-05 单片机实验挂箱(五)步进电机驱动程序示列、温度传感器与温度控制、汽车转弯信号灯/十字路口交通灯、数字频率计、看门狗6、LGDP-06 单片机实验挂箱(六)十六位逻辑电平显示、继电器控制接口、常用器件接口、八位逻辑电平输出、单次脉冲、扬声器、串引静态显示模块、查询式键盘。
实验二数据块移动一、实训目的1、掌握CPU对单片机片内和片外寻址方式的使用方法。
2、熟练掌握用几种不同的方法调试、运行程序。
二、实训内容块的移动是单片机常见操作之一,多用于大量的数据复制和图像操作。
本程序是编制数据搬家程序,要求先将单片机内部RAM的20H~2FH单元分别设置为00H、01H、……0FH;然后将单片机内部RAM的20H~2FH单元的数据搬到外部RAM的1000H~100FH单元中去。
三、程序流程四、实训参考程序ORG 0000HLJMP MOVEORG 0030HMOVE:MOV R0,#20H设置块的源地址返回设置块的目标地址设置移动长度从源地址取数保存到目标地址源地址加1目标地址加1是否移动完?NYMOV R2,#10HMOV A,#00HM1:MOV @R0,AINC R0INC ADJNZ R2,M1 ;将片内RAM的20H-2FH单元分别设置为00H-0FH★ MOV R0,#20HMOV DPTR,#1000HMOV R2,#10HM2:MOV A, @R0MOVX @DPTR,AINC R0INC DPTR ;将片内RAM的20H-2FH单元数据搬到DJNZ R2,M2 片外RAM的1000H-100FH单元LJMP 0030HEND五、程序调试步骤(1)建立一个工程项目文件:在Kile uVision2仿真软件中,执行菜单【Project】/【New project】,给项目文件取名并保存,选择单片机型号为AT89C51;(2)选择目标器件:右键Target1-Options for Target“ Target1”或选择【 Project】/ 【Options for Target“Target1”】对选项卡进行设置,在“Output”选项卡,选中“Create HEX File”;(3)新建一个源程序文件:在菜单File/New编辑窗口中输入源程序,在菜单File/Save中保存源程序文件,文件后缀为.asm;(4)把源程序文件添加到工程项目中单击工程项目【Target1】/【Source Group1】选择Add File to Group Source Group1,选择文件类型Asm Source File-单击Add按钮,添加完毕,关闭窗口;(5)编译程序选择【Project】/【Rebuild all target files】选项或单击工具栏中按钮,如果编译成功,显示编译成功的信息。
实验一数据传送实验实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片外RAM 9800H—980FH单元,再从片外RAM 9800H—980FH单元中的数据传送到片内RAM 50H—5FH单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:ORG 0000HRESET: SJMP MAINORG 003FHMAIN: MOV R1,#40HMOV R2,#10HMOV A, #0A0HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0, #40HMOV DPTR, #9800HMOV R2, #10HA2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2,A2MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC RINC DPTRDJNZ R2, A3LJMP 0000HEND思考题:1. 按照实验内容补全程序。
2. CPU 对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式?内部RAM存储器寻址方式:直接寻址方式寄存器间接寻址基址变址寄存器间接寻址外部RAM存储器寻址方式:寄存器间接寻址基址变址寄存器间接寻址3. 执行程序后下列各单元的内容是什么?内部RAM 40H~4FH _________________________ 内部RAM 50H~5FH__________________________ 外部RAM 9800H~980FH______________________ 截图:实验二多字节十进制加法实验实验内容:多字节十进制加法。
加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
本科实验报告课程名称:微机原理与接口技术邵芳琳姓名:控制学院学院(系):专业:自动化3140103307学号:指导教师:曹峥2016年11月11日实验一存储器块操作实验一、实验目的1.熟悉KEIL 集成调试环境和汇编程序的调试方法。
2.掌握存储器读写方法;3.了解内存块的移动方法;二、实验说明实验1 指定某块存储器的起始地址和长度,要求能将其内容赋值。
通过该实验学生可以了解单片机读写存储器的方法,同时也可以了解单片机编程、调试方法。
块移动是单片机常用操作之一,多用于大量的数据复制和图象操作。
例程2 给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。
移动3000H 起始的256个字节到4000H 起始的256 个字节。
思考题1.如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请用户修改程序,完成此操作。
将MOV A,#1H 改为MOV A,#FFH2.若源块地址和目标块地址有重叠,该如何避免?源块地址和目标块地址重叠部分数据压制堆栈中,当要使用重叠部分源数据时,直接从堆栈中弹出。
实验内容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 值。
二、实验说明单片机系统内部运算用二进制,而输入输出常用十进制,以符合日常习惯,因此,数制转换是仪表设计中常用的程序之一。
89C51单片机实验指导书目录软件部分 (4)KEIL uVision软件的使用 (4)实验1 存储区数据设置 (11)一.实验目的 (11)二.实验内容 (11)三.实验步骤 (11)四.实验参考程序 (11)实验2 二进制BCD码转换 (13)一.实验目的 (13)二.实验内容 (13)三.实验步骤 (13)四.实验参考程序 (13)实验3 程序跳转表 (15)一.实验目的 (15)二.实验内容 (15)三.实验步骤 (15)四.实验参考程序 (15)实验4 内存块移动 (17)一.实验目的 (17)二.实验内容 (17)三.实验步骤 (17)四.实验参考程序 (17)实验5 数据排序 (19)一.实验目的 (19)二.实验内容 (19)三.实验步骤 (19)四.实验参考程序 (19)硬件部分 (21)实验一仿真器的使用 (21)一.实验目的 (21)二.实验内容 (21)实验1 I/0口输入输出实验 (22)一.实验目的 (22)二.实验内容 (22)三.实验原理图 (22)四.实验步骤 (22)实验2 广告灯实验 (23)一.实验目的 (23)二.实验内容 (23)三.实验原理图 (23)四.实验步骤 (23)实验3 定时器实验 (24)一.实验目的 (24)二.实验内容 (24)三.实验原理图 (24)四.实验步骤 (24)实验4 外中断实验 (25)一.实验目的 (25)二.实验内容 (25)三.实验原理图 (25)四.实验步骤 (25)实验5 动态扫描显示实验 (26)一.实验目的 (26)二.实验内容 (26)三.实验原理图 (26)四.实验步骤 (26)软件部分KEIL uVision软件的使用Keil uVision软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。
下面介绍Keil uVision软件的使用方法进入Keil uVision后,屏幕如下图所示。
实验五内存块移动
一、实验目的
1、了解内存块的移动方法
2、加深对存储器读写的认识
二、实验说明
块移动是单片机常用操作之一,多用于大量的数据复制和图象操作。
本程序是给出起始地址,用地址加一方法移动块,将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。
移动3000H-->4000H,256字节。
三、实验内容及步骤
1、启动计算机,打开伟福仿真软件,进入仿真环境。
首先进行仿真器的设置,选择使用伟福软件模拟器。
2、打开TH5.ASM源程序进行编译,编译无误后,打开数据窗口(XDATA),观察地址3000H 起始256个字节存储块和4000H起始的256个字节存储块,若各单元内数据对应相同,则用键盘输入改变其中一块的数据,全速运行程序。
点击暂停按钮,观察两个存储块的数据,可以看到两块数据已相同,说明存储块已移动。
3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序
1.源程序
ORG 0
MOV R0,#30H
MOV R1,#00H
MOV R2,#40H
MOV R3,#00H
MOV R7,#0
LOOP: MOV DPH,R0
MOV DPL,R1
MOVX A,@DPTR
MOV DPH,R2
MOV DPL,R3
MOVX @DPTR,A
INC R1
INC R3
DJNZ R7,LOOP
LJMP $
END
2.流程图
结束
五、思考题
1.若源块地址和目标块地址有重叠,该如何避免?
2.请思考给出块结束地址,用地址减一方法移动块的算法。