📄 串口调试.asm
字号:
MV_UP4:
MOVX A,@DPTR ;取数
INC DPTR ;变地址
INC AUXR1 ;变DPTR地址
MOVX @DPTR,A ;
INC DPTR ;
INC AUXR1 ;
MOVX A,@DPTR
INC DPTR
INC DPTR
INC DPTR
INC AUXR1
MOVX @DPTR,A
INC DPTR
MOV A,@R0 ;地址加一
INC R0 ;变DPTR地址.
;INC AUXR1
MOVX @DPTR,A ;把数据移到上一行的数据区
INC DPTR ;地址加一
MOV A,@R0
INC R0
MOVX @DPTR,A
INC DPTR
INC AUXR1
DJNZ R6,MV_UP4
RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
LIFT_MODE: CLR RAM_CE;选中RAM
MOV MDPH,BYTEH ;BYTEH,BYTEL地址里的数据是READ_FILE的原始数据
MOV MDPL,BYTEL
MOV A,SCREEN_KUAN_L
RR A
MOV R6,A
LF16: MOV R3,#02H
LF15: MOV YWKZ,#08H
LF14: MOV R4,SPEED ;控制移位的速度
LF13: ;MOV R1,#04H
LF12: MOV DPTR,#0000H
MOV HANG_COUNT,HANG ;有8行
LF11: LCALL MOV_LIFT
CLR LAT ;允许数据移位
MOV A,SCREEN_KUAN_L ;192个点/24个八位的数据.1/8扫描
RL A
MOV R2,A
LF10: MOVX A,@DPTR ;取数
CPL A
LCALL YW_BT7
DJNZ R2,LF10 ;调用送数据子程序.
LCALL HANG_CE ;调用行开通服务程序.
SETB LAT ;数据前面移入的数据.
CLR OE ;开显示
DJNZ HANG_COUNT,LF11;8行显示完没有
;DJNZ R1,LF12
DJNZ R4,LF13
DJNZ YWKZ,LF14
MOV A,MDPL
ADD A,#01H
MOV MDPL,A
MOV A,#00h;MDPH
ADDC A,MDPH
MOV MDPH,A
DJNZ R3,LF15
MOV A,MDPL
ADD A,#02H
MOV MDPL,A
MOV A,#00h;MDPH
ADDC A,MDPH
MOV MDPH,A
DJNZ R6,LF16 ;
LCALL repose_MODE
RET
;**********************************************
LIFT_DELAY: INC AUXR1
MOV DEL0,#01H
LF_0: NOP
DJNZ DEL0,LF_0
RET
MOV_LIFT: INC AUXR1 ;把DPTR指针保护起来.
MOV A,R4 ;取出移位速度控制寄存器.
CJNE A,SPEED,LIFT_DELAY ;判断是否要移位不要的话进行延时,要的话进行移位.
;MOV A,R1
;CJNE A,#04H,LIFT_DELAY
MOV DPH,MDPH ;把地址取出
MOV DPL,MDPL ;把地址取出
MOV A,HANG ;把扫描方式取出
CLR C
SUBB A,HANG_COUNT
RL A ;*2;1/8;1/4开启,1/16关闭.
;RL A ;*2;1/4;开启,1/8;1/16关闭.
MOV B,SCREEN_KUAN_L ;读出一行的数据量
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A
MOV A,YWKZ
CJNE A,#08H,BT6
MOVX A,@DPTR
MOV C,BIT7
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT7
MOV A,BIT_0
RLC A
MOV BIT_0,A
AJMP BT7
BT6: CJNE A,#07H,BT5
MOVX A,@DPTR
MOV C,BIT6
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT6
MOV A,BIT_0
RLC A
MOV BIT_0,A
AJMP BT7
BT5: CJNE A,#06H,BT4
MOVX A,@DPTR
MOV C,BIT5
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT5
MOV A,BIT_0
RLC A
MOV BIT_0,A
AJMP BT7
BT4: CJNE A,#05H,BT3
MOVX A,@DPTR
MOV C,BIT4
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT4
MOV A,BIT_0
RLC A
MOV BIT_0,A
SJMP BT7
BT3: CJNE A,#04H,BT2
MOVX A,@DPTR
MOV C,BIT3
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT3
MOV A,BIT_0
RLC A
MOV BIT_0,A
SJMP BT7
BT2: CJNE A,#03H,BT1
MOVX A,@DPTR
MOV C,BIT2
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT2
MOV A,BIT_0
RLC A
MOV BIT_0,A
SJMP BT7
BT1: CJNE A,#02H,BT0
MOVX A,@DPTR
MOV C,BIT1
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT1
MOV A,BIT_0
RLC A
MOV BIT_0,A
SJMP BT7
BT0: CJNE A,#01H,BT5
MOVX A,@DPTR
MOV C,BIT0
RLC A
MOV BIT_0,A
INC DPTR
INC DPTR
MOVX A,@DPTR
MOV C,BIT0
MOV A,BIT_0
RLC A
MOV BIT_0,A
SJMP BT7
BT7:;MOV A,HANG DHGFSGHSGHSGHSGFHSFGAKUBGFUIABVFJUABDJUABDFUBADFBVAIDFBVAIUBGFUSDYBGFUADBGFUASDBGDFUIGBAIDFBGIADBYGFSBYGFBADFIGBNSDIFGUISDFG
;CLR C
;SUBB A,HANG_COUNT
INC AUXR1
PUSH DPL
PUSH DPH
INC AUXR1
POP DPH
POP DPL
MOV A,SCREEN_KUAN_L
RL A
MOV R5,A
MOV R0,#80H
GGG: MOVX A,@DPTR
MOV @R0,A
INC R0
INC DPTR
DJNZ R5,GGG ;把相应的行数据取出来,等待预处理.
MOV A,SCREEN_KUAN_L
RR A
MOV R5,A
MOV_BIT:DEC R0 ;
MOV A,BIT_0
MOV C,BIT0 ;取出BIT
MOV A,@R0
RLC A
MOV @R0,A
DEC R0
MOV A,@R0
RLC A
MOV @R0,A
MOV A,BIT_0
MOV BIT0,C
MOV BIT_0,A
MOV C,BIT1
DEC R0
MOV A,@R0
RLC A
MOV @R0,A
DEC R0
MOV A,@R0
RLC A
MOV @R0,A
MOV A,BIT_0
MOV BIT1,C
MOV BIT_0,A
DJNZ R5,MOV_BIT
MOV A,SCREEN_KUAN_L
RL A
MOV R5,A
INC AUXR1
PUSH DPH
PUSH DPL
INC AUXR1
POP DPL
POP DPH
MOV R0,#80H
GGG1: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R5,GGG1 ;把相应的行数据取出来,等待预处理.
INC AUXR1
RET
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;移位服务子程序
;功能:按1/16的扫描规律把相应的数据量送出.给定起始地址.**************************
YW_BT7: MOV C,BIT7 ;BIT7
MOV R11,C ;
MOV G11,C
MOV B11,C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -