modbusjava string 转jsonn modbusjava string 转jsonn怎么做, 我只会java。

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 2113 人关注过本帖
标题:急!!帮我把自定义通信协议改为modbus通信协议
等 级:论坛游民
帖 子:35
专家分:34
结帖率:75%
&&已结贴√
&&问题点数:20&&回复次数:2&&&
急!!帮我把自定义通信协议改为modbus通信协议
;内存分配:
;ADD:30H,31H
;DI:33H,25h,26h
;AI0:35H,36H,37H,38H
;AI2:39H,3AH,3BH,3CH
;AI3:3DH,3EH,3FH,40H
;AI4:41H,42H,43H,44H
;AO0:45H,46H,47H,48H
;AO1:49H,4AH,4BH,4CH
;CHKSUM:4DH,4EH
;接收区:50H~5FH
;堆栈区:60H~7FH
DCLK&&&&&&BIT&&P1.3
ADCS&&&&&&BIT&&P1.2
DIN&&&&&& BIT&&P1.1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DOUT&&&&&&BIT&&P1.0
DAIN&&&&&&BIT&&P1.4
SCLK&&&&&&BIT&&P1.5
DACS&&&&&&BIT&&P1.6
RS&&&&&&&&BIT&&P3.4
RW&&&&&&&&BIT&&P3.5
EN&&&&&&&&BIT&&P3.6
SSIOMARK&&BIT&&00H&&& ;串行接收正确标志
DIasch&&& equ&&25h
DIascl&&& equ&&26h
lcdbusy&&&equ&&27h
TIMES&&&&&EQU&&28H&&& ;定时器计数
TIMESE&&& EQU&&29H&&& ;定时器计数
SSIOSBUF&&EQU&&2AH&&& ;串行接收数据暂存
SSIOTIME&&EQU&&2BH&&& ;串行接收数据个数
DAAH&&&&&&EQU&&2CH&&& ;TLC5618输入数据
DAAL&&&&&&EQU&&2DH
DABH&&&&&&EQU&&2EH
DABL&&&&&&EQU&&2FH
dotime&&& equ&&4fh
RR0&&&&&& EQU&&18H
RR1&&&&&& EQU&&19H
RR2&&&&&& EQU&&1AH
RR3&&&&&& EQU&&1BH
RR4&&&&&& EQU&&1CH
RR5&&&&&& EQU&&1DH
RR6&&&&&& EQU&&1EH
RR7&&&&&& EQU&&1FH
RRR0&&&&&& EQU&&10H
RRR1&&&&&& EQU&&11H
RRR2&&&&&& EQU&&12H
RRR3&&&&&& EQU&&13H
RRR4&&&&&& EQU&&14H
RRR5&&&&&& EQU&&15H
RRR6&&&&&& EQU&&16H
RRR7&&&&&& EQU&&17H
&&&&&&&&& ORG&&&0000H
&&&&&&&&& LJMP&&MAIN
&&&&&&&&& ORG&&&000BH
&&&&&&&&& LJMP&&TIMEINT&&&&&&;定时中断
&&&&&&&&& ORG&&&0023H
&&&&&&&&& LJMP&&SSIO&&&&&&&&&;串行中断
&&&&&&&&& ORG&&&0100H
MAIN:&&&&&MOV&&&SP,#60H
&&&&&&&&& CLR&&&P3.2&&&&&&&&;485收发控制端
&&&&&&&&& LCALL SETDATA&&&&&;设置输出数据
&&&&&&&&& LCALL ADDRESS&&&&&;读取站地址和波特率
&&&&&&&&& LCALL BTL0&&&&&&&&;设置波特率(晶振为11.0592M)
&&&&&&&&& LCALL SET232&&&&&&;串行口、定时器初始化
&&&&&&&&& lcall lcdset&&&&&&;液晶初始化
&&&&&&&&& LCALL DIADDBTL&&& ;读取开关量输入、站地址和波特率
&&&&&&&&& //LCALL ADIN&&&&&&&&;模拟量输入
&&&&&&&&& LCALL DAOUT&&&&&& ;模拟量输出
&&&&&&&&&// LCALL DISPLAY&&&&&;液晶显示
&&&&&&&&& LCALL MESSAGE&&&&&;消息处理
&&&&&&&&& LCALL SAVEDATA&&& ;保存输出数据及校验
&&&&&&&&& LJMP&&START
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETDATA:&&mov&&&a,daah&&&&&&;设置输出数据
&&&&&&&&& add&&&a,daal
&&&&&&&&& add&&&a,dabh
&&&&&&&&& add&&&a,dabl
&&&&&&&&& add&&&a,34h
&&&&&&&&& lcall hasc&&&&&&&&;单字节十六进制数转换成双字节ASCII码
&&&&&&&&& mov&&&4dh,a
&&&&&&&&& mov&&&4eh,b
&&&&&&&&& mov&&&a,23h
&&&&&&&&& cjne&&a,4dh,SETDATA0
&&&&&&&&& mov&&&a,24h
&&&&&&&&& cjne&&a,4eh,SETDATA0
&&&&&&&&& mov&&&p2,34h
&&&&&&&&& RET
SETDATA0: mov&&&p2,#0ffh&&& ;开关量输出复位
&&&&&&&&& mov&&&34h,#0ffh
&&&&&&&&& mov&&&45h,#41h
&&&&&&&&& mov&&&46h,#41h
&&&&&&&&& mov&&&47h,#41h
&&&&&&&&& mov&&&48h,#41h
&&&&&&&&& mov&&&49h,#41h
&&&&&&&&& mov&&&4ah,#41h
&&&&&&&&& mov&&&4bh,#41h
&&&&&&&&& mov&&&4ch,#41h
&&&&&&&&& mov&&&daah,#0C0h
&&&&&&&&& mov&&&daal,#00h
&&&&&&&&& mov&&&dabh,#50h
&&&&&&&&& mov&&&dabl,#00h
&&&&&&&&& RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SAVEDATA: mov&&&a,daah&&&&&& ;保存输出数据及校验
&&&&&&&&& add&&&a,daal
&&&&&&&&& add&&&a,dabh
&&&&&&&&& add&&&a,dabl
&&&&&&&&& add&&&a,34h
&&&&&&&&& lcall hasc&&&&&&&&&;单字节十六进制数转换成双字节ASCII码
&&&&&&&&& mov&&&23h,a
&&&&&&&&& mov&&&24h,b
&&&&&&&&& RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DI:&&&&&& MOV&&&P0,#0FFH&&& ;读输入开关量
&&&&&&&&& CLR&&&P3.7
&&&&&&&&& MOV&&&A,P0
&&&&&&&&& SETB&&P3.7
&&&&&&&&& CPL&&&A
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&08h,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&09h,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0ah,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0bh,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0ch,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0dh,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0eh,c
&&&&&&&&& rlc&&&a
&&&&&&&&& mov&&&0fh,c
&&&&&&&&& MOV&&&33H,21h
&&&&&&&&& mov&&&a,33h
&&&&&&&&& lcall hasc
&&&&&&&&& mov&&&DIasch,a
&&&&&&&&& mov&&&DIascl,b
ADDRESS:&&MOV&&&P0,#0FFH&&&&&&&&;读取拔码开关站地址和波特率
&&&&&&&&& CLR&&&P3.3
&&&&&&&&& MOV&&&A,P0
&&&&&&&&& SETB&&P3.3
&&&&&&&&& CPL&&&A
&&&&&&&&& MOV&&&R2,A
&&&&&&&&& ANL&&&A,#1FH
&&&&&&&&& LCALL HBCD
&&&&&&&&& LCALL HASC
&&&&&&&&& MOV&&&30H,A
&&&&&&&&& MOV&&&31H,B
&&&&&&&&& MOV&&&A,R2
&&&&&&&&& ANL&&&A,#0E0H
&&&&&&&&& RL&&& A
&&&&&&&&& RL&&& A
&&&&&&&&& RL&&& A
&&&&&&&&& CJNE&&A,32H,BTL
&&&&&&&&& RET
BTL:&&&&&&MOV&&&32H,A&&&&&&&&&;设置波特率(晶振为11.0592M)
BTL0:&&&&&MOV&&&A,32H
&&&&&&&&& CJNE&&A,#00H,BTL1
&&&&&&&&& MOV&&&TH1,#0A0H&&&&&;波特率300
&&&&&&&&& MOV&&&TL1,#0A0H
&&&&&&&&& RET
BTL1:&&&&&CJNE&&A,#01H,BTL2
&&&&&&&&& MOV&&&TH1,#0D0H&&&&&;波特率600
&&&&&&&&& MOV&&&TL1,#0D0H
&&&&&&&&& RET
BTL2:&&&&&CJNE&&A,#02H,BTL3
&&&&&&&&& MOV&&&TH1,#0E8H&&&&&;波特率1200
&&&&&&&&& MOV&&&TL1,#0E8H
&&&&&&&&& RET
BTL3:&&&&&CJNE&&A,#03H,BTL4
&&&&&&&&& MOV&&&TH1,#0F4H&&&&&;波特率2400
&&&&&&&&& MOV&&&TL1,#0F4H
&&&&&&&&& RET
BTL4:&&&&&CJNE&&A,#04H,BTL5
&&&&&&&&& MOV&&&TH1,#0FAH&&&&&;波特率4800
&&&&&&&&& MOV&&&TL1,#0FAH
&&&&&&&&& RET
BTL5:&&&&&MOV&&&TH1,#0FDH&&&&&;波特率9600
&&&&&&&&& MOV&&&TL1,#0FDH
&&&&&&&&& RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//ADIN:&&&&&&&&&&&&&&&&&&&&&&&& ;AI0-AI3采集并转换成BCD和ASC码&&省略了采集部分
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;&&&&&&&&MOV&&&DAAH,#0C8H
;&&&&&&&&MOV&&&DAAL,#03H
;&&&&&&&&MOV&&&DABH,#5FH
;&&&&&&&&MOV&&&DABL,#0FFH
&&&&&&&&MOV&&&A,DABH
&&&&&&&&CLR&&&C
&&&&&&&&SETB&&SCLK
&&&&&&&&CLR&&&DACS
&&&&&&&&MOV&&&R6,#02H
DA10:&&&MOV&&&R7,#08H
DA11:&&&SETB&&SCLK
&&&&&&&&RLC&&&A
&&&&&&&&MOV&&&DAIN,C
&&&&&&&&CLR&&&SCLK
&&&&&&&&DJNZ&&R7,DA11
&&&&&&&&MOV&&&A,DABL
&&&&&&&&DJNZ&&R6,DA10
&&&&&&&&SETB&&SCLK
&&&&&&&&SETB&&DACS
&&&&&&&&CLR&&&SCLK
&&&&&&&&MOV&&&A,DAAH
&&&&&&&&CLR&&&C
&&&&&&&&SETB&&SCLK
&&&&&&&&CLR&&&DACS
&&&&&&&&MOV&&&R6,#02H
DA20:&&&MOV&&&R7,#08H
DA21:&&&SETB&&SCLK
&&&&&&&&RLC&&&A
&&&&&&&&MOV&&&DAIN,C
&&&&&&&&CLR&&&SCLK
&&&&&&&&DJNZ&&R7,DA21
&&&&&&&&MOV&&&A,DAAL
&&&&&&&&DJNZ&&R6,DA20
&&&&&&&&SETB&&SCLK
&&&&&&&&SETB&&DACS
&&&&&&&&CLR&&&SCLK
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SSIO:&&&PUSH&&ACC
&&&&&&&&PUSH&&PSW
&&&&&&&&PUSH&&01H
LOOP1:&&CLR&&&RI
&&&&&&&&MOV&&&A,SBUF
&&&&&&&&JNB&&&PSW.0,LOOP10
&&&&&&&&JNB&&&RB8,BACK
&&&&&&&&LJMP&&LOOP11
LOOP10: JB&&& RB8,BACK
LOOP11: MOV&&&SSIOSBUF,A
&&&&&&&&MOV&&&A,SSIOTIME
&&&&&&&&CJNE&&A,#00H,LOOP2
&&&&&&&&MOV&&&A,SSIOSBUF
&&&&&& CJNE&&A,#02H,BACK
LOOP2:&&MOV&&&A,#50H
&&&&&&&&ADD&&&A,SSIOTIME
&&&&&&&&MOV&&&R1,A
&&&&&&&&MOV&&&@R1,SSIOSBUF
&&&&&&&&mov&&&a,ssiosbuf
&&&&&&&&cjne&&a,#0dh,loop3
&&&&&&&&SETB&&SSIOMARK
&&&&&&&&CLR&&&ES
&&&&&&&&ljmp&&back1
loop3:&&INC&&&SSIOTIME
&&&&&&&&MOV&&&A,SSIOTIME
&&&&&&&&CJNE&&A,#10H,LOOP4
LOOP4:&&JC&&& BACK1
BACK:&&&MOV&&&SSIOTIME,#00H
BACK1:&&POP&&&01H
&&&&&&&&POP&&&PSW
&&&&&&&&POP&&&ACC
&&&&&&&&RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;
MESSAGE:jB&&& SSIOMARK,MESS1&&&;串行消息处理
&&&&&&&&CLR&&&P3.2
&&&&&&&&RET
MESS1:&&MOV&&&A,53H&&&&&&&&;核对站地址
&&&&&&&&CJNE&&A,30H,MESS6
&&&&&&&&MOV&&&A,54H
&&&&&&&&CJNE&&A,31H,MESS6
&&&&&&&&mov 20h,#0xff&&&&&&&&&;核对校验字
&&&&&&&&mov 21h,#0xff
&&&&&&&&mov 12h,#0x0d
&&&&&&&&mov 11h,#0x08
&&&&&&&&mov r0,#0x34
zijiekaishi:
&&&&&&&&mov a,21h
&&&&&&&&xrl a,@r0
&&&&&&&&rrc a
&&&&&&&&mov 21h,a
&&&&&&&&mov 10h,c
&&&&&&&&clr c
&&&&&&&&mov a,20h
&&&&&&&&rrc a
&&&&&&&&mov 0fh,c
&&&&&&&&mov 20h,a
&&&&&&&&anl 20h,#0x7f
&&&&&&&&jnb 10h,next
&&&&&&&&xrl 21h,#0x01
&&&&&&&&xrl 20h,#0xa0
&&&&&&&&mov a,21h
&&&&&&&&djnz 11h,kaishi
&&&&&&&&mov 11h,#0x08
&&&&&&&&inc r0
&&&&&&&&djnz 12h,zijiekaishi
&&&&&&&&mov 4eh,20h
&&&&&&&&mov 4dh,21h
&&&&&&&&SETB&&P3.2
&&&&&&&&MOV&&&A,51H&&&&&&&&& ;判断命令字
&&&&&&&&CJNE&&A,#03H,MESS3
&&&&&&&&CJNE&&A,#01H,MESS30
&&&&&&&&CJNE&&A,#05H,MESS5
&&&&&&&&CJNE A,#06H,MESS4
&&&&&&&&LCALL RD1
&&&&&&&&LJMP&&MESS6
&&&&&&&&LCALL RA
&&&&&&&&LJMP&&MESS6
&&&&&&&&LCALL RALL
&&&&&&&&LJMP&&MESS6
&&&&&&&&LCALL WD
&&&&&&&&LJMP&&MESS6
&&&&&&&&LCALL AODATA
&&&&&&&&LCALL WA
MESS6:&&MOV&&&SSIOTIME,#00H
&&&&&&&&CLR&&&SSIOMARK
&&&&&&&&SETB&&ES
&&&&&&&&CLR&&&P3.2
&&&&&&&&RET
;;;;;;;;;;;
RD1:&&& MOV&&&A,#52H
&&&&&&&&ADD&&&A,#44H
&&&&&&&&ADD&&&A,30H
&&&&&&&&ADD&&&A,31H
&&&&&&&&ADD&&&A,DIasch
&&&&&&&&add&&&a,DIascl
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&57H,A
&&&&&&&&MOV&&&58H,B
&&&&&&&&MOV&&&55H,DIasch
&&&&&&&&mov&&&56h,DIascl
&&& //&&& MOV&&&59H,#0DH
&&&&&&&&MOV&&&R7,#0AH
&&&&&&&&MOV&&&R0,#50H
RD0:&&& MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RD0
&&&&&&&&RET
;;;;;;;;;;;
RA:&&&&&MOV&&&A,#52H
&&&&&&&&ADD&&&A,#41H
&&&&&&&&ADD&&&A,30H
&&&&&&&&ADD&&&A,31H
&&&&&&&&MOV&&&R7,#10H
&&&&&&&&MOV&&&R0,#35H
RA0:&&& ADD&&&A,@R0
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RA0
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&4DH,A
&&&&&&&&MOV&&&4EH,B
&&&&&&&&MOV&&&R7,#05H
&&&&&&&&MOV&&&R0,#50H
RA1:&&& MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RA1
&&&&&&&&MOV&&&R7,#10H
&&&&&&&&MOV&&&R0,#35H
RA2:&&& MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RA2
&&&&&&&&MOV&&&A,4DH
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&A,4EH
&&&&&&&&LCALL BUFS
&&&&&&&&//MOV&&&A,#0DH
&&&&&& // LCALL BUFS
&&&&&&&&RET
;;;;;;;;;;;;
RALL:&&&MOV&&&A,34H
&&&&&&&&CPL&&&A
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&RR0,A
&&&&&&&&MOV&&&RR1,B
&&&&&&&&MOV&&&A,#52H
&&&&&&&&ADD&&&A,#52H
&&&&&&&&ADD&&&A,30H
&&&&&&&&ADD&&&A,31H
&&&&&&&&MOV&&&R7,#18H
&&&&&&&&MOV&&&R0,#35H
RALL0:&&ADD&&&A,@R0
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RALL0
&&&&&&&&ADD&&&A,DIasch
&&&&&&&&add&&&a,DIascl
&&&&&&&&ADD&&&A,RR0
&&&&&&&&ADD&&&A,RR1
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&4DH,A
&&&&&&&&MOV&&&4EH,B
&&&&&&&&MOV&&&R7,#05H
&&&&&&&&MOV&&&R0,#50H
RALL1:&&MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RALL1
&&&&&&&&MOV&&&R7,#18H
&&&&&&&&MOV&&&R0,#35H
RALL2:&&MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,RALL2
&&&&&&&&MOV&&&A,DIasch
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&a,DIascl
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&A,RR0
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&A,RR1
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&A,4DH
&&&&&&&&LCALL BUFS
&&&&&&&&MOV&&&A,4EH
&&&&&&&&LCALL BUFS
&&& //&&& MOV&&&A,#0DH
&&& //&&& LCALL BUFS
&&&&&&&&RET
;;;;;;;;;;;;
WD:&&&&&mov&&&a,55h
&&&&&&&&lcall asch
&&&&&&&&swap&&a
&&&&&&&&mov&&&34h,a
&&&&&&&&mov&&&a,56h
&&&&&&&&lcall asch
&&&&&&&&add&&&a,34h
&&&&&&&&CPL&&&A
&&&&&&&&mov&&&34h,a
&&&&&&&&MOV&&&P2,A
&&&&&&&&mov&&&dotime,#00h
&&&&&&&&MOV&&&A,#57H
&&&&&&&&ADD&&&A,#44H
&&&&&&&&ADD&&&A,30H
&&&&&&&&ADD&&&A,31H
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&55H,A
&&&&&&&&MOV&&&56H,A
&&&&&& // MOV&&&57H,#0DH
&&&&&&&&MOV&&&R7,#08H
&&&&&&&&MOV&&&R0,#50H
WD0:&&& MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,WD0
&&&&&&&&RET
;;;;;;;;;;;
WA:&&&&&MOV&&&A,#57H
&&&&&&&&ADD&&&A,#41H
&&&&&&&&ADD&&&A,30H
&&&&&&&&ADD&&&A,31H
&&&&&&&&LCALL HASC
&&&&&&&&MOV&&&55H,A
&&&&&&&&MOV&&&56H,A
&&&&&&&&//MOV&&&57H,#0DH
&&&&&&&&MOV&&&R7,#08H
&&&&&&&&MOV&&&R0,#50H
WA0:&&& MOV&&&A,@R0
&&&&&&&&LCALL BUFS
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,WA0
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
AODATA:&&&&&&&&&&&&&&&&&& ;对写模拟量命令进行保存并转换成十六进制
&&&&&&&&MOV&&&45H,55H
&&&&&&&&MOV&&&46H,56H
&&&&&&&&MOV&&&47H,57H
&&&&&&&&MOV&&&48H,58H
&&&&&&&&MOV&&&49H,59H
&&&&&&&&MOV&&&4AH,5AH
&&&&&&&&MOV&&&4BH,5BH
&&&&&&&&MOV&&&4CH,5CH
&&&&&&&&MOV&&R7,#08H
&&&&&&&&MOV&&R0,#55H
AODATA1:MOV&&&A,@R0
&&&&&&&&LCALL ASCH
&&&&&&&&MOV&&&@R0,A
&&&&&&&&INC&&&R0
&&&&&&&&DJNZ&&R7,AODATA1
&&&&&&&&mov&&&a,45h
&&&&&&&&cjne&&a,#41h,AODATA2
&&&&&&&&MOV&&&DAAH,#00h
&&&&&&&&MOV&&&DAAL,#00h
&&&&&&&&ljmp&&AODATA3
AODATA2:MOV&&&A,55H
&&&&&&&&SWAP&&A
&&&&&&&&ADD&&&A,56H
&&&&&&&&MOV&&&R2,A
&&&&&&&&MOV&&&A,57H
&&&&&&&&SWAP&&A
&&&&&&&&ADD&&&A,58H
&&&&&&&&MOV&&&R3,A
&&&&&&&&lcall aoddd
&&&&&&&&MOV&&&DAAH,R3
&&&&&&&&MOV&&&DAAL,R4
AODATA3:mov&&&a,49h
&&&&&&&&cjne&&a,#41h,AODATA4
&&&&&&&&MOV&&&DABH,#00h
&&&&&&&&MOV&&&DABL,#00h
&&&&&&&&ljmp&&AODATA5
AODATA4:MOV&&&A,59H
&&&&&&&&SWAP&&A
&&&&&&&&ADD&&&A,5AH
&&&&&&&&MOV&&&R2,A
&&&&&&&&MOV&&&A,5BH
&&&&&&&&SWAP&&A
&&&&&&&&ADD&&&A,5CH
&&&&&&&&MOV&&&R3,A
&&&&&&&&LCALL aoddd
&&&&&&&&MOV&&&DABH,R3
&&&&&&&&MOV&&&DABL,R4
AODATA5:ORL&&&DAAH,#50H
&&&&&&&&ORL&&&DABH,#0C0H
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
aoddd:&&LCALL BH2
&&&&&&&&mov&&&r6,#0ch
&&&&&&&&mov&&&r7,#0cch
&&&&&&&&lcall muld
&&&&&&&&mov&&&r6,#0fh
&&&&&&&&mov&&&r7,#0a0h
&&&&&&&&lcall divd
&&&&&&&&mov&&&c,ov
&&&&&&&&jc&&& aoddd0
&&&&&&&&mov&&&r4,03h
&&&&&&&&mov&&&r3,02h
&&&&&&&&ljmp&&aoddd1
aoddd0: mov&&&r4,#00h
&&&&&&&&mov&&&r3,#00h
aoddd1: mov&&&a,r4
&&&&&&&&add&&&a,#33h
&&&&&&&&mov&&&r4,a
&&&&&&&&mov&&&a,r3
&&&&&&&&addc&&a,#03h
&&&&&&&&mov&&&r3,a
&&&&&&&&clr&&&c
&&&&&&&&mov&&&a,#0ffh
&&&&&&&&subb&&a,r4
&&&&&&&&mov&&&a,#0fh
&&&&&&&&subb&&a,r3
&&&&&&&&jc&&& aoddd2
&&&&&&&&ret
aoddd2: mov&&&r3,#0fh
&&&&&&&&mov&&&r4,#0ffh
&&&&&&&&ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BUFS:&&&MOV&&&C,P&&&&&&&&&&&&&&;串行发送
&&&&&&&&MOV&&&TB8,C
&&&&&&&&MOV&&&SBUF,A
BUF0:&&&JBC&&&TI,BUF1&&&&&&&&& ; TI=1,返回,并清C
&&&&&&&&SJMP&&BUF0
BUF1:&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SET232:&&&&&&&&&&&&&&&&&&&&;[串行口初始化]
&&&&&&&&MOV&&&TMOD,#21H&&& ;定时器1的工作方式为2
&&&&&&&&MOV&&&TH0,#4BH&&&&&;定时器0的工作方式为1
&&&&&&&&MOV&&&TL0,#0FFH
&&&&&&&&SETB&&TR0
&&&&&&&&SETB&&TR1
&&&&&&&&SETB&&ET0
&&&&&&&&MOV&&&SCON,#0D0H&&&;串行口工作方式3
&&&&&&&&MOV&&&PCON,#00H
&&&&&&&&SETB&&ES
&&&&&&&&SETB&&EA
&&&&&&&&MOV&&&TIMES,#00H
&&&&&&&&MOV&&&TIMESE,#00H
&&&&&&&&clr&&&ssiomark
&&&&&&&&mov&&&ssiotime,#00h
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TIMEINT:PUSH&&ACC&&&&&&&&&;定时器0中断
&&&&&&&&PUSH&&PSW
&&&&&&&&MOV&&&TH0,#4BH
&&&&&&&&MOV&&&TL0,#0FFH
&&&&&&&&inc&&&dotime
&&&&&&&&mov&&&a,dotime
&&&&&&&&cjne&&a,#14h,tint00&&&;1eh--1.5s,14h--1s
tint00: jc&&& tint01
&&&&&&&&mov&&&dotime,#13h
&&&&&&&&orl&&&34h,#0fh
&&&&&&&&orl&&&p2,#0fh
tint01: INC&&&TIMES
&&&&&&&&MOV&&&A,TIMES
&&&&&&&&CJNE&&A,#0A0H,TINT0
TINT0:&&JC&&& TINT
&&&&&&&&MOV&&&TIMES,#00H
&&&&&&&&INC&&&TIMESE
&&&&&&&&MOV&&&A,TIMESE
&&&&&&&&CJNE&&A,#04H,TINT1
TINT1:&&JC&&& TINT
&&&&&&&&MOV&&&TIMESE,#00H
TINT:&&&POP&&&PSW
&&&&&&&&POP&&&ACC
&&&&&&&&RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//DISPLAY:mov&&&a,#38h&&&省略了显示部分
&&&&&& ;;;;;;;;;;;;;;;;;;;;;
CHABIAO1: MOV&&&R7,#16
&&&&&&&&& LJMP&&CHABIAO4
CHABIAO2: MOV&&&R7,#04
&&&&&&&&& LJMP&&CHABIAO4
CHABIAO3: MOV&&&R7,#08
chabiao4: CLR&&&A
&&&&&&&&& MOVC&&A,@A+DPTR
&&&&&&&&& LCALL WDATA
&&&&&&&&& INC&&&DPTR
&&&&&&&&& DJNZ&&R7,CHABIAO4
&&&&&&&&& RET
;;;;;;;;;;;;;;;;;;;;;
DISAIASC:MOV&&&R7,#04H
DISAASC: MOV&&&A,@R0
&&&&&&&&&LCALL WDATA
&&&&&&&&&INC&&&R0
&&&&&&&&&DJNZ&&R7,DISAASC
&&&&&&&&&MOV&&&A,#20H
&&&&&&&&&LCALL WDATA
&&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;
ASCASC:&&MOV&&&A,@R0
&&&&&&&&&cjne&&a,#41h,ascasc00
&&&&&&&&&mov&&&r2,#30h
&&&&&&&&&mov&&&r3,#30h
&&&&&&&&&mov&&&r4,#30h
&&&&&&&&&mov&&&r5,#30h
&&&&&&&&&ljmp&&ascasc4
ascasc00:LCALL ASCH
&&&&&&&&&SWAP&&A
&&&&&&&&&MOV&&&R2,A
&&&&&&&&&INC&&&R0
&&&&&&&&&MOV&&&A,@R0
&&&&&&&&&LCALL ASCH
&&&&&&&&&ADD&&&A,R2
&&&&&&&&&MOV&&&R2,A
&&&&&&&&&INC&&&R0
&&&&&&&&&MOV&&&A,@R0
&&&&&&&&&LCALL ASCH
&&&&&&&&&SWAP&&A
&&&&&&&&&MOV&&&R3,A
&&&&&&&&&INC&&&R0
&&&&&&&&&MOV&&&A,@R0
&&&&&&&&&LCALL ASCH
&&&&&&&&&ADD&&&A,R3
&&&&&&&&&MOV&&&R3,A
&&&&&&&&&LCALL BH2
&&&&&&&&&MOV&&&R6,#06H
&&&&&&&&&MOV&&&R7,#40H
&&&&&&&&&LCALL MULD
&&&&&&&&&mov&&&r6,#0fh
&&&&&&&&&mov&&&r7,#0a0h
&&&&&&&&&lcall divd
&&&&&&&&&mov&&&c,ov
&&&&&&&&&jc&&& ascasc0
&&&&&&&&&mov&&&r7,03h
&&&&&&&&&mov&&&r6,02h
&&&&&&&&&ljmp&&ascasc1
ascasc0: mov&&&r7,#00h
&&&&&&&&&mov&&&r6,#00h
ascasc1: MOV&&A,R7
&&&&&&&&&ADD&&A,#90H
&&&&&&&&&MOV&&R7,A
&&&&&&&&&MOV&&A,R6
&&&&&&&&&ADDC A,#01H
&&&&&&&&&MOV&&R6,A
&&&&&&&&&clr&&&c
&&&&&&&&&mov&&&a,#0d0h
&&&&&&&&&subb&&a,r7
&&&&&&&&&mov&&&a,#07h
&&&&&&&&&subb&&a,r6
&&&&&&&&&jc&&& ascasc2
&&&&&&&&&ljmp&&ascasc3
ascasc2: mov&&&r6,#07h
&&&&&&&&&mov&&&r7,#0d0h
ascasc3: LCALL HB2
&&&&&&&&&MOV&&&A,R5
&&&&&&&&&ANL&&&A,#0FH
&&&&&&&&&MOV&&&R3,A
&&&&&&&&&MOV&&&A,R5
&&&&&&&&&ANL&&&A,#0F0H
&&&&&&&&&SWAP&&A
&&&&&&&&&MOV&&&R2,A
&&&&&&&&&MOV&&&A,R4
&&&&&&&&&ANL&&&A,#0FH
&&&&&&&&&MOV&&&R5,A
&&&&&&&&&MOV&&&A,R4
&&&&&&&&&ANL&&&A,#0F0H
&&&&&&&&&SWAP&&A
&&&&&&&&&MOV&&&R4,A
&&&&&&&&&ORL&&&04H,#30H
&&&&&&&&&ORL&&&05H,#30H
&&&&&&&&&ORL&&&02H,#30H
&&&&&&&&&ORL&&&03H,#30H
ascasc4: MOV&&&A,R4
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,R5
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,#2EH
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,R2
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,R3
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,#6DH
&&&&&&&&&LCALL WDATA
&&&&&&&&&MOV&&&A,#41H
&&&&&&&&&LCALL WDATA
&&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
LCDSET: MOV&&&R7,#8
DLY30:&&LCALL DELAY
&&&&&&&&DJNZ&&R7,DLY30
&&&&&&&&SETB&&RS
&&&&&&&&SETB&&RW
&&&&&&&&clr&&&EN
&&&&&&&&mov&&&a,#38h
&&&&&&&&lcall wopt
&&&&&&&&lcall delay2
&&&&&&&&mov&&&a,#38h
&&&&&&&&lcall wopt
&&&&&&&&lcall delay2
&&&&&&&&mov&&&a,#38H
&&&&&&&&lcall wopt
&&&&&&&&lcall delay2
&&&&&&&&mov&&&a,#38H
&&&&&&&&lcall woption
&&&&&&&&lcall delay2
&&&&&&&&mov&&&a,#0CH
&&&&&&&&lcall woption
&&&&&&&&lcall delay2
&&&&&&&&mov&&&a,#01h
&&&&&&&&lcall woption
&&&&&&&&LCALL DELAY2
&&&&&&&&mov&&&a,#06h
&&&&&&&&lcall woption
&&&&&&&&lcall delay2
&&&&&&&&ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;
woption:LCALL RDBUSY
wopt:&&&clr&&RS
&&&&&&&&clr&&RW
&&&&&&&&setb EN
&&&&&&&&mov&&p0,a
&&&&&&&&clr&&EN
&&&&&&&&setb RW
&&&&&&&&setb RS
&&&&&&&&ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;
wdata:&&LCALL RDBUSY
&&&&&&&&setb RS
&&&&&&&&clr&&RW
&&&&&&&&setb EN
&&&&&&&&mov&&p0,a
&&&&&&&&clr&&EN
&&&&&&&&setb RW
&&&&&&&&clr&&RS
&&&&&&&&ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;
rdbusy: PUSH ACC
&&&&&&&&mov&&lcdbusy,#04h
rdbusy0:mov&&p0,#0ffh
&&&&&&&&clr&&RS
&&&&&&&&setb RW
&&&&&&&&setb EN
&&&&&&&&MOV&&A,P0
&&&&&&&&clr&&EN
&&&&&&&&SETB RW
&&&&&&&&setb RS
&&&&&&&&djnz lcdbusy,rdbusy1
&&&&&&&&pop&&acc
&&&&&&&&ret
rdbusy1:jb&&&acc.7,rdbusy0
&&&&&&&&POP&&ACC
&&&&&&&&ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:&&MOV&&R5,#0FFH
DL1:&&& MOV&&R6,#0FFH
&&&&&&&&DJNZ R6,$
&&&&&&&&DJNZ R5,DL1
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY2: MOV&&R6,#08H
&&&&&&&&DJNZ R6,$
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;
CHATAB1:DB&&&41H,64H,64H,72H&&&&&&;Address:
&&&&&&&&DB&&&65H,73H,73H,3AH
CHATAB2:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:300
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,33H,30H
&&&&&&&&DB&&&30H,20H,20H,20H
CHATAB3:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:600
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,36H,30H
&&&&&&&&DB&&&30H,20H,20H,20H
CHATAB4:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:1200
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,31H,32H
&&&&&&&&DB&&&30H,30H,20H,20H
CHATAB5:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:2400
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,32H,34H
&&&&&&&&DB&&&30H,30H,20H,20H
CHATAB6:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:4800
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,34H,38H
&&&&&&&&DB&&&30H,30H,20H,20H
CHATAB7:DB&&&42H,61H,75H,64H&&&&&&;Baud rate:9600
&&&&&&&&DB&&&20H,72H,61H,74H
&&&&&&&&DB&&&65H,3AH,39H,36H
&&&&&&&&DB&&&30H,30H,20H,20H
CHATAB8:DB&&&41H,69H,30H,3AH&&&&&&;Ai0:
CHATAB9:DB&&&41H,69H,31H,3AH&&&&&&;Ai1:
CHATABA:DB&&&41H,69H,32H,3AH&&&&&&;Ai2:
CHATABB:DB&&&41H,69H,33H,3AH&&&&&&;Ai3:
CHATABC:DB&&&41H,6FH,30H,3AH&&&&&&;Ao0:
CHATABD:DB&&&41H,6FH,31H,3AH&&&&&&;Ao1:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;以下为运算子程序:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HB2&&&功能:双字节十六进制整数转换成双字节BCD码整数
;入口条件:待转换的双字节十六进制整数在R6、R7中。
;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
;影响资源:PSW、A、R2~R7&&& 堆栈需求:&&2字节
HB2:&&& CLR&&& A&&&&&&&&&;&&&&&;BCD码初始化
&&& MOV&&& R3,A
&&& MOV&&& R4,A
&&& MOV&&& R5,A
&&& MOV&&& R2,#10H&&&;&&& ;转换双字节十六进制整数
HB3:&&& MOV&&& A,R7&&&;&&& ;从高端移出待转换数的一位到CY中
&&& RLC&&& A
&&& MOV&&& R7,A
&&& MOV&&& A,R6
&&& RLC&&& A
&&& MOV&&& R6,A
&&& MOV&&& A,R5&&&;&&& ;BCD码带进位自身相加,相当于乘2
&&& ADDC&&& A,R5
&&& DA&&& A&&&&&&;&&& ;十进制调整
&&& MOV&&& R5,A
&&& MOV&&& A,R4
&&& ADDC&&& A,R4
&&& DA&&& A
&&& MOV&&& R4,A
&&& MOV&&& A,R3
&&& ADDC&&& A,R3
&&& MOV&&& R3,A;&&& ;双字节十六进制数的万位数不超过6,不用调整
&&& DJNZ&&& R2,HB3;&&& ;处理完16bit
&&&&&&&&RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;HBCD&&功能:单字节十六进制整数转换成单字节BCD码整数
;入口条件:待转换的单字节十六进制整数在累加器A中。
;出口信息:转换后的BCD码整数(十位和个位)仍在累加器A中,百位在R3中。
;影响资源:PSW、A、B、R3&&& 堆栈需求:&&2字节
HBCD:&&& MOV&&& B,#100;&&& ;分离出百位,存放在R3中
&&& DIV&&& AB
&&& MOV&&& R3,A
&&& MOV&&& A,#10;&&& ;余数继续分离十位和个位
&&& XCH&&& A,B
&&& DIV&&& AB
&&& SWAP&&& A
&&& ORL&&& A,B;&&& ;将十位和个位拼装成BCD码
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; HASC&&功能:单字节十六进制数转换成双字节ASCII码
;入口条件:待转换的单字节十六进制数在累加器A中。
;出口信息:高四位的ASCII码在A中,低四位的ASCII码在B中。
;影响资源:PSW、A、B&&& 堆栈需求:&&4字节
HASC:&&& MOV&&& B,A;&&& ;暂存待转换的单字节十六进制数
&&& LCALL&&& HAS1;&&& ;转换低四位
&&& XCH&&& A,B;&&& ;存放低四位的ASCII码
&&& SWAP&&& A;&&& ;准备转换高四位
HAS1:&&& ANL&&& A,#0FH;&&& ;将累加器的低四位转换成ASCII码
&&& ADD&&& A,#90H
&&& DA&&& A
&&& ADDC&&& A,#40H
&&& DA&&& A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;ASCH&&& 功能:ASCII码转换成十六进制数
;入口条件:待转换的ASCII码(30H~39H或41H~46H)在A中。
;出口信息:转换后的十六进制数(00H~0FH)仍在累加器A中。
;影响资源:PSW、A&&& 堆栈需求:&&2字节
ASCH:&&& CLR&&& C
&&& SUBB&&& A,#30H
&&& JNB&&& ACC.4,ASH1
&&& SUBB&&& A,#7
ASH1:&&& RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;BCDH&&& 功能:单字节BCD码整数转换成单字节十六进制整数
;入口条件:待转换的单字节BCD码整数在累加器A中。
;出口信息:转换后的单字节十六进制整数仍在累加器A中。
;影响资源:PSW、A、B、R4&&& 堆栈需求:&&2字节
BCDH:&&& MOV&&& B,#10H;&&& ;分离十位和个位
&&& DIV&&& AB
&&& MOV&&& R4,B;&&& ;暂存个位
&&& MOV&&& B,#10;&&& ;将十位转换成十六进制
&&& MUL&&& AB
&&& ADD&&& A,R4;&&& ;按十六进制加上个位
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;BH2&&&功能:双字节BCD码整数转换成双字节十六进制整数
;入口条件:待转换的双字节BCD码整数在R2、R3中。
;出口信息:转换后的双字节十六进制整数仍在R2、R3中。
;影响资源:PSW、A、B、R2、R3、R4&&& 堆栈需求:&&4字节
BH2:&&& MOV&&& A,R3;&&& ;将低字节转换成十六进制
&&&&&&&&LCALL&&& BCDH
&&& MOV&&& R3,A
&&& MOV&&& A,R2;&&& ;将高字节转换成十六进制
&&& LCALL&&& BCDH
&&& MOV&&& B,#100;&&& ;扩大一百倍
&&& MUL&&& AB
&&& ADD&&& A,R3;&&& ;和低字节按十六进制相加
&&& MOV&&& R3,A
&&& CLR&&& A
&&& ADDC&&& A,B
&&& MOV&&& R2,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;MULD&&& 功能:双字节二进制无符号数乘法
;入口条件:被乘数在R2、R3中,乘数在R6、R7中。
;出口信息:乘积在R2、R3、R4、R5中。
;影响资源:PSW、A、B、R2~R7&&& 堆栈需求:&&2字节
MULD:&&& MOV&&& A,R3;&&& ;计算R3乘R7
&&& MOV&&& B,R7
&&& MOV&&& R4,B;&&& ;暂存部分积
&&& MOV&&& R5,A
&&& MOV&&& A,R3;&&& ;计算R3乘R6
&&& MOV&&& B,R6
&&& MUL&&& AB
&&& ADD&&& A,R4;&&& ;累加部分积
&&& MOV&&& R4,A
&&& CLR&&& A
&&& ADDC&&& A,B
&&& MOV&&& R3,A
&&& MOV&&& A,R2;&&& ;计算R2乘R7
&&& MOV&&& B,R7
&&& MUL&&& AB
&&& ADD&&& A,R4;&&& ;累加部分积
&&& MOV&&& R4,A
&&& MOV&&& A,R3
&&& ADDC&&& A,B
&&& MOV&&& R3,A
&&& CLR&&& A
&&& RLC&&& A
&&& XCH&&& A,R2;&&& ;计算R2乘R6
&&& MOV&&& B,R6
&&& MUL&&& AB
&&& ADD&&& A,R3;&&& ;累加部分积
&&& MOV&&& R3,A
&&& MOV&&& A,R2
&&& ADDC&&& A,B
&&& MOV&&& R2,A
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;DIVD&&& 功能:双字节二进制无符号数除法
;入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
;出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
;影响资源:PSW、A、B、R1~R7&&& 堆栈需求:&&2字节
DIVD:&&& CLR&&& C&&& ;;比较被除数和除数
&&& MOV&&& A,R3
&&& SUBB&&& A,R7
&&& MOV&&& A,R2
&&& SUBB&&& A,R6
&&& JC&&& DVD1
&&& SETB&&& OV&&& ;;溢出
DVD1:&&& MOV&&& B,#10H&&& ;;计算双字节商
DVD2:&&& CLR&&& C&&& ;;部分商和余数同时左移一位
&&& MOV&&& A,R5
&&& RLC&&& A
&&& MOV&&& R5,A
&&& MOV&&& A,R4
&&& RLC&&& A
&&& MOV&&& R4,A
&&& MOV&&& A,R3
&&& RLC&&& A
&&& MOV&&& R3,A
&&& XCH&&& A,R2
&&& RLC&&& A
&&& XCH&&& A,R2
&&& MOV&&& F0,C&&& ;;保存溢出位
&&& CLR&&& C
&&& SUBB&&& A,R7&&& ;;计算(R2R3-R6R7)
&&& MOV&&& R1,A
&&& MOV&&& A,R2
&&& SUBB&&& A,R6
&&& ANL&&& C,/F0&&& ;;结果判断
&&& JC&&& DVD3
&&& MOV&&& R2,A&&& ;;够减,存放新的余数
&&& MOV&&& A,R1
&&& MOV&&& R3,A
&&& INC&&& R5&&& ;;商的低位置一
DVD3:&&& DJNZ&&& B,DVD2&&& ;;计算完十六位商(R4R5)
&&& MOV&&& A,R4&&& ;;将商移到R2R3中
MOV&&& R2,A
&&& MOV&&& A,R5
&&& MOV&&& R3,A
&&& CLR&&& OV&&& ;;设立成功标志
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&&&&&&&&END
DAOUT: MOV DAAH,#0C8H
&&&&&& MOV DAAL,#03H
&&&&&& MOV DABH,#5FH
&&&&&& MOV DABL,#0FFH
&&&&&& MOV A,DABH
&&&&&& CLR C
&&&&&& SETB SCLK
&&&&&& CLR DACS
&&&&&& MOV R6,#02H
DA10:&&MOV R7,#08H
DA11:&&SETB SCLK
&&&&&& RLC A
&&&&&& MOV DAIN,C
&&&&&& CLR SCLK
&&&&&& DJNZ R7,DA11
&&&&&& MOV A,DABL
&&&&&& DJNZ R6,DA10
&&&&&& SETB SCLK
&&&&&& SETB DACS
&&&&&& CLR SCLK
&&&&&& MOV A,DAAH
&&&&&& CLR C
&&&&&& SETB SCLK
&&&&&& CLR DACS
&&&&&& MOV R6 ,#02H
DA20:&&MOV R7,#08H
DA21:&&SETB SCLK
&&&&&& RLC A
&&&&&& MOV DAIN,C
&&&&&& CLR SCLK
&&&&&& DJNZ R7,DA21
&&&&&& MOV A,DAAL
&&&&&& DJNZ R6.DA20
&&&&&& SETB SCLK
&&&&&& SETB DACS
&&&&&& CLR SCLK
&&&&&& RET
SSIO:&&PUSH ACC
&&&&&& PUSH PSW
&&&&&& PUSH 01H
LOOP1: CLR RI
&&&&&& MOV A,SBUF
&&&&&& JNB PSW.0,LOOP10
&&&&&& JNB RB8,BACK
&&&&&& LJMP LOOP11
LOOP10:JB RB8,BACK
LOOP11:MOV SSIOSBUF,A
&&&&&& MOV A,SSIOTIME
&&&&&& CJNE A,#00H,LOOP2
&&&&&& MOV A,SSIOSBUF
&&&&&& CJNE A,#02H,BACK
LOOP2: MOV A,#50H
&&&&&& ADD A,SSIOTIME
&&&&&& MOV R1,A
&&&&&& MOV @R1,SSIOBUF
&&&&&& MOV A,SSIOSBUF
&&&&&& CJNE A,#ODH,LOOP3
&&&&&& SETB SSIOMARK
&&&&&& CLR ES
&&&&&& LJMP BACK1
LOOP3: INC SSIOTIME
&&&&&& MOV A,SSIOTIME
&&&&&& CJNE A,#10H,LOOP4
LOOP4: JC BACK1
BACK:&&MOV SSIOTIME,#00H
BACK1: POP 01H
&&&&&& POP PSW
&&&&&& POP ACC
&&&&&& RETI
1.1硬件设置
(1)物理规范
RS232&&RS485
(2)字符格式
起始位:1位
数据位:8位
奇偶位:偶、奇、无
停止位:1、1.5、2
波特率:300、600、、
1.2消息格式
&消息头&&命令字&&站地址&&数据&&校验&&消息尾&
消息头&&& STX : H02
消息尾&&& DTX : H0D
校验&&& 命令节+站地址+…,取和最低位一个字节,并将其按ASCII转化为2个字符,如0x01转化为0x30,0x31
(1)读数据命令
STX&&& RR&&& ADD&&& CHSUM&&& ETX
RR: 2字节&&& ADD: 2字节&&&&&&&&CHKSUM: 2字节&&&&&&&&共:8字节
STX&&& RR&&& ADD&&& AI1&&& AI2&&& AI3&&& AI4&&& .
.&&& AO1&&& AO2&&& DI1&&& DI2&&& CHKSUM&&& ETX
RR: 2字节&&& ADD: 2字节&&&&&&&&A: 四字节&&& D: 1字节&&& CHKSUM: 2字节&&&&&&&&
共: 34字节
(2)写开关量
STX&&& WD&&& ADD&&& DATA&&& CHKSUM&&& ETX
WD: 2字节&&& ADD: 2字节&&&&&&&&DATA: 二进制 1 字节&&&&&&&&CHKSUM: 2字节
A机选择:&&& 0x01
B机选择:&&& 0x02
关机:&&&&&&&&& 0x04
远程通断:&&& 0x10
省略了采集数据部分(太长)部分以及显示display部分。
搜索更多相关主题的帖子:
等 级:贵宾
威 望:18
帖 子:2296
专家分:6418
汇编的吧》
这种工作要我们帮忙 不会就给专家分就打发了吧
到底是“出来混迟早要还”还是“杀人放火金腰带”?
来 自:火星
等 级:蝙蝠侠
帖 子:356
专家分:889
太长了!! 汇编还没学 不懂
清风拂暮(木)
版权所有,并保留所有权利。
Powered by , Processed in 0.053929 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 java xml 转json 的文章

 

随机推荐