⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intr4.asm

📁 本文件包包括8051彻底研究书籍各章的实例源代码
💻 ASM
字号:
;PROGRAM NAME:INTR4.ASM
;TEST TIMER0 INTERRUPT(MODE 1)
;
COUNT   EQU     9217    ;10mS FOR XTAL=11.0592MHz
;
DIGIT1  REG     P1.4
DIGIT2  REG     P1.5
LED     REG     P3.7
;
DISP    EQU     30H
SEC     EQU     31H
;
        ORG     0000H
        LJMP    RESET
        ORG     0003H           ;INT0 INTERRUPT
        LJMP    INT_ET0
        ORG     000BH           ;TIMER0 INTERRUPT
        LJMP    INT_TIMER0
        ORG     0013H           ;INT1 INTERRUPT
        RETI
        ORG     001BH           ;TIMER1 INTERRUPT
        RETI
        ORG     0023H           ;SERIAL INTERRUPT
        RETI
;
RESET   MOV     R0,#00H
        DJNZ    R0,$    ;WAIT
        MOV     DISP,#00H       ;DISPLAY '0''0'
        MOV     SEC,#00H
        MOV     SP,#40H
;
        MOV     A,TMOD
        ANL     A,#11110000B
        CLR     ACC.3   ;GATE=0
        CLR     ACC.2   ;C/T=0
        CLR     ACC.1   ;TIMER0 M1=0
        SETB    ACC.0   ;TIMER0 M0=1
        MOV     TMOD,A
        MOV     TH0,#(65536-COUNT)/256
        MOV     TL0,#(65536-COUNT).MOD.256
        CLR     TF0     ;CLEAR TF0
        SETB    TR0
;
;TIMER0 SETTING
        SETB    PT0
        SETB    ET0     ;ENABLE TIMER0 INTURRUPT
;INT0 SETTING
        SETB    IT0     ;NEG FALLING TRIGGER ON INT0
        SETB    EX0     ;ENABLE INT0 INTERRUPT
;       SETB    PX0
;
        SETB    EA      ;ENABLE SYSTEM INTERRUPT
;
LOOP    SJMP    LOOP    ;WAITTING
;
INT_ET0 PUSH    A
        MOV     A,DISP
        ADD     A,#01H
        DA      A
        MOV     DISP,A
        POP     A
        RETI
;
;TF0=1
INT_TIMER0
        CLR     TF0     ;CLEAR TF0
        MOV     TH0,#(65536-COUNT)/256
        MOV     TL0,#(65536-COUNT).MOD.256
        INC     SEC             ;SEC=SEC+1
        MOV     A,SEC           ;CHECK SEC>=100?
        CJNE    A,#100,$CHK1    ;A-100
$CHK1   JC      $NEXT
        MOV     SEC,#00H        ;SEC=0
;
$NEXT   MOV     A,SEC
        CJNE    A,#40,$CHK2
$CHK2   JNC     OVER
        SETB    LED             ;LED ON
        SJMP    DISPLAY
OVER    CLR     LED
;
DISPLAY MOV     A,DISP
        ANL     A,#00001111B    ;GET LOW NIBBLES
        SETB    ACC.5           ;BIT5,BIT4=10
        MOV     P1,A
        ACALL   DELAY
;ADD EXTRA PART
        CLR     P1.4
        CLR     P1.5
        ACALL   DELAY
;
        MOV     A,DISP
        SWAP    A
        ANL     A,#00001111B
        SETB    ACC.4           ;BIT5,BIT4=01
        MOV     P1,A
        ACALL   DELAY
        CLR     P1.4
        CLR     P1.5
        RETI
;
DELAY   MOV     R0,#80H
        DJNZ    R0,$
        RET
;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -