×
嵌入式 > 技术百科 > 详情

HOLTEK单片机-中断优先权测试

发布时间:2020-06-16 发布时间:
|

功能说明:

HT48R50A-1 有3个中断,外部中断,定时器0和定时器1.通过实验就可以了解到他们的优先级关系。

电路说明:

电路图如下图所示:

 
 

HT48R50A-1 的PA4-PA7各自接一个LED,以便指示正在执行哪一个中断子程序或主程序。

PA6 所接的LED2用来指示定时器0的中断子程序是否正在执行。

PA5 所接的LED3用来指示定时器1的中断子程序是否正在执行。

PA4 所接的LED4用来指示主程序是否正在执行。

完整版本的源程序下载:http://www.51hei.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 
 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
NS推出采用第二代PowerWise技术的能源管理单元及先进电源控制器