專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

HOLTEK單片機(jī)-中斷優(yōu)先權(quán)測(cè)試

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2012年01月02日   【字體:

功能說(shuō)明:

HT48R50A-1 有3個(gè)中斷,外部中斷,定時(shí)器0和定時(shí)器1.通過(guò)實(shí)驗(yàn)就可以了解到他們的優(yōu)先級(jí)關(guān)系。

電路說(shuō)明:

        電路圖如下圖所示:

 
 

        HT48R50A-1 的PA4-PA7各自接一個(gè)LED,以便指示正在執(zhí)行哪一個(gè)中斷子程序或主程序。

        PA6 所接的LED2用來(lái)指示定時(shí)器0的中斷子程序是否正在執(zhí)行。

        PA5 所接的LED3用來(lái)指示定時(shí)器1的中斷子程序是否正在執(zhí)行。

        PA4 所接的LED4用來(lái)指示主程序是否正在執(zhí)行。

完整版本的源程序下載:http://www.torrancerestoration.com/f/htzd.rar

程序:

#INCLUDE                HT48R50A-1.INC

;---------------------------------------------

DATA    .SECTION        AT 60H  'DATA'

DELAY_COUNTER_1         DB      ?       ;[60H]

DELAY_COUNTER_2         DB      ?       ;[61H]

DISPLAY_COUNTER         DB      ?       ;[62H]

;---------------------------------------------

CODE    .SECTION        AT 00H  'CODE'

                ORG     00H

                JMP     START

                ORG     04H

                JMP     INTB

                ORG     08H

                JMP     TIMER0

                ORG     0CH

                JMP     TIMER1

 

                ORG     50H

START:

                CLR     PAC

                SET     PA

                MOV     A,02H

                MOV     DISPLAY_COUNTER,A

LOOP :

                CLR     PA.4

                CALL    DELAY

                SET     PA.4

                CALL    DELAY

                SDZ     DISPLAY_COUNTER

                JMP     LOOP

                MOV     A,0FH

                MOV     INTC,A

                MOV     A,7FH

                MOV     INTC,A

                HALT

                RET

;---------------------------------------------

INTB:

                MOV     A,03H

                MOV     DISPLAY_COUNTER,A

INT_LOOP:

                CLR     PA.7

                CALL    DELAY

                SET     PA.7

                CALL    DELAY

                SDZ     DISPLAY_COUNTER

                JMP     INT_LOOP

                RETI

;---------------------------------------------

TIMER0:

                MOV     A,04H

                MOV     DISPLAY_COUNTER,A

TIMER0_LOOP:

                CLR     PA.6

                CALL    DELAY

                SET     PA.6

                CALL    DELAY

                SDZ     DISPLAY_COUNTER

                JMP     TIMER0_LOOP

                RETI

;---------------------------------------------

TIMER1:

                MOV     A,05H

                MOV     DISPLAY_COUNTER,A

TIMER1_LOOP:

                CLR     PA.5

                CALL    DELAY

                SET     PA.5

                CALL    DELAY

                SDZ     DISPLAY_COUNTER

                JMP     TIMER1_LOOP

                RETI

;---------------------------------------------

DELAY           PROC

                MOV     A,0FFH

                MOV     DELAY_COUNTER_1,A

                MOV     DELAY_COUNTER_2,A

WAIT:

                SDZ     DELAY_COUNTER_2

                JMP     WAIT

                SDZ     DELAY_COUNTER_1

                JMP     WAIT

                RET

DELAY           ENDP

;---------------------------------------------

                END 
關(guān)閉窗口

相關(guān)文章