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

📄 七段显0.asm

📁 单片机七段显示码的原程序 其简要的概括了程序的手写规范 对单片机初学者来说是很有意义的哟
💻 ASM
字号:
 ORG     0000H
BEGIN:  LJMP INIT
       ORG     0003H   ;INT0
       RETI
       ORG     000BH   ;T0 INT
       RETI
       ORG     0013H   ;1NT1
       RETI
       ORG     001BH   ;T1 INT
       RETI
       ORG     0023H   ;S PORT INT
       RETI
       ORG     002BH   ;T2 INT
       RETI
       ORG     0030H
;=====================================================
;8032 RAM 00H--FFH CLEAR 0
INIT: 
        MOV     R0,#0FFH
        MOV     A, #00H
CLE0FFH:
        MOV     @R0,A
        DJNZ    R0,CLE0FFH

;SET STACK AREA  70H--7FH
        MOV     SP,#70H
        MOV     PSW,#00H
        MOV     P1,#00H

        MOV     30H,#3H
        MOV     31H,#2H
        MOV     32H,#1H
        MOV     33H,#0H
        LCALL   TICHANG;DISPLAY CHARACTER CHANGE

;====================================================================
ENTRK1: NOP
        LCALL   KEYSCAN;KEY SACN SUBRUTIN
        LCALL   DISPLAY;DISPLAY SUBRUTIN
        SJMP    ENTRK1
;====================================================================
;1. -----------------------------------------------------------------
;KEYSCAN:
;      KEY SCAN SUBRUTIN
;
;       1. 8032 P1 PORT PIN DEFINITION
;
;                  P3.2== +1 KEY BIT
;                  P3.5== +1 KEY BIT
;                  P3.6== +1 KEY BIT
;                  P3.7== +1 KEY BIT
;
;       2. RAM BIT 00H --P3.2 PRESSED
;                  01H --P3.5 PRESSED
;                  02H --P3.6 PRESSED
;                  03H --P3.7 PRESSED
;
;--------------------------------------------------------------------
KEYSCAN:NOP

        JB      P3.2,KEY1
        LCALL   DELAY60         ;DELAY 60mS
        JB      P3.2,KEY1
        SETB    00H
        CLR     01H
        CLR     02H
        CLR     03H
        LJMP    KEYSOUT

KEY1:
        JB      P3.7,KEY2
        LCALL   DELAY60         ;DELAY 60mS
        JB      P3.7,KEY2
        SETB    01H
        CLR     00H
        CLR     02H
        CLR     03H
        LJMP    KEYSOUT

KEY2:
        JB      P3.6,KEY3
        LCALL   DELAY60         ;DELAY 60mS
        JB      P3.6,KEY3
        SETB    02H
        CLR     00H
        CLR     01H
        CLR     03H
        LJMP    KEYSOUT

KEY3:
        JB      P3.5,KEYSOUT
        LCALL   DELAY60         ;DELAY 60mS
        JB      P3.5,KEYSOUT
        SETB    03H
        CLR     00H
        CLR     01H
        CLR     02H

KEYSOUT:
        RET
;--------------------------------------------------------------------
;2.------------------------------------------------------------------
;TICHANG
;--------------------------------------------------------------------
TICHANG:NOP
       MOV     R7,#4
       MOV     R0,#6FH
       MOV     R1,#33H
TCHANG0:MOV    A,@R1
       LCALL   DCCHANG         ;DISPLAY CHARACTER CHANGE
       CPL     A
       MOV     @R0,A
       DEC     R0
       DEC     R1
       DJNZ    R7,TCHANG0
TICHOUT:NOP
       RET
;--------------------------------------------------------------------

;4.------------------------------------------------------------------
;DISPLAY:
;       DISPLAY SUBRUTIN
;
;   RAM:6FH     CLOCK HORE 10 BIT
;       6EH     CLOCK HORE  1 BIT
;       6DH     CLOCK MIN  10 BIT
;       6CH     CLOCK MIN   1 BIT
;
;--------------------------------------------------------------------
DISPLAY:NOP
       JNB      00H,DIS2
       MOV      P0,6FH
       CLR     P1.0
       LCALL    DELAY60         ;DELAY 60MS
       LCALL    DELAY60         ;DELAY 60MS
       SETB     P1.1
       SETB     P1.2
       SETB     P1.3
DIS2:
       JNB      01H,DIS3
       MOV      P0,6EH
       CLR      P1.1
       LCALL    DELAY60         ;DELAY 60MS
       LCALL    DELAY60         ;DELAY 60mS
       SETB     P1.0
       SETB     P1.2
       SETB     P1.3
DIS3:
       JNB      02H,DIS4
       MOV      P0,6DH
       CLR      P1.2
       LCALL    DELAY60         ;DELAY 60MS
       LCALL    DELAY60         ;DELAY 60MS
       SETB     P1.0
       SETB     P1.1
       SETB     P1.3
DIS4:
       JNB      03H,DISOUT
       MOV      P0,6CH
       CLR      P1.3
       LCALL    DELAY60         ;DELAY 60MS
       LCALL    DELAY60         ;DELAY 60MS
       SETB     P1.0
       SETB     P1.1
       SETB     P1.2
DISOUT:
       RET
;--------------------------------------------------------------------
;6.------------------------------------------------------------------
;DELAY60:
;      DELAY 100mS FOR NEXT RANGING

;--------------------------------------------------------------------
DELAY60:PUSH    PSW
       MOV     PSW,#00H
       MOV     R3,#6            ;#10          0.5ms * 10 = 5ms 1997-9-3
W60MS: MOV     R4,#0FAH         ;0FAH =250
W500US1:DJNZ    R4,W500US1       ;TIME = 2US   2 US * 250 = 0.5 MS
       DJNZ    R3,W60MS
       POP     PSW
       RET
;-------------------------------------------------------------------
;7.------------------------------------------------------------------
;DCCHANG:
;       DISPLAY CHARACTERS CHANGE ROUTINE
;      NOTE:
;       1. ENTRY A-----LOAD SETOFF
;       2. RET A-------DISPLAY CHARACTER
;--------------------------------------------------------------------
DCCHANG:MOV     DPTR,#CHARAL
       MOVC    A,@A+DPTR
       RET
;CHARACTERS LIST
CHARAL: DB      3FH,06H,5BH,4FH,66H,6DH
;SETOFF    :    00H,01H,02H,03H,04H,05H,
;CHARACTERS:    0,  1,   2,  3,  4 , 5
       DB      7DH,07H,7FH,6FH,77H,7CH
;               06H,07H,08H,09H,0AH,0BH,
;               6,  7,  8,  9,  A,  B,
       DB      39H,5EH,79H,71H,73H,3EH
;               0CH,0DH,0EH,0FH,10H,11H,
;               C,  D,  E,  F,  P,  U,
;--------------------------------------------------------------------

;====================================================================
       END




⌨️ 快捷键说明

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