代码改变世界

单片机实验:数据区传送程序

2022-01-12 00:37  jym蒟蒻  阅读(673)  评论(0编辑  收藏  举报

任务
将单片机片内存储器存储区首地址设置为60H、片外存储器存储区首地址设置为4000H,存入片内存储区内容为04H-14H共17个字节 ,读取片内首地址为60H单元内容,将该内容传送到片外数据存储器存储区中保存(首地址4000H),将保存在片外数据区数据依次取出送P1。

代码

#include <reg52.h>
#include <absacc.h>        //便于绝对地址访问
#define uint unsigned int 
#define uchar unsigned char 
#define lenth 16
void delay( )
{
uchar i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++);
}
void main()
{
   int i;   
   uint d_addr=0x4000,s_addr=0x60;   //定义绝对首地址,循环赋值和读取
   for(i=1;i<=17;++i){
       DBYTE[0x60+i-1]=0x04+i-1; //从内部存储器的0x60开始,存入片内存储区内容为04H-14H共17个字节
   }
   XBYTE[0x4000]=DBYTE [0x60]; //把内部存储器60H单元数据送至外部存储器
   P1=XBYTE[0x4000]; //外部存储器4000H单元数据送至P1口
}

结果

记录程序运行结果截图(内部存储器RAM(D:0x40 ~ D:0x14)、外部RAM(x: 0x4000 ~ x: 0x400F)以及P1口的内容。

运行一次for循环D:0x60H~D:0x70H里的内容:

 

运行完所有for循环D:0x60H~D:0x70H里的内容

 

运行完程序x: 0x4000~ x: 0x400F里的内容。

 

运行到最后一条语句前p1口的内容:

 

protues仿真