单片机入口地址怎么算

单片机入口地址怎么算,第1张

如果单片机应用程序不打算使用任何中断,可以不指定主程序入口地址,编译器默认程序从0000H这个地址开始执行程序。但如果应用程序使用了任何一个模者中断,主程序MAIN的入口地址就需要另行安排。普通51单片机5个中断源的入口地址分别为0003H、000BH、0013H、001BH、0023H,为了防止主程序MAIN的入口与中断入口发生冲突,必须避开中断入口地址,而将MAIN安排在一个合适的位置,当然,不一定要在0100H,也可以是0030H、0040H或其它。举例说明,如果应用程序只使用外部中旦毁薯断余晌,那么也可以这样:

ORG 0000H

AJMP MAIN

ORG 0003H外部中断入口地址

LJMP INTER1LJMP的3字节指令占用了0003H、0004H和 0005H

ORG 0006H那么主程序可以从这里开始

MAIN:------------------------

ORG 0000H

AJMP MAIN

ORG 0003H外部0中断入口地址

AJMP ZD0

ORG 000BH定时氏含器T0中断歼前笑入口地址

AJMP ZD1

ORG 0013H外部1中断入口地址

AJMP ZD2

ORG 0030H主程序入口地址

MAIN: MOV P1,#00H

MOV IE,#87HCPU开中断、T0开中断、外部0、1开中断

MOV TMOD,#01HT0定时模式1

MOV TH0,#3CH定时50ms,晶振频率设为12MHz

MOV TL0,#0B0H

SETB TR0开启T0

SJMP $等待中断

外部0中断子程序

ZD0: CPL P1.0翻转

RETI

定时器T0中断子程序

ZD1: CPL P1.1翻转

MOV TH0,#3CH重装初值

MOV TL0,#0B0H

RETI

外部1中断子程序

ZD2: CPL P1.2翻转

RETI

END

P1.0、P1.1和P1.2外接三个LED,P1.0和P1.2用于外部0、1中断。当P3.2(外部0中断,可接一开关)和P3.3(外部1中断,可接一开关)出现低电平时,P1.0和P1.2所接的LED被点亮或者熄灭,同时每隔50ms定时器T0溢出中断一次,P1.1所接的LED被悔好点亮或者熄灭一次。

请楼主参考~~~

因为中断向量表的位置是运棚固定旁纳则不变的。只要系统发生中断,程序就会自动跳到中断向量表中。为了让你的程序不干扰中断程序,所以主程序都放在向量表的后面。当然,如果你的程序不使茄培用任何中断,从 0000H 开始放主程序,也不会有任何问题。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存