2024年3月27日发(作者:)

C51单片机编程基本知识

全文选段:该控制指令将C文件编译生成汇编文件(.SRC),该汇编文件可改名后,生

成汇编.ASM文件,再用A51进行编译。

第三节 Keil C51软件包中的通用文件

在C51LiB目录下有几个C源文件,这几个C源文件有非常重要的作用,对它们稍事

修改,就可以用在自己的专用系统中。

1. 动态内存分配

init_mem.C:此文件是初始化动态内存区的程序源代码。它可以指定动态内存的位置

及大小,只有使用了init_mem( )才可以调回其它函数,诸如malloc calloc,realloc等。

calloc.c:此文件是给数组分配内存的源代码,它可以指定单位数据类型及该单元数目。

malloc.c:此文件是malloc的源代码,分配一段固定大小的内存。

realloc.c:此文件是realloc.c源代码,其功能是调整当前分配动态内存的大小。

全文内容:

本章讨论以下内容:

l 绝对地址访问

l C与汇编的接口

l C51软件包中的通用文件

l 段名转换与程序优化

第一节 绝对地址访问

C51提供了三种访问绝对地址的方法:

1. 绝对宏:

在程序中,用“#include〈absacc.h〉”即可使用其中定义的宏来访问绝对地址,包

括:

CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD

具体使用可看一看absacc.h便知

例如:

rval=CBYTE[0x0002];指向程序存贮器的0002h地址

rval=XWORD [0x0002];指向外RAM的0004h地址

2. _at_关键字