当前位置: 代码迷 >> 单片机 >> 为什么会有这种警告,该如何处理
  详细解决方案

为什么会有这种警告,该如何处理

热度:147   发布时间:2016-04-28 16:29:21.0
为什么会有这种警告
;;;;;;;;;;;;;;;;;;用查寻方式来实现p1.0口输出方波;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;时钟频率为6MHz;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  MOV TMOD,#10H;使用C/T1 设为16位定时器
  SETB P1.0;首先输出高电平
  SETB TR1;启动定时器
LOOP: MOV TL1,#00H
  MOV TH1,#00H;设置高电平时间
JNB TF1,$;等待定时完成
CLR TF1
CPL P1.0;时间到,输出低电平
MOV TL1,#00H
MOV TH1,#00H;设置低电平时间
JNB TF1,$;等待低电平时间
CLR TF1
CPL P1.0
SJMP LOOP
END 
这是我在keil上写的代码 
为什么会*** WARNING L5: CODE SPACE MEMORY OVERLAP
  FROM: 0000H
  TO: 001CH
这样的警告
我在网上搜了一下
说是这是重新定义了定时器,
可我把低电平输出改为T0还是有这样的警告,
这是为啥

------解决方案--------------------
把工程里的那个STARUP.A51去掉,估计你没去掉,那个文件是为C语言工程生成的。
------解决方案--------------------
出现WARNING L5: CODE SPACE MEMORY OVERLAP之类的警告,大部分是因为:地址重叠越界了,比如绝对寻址的地址重叠,中断入口地址重叠等等。
------解决方案--------------------
我编译调试了一下你的程序,没有问题也没出现警告。。。
还有你如果想产生方波的话,用中断方式会更容易。。。
ORG 00H
JMP MAIN
ORG 1BH
CPL P1.0
RETI
MAIN:MOV TMOD,#10H
MOV TH1,#00H
MOV TL1,#00H
SETB EA
SETB ET1
SETB TR1
SJMP $
END
------解决方案--------------------
嗯 对 还有就是你那个开头都没有定义起始地址什么的,ORG 之类的都没有用,memory 地址随机分配可能出现这种警告,不过我运行你那个居然连警告都没有,挺正常的。。。。。
  相关解决方案