最简短且高效的中断处理程序
扫描二维码
随时随地手机看文章
通过用手动逐个向8051单片机的/INT0输入单脉冲,向单片机申请中断。
单片机每中断一次,依次向P1口输出55H,AAH,55H,AAH……。
;============================================
最佳答案:下列程序,经过调试,完全符合题目要求。
ORG0000H
LJMPSTART
XRLP1,#255
JNBP3.2,$
RETI
START:
SETBIT0
SETBEX0
SETBEA
MOVP1,#55H
SJMP$
END
;============================================
;============================================
后记:
这里给出的程序,可以说是最简短且高效的外部中断处理程序。
程序中的指令,仅仅9行,经过编译,长度仅仅有21个字节!
题目已经强调了,输入到外部中断的信号,是单脉冲,故此,程序中可不必加入延时消抖部分。
那么,中断处理部分,就很简短,也就可以直接放在中断向量区域。
只有用汇编语言编写程序,才能达到如此精练的水平。
有些人,用C编写程序,编译后发现,单片机芯片的存储空间的都不够用的,呵呵
建议,还是应该掌握汇编语言,才能上升到较高的层次。
;============================================