📄 vdr2(0829).asm
字号:
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 + -