?? rs485.asm
字號:
PUSH PSW
INC XRLOW
MOV A,XRLOW
CJNE A,#0,EX0ISR_EX
INC XRHIGH
EX0ISR_EX:
POP PSW
POP ACC
RETI
;===================================================
;==============EX1 INTERUPT ROUTINE=================
EX1ISR:
INC RPM
RETI
;==================================================
;===============TIMER 0 INTERUPT ROUTINE===========
T0ISR:
CLR TR0
MOV TH0,#HIGH(-50000)
MOV TL0,#LOW(-50000)
SETB TR0
DJNZ TC0,T0ISREX
; CPL BUZZ
MOV TC0,#20
SETB TC0_F
; SETB TC1_F
MOV XRVHIGH,XRHIGH
MOV XRVLOW,XRLOW
MOV XRHIGH,#0
MOV XRLOW,#0
T0ISREX:
RETI
;==================================================
;====================================================
INPMSG1:
MOV DATAPRT,#10000000B
CALL CLOCK
MOV DPTR,#MSG1
CALL DISP
CALL SDLY
RET
;====================================================
INPMSG2:
MOV DATAPRT,#10000000B
CALL CLOCK
MOV DPTR,#MSG2
CALL DISP
CALL SDLY
RET
;================PRINT ON LINE 2=================
OUTMSG1:
MOV DATAPRT,#11001001B
CALL CLOCK
MOV A,TVAL
MOV B,#100
DIV AB
MOV TBCD1,A
MOV A,B
MOV B,#10
DIV AB
MOV TBCD2,A
MOV TBCD3,B
MOV A,TBCD1
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11001010B
CALL CLOCK
MOV A,TBCD2
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11001011B
CALL CLOCK
MOV A,TBCD3
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
RET
;================PRINT ON LINE 2=================
OUTMSG2:
MOV DATAPRT,#11001001B
CALL CLOCK
MOV A,RBCD3
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11001010B
CALL CLOCK
MOV A,RBCD2
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11001011B
CALL CLOCK
MOV A,RBCD1
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11001100B
CALL CLOCK
MOV A,RBCD0
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
RET
;===================PRINT LINE 1====================
LINE1:
MOV DATAPRT,#10000000B
CALL CLOCK
MOV DPTR,#MSG3
CALL DISP
CALL SDLY
;===================PRINT LINE 3====================
MOV DATAPRT,#10000101B
CALL CLOCK
MOV A,TBCD1
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#10000110B
CALL CLOCK
MOV A,TBCD2
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#10000111B
CALL CLOCK
MOV A,TBCD3
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
;===================PRINT LINE 4====================
MOV DATAPRT,#10010000B
CALL CLOCK
MOV A,RBCD3
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#10010001B
CALL CLOCK
MOV A,RBCD2
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#10010010B
CALL CLOCK
MOV A,RBCD1
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#10010011B
CALL CLOCK
MOV A,RBCD0
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
RET
;===================PRINT LINE 2====================
LINE2:
MOV DATAPRT,#11000000B
CALL CLOCK
MOV DPTR,#MSG4
CALL DISP
CALL SDLY
RET
;===================PRINT LINE 3====================
LINE3:
MOV DATAPRT,#11000101B
CALL CLOCK
MOV A,BCD3
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11000110B
CALL CLOCK
MOV A,BCD2
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11000111B
CALL CLOCK
MOV A,BCD1
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
RET
;===================PRINT LINE 4====================
LINE4:
MOV DATAPRT,#11010000B
CALL CLOCK
MOV A,BCD3
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11010001B
CALL CLOCK
MOV A,BCD2
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11010010B
CALL CLOCK
MOV A,BCD1
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
MOV DATAPRT,#11010011B
CALL CLOCK
MOV A,BCD0
ANL A,#0FH
ORL A,#30H
SETB RS
MOV DATAPRT,A
CALL CLOCK
CALL SDLY
CLR RS
CALL SDLY
RET
;============16 BIT BCD CONVERSION ROUTINE=========
BCD_R:
MOV BCD0,#0
MOV BCD1,#0
MOV BCD2,#0
MOV BCD3,#0
MOV BCD4,#0
MOV A,RPMLOW
MOV B,#10
DIV AB
MOV BCD0,B
MOV BCD1,A
MOV A,RPMHIGH
JZ SPRING
MOV B,#10
DIV AB
MOV BCD2,B
MOV BCD3,A
MOV R0,#BCD2
ACALL TRANSF
INC R0
ACALL TRANSF
SPRING:
MOV R0,#BCD0
JMP DECADJ
TRANSF:
MOV A,@R0
MOV B,#6
MUL AB
DEC R0
DEC R0
ADD A,@R0
MOV @R0,A
INC R0
INC R0
MOV A,@R0
MOV B,#5
MUL AB
DEC R0
ADD A,@R0
MOV @R0,A
INC R0
MOV A,@R0
RL A
MOV @R0,A
RET
DECADJ:
MOV A,@R0
DECLOP:
MOV B,#10
DIV AB
MOV @R0,B
INC R0
ADD A,@R0
MOV @R0,A
CJNE R0,#BCD4,DECLOP
RET
;===================DISPLAY LINE===================
DISP:
SETB RS
MOV R3,#00H
BAK:
MOV A,R3
MOVC A,@A+DPTR
MOV DATAPRT,A
CALL CLOCK
INC R3
CJNE R3,#20,BAK
CLR RS
RET
;===============150 uS SMALL DELAY===============
SDLY:
MOV R6,#01H
MOV R7,#0B0H
DJNZ R7,$
DJNZ R6,$-4
RET
;=============DELAY & EN,DISABLE===============
CLOCK:
CALL SDLY
CLR EN
CALL SDLY
SETB EN
RET
;================CLEAR DISPLAY===================
CDIS:
MOV DATAPRT,#01H
CALL CLOCK
MOV DATAPRT,#02H
CALL CLOCK
RET
;==================================================
MSG1: DB ' PLEASE ENTER TEMP. '
MSG2: DB 'PLZ ENTER RPM MOTOR.'
MSG3: DB 'S_TP= C,S_RPM= '
MSG4: DB 'C_TP= C,C_RPM= '
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -