文档详情

实验二 数据传送实验

夏**
实名认证
店铺
DOCX
12.43KB
约3页
文档ID:504876509
实验二 数据传送实验_第1页
1/3

实验二数据传送实验一、实验目的1 .掌握89S52存储器之间的数据传送方法;2 .掌握指针操作方法;二、实验原理及实验内容在KEIL环境中编写并调试一个数据传送程序,并完成下面操作①将40〜4FH数 据送到数据存贮器7E00H〜7E0FH中,②将数据存贮器7E00〜7E0FH中的数据送到 89S52内部RAM50〜5FH中该实验无需将程序下载到实验系统中,只需在KEIL环 境中完成仿真实验参考流程图 „..-■■■■ 一(注意:流程图中的BP1,BP2, ( 开始 jBP3 表示断点) T ■"""16个数据传送到40~4F单元[ BP1(40)〜(4FH)传送到 7E00-7E0FH T— BP21 7E00-7E0FH 传送到(50)〜(5FH)一工一 BP3[结束:图7-1数据传送实验程序框图调试方法:⑴打开仿真软件中内部数据空间和外部数据空间,在40〜4Fh数据单元中分别送 数,例如:1,2,3,4,…等16个数据⑵单步运行(断点设在BP2,程序运行至断点),检查外部RAM(7E00H〜7F0FH) 数据是否与40H〜4FH数据一一对应⑶如果程序运行不能进入某一断点,则应单步、断点分段检查程序,排除错误直 至正确为止。

三、参考程序汇编程序:ORG 0000HAJMP MAINMAIN:MOV R6,#16 /* 数据个数*/MOV R0,#40H /*设置数据首地址*/TRANDATA1: /*将40〜4FH 数据送到数据存贮器7E00〜7E0FH中*/MOV @R0,P1INC R0DJNZ R6,TRANDATA1MOV R6,#16MOV DPH,#7EHMOV DPL,#00HMOV R0,#40HLOOP:MOV A,@R0/*通过P1 口传送数据*//*下一个地址*//*直到16个数据送完*//*设置存放数据的RAM地址*//*设置数据首地址*//*数据个数*/TRANDATA2:MOVMOVMOVMOVLOOP1:MOVX A,@DPTRMOV @R1,AINC DPTRINC R1DJNZ R7,LOOP1ENDMOVX @DPTR,AINC DPTRINC R0DJNZ R7,LOOP/*数据存贮器7E00〜7E0FH内容送到内部RAM 50〜5FH中*/R1,#50HR7,#16DPH,#7EHDPL,#00HC语言程序 #include#include main(){unsigned char data *point1 ; 〃片内存储器地址指针 unsigned char xdata *point2 ; //片外存储器地址指针 unsigned char i; 〃个数计数point1 = 0x40;for(i=0;i<16;i++){*point1 = i+1;point1++;}//给 0x40 开始地址赋值 1 〜0x10 point1 = 0x40;point2 = 0x7E00;for(i=0;i<16;i++)//将地址0x40开始的数据送给0x7E00开始的16个地址{*point2 = *point1;point1++;point2++;}point1 = 0x50;point2 = 0x7E00;for(i=0;i<16;i++)//将地址0x7E00开始的数据送给0x50开始的16个地址 {*point1 = *point2;point1++;point2++;}while(1){ ; }}四、 实验仪器和设备Keil软件;五、 实验结果和数据分析问题:1、试编写将外部的数据存贮区6030H〜607FH的内容写入外部RAM 0x3030〜0x307FH 中。

2、说明在C语言中对地址操作过程。

下载提示
相似文档
正为您匹配相似的精品文档