No.34562 作者:phosphor 邮件:hcj1136@163.com ID:13069 登陆:1次 文章数:2篇 最后登陆IP:218.16.66.179 最后登陆:2003/6/16 14:50:56 注册:2003/6/16 12:01:03 财富:107 发帖时间:2003/6/16 12:02:44 发贴者IP:218.16.66.179 标题:phosphor:[求助] 摘要:No.34562[求助] 我用C语言对MCS-51单片机产品系统进行编程.仿真时程序运行很正常,可我发现程序是从0000H开 始一下子跳到4000H去了,也就是说程序存放在4000H开始以后的单元里面.而我用的是AT89C51单 片机芯片,最多只能从0000H到1FFFH,也就是说我在烧写的时候程序不会烧进89C51里面去(实际上 也不能烧写进去).请问大侠怎样在C语言编程时,让程序从0000H开始后跳到0100H去.让程序从 0100H开始,这样就能烧写进入芯片.用汇编很简单,用C语言我试了很长时间都不行.可老板要我用 C语言,请帮忙,不胜感激!例如一个很简单的例子: #include <stdio.h> #include <reg51.h> void delay(void); void main (void) { for(;;) { P1=0x00; delay(); P1=0xff; delay(); } } void delay(void) { long int i; for(i=0;i <=99999;i++) { } } 生成的.m51文件中有这样的: TYPE BASE LENGTH RELOCATION SEGMENT NAME ----------------------------------------------------- * * * * * * * D A T A M E M O R Y ......
>>返回讨论的主题
|