最簡(jiǎn)短且高效的中斷處理程序
通過(guò)用手動(dòng)逐個(gè)向8051單片機(jī)的/INT0輸入單脈沖,向單片機(jī)申請(qǐng)中斷。
單片機(jī)每中斷一次,依次向P1口輸出55H,AAH,55H,AAH……。
;============================================
最佳答案:下列程序,經(jīng)過(guò)調(diào)試,完全符合題目要求。
ORG0000H
LJMPSTART
XRLP1,#255
JNBP3.2,$
RETI
START:
SETBIT0
SETBEX0
SETBEA
MOVP1,#55H
SJMP$
END
;============================================
;============================================
后記:
這里給出的程序,可以說(shuō)是最簡(jiǎn)短且高效的外部中斷處理程序。
程序中的指令,僅僅9行,經(jīng)過(guò)編譯,長(zhǎng)度僅僅有21個(gè)字節(jié)!
題目已經(jīng)強(qiáng)調(diào)了,輸入到外部中斷的信號(hào),是單脈沖,故此,程序中可不必加入延時(shí)消抖部分。
那么,中斷處理部分,就很簡(jiǎn)短,也就可以直接放在中斷向量區(qū)域。
只有用匯編語(yǔ)言編寫(xiě)程序,才能達(dá)到如此精練的水平。
有些人,用C編寫(xiě)程序,編譯后發(fā)現(xiàn),單片機(jī)芯片的存儲(chǔ)空間的都不夠用的,呵呵
建議,還是應(yīng)該掌握匯編語(yǔ)言,才能上升到較高的層次。
;============================================