📄 jrdmdyxtsz.asm
字号:
INC R0
INC R1
MOV A,@R0
MOVX @R1,A
MOV LcdShowX,#23
MOV LcdShowY,#112
MOV LcdShowC,#4
LCALL DdShowString2
MOV R1,#ShowBuf
MOV KeyCount,#0
EditSysPass2: LCALL ScanKey
JNB KeyF,EditSysPass2
CLR KeyF
MOV A,KeyNumber ;
CJNE A,#0AH,EditSysPass3
LJMP EditSysPass1
EditSysPass3: CJNE A,#0BH,EditSysPass4
RET
EditSysPass4: MOV A,KeyNumber ;
CLR C
SUBB A,#10
JNC EditSysPass2
INC KeyCount
MOV A,#TSK ;
MOVX @R1,A ;
INC R1
MOV A,KeyNumber ;
MOVX @R1,A
INC R1
MOV LcdShowX,#23
MOV LcdShowY,#112
MOV A,KeyCount
MOV LcdShowC,A
LCALL DdShowString2
MOV A,KeyCount
CLR C
SUBB A,#4
JC EditSysPass2
MOV R0,#TempBuf
MOV R1,#ShowBuf
INC R1
MOVX A,@R1
INC R1
INC R1
MOV @R0,A
INC R0
MOVX A,@R1
INC R1
INC R1
MOV @R0,A
INC R0
MOVX A,@R1
INC R1
INC R1
MOV @R0,A
INC R0
MOVX A,@R1
MOV @R0,A
MOV BNUM,#PassNum
MOV BADR,#TempBuf
MOV DPTR,#SysPassAdr
LCALL WR_BLK
LJMP EditSysPass1
;
; ****** 系统仪表标度变换 ******
;
SysMeterTransf: MOV R2,DataH
MOV R3,DataL
MOV R6,#13H ; 1388H = 5000D
MOV R7,#88H
LCALL TowByteNMUL ; 双字节无符号乘法
MOV A,R4
MOV R2,A
MOV A,R5
MOV R3,A
MOV A,R6
MOV R4,A
MOV A,R7
MOV R5,A
; ******** 12位A/D转换数字量最大值 *********
MOV R6,#0FH ; 0FFFH = 4095D
MOV R7,#0FFH
LCALL TowByteNDIV ; 双字节无符号除法
MOV A,R4
MOV DataH,A
MOV A,R5
MOV DataL,A
RET
;
; ****** 动态显示A/D转换通道数据一 ******
;
ShowChannels1: MOV LcdShowX,#8
MOV LcdShowY,#30
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据二 ******
;
ShowChannels2: MOV LcdShowX,#8
MOV LcdShowY,#54
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据三 ******
;
ShowChannels3: MOV LcdShowX,#8
MOV LcdShowY,#78
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据四 ******
;
ShowChannels4: MOV LcdShowX,#8
MOV LcdShowY,#102
MOV LcdShowC,#1
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据五 ******
;
ShowChannels5: MOV LcdShowX,#8
MOV LcdShowY,#126
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据六 ******
;
ShowChannels6: MOV LcdShowX,#8
MOV LcdShowY,#150
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据七 ******
;
ShowChannels7: MOV LcdShowX,#8
MOV LcdShowY,#174
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 动态显示A/D转换通道数据八 ******
;
ShowChannels8: MOV LcdShowX,#8
MOV LcdShowY,#198
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据一 ******
;
ShowBz1: MOV LcdShowX,#28
MOV LcdShowY,#30
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据二 ******
;
ShowBz2: MOV LcdShowX,#28
MOV LcdShowY,#54
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据三 ******
;
ShowBz3: MOV LcdShowX,#28
MOV LcdShowY,#78
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据四 ******
;
ShowBz4: MOV LcdShowX,#28
MOV LcdShowY,#102
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据五 ******
;
ShowBz5: MOV LcdShowX,#28
MOV LcdShowY,#126
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据六 ******
;
ShowBz6: MOV LcdShowX,#28
MOV LcdShowY,#150
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据七 ******
;
ShowBz7: MOV LcdShowX,#28
MOV LcdShowY,#174
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 显示标准数据八 ******
;
ShowBz8: MOV LcdShowX,#28
MOV LcdShowY,#198
MOV LcdShowC,#6
LCALL DdShowString2
RET
;
; ****** 将仪表数据装入显示缓冲区 ******
;
YbDataLoadBuf: MOV A,DataH
MOV R2,A
MOV A,DataL
MOV R3,A
LCALL BinToBcd ; 将一双字节数转换为五位LCD显示的数据
MOV R1,#ShowBuf ; 汉字显示缓冲区
MOV A,#ZW1
MOVX @R1,A
INC R1
MOV A,R4
ANL A,#0FH
MOVX @R1,A
INC R1
MOV A,#ZW1
MOVX @R1,A
INC R1
MOV A,R5
ANL A,#0F0H
SWAP A
MOVX @R1,A
INC R1
MOV A,#ZW1
MOVX @R1,A
INC R1
MOV A,R5
ANL A,#0FH
MOVX @R1,A
INC R1
MOV A,#ZW1
MOVX @R1,A
INC R1
MOV A,R6
ANL A,#0F0H
SWAP A
MOVX @R1,A
INC R1
MOV A,#ZW1
MOVX @R1,A
INC R1
MOV A,R6
ANL A,#0FH
MOVX @R1,A
RET
;
; ****** 将标准常量装入显示缓冲区 ******
;
BzDataLoadBuf: MOV R1,#ShowBuf ; 汉字显示缓冲区
MOV A,#TSK
MOVX @R1,A
INC R1
MOV A,#05H
MOVX @R1,A
INC R1
MOV A,#TSK
MOVX @R1,A
INC R1
MOV A,#00H
MOVX @R1,A
INC R1
MOV A,#TSK
MOVX @R1,A
INC R1
MOV A,#00H
MOVX @R1,A
INC R1
MOV A,#TSK
MOVX @R1,A
INC R1
MOV A,#00H
MOVX @R1,A
INC R1
MOV A,#TSK
MOVX @R1,A
INC R1
MOV A,#060 ; 显示 " m "
MOVX @R1,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -