最简短且高效的中断处理程序

通过用手动逐个向8051单片机的 /INT0 输入单脉冲,向单片机申请中断。
单片机每中断一次,依次向 P1 口输出 55H,AAH,55H,AAH……。
悬赏分:50 | 解决时间:2011-9-28 08:22 |
;============================================
最佳答案:下列程序,经过调试,完全符合题目要求。

    ORG   0000H
    LJMP  START
    XRL   P1,  #255
    JNB   P3.2,  $
    RETI
START:
    SETB  IT0
    SETB  EX0
    SETB  EA
    MOV   P1,  #55H
    SJMP  $
END
;============================================
回答时间:2011-9-27 15:26 |
回答者: 做而论道 | 十五级采纳率:43% 
原题网址:http://zhidao.baidu.com/question/323891444.html
;============================================
后记:
这里给出的程序,可以说是最简短且高效的外部中断处理程序。
程序中的指令,仅仅9行,经过编译,长度仅仅有21个字节!
题目已经强调了,输入到外部中断的信号,是单脉冲,故此,程序中可不必加入延时消抖部分。
那么,中断处理部分,就很简短,也就可以直接放在中断向量区域。

只有用汇编语言编写程序,才能达到如此精练的水平。
有些人,用C编写程序,编译后发现,单片机芯片的存储空间的都不够用的,呵呵

建议,还是应该掌握汇编语言,才能上升到较高的层次。
;============================================

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值