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

📄 vdr2(0829).asm

📁 8051单片机汇编程序
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                                      
SWITCHTIME    EQU       4BH
ADRECDATA     EQU       70H
ADSHOWDATA    EQU       60H
SWITCHDATA    EQU       4CH
NEWDATA       EQU       4DH

              ORG       0000H
              LJMP      MAIN
              ORG       000BH
              LJMP      TIME0
              ORG       0023H
              LJMP      RECEIVE
              ORG       0100H
;************************************************************************************
;*************************************6***********************************************
MAIN:
                MOV          P0,#0FFH
                LCALL        DOG
                LCALL        CHECKLAMP
                LCALL        CHECKLED                

                LCALL        INITIAL
                MOV          R6,#00H
                MOV          SWITCHDATA,#00H       ;判断接受到的数据是否正确,00H正确,FFH,错误
                MOV          SWITCHTIME,#00H       ;判断时间是否超过4秒而没有接受到数据,50H
                MOV          NEWDATA,#00H          ;判断是否已经接受到数据 00H,没有新数据
MA0:            NOP
                LCALL        ALARM
                LCALL        SHOW
                LJMP         MA0

                RET
;*************************************************************************************
;*************************************************************************************
CHECKLAMP:          NOP
                NOP
                NOP
                MOV       R7,#03H
                MOV       A,#55H   ;1010 1010
                NOP
UNITLAMP:       NOP
                LCALL     DOG
                NOP
                NOP
                MOV      R5,#18H
MOVELOOP:       MOV      C,ACC.7
                RL       A
                MOV      P1.0,C           ;数据位
                CLR      P1.1
                SETB     P1.1           ;一次脉冲
                NOP
                NOP
                DJNZ     R5,MOVELOOP
                NOP
                NOP
                LCALL    DELAY
                NOP
                NOP
                MOV      R5,#18H
                SETB     P1.0           ;数据位
MMENT:          CLR      P1.1
                SETB     P1.1           ;一次脉冲
                NOP
                NOP
                DJNZ     R5,MMENT
                NOP
                NOP
                LCALL    DELAY
                NOP
                NOP
                DJNZ     R7,UNITLAMP
                NOP
                NOP
                NOP
                LCALL    DOG
                NOP
                NOP
                RET

CHECKLED:
                NOP
                NOP
                MOV      R7,#03H
                MOV       A,#0AAH   ;0101 0101
                NOP
ULAMP:          NOP
                NOP
                LCALL    DOG
                NOP
                NOP
                MOV      R5,#18H
MRED:           MOV      C,ACC.7
                RL       A
                MOV      P1.0,C           ;数据位
                CLR      P1.1
                SETB     P1.1           ;一次脉冲
                NOP
                NOP
                NOP
                DJNZ     R5,MRED
                NOP
                NOP
                MOV      P0,#00H
                MOV      P2,#0FFH
                NOP
                NOP
                LCALL    DELAY
                NOP
                NOP
                MOV      R5,#18H
                SETB     P1.0           ;数据位
MMENTRED:       CLR      P1.1
                SETB     P1.1           ;一次脉冲
                NOP
                NOP
                NOP
                DJNZ     R5,MMENTRED
                NOP
                NOP
                NOP
                MOV      P0,#0FFH
                MOV      P2,#0FFH
                NOP
                NOP
                NOP
                LCALL    DELAY
                NOP
                NOP
                NOP
                DJNZ     R7,ULAMP
                NOP
                NOP
                LCALL    DOG
                NOP
                NOP
                NOP
                RET


;**************************************************************************************
;***************************************************************************************
INITIAL:
      LCALL        DOG
      MOV     TH0,#03CH    ;时间中断每次0。05秒,每4秒钟没收到数据就显示小数点循环
      MOV     TL0,#0AFH
      MOV     TMOD,#21H    ;设置波特率9600B/S
      MOV     SCON,#50H
      MOV     PCON,#00H
      MOV     TH1,#0FDH
      MOV     TL1,#0FDH
      CLR     ES
      SETB    ET0
      SETB            ES              ;开放串口中断
      SETB            EA              ;开放中断
      SETB            TR1             ;打开定时器T1
      SETB            TR0
      NOP
      RET
;****************************************************************************************
;***************************************************************************************
SHOW: NOP
      LCALL     SHOWLED
      LCALL     SHOWLAMP
      RET
;****************************************************************************************
;****************************************************************************************
SHOWLED:

      MOV       P2,#00H
      MOV       A,64H
      CLR       C
      ANL       A,#0FH
      MOV       DPTR,#TABNUM
      MOVC      A,@A+DPTR
      CPL       A
      MOV       P0,A
      SETB      P2.4
      CLR       P2.4

      MOV       A,65H
      CLR       C
      ANL       A,#0FH
      MOV       DPTR,#TABNUM
      MOVC      A,@A+DPTR
      CPL       A
      MOV       P0,A
      SETB      P2.3
      CLR       P2.3

      MOV       A,66H
      ANL       A,#0FH
      MOV       DPTR,#TABNUM
      MOVC      A,@A+DPTR
      CPL       A
      MOV       P0,A
      SETB      P2.2
      CLR       P2.2

      MOV       A,67H
      ANL       A,#0FH
      MOV       DPTR,#TABNUM
      MOVC      A,@A+DPTR
      CPL       A
      MOV       P0,A
      SETB      P2.1
      CLR       P2.1

      MOV       A,68H
      ANL       A,#0FH
      MOV       DPTR,#TABNUM
      MOVC      A,@A+DPTR
      CPL       A
      MOV       P0,A
      SETB      P2.0
      CLR       P2.0
      LCALL        DOG
      RET
;********************************************************************************************
;****************************************************************************************
SHOWLAMP:
      MOV       R4,#08H
      MOV       A,6BH
CIRC1:NOP
      MOV       C,ACC.7
      MOV       P1.0,C
      CLR       P1.1
      SETB      P1.1
      RL        A
      DJNZ      R4,CIRC1

      MOV       R4,#08H
      MOV       A,6AH
CIRC2:NOP
      MOV       C,ACC.7
      MOV       P1.0,C
      CLR       P1.1
      SETB      P1.1
      RL        A
      DJNZ      R4,CIRC2
      MOV       R4,#08H
      MOV       A,69H
CIRC3:NOP
      MOV       C,ACC.7
      MOV       P1.0,C
      CLR       P1.1
      SETB      P1.1
      RL        A
      DJNZ      R4,CIRC3
      LCALL     DELAY
      LCALL        DOG
      RET


;**************************************************************************************
;*************************************************************************************
ALARM:
                NOP
                MOV      A,NEWDATA
                CJNE     A,#00H,CHTIME
                LCALL    SHOWPOINT
                LJMP     ALARM
CHTIME:         MOV      A,SWITCHTIME
                CLR      C
                SUBB     A,#050H
                JC       NOTALARM
                LCALL    SHOWPOINT         ;显示小数点循环
                LJMP     ALARM
NOTALARM:       LCALL        DOG
                NOP

                RET

;*****************************************************************************************
;***************************************************************************************
SHOWPOINT:      NOP
                NOP
                LCALL   DOG
                NOP
                NOP
                MOV     P0,#0FFH    ;CLEAR LED
                MOV     P2,#0FFH
                MOV     P2,#00H

                MOV      R4,#18H
BLACK:          NOP
                SETB     P1.0
                CLR      P1.1
                SETB     P1.1
                NOP
                NOP
                NOP
                DJNZ     R4,BLACK
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                MOV      P2,#00H
                MOV      P0,#7FH

                CLR      P1.0
                CLR      P1.1
                SETB     P1.1
                SETB     P1.0
                CLR      P1.1
                SETB     P1.1
                SETB     P2.0
                NOP
                NOP
                NOP
                LCALL    DELAYSHORT
                NOP
                NOP
                NOP
                CLR      P1.1
                SETB     P1.1
                CLR      P1.1

⌨️ 快捷键说明

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