为什么会有这种警告

gonnago1   2010-4-28 16:09 楼主
;;;;;;;;;;;;;;;;;;用查寻方式来实现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还是有这样的警告,
这是为啥

回复评论 (6)

把工程里的那个STARUP.A51去掉,估计你没去掉,那个文件是为C语言工程生成的。
点赞  2010-4-28 16:55
出现WARNING L5: CODE SPACE MEMORY OVERLAP之类的警告,大部分是因为:地址重叠越界了,比如绝对寻址的地址重叠,中断入口地址重叠等等。
点赞  2010-4-28 16:58
我编译调试了一下你的程序,没有问题也没出现警告。。。
还有你如果想产生方波的话,用中断方式会更容易。。。
       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
点赞  2010-4-28 17:01
我编译调试了一下你的程序,没有问题也没出现警告。。。
还有你如果想产生方波的话,用中断方式会更容易。。。
       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
点赞  2010-4-28 17:01
嗯 对 还有就是你那个开头都没有定义起始地址什么的,ORG 之类的都没有用,memory 地址随机分配可能出现这种警告,不过我运行你那个居然连警告都没有,挺正常的。。。。。
点赞  2010-4-28 17:04
引用: 引用 4 楼 chutianya 的回复:

我编译调试了一下你的程序,没有问题也没出现警告。。。
还有你如果想产生方波的话,用中断方式会更容易。。。
       ORG 00H
      JMP MAIN
      ORG 1BH
      CPL P1.0
      RETI
MAIN:MOV TMOD,#10H
      MOV TH1,#00H
      MOV TL1,#00H
      SET……

额.. 我知道用中断更好.. 可是这是我们的作业.. 老师指定要用查寻的方式来写..
点赞  2010-4-28 17:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复