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

📄 串口实验程序乙.a51

📁 单片机串口实验的原程序 其简要的概括了程序的手写规范 对单片机初学者来说是很有意义的哟
💻 A51
字号:
ORG 0000h
       AJMP start
       ORG     0003H   ;INT0
       ORG     000BH   ;T0 INT
       ORG     0013H   ;1NT1
       ORG     001BH   ;T1 INT
       ORG     0023H   ;S PORT INT
        LJMP   RECIVE
       ORG     002BH   ;T2 INT
;=====================================
       ORG     0030H
start:
        MOV     R0,#07FH
        MOV     A, #00H
CLE0FFH:
        MOV     @R0,A
        DJNZ    R0,CLE0FFH

        MOV     SP,#70h
        MOV     P0,#00H
        MOV     P1,#00H
        MOV     P2,#00H
        MOV     P3,#00H
        MOV     R5,#80H
        MOV     DPTR,#DONG0
        LCALL   MOVWORD

        MOV     TMOD,#20h
        MOV     PCON,#00h
        MOV     TL1,#0FDh
        MOV     TH1,#0FDh
        SETB    EA
        SETB    TR1
        SETB    ES
        MOV     SCON,#70h
       
;====================================
AGAIN:  NOP
        LCALL   BGN
        LCALL   KEYSCAN
        AJMP    AGAIN
;====================================
RECIVE: NOP
        PUSH    A
        PUSH    PSW
        MOV     PSW,#08H
        CLR     RI
        MOV     A,SBUF
        CJNE    A,#0AAH,RECIOUT
RECWAI0:JNB     RI,RECWAI0
        MOV     R0,SBUF
        CLR     RI
        MOV     R7,#32
RECWAI: NOP
        JNB     RI,RECWAI
        CLR     RI
        MOV     @R0,SBUF
        INC     R0
        DJNZ    R7,RECWAI
        CLR     RI
RECIOUT:
        POP     PSW
        POP     A
        RETI
;1. -----------------------------------------------------------------
;KEYSCAN:
;      KEY SCAN SUBRUTIN
;
;       1. 8032 P1 PORT PIN DEFINITION
;                  P3.2== THE 1 WORD
;                  P3.5== THE 2 WORD
;                  P3.6== THE 3 WORD
;                  P3.7== THE 4 WORD
;--------------------------------------------------------------------
KEYSCAN:NOP
        SETB    P3.2
        JB      P3.2,KEY1
        LCALL   delay         ;DELAY 60mS
        JB      P3.2,KEY1
        MOV     DPTR,#DONG0
        MOV     B,#080H
        LJMP    WORDSED

KEY1:   ;CLR     P3.2
        SETB    P3.7
        JB      P3.7,KEY2
        LCALL   delay         ;DELAY 60mS
        JB      P3.7,KEY2
        MOV     DPTR,#DONG1
        MOV     B,#0A0H
        LJMP    WORDSED

KEY2:   ;CLR     P3.5
        SETB    P3.6
        JB      P3.6,KEY3
        LCALL   delay         ;DELAY 60mS
        JB      P3.6,KEY3
        MOV     DPTR,#DONG2
        MOV     B,#0C0H
        LJMP    WORDSED

KEY3:   ;CLR     P3.6
        SETB    P3.5
        JB      P3.5,KEYSOUT
        LCALL   delay         ;DELAY 60mS
        JB      P3.5,KEYSOUT
        MOV     DPTR,#DONG3
        MOV     B,#0E0H

WORDSED:
        CLR     ES
        MOV     SBUF,#0AAH
WAIT0:  JNB     TI,WAIT0
        CLR     TI
        MOV     SBUF,B
WAIT1:  JNB     TI,WAIT1
        MOV     R7,#32
        MOV     A,#0
SEND0:  CLR     TI
        PUSH    A
        MOVC    A,@A+DPTR
        MOV     SBUF,A
WAIT2:  JNB     TI,WAIT2
        POP     A
        INC     A
        DJNZ    R7,SEND0
        CLR     TI

KEYSOUT:SETB    ES
        ;CLR     P3.5
        RET
;--------------------------------------------------------------------

;------------------------------------
BGN:
        INC R5
        INC R5
        CJNE R5,#0,CCC
        MOV R5,#80H
CCC:   
       MOV R4,#03H      ;每帧显示次数
BGN0:
       MOV A,R5         ;每帧起始位置
       MOV R0,A
;       MOV P3,#00H
;       MOV R1,#01h
       MOV P3,#0FFH
       MOV R1,#0FEh
       SETB C 
BGN1:     
       MOV A,@R0
       CPL A
       MOV P0,A         ;80h,A
       INC R0
       MOV A,@R0
       CPL A
       MOV P2,A         ;0a0h,A
       INC R0
       CJNE R0,#0,AAA0
       MOV R0,#80H
       LJMP AAA
AAA0:
       MOV A,R5
       ADD A,#32
       CJNE A,#128,AAA1
AAA1:  JNC AAA2
       ADD A,#128       
AAA2:
       MOV 2EH,R0
       CJNE A,2EH,AAA
       MOV A,R5
       MOV R0,A
AAA:      
       MOV P1,R1
       ACALL delay

       MOV A,R1
;       CLR C
       SETB C
       RLC A 
;       JC BGN2
       JNC BGN2
       MOV R1,A
       AJMP BGN1

BGN2:  
;       MOV P1,#00H
;       MOV R1,#01h
;       CLR C
       MOV P1,#0FFH
       MOV R1,#0FEh
       SETB C 
BGN3:
       MOV A,@R0
       CPL A
       MOV P0,A         ;80h,A
       INC R0
       MOV A,@R0
       CPL A
       MOV P2,A         ;0a0h,A
       INC R0
       CJNE R0,#0,BBB0
       MOV R0,#80H
BBB0:
       MOV A,R5
       ADD A,#32
       CJNE A,#128,BBB1
BBB1:  JNC BBB2
       ADD A,#128       
BBB2: 
       MOV 2EH,R0
       CJNE A,2EH,BBB
       MOV A,R5
       MOV R0,A
BBB:      
        MOV     A,R1
;        ORL     A,#03
       MOV P3,A
       ACALL delay
       MOV A,R1
;       CLR C
       SETB C
       RLC A 
;       JC BGN4
       JNC BGN4
       MOV R1,A
       AJMP BGN3

BGN4:  DJNZ R4,BGN0
        RET
;---------------------------------
;---------------------------------
delay:
       MOV R7,#2H
M1:
       MOV R6,#0FFh
M2:    NOP
       DJNZ R6,M2
       DJNZ R7,M1
       RET
;---------------------------------
;---------------------------------
MOVWORD:
        MOV     R0,#07FH
        MOV     R1,#0FFH
WORD:
        MOV     A,R0
        MOVC    A,@A+DPTR
        MOV     @R1,A
        DEC     R1
        DJNZ    R0,WORD
        RET
;---------------------------------
;---------------------------------
DONG0:
    db 000h,000h,010h,010h,030h,010h,090h,019h;"东"
    db 0D0h,00Dh,0F0h,016h,0B0h,026h,0Bch,020h
    db 0FCh,07fh,0D0h,03Fh,090h,000h,090h,006h
    db 090h,00Ch,0B0h,018h,020h,030h,000h,010h
DONG1:
    db 000h,000h,030h,020h,010h,030h,0D0h,03Fh;"南"
    db 0D0h,00Fh,050h,00Dh,0D0h,005h,07ch,03Fh
    db 07Ch,03fh,0D0h,005h,050h,005h,050h,000h
    db 0D0h,07Fh,0F0h,03Fh,010h,000h,000h,000h
DONG2:
    db 000h,000h,018h,000h,0D8h,00Fh,0C8h,03Fh;"西"
    db 048h,034h,048h,036h,0F8h,033h,048h,030h
    db 048h,030h,0F8h,037h,048h,034h,048h,034h
    db 0D8h,03Fh,0D8h,03Fh,018h,000h,000h,000h
DONG3:
    db 000h,000h,000h,018h,0C0h,018h,040h,008h;"北"
    db 040h,00Ch,0FCh,03Fh,0fCh,03Fh,000h,000h
    db 000h,000h,0FCh,01Fh,0FCh,01Fh,080h,038h
    db 040h,038h,060h,030h,060h,038h,000h,018h

    END
       

      

⌨️ 快捷键说明

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