c语言访问单片机的存储器

c语言访问单片机的存储器

ID:22370061

大小:58.00 KB

页数:7页

时间:2018-10-28

c语言访问单片机的存储器_第1页
c语言访问单片机的存储器_第2页
c语言访问单片机的存储器_第3页
c语言访问单片机的存储器_第4页
c语言访问单片机的存储器_第5页
资源描述:

《c语言访问单片机的存储器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C语言访问单片机的存储器摘要:本文主要讨论在MCS-51系统开发过程中利用c语言如何访问单片机的存储器的基本方法,主要内容包括:位数据的访问和单元数据的访问。关键词:访问;存储器;单元;地址电子机械在单片机的软件系统开发过程中,利用高级语言特别是C语言编写控制程序越来越普及和方便。在进行MCS-51单片机应用系统程序设计时,用户十分关心如何直接操作系统所提供的各个存储器地址空间。或者说利用C语言在实际软件的开发过程中,访问单片机的资源-存储器或外部设备是非常重要的一项任务,也是软件编制过程中的一个难点。在Cx51中对变量进行定义的格式为:[存储种类] [数

2、据类型] [存储器类型]变量名表;其中:存储种类有:auto(自动)、extern(外部)、static(静态)、register(寄存器);数据类型有:unsignedchar、signedchar、unsignedint、signedint、unsignedlong、signedlong、float、bit、sfr、sfr16、sbit;存储器类型有:data(直接寻址的片内数据存储器)、bdata(可位寻址的片内数据存储器)、idata(间接访问的片内数据存储器)、pdata(分页寻址的片外数据存储器)、xdata(片外数据存储器)、code(程序存

3、储器)。现就利用C语言访问MCS-51单片机的存储器或外部设备的方法介绍如下:一、MCS-51单片机系统中位数据的访问在MCS-51单片机中提供了位寻址区,该区的每一位均可以独立进行访问;同时诸多功能寄存器的各位也可以独立访问。在KeilCx51编译器中专门提供了一个扩充关键字sbit,利用它可以定义可二、MCS-51单片机系统中片内RAM数据的访问在MCS-51单片机系统中常用的RAM数据是字节数据、字数据和双字数据。字节数据占用一个单元,字数据占用连续两个单元,双字数据占用连续四个单元。对这些单元数据的访问分两种情况处理。1、未规定地址单元的访问这种方

4、法是利用C语言定义变量的方法,指定变量的存储器类型和数据类型,利用变量对片内的单元进行访问,具体单元的位置由系统自动分配。如 chardatavar1;//在片内RAM区data中定义一个字符型变量var1占用一个单元//Intidatavar2;//在片内RAM区idata中定义一个整型变量var2连续占用两个单元//Chardatavar3[3];//在片内RAM区data中定义一个字符型数组VAR3连续占用三个单元//2、规定地址单元的访问:这种方法适用于某些位置固定的单元数据访问,基本方法是先用变量指定单元位置,然后才能访问。具体方法有四种:(1)

5、[存储器类型]数据类型 变量标识符_at_ 单元地址数据  这种方法是先定义要访问单元的位置,然后再进行访问,存储器类型可以是data、idata、等Cx51编译器能够识别的所有类型;数据类型可用char、int、long、float等基本类型,还可以采用数组、结构等复杂的数据类型。如:datacharmy1_at_0x34;//定义一个字符型变量my1指定片内RAM中34H单元//idataintmy2_at_0x40;//定义一个整型变量my2指定片内RAM中40H单元//my1=0x49;//将49H数据放入片内RAM34H单元中//my2=0x45

6、6;//将456数据放入片内RAM40H、41H单元中//(2)利用Cx51运行库所提供的一套预定义宏ABSACC.H,直接对存储器空间地址进行操作的方法在Cx51编译器的运行库absacc.h中提供了如下一套预定义宏:CBYTE、C地址为20H单元读取一个字节数据送给变量v_var1//v_var2=D地址为80H单元开始读取一个字数据送给变量v_var2//DBYTE[0x60]=v_var1;//向data存储器地址为60H单元写入数据v_var1//(3)采用指针的办法来实现对指定的存储器地址单元进行操作这种方法的基本思路是先定义指针变量,然后给指

7、针变量地址数据,最后利用指针变量进行数据操作。如:Chardata*dp;//定义一个指向DATA存储器空间的指针//Dp=0x60;//DATA指针赋值,指向DATA存储器地址60//*dp=0xbb;//将数据bbH送给dp变量指定的地址单元//(4)利用连接定位控制命令指定变量的绝对地址BL51和Lx51连接定位器提供了多个连接定位控制命令,在对用户程序进行连接时,可以通过连接定位控制命令指定变更的绝对地址。如:如果希望将程序中mian函数和func函数中的局部变量分别定位在DATA存储器以40H和60H开始的地址空间,可以在uVision2环境下P

8、roject菜单/OptionsforTarget选项/BL51L

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。