请问用C语言怎么写C51的初始化程序?

[复制链接]
 楼主| 青石向晚 发表于 2009-11-8 09:50 | 显示全部楼层 |阅读模式
单片机的存储系统的分配利用在其工作过程中起非常大的作用,所以就必须对其进行必要的初始化。
程序代码:
(1)片内RAM初始化子程序
IBCLR: MOV
A, R0
MOV
R1
,A
CLR
A
IBC1 : MOV
@R1,A
INC
R1
DJNZ R7,IBC1
RET
(2)片外RAM初始化子程序
EBCLR1: MOV A,ADDPL
MOV DPL,A
MOV
A
,ADDPH
MOV
DPH
,A
CLR
C
EBC11
MOVX @DPTR,A
INC
DPTR
DJNZ R7,EBC11
RET
(3)片外RAM初始化子程序(双字节单元)
EBCLR2: MOV A,ADDPL
MOV DPL,A
MOV
A
,ADDPH
MOV DPH,A
MOV
A
,R7
JZ  EBC21
INC
R6
EBC21
CLR
A
MOVX @DPTR,A
INC
DPTR
DJNZ R7,EBC21
DJNZ R6,EBC21
RET
原野之狼 发表于 2009-11-8 12:02 | 显示全部楼层
用指针指向不同的存储区域 然后做初始化。

unsigned char data *p_in_ram;
unsigned char xdata *p_ex_ram;

注意指针变量的地址值,要不然会被初始化程序刷掉。
请查看映像文件,一般变量从低地址开始安排。
为了安全起见,你也可以定位用于初始化的变量为绝对地址访问。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

41

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部