任务2-RAM内部数据传送_第1页
任务2-RAM内部数据传送_第2页
任务2-RAM内部数据传送_第3页
任务2-RAM内部数据传送_第4页
任务2-RAM内部数据传送_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务2-1RAM内部数据传送任务描述:内存块移动,多用于大量数据复制和图像操作。任务要求:将片内RAM中30H到34H这5个存储单元分别赋值0到4,然后将这5个存储单元中的数据移动到以40H开头的连续5个存储单元中。任务2-2片内外RAM数据传送任务描述:内存块移动,多用于大量数据复制和图像操作。任务要求:将10~19这10个数先送到30H~39H这10个片内RAM中,然后,再将30H~39H中的数传送给10个片外RAM单元中去,地址为0100H~0109H。1.RAM和ROM的内部构造2.c51变量定义格式3.#define预处理指令4.c51数组的使用5.c51确定地址访问6.c51流程图构造及设计7.Keil和Proteus联合调试8.复习思考题任务2学问点:上机训练图例1.ROM内部构造回忆ROM空间构造及中断入口区RAM内部构造SFR中的累加器A及程序状态字PSW2.c51变量定义格式变量格式:[存储种类]数据类型[存储器类型]变量名表;存储种类:有4种,自动〔auto〕、外部〔extern〕、静态〔static〕和存放器〔register〕,默认为自动类型。留意:用{}括起来的复合语句中的自动类型的变量作用域仅限于该复合语句中,跳出该复合语句则安排给该自动变量的存储单元被收回。data 直接访问内部数据存储器〔128字节〕bdata 可位寻址内部数据存储器〔16字节〕idata 间接访问内部数据存储器〔256字节〕pdata 分页访问外部数据存储器〔256字节〕xdata 外部数据存储器〔64KB〕code 程序存储器〔64KB〕存储器类型Startupcode:启动代码。在Keil中,启动代码在复位目标系统后马上被执行。启动代码主要实现以下功能:〔1〕

去除内部数据存储器〔2〕

去除外部数据存储器〔3〕

去除外部页存储器〔4〕

初始化small模式下的可重入栈和指针〔5〕

初始化large模式下的可重入栈和指针〔6〕

初始化compact模式下的可重入栈和指针〔7〕

初始化8051硬件栈指针〔8〕

传递初始化全局变量的掌握命令或者在没有初始 化全局变量时给main函数传递命令。STARTUP.A51在编译预处理时进展简洁的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被开放的源程序时才会觉察可能的错误并报错。3.#define预处理指令#definePI3.1415926程序中的:area=PI*r*r会替换为3.1415926*r*r假设你把#define语句中的数字9写成字母g,预处理也照样带入。#definePI3.1415926;×留意#define不是语句不要在行末加分号,否则会连分号一块置换。c51数组格式:数据类型数组名[常量表达式]={常量表达式}

;数据类型数组名[常量表达式1]……[常量表达式n];留意:数组和一般变量一样,要求先定义,后使用。每个数组中的数据单元只能是同一数据类型。方括号[]里的数不能是变量只能是常量。数组的下标是从0开头的而不是从1开头。只能逐个引用数组中的元素,不能一次引用整个数组。初值个数必需小于或等于数组长度。4.c51数组的使用c51数组例如unsignedintxcount[10];

charinputstring[5];

floatoutnum[10],[10];unsignedcharLEDNUM[2]={12,35};

intKey[2][3]={{1,2,4},{2,2,1}};

unsignedcharIOStr[]={3,5,2,5,3};

unsignedcharcodeskydata[]={0x02,0x34,0x22,0x32,0x21,0x12};5.c51确定地址访问承受扩展关键字_at_确实定地址访问语句格式:[存储器类型]数据类型标示符_at_地址常数;留意:通过关键字_at_定义确实定变量必需是全局变量。不能对“确定变量”进展初始化。存储器类型默认为模式LARGE等规定的默认存储器类型。数据类型可承受数组、构造等简单数据类型。标示符为要定义的变量名。地址常数给出确实定地址必需位于有效存储器空间之内。c51确定地址定义例如structlink{ structlinkidata*next; charcode*test;};idatastructlinklist_at_0x40;xdatachartext[256]_at_0xE000;xdatainti1_at_0x8000;datauinta[5]_at_0x30;datauintb[5]_at_0x40;6.c51流程图构造及设计①c51程序设计步骤分析问题,确定算法依据算法,画出程序流程图安排内存工作区及有关端口地址编写程序上机调试6.c51流程图构造及设计〔续〕②常用流程图符号任务2:流程图#include<reg51.h>#defineucharunsignedcharsbitled=P1^0;datauchara[5]_at_0x30;dataucharb[5]_at_0x40;任务2:源程序voidmain(void){ uchari,j,k; for(i=0;i<5;i++) { a[i]=i; b[i]=a[i]; led=~led; for(j=0;j<200;j++) for(k=0;k<200;k++); }

}7.Keil和Proteus联合调试精品课件!精品课件!①将数据00H~0FH分别送入RAM的30H~3FH存储单元。用KEIL调试程序并观看

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论