单片机上电后程序从哪开始执行?

单片机上电后程序从哪开始执行?,第1张

1、单片机上电后程序从0000H开始执行。\x0d\x0a2、如果是用C51编程,不用指定语句的地址。编译后编译器敏盯会给你自动安排地址。\x0d\x0a3、如果用汇编语言编程,应该宏亩指定第一条语句的地址是0000H,然后在0000H处写一条跳转指令,跳到你的主程序处。\x0d\x0a4、至于startup.a51中的内容,不同的编译器应该不一样,但和你的程序制定的第一条语句的地址是0000H不会矛盾。\x0d\x0a5、编译后产生的.HEX文蔽拿森件代码,在烧写时要从0000H地址开始烧写。

具体步骤如下:

1、首先,开启我们的keil软件,具体的安装步骤就不做太多的介绍了;

开启后,点击菜单栏上的Project选项,创建我们的工程,如图所示

2、点击后,d出图中的窗口,在箭头所指的文本框中输入你的芯片型号进行查找,如果没有需要自行将芯片添加到keil软件的库下,如图所示;

3、选中芯片点击Ok即可,在左侧的文本框中,选中图中选项右键选择Add New...选项,如图所示;

4、选择.c的文件,输入文件名以及文件的存储目录,如图所示;

5、点击OK后,在我们添加的文本框中输入我们的程序代码,如图所示;

6、编写好代码以后,选择菜单栏上的魔法棒选项,如图所示;

7、选择Output选项,将图中箭头所指的选项,选中,点击ok,如图所示;

8、然后点击编译选项,如图所示;

编译完成后,在我们的文件夹下找到.hex的文件,将其烧写到我们的芯片中即可。

这个问题比较复杂!就正常而言,是在执行LJMP

MAIN

跳转到MAIN主程序上。如果没有发生跳转命氏笑令就会顺序执行

LJMP

INT0、LJMP

INT1。程序执行过程中先要跳转到MAIN程序中,如果MAIN程序中有根如核饥据条件来跳过程序或是终止程序是就不会执行下面的程序。如果没有发生上面情况,程渣返序回顺序执行MAIN、INT0、INT1.......你的程序正常情况是跳转执行MAIN程序,然后跳到ORG003H

INT0,执行INT0程序,接下来就是执行ORG013H

INT1,并跳转到INT1


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12533926.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存