?? 簡易信號測量儀(程序).txt
字號:
MOV R1,#DT_B7 ;轉換后存放的第一個顯存地址
DIS_TFT2:LCALL CHUFA
MOV @R1,JS_C1
DEC R1
DJNZ R2,DIS_TFT2
MOV DT_B8,#26 ;u
MOV DT_B9,#17 ;S
RET
;==============================
DIS_WD: MOV JS_A4,#00H ;要轉換的數
MOV JS_A3,W_D3
MOV JS_A2,W_D2
MOV JS_A1,W_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#10
MOV R2,#6 ;要轉換出來的位數
MOV R1,#DT_C6 ;轉換后存放的第一個顯存地址
DIS_WD1:LCALL CHUFA
MOV @R1,JS_C1
DEC R1
DJNZ R2,DIS_WD1
MOV DT_C7,#26 ;u
MOV DT_C8,#17 ;S
MOV JS_A4,#0 ;要轉換的數
MOV JS_A3,#0
MOV JS_A2,D_D2
MOV JS_A1,D_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#10
MOV DT_D8,#23
LCALL CHUFA
MOV DT_D7,JS_C1
MOV DT_D6,#10
LCALL CHUFA
MOV DT_D5,JS_C1
LCALL CHUFA
MOV DT_D4,JS_C1
RET
;===========================
DIS_VPP:MOV JS_A4,#00H ;要轉換的數
MOV JS_A3,#00H
MOV JS_A2,VPP_D2
MOV JS_A1,VPP_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#10
MOV R2,#3 ;要轉換出來的位數
MOV R1,#DT_D5 ;轉換后存放的第一個顯存地址
DIS_VPP1:LCALL CHUFA
MOV @R1,JS_C1
DEC R1
DJNZ R2,DIS_VPP1
MOV DT_D6,#0
MOV DT_D7,#24 ;m
MOV DT_D8,#19 ;V
RET
;==============================
DIS_X: MOV JS_A4,#00H ;要轉換的數
MOV JS_A3,X_D3
MOV JS_A2,X_D2
MOV JS_A1,X_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#10
MOV R2,#3 ;要轉換出來的位數
MOV R1,#DT_C7 ;轉換后存放的第一個顯存地址
DIS_X1: LCALL CHUFA
MOV @R1,JS_C1
DEC R1
DJNZ R2,DIS_X1
MOV DT_C8,#22 ;.
RET
;===========================
DIS_JX: SETB A34
JB A34,DIS_JX1
MOV DT_C4,#27 ;+
RET
DIS_JX1:MOV DT_C4,#28 ;-
RET
;==========================
T_DIV4: MOV JS_A4,#00H ;計數的值
MOV JS_A3,T_D3
MOV JS_A2,T_D2
MOV JS_A1,T_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#4
LCALL CHENFA
MOV T_D3,JS_A3
MOV T_D2,JS_A2
MOV T_D1,JS_A1
RET
;=============================
W_DIV4: MOV JS_A4,#00H ;計數的值
MOV JS_A3,W_D3
MOV JS_A2,W_D2
MOV JS_A1,W_D1
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#4
LCALL CHENFA
MOV W_D3,JS_A3
MOV W_D2,JS_A2
MOV W_D1,JS_A1
RET
;=============================
JS_DIV4:MOV JS_A4,#0 ;計數的值
MOV JS_A3,R0
MOV JS_A2,TH0
MOV JS_A1,TL0
MOV JS_B4,#0 ;除以10
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#4
LCALL CHENFA
MOV R0,JS_A3
MOV TH0,JS_A2
MOV TL0,JS_A1
RET
;============================
VPP_DIV2:MOV JS_A4,#0 ;計數的值
MOV JS_A3,#0
MOV JS_A2,VPP_D2
MOV JS_A1,VPP_D1
MOV JS_B4,#0 ;乘以2
MOV JS_B3,#0
MOV JS_B2,#0
MOV JS_B1,#2
LCALL CHENFA
MOV VPP_D2,JS_A2
MOV VPP_D1,JS_A1
RET
;============================
OUT_1S: SETB A81
SETB A80
CLR CS_
MOV DD,#00110110B
CLR WR_
SETB WR_
MOV DD,#01110110B
CLR WR_
SETB WR_
CLR A81
CLR A80
MOV DD,#0D0H
CLR WR_
SETB WR_
MOV DD,#007H
CLR WR_
SETB WR_
CLR A81
SETB A80
MOV DD,#0D0H
CLR WR_
SETB WR_
MOV DD,#007H
CLR WR_
SETB WR_
SETB CS_
RET
;========================
OUT_4US:SETB A81
SETB A80
CLR CS_
MOV DD,#00110110B
CLR WR_
SETB WR_
CLR A81
CLR A80
MOV DD,#8
CLR WR_
SETB WR_
MOV DD,#0
CLR WR_
SETB WR_
SETB CS_
RET
;======================== ;指示波形
ZS_BX: JB ZXB,ZS_BX1
JB FB,ZS_BX2
SETB ZXB_D
SETB FB_D
RET
ZS_BX1: CLR ZXB_D
SETB FB_D
RET
ZS_BX2:CLR FB_D
SETB ZXB_D
RET
;======================
XIANSHI:MOV A,#25
MOV R1,#DT_A1
MOV R2,#5
XS2: CJNE @R1,#0,XS1
MOV @R1,A
INC R1
DJNZ R2,XS2
XS1: MOV R1,#DT_B1
MOV R2,#7
XS3: CJNE @R1,#0,XS4
MOV @R1,A
INC R1
DJNZ R2,XS3
XS4: MOV R1,#DT_C1
MOV R2,#6
XS5: CJNE @R1,#0,XS6
MOV @R1,A
INC R1
DJNZ R2,XS5
XS6: MOV R1,#DT_D1
MOV R2,#6
XS7: CJNE @R1,#0,XS8
MOV @R1,A
INC R1
DJNZ R2,XS7
XS8:
MOV DPTR,#TAB
MOV P1,#01H ;清除屏幕
ACALL ENABLE
MOV P1,#38H ;8位點陣
ACALL ENABLE
MOV P1,#0FH ;開顯示
ACALL ENABLE
MOV P1,#06H ;移動光標
ACALL ENABLE
MOV R2,#16
MOV PX,#80H ;顯示在一行一列
LCALL ENABLE
MOV R0,#DT_A1
LOOP1: MOV A,@R0
MOVC A,@A+DPTR
MOV PX,A
LCALL INTO
INC R0
DJNZ R2,LOOP1
MOV R2,#16
MOV PX,#0C0H
LCALL ENABLE
LOOP2: MOV A,@R0
MOVC A,@A+DPTR
MOV PX,A
LCALL INTO
INC R0
DJNZ R2,LOOP2
MOV A,#0
MOV R1,#DT_A1
MOV R2,#32
LOOP3: MOV @R1,A
INC R1
DJNZ R2,LOOP3
RET
ENABLE: CLR RS ;寫入控制命令的子程序
CLR E
LCALL DELAY
SETB E
RET
INTO:
SETB RS ;RS=1
CLR E ;E=0
LCALL DELAY
SETB E ;E=1
RET
DELAY:
MOV R3,#10
DD1: MOV R4,#90
DD2: DJNZ R4,DD2
DJNZ R3,DD1
RET
TAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,2EH,46H ;11
; 0 1 2 3 4 5 6 7 8 9 . F
DB 54H,57H,48H,2FH,4CH,53H,43H,56H,4BH,7AH,0DFH,25H;23
; T W H / L S C V K z 0 %
DB 6DH,20H,0E4H,2BH,2DH
; m 空白 u + -
;======================
DELAY1: MOV R7,#255
DE1: MOV R6,#255
DE2: DJNZ R6,DE2
DJNZ R7,DE1
RET
;=======================
DELAY2: MOV R7,#4
DJNZ R7,$
RET
;=========================
INTT0: INC R0
RETI
;==============================定時0.6S
INTT1: PUSH PSW
PUSH ACC
CLR EA
CLR ET1
CLR TR1
DJNZ DINSI,INTT11
MOV DINSI,#22 ;定時時間=22*50MS=1.1S
SETB OVER
JMP INT1OUT
INTT11: SETB TR1
SETB ET1
SETB EA
INT1OUT:MOV TH1,#03CH
MOV TL1,#0B0H
POP ACC
POP PSW
RETI
;=========================
; --------------------------除法程-序-------------
; JS_A4 JS_A3 JS_A2 JS_A1 / JS_B4 JS_B3 JS_B2 ZS1 = JS_A4 JS_A3 JS_A2 JS_A1 -- JS_C4 JS_C3 JS_C2 JS_C1
;======================================================================================================
CHUFA: MOV JS_C1,#0
MOV JS_C2,#0
MOV JS_C3,#0
MOV JS_C4,#0
MOV R0,#32
CLR C
CHUFA1: LCALL YIWEI1
LCALL JIANYI
JNC YUSHU
CLR C
CHUFA2: DJNZ R0,CHUFA1
MOV A,JS_A1
RLC A
MOV JS_A1,A
MOV A,JS_A2
RLC A
MOV JS_A2,A
MOV A,JS_A3
RLC A
MOV JS_A3,A
MOV A,JS_A4
RLC A
MOV JS_A4,A
MOV A,JS_A4 ;商為0則置位溢出位
JNZ CHUFA3
MOV A,JS_A3
JNZ CHUFA3
MOV A,JS_A2
JNZ CHUFA3
MOV A,JS_A1
JNZ CHUFA3
SETB C
RET
CHUFA3: CLR C
RET
;------------------------
YUSHU: MOV JS_C1,JS_C5
MOV JS_C2,JS_C6
MOV JS_C3,JS_C7
MOV JS_C4,JS_C8
SETB C
AJMP CHUFA2
;--------------------
YIWEI1: MOV A,JS_A1
RLC A
MOV JS_A1,A
MOV A,JS_A2
RLC A
MOV JS_A2,A
MOV A,JS_A3
RLC A
MOV JS_A3,A
MOV A,JS_A4
RLC A
MOV JS_A4,A
MOV A,JS_C1
RLC A
MOV JS_C1,A
MOV A,JS_C2
RLC A
MOV JS_C2,A
MOV A,JS_C3
RLC A
MOV JS_C3,A
MOV A,JS_C4
RLC A
MOV JS_C4,A
RET
;----------
JIANYI: CLR C
MOV A,JS_C1
SUBB A,JS_B1
MOV JS_C5,A
MOV A,JS_C2
SUBB A,JS_B2
MOV JS_C6,A
MOV A,JS_C3
SUBB A,JS_B3
MOV JS_C7,A
MOV A,JS_C4
SUBB A,JS_B4
MOV JS_C8,A
RET
;==========
; ---------------乘法程序-------------
; JS_A4 JS_A3 JS_A2 JS_A1 * JS_B4 JS_B3 JS_B2 JS_B1 = JS_A8 JS_A7 JS_A6 JS_A5 JS_A4 JS_A3 JS_A2 JS_A1
;======================================================================================================
CHENFA: MOV JS_C1,JS_A1
MOV JS_C2,JS_A2
MOV JS_C3,JS_A3
MOV JS_C4,JS_A4
MOV JS_A1,#0
MOV JS_A2,#0
MOV JS_A3,#0
MOV JS_A4,#0
MOV R0,#32
CHENFA2:LCALL CHEN2
LCALL YIWEI2
JNC CHENFA1
LCALL JIAYI
CHENFA1:DJNZ R0,CHENFA2
MOV A,JS_A5
JNZ CHENFA3
MOV A,JS_A6
JNZ CHENFA3
MOV A,JS_A7
JNZ CHENFA3
MOV A,JS_A8
JNZ CHENFA3
CLR C
RET
CHENFA3:SETB C
RET
;----------------
YIWEI2: CLR C
MOV A,JS_B1
RLC A
MOV JS_B1,A
MOV A,JS_B2
RLC A
MOV JS_B2,A
MOV A,JS_B3
RLC A
MOV JS_B3,A
MOV A,JS_B4
RLC A
MOV JS_B4,A
RET
;----------------
CHEN2: CLR C
MOV A,JS_A1
RLC A
MOV JS_A1,A
MOV A,JS_A2
RLC A
MOV JS_A2,A
MOV A,JS_A3
RLC A
MOV JS_A3,A
MOV A,JS_A4
RLC A
MOV JS_A4,A
MOV A,JS_A5
RLC A
MOV JS_A5,A
MOV A,JS_A6
RLC A
MOV JS_A6,A
MOV A,JS_A7
RLC A
MOV JS_A7,A
MOV A,JS_A8
RLC A
MOV JS_A8,A
RET
;----------------
JIAYI: CLR C
MOV A,JS_A1
ADDC A,JS_C1
MOV JS_A1,A
MOV A,JS_A2
ADDC A,JS_C2
MOV JS_A2,A
MOV A,JS_A3
ADDC A,JS_C3
MOV JS_A3,A
MOV A,JS_A4
ADDC A,JS_C4
MOV JS_A4,A
MOV A,JS_A5
ADDC A,#0
MOV JS_A5,A
MOV A,JS_A6
ADDC A,#0
MOV JS_A6,A
MOV A,JS_A7
ADDC A,#0
MOV JS_A7,A
MOV A,JS_A8
ADDC A,#0
MOV JS_A8,A
RET
;================================
; 減法程序
; JS_A4 JS_A3 JS_A2 JS_A1 - JS_B4 JS_B3 JS_B2 JS_B1 = JS_A4 JS_A3 JS_A2 JS_A1
;================================================================
JIANFA: CLR C
MOV A,JS_A1
SUBB A,JS_B1
MOV JS_A1,A
MOV A,JS_A2
SUBB A,JS_B2
MOV JS_A2,A
MOV A,JS_A3
SUBB A,JS_B3
MOV JS_A3,A
MOV A,JS_A4
SUBB A,JS_B4
MOV JS_A4,A
RET
;==========
END
$SET (_AAAA_)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -