📄 shuzi.asm
字号:
ORG 0000H
AJMP MAIN
ORG 0013H
AJMP DUSHU
ORG 0030H
MAIN:
A8279_1 EQU 0FF82H
A8279_2 EQU 0FF80H
MOV DPTR,#A8279_1
MOV A,#0D1H
MOVX @DPTR,A
WAIT:MOVX A,@DPTR
JB ACC.7,WAIT
MOV A,#00H
MOVX @DPTR,A
MOV A,#2CH
MOVX @DPTR,A
CLR 09H
CLR 01H
CLR 02H
CLR 03H
CLR 04H
CLR 05H
START:MOV DPTR,#A8279_1
MOVX A,@DPTR
ANL A,#07H
JZ RETUN
LCALL KEY
JBC 09H,RETUN
JBC 01H,DIANYA
JBC 02H,DIANLIOU
JBC 03H,SHGY
JBC 04H,YOUGY
JBC 05H,GYYSH
RETUN:AJMP START
DIANYA:LJMP DIANYA1
DIANLIOU:LJMP DIANL1
SHGY:LJMP SHGY1
YOUGY:LJMP YOUGY1
GYYSH:LJMP GYYSH1
DIANYA1:LCALL DIANYA2
MOV R6,50H
MOV R7,51H
LCALL HB2 ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
MOV 50H,R3
MOV 51H,R4
MOV 52H,R5
MOV 53H,#58H
LCALL TRANS
MOV 53H,#58H
LCALL LED_1
MOV 54H,#3EH
MOV 55H,#40H
MOV 56H,#40H
MOV 57H,#40H
ORL 59H,#80H
LCALL LED
LCALL SEACH
JBC 09H,RETUN20
JBC 01H,RETUN21
JBC 02H,RETUN22
JBC 03H,RETUN23
JBC 04H,RETUN24
JBC 05H,RETUN25
AJMP DIANYA1
RETUN20:LJMP MAIN
RETUN21:LJMP DIANYA1
RETUN22:LJMP DIANL1
RETUN23:LJMP SHGY1
RETUN24:LJMP YOUGY1
RETUN25:LJMP GYYSH1
DIANYA2:CLR P1.0
MOV R0,#30H
LCALL ADC0809
LCALL PINJUN
MOV 50H,R4
MOV 51H,R5
MOV R6,50H
MOV R7,51H
MOV R2,#4CH
MOV R3,#4BH
LCALL MULD ; 乘积在R2、R3、R4、R5中。
MOV R6,#03H
MOV R7,#0E8H
LCALL DIVD ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
MOV 50H,R2
MOV 51H,R3
RET
DIANL1:LCALL DIANL2
MOV R6,50H
MOV R7,51H
LCALL HB2 ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
MOV 50H,R3
MOV 51H,R4
MOV 52H,R5
MOV 53H,#59H
LCALL TRANS
MOV 53H,#59H
LCALL LED_1
MOV 54H,#39H
MOV 55H,#40H
MOV 56H,#40H
MOV 57H,#40H
MOV 58H,#40H
ORL 5AH,#80H
LCALL LED
LCALL SEACH
JBC 09H,RETUN30
JBC 01H,RETUN31
JBC 02H,RETUN32
JBC 03H,RETUN33
JBC 04H,RETUN34
JBC 05H,RETUN35
AJMP DIANL1
RETUN30:LJMP MAIN
RETUN31:LJMP DIANYA1
RETUN32:LJMP DIANL1
RETUN33:LJMP SHGY1
RETUN34:LJMP YOUGY1
RETUN35:LJMP GYYSH1
DIANL2:SETB P1.0
MOV R0,#30H
LCALL ADC0809
LCALL PINJUN
MOV 50H,R4
MOV 51H,R5
MOV R6,50H
MOV R7,51H
MOV R2,#4CH
MOV R3,#4BH
LCALL MULD ; 乘积在R2、R3、R4、R5中。
MOV R6,#27H
MOV R7,#10H
LCALL DIVD ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
MOV 50H,R2
MOV 51H,R3
RET
SHGY1:LCALL DIANYA2
MOV 66H,50H
MOV 67H,51H
LCALL DIANL2
MOV R2,50H
MOV R3,51H
MOV R6,66H
MOV R7,67H
LCALL MULD ;出口信息:乘积在R2、R3、R4、R5中。
MOV R7,#100
MOV R6,#00H
LCALL DIVD ;:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
MOV 50H,R2
MOV 51H,R3
MOV R6,50H
MOV R7,51H
LCALL HB2
MOV 50H,R3
MOV 51H,R4
MOV 52H,R5
MOV 53,#57H
LCALL TRANS
MOV 53H,#57H
LCALL LED_1
MOV 56H,#40H
MOV 55H,#40H
MOV 54H,#73H
LCALL LED
LCALL SEACH
JBC 09H,RETUN70
JBC 01H,RETUN71
JBC 02H,RETUN72
JBC 03H,RETUN73
JBC 04H,RETUN74
JBC 05H,RETUN75
AJMP SHGY1
RETUN70:LJMP MAIN
RETUN71:LJMP DIANYA1
RETUN72:LJMP DIANL1
RETUN73:LJMP SHGY1
RETUN74:LJMP YOUGY1
RETUN75:LJMP GYYSH1
YOUGY1:LCALL DIANYA2
MOV 66H,50H
MOV 67H,51H
LCALL DIANL2
MOV 68H,50H
MOV 69H,51H
LCALL GYYSH2
LCALL BH2
MOV R6,68H
MOV R7,69H
LCALL MULD ;出口信息:乘积在R2、R3、R4、R5中。
MOV R6,#00H
MOV R7,#100
LCALL DIVD ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
MOV R6,66H
MOV R7,67H
LCALL MULD ;乘积在R2、R3、R4、R5中。
MOV R6,#27H
MOV R7,#10H
LCALL DIVD ; OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
MOV 50H,R2
MOV 51H,R3
MOV R6,50H
MOV R7,51H
LCALL HB2 ;;出口信息:转换后的三字节BCD码整数在R3、R4、R5中。
MOV 50H,R3
MOV 51H,R4
MOV 52H,R5
MOV 53H,#57H
LCALL TRANS
MOV 53H,#57H
LCALL LED_1
MOV 54H,#6EH
MOV 55H,#40H
MOV 56H,#40H
LCALL LED
LCALL SEACH
JBC 09H,RETUN90
JBC 01H,RETUN91
JBC 02H,RETUN92
JBC 03H,RETUN93
JBC 04H,RETUN94
JBC 05H,RETUN95
AJMP YOUGY1
RETUN90:LJMP MAIN
RETUN91:LJMP DIANYA1
RETUN92:LJMP DIANL1
RETUN93:LJMP SHGY1
RETUN94:LJMP YOUGY1
RETUN95:LJMP GYYSH1
GYYSH1: LCALL GYYSH2
MOV 50H,#00H
MOV 51H,R2
MOV 52H,R3
MOV 53H,#57H
LCALL TRANS
MOV 53H,#57H
LCALL LED_1
MOV 54H,#6EH
MOV 55H,#73H
MOV 56H,#40H
MOV 5BH,#0BFH
LCALL LED
LCALL SEACH
JBC 09H,RETUN80
JBC 01H,RETUN81
JBC 02H,RETUN82
JBC 03H,RETUN83
JBC 04H,RETUN84
JBC 05H,RETUN85
AJMP GYYSH1
RETUN80:LJMP MAIN
RETUN81:LJMP DIANYA1
RETUN82:LJMP DIANL1
RETUN83:LJMP SHGY1
RETUN84:LJMP YOUGY1
RETUN85:LJMP GYYSH1
GYYSH2: ;LCALL ZHQI
;MOV 51H,TL0
; MOV 50H,TH0
LCALL XWCH
MOV R2,TH1
MOV R3,TL1
MOV R6,#00H ;计数值-查表偏移量计算
MOV R7,#0AH
ACALL MULD ;出口信息:乘积在R2、R3、R4、R5中。
MOV R6,#00H
MOV R7,#7DH
ACALL DIVD
MOV 60H,R3
MOV DPTR,#TAB1 ;查表得余弦值
MOV A,60H
MOVC A,@A+DPTR
MOV R3,A
MOV DPTR,#TAB2
MOV A,60H
MOVC A,@A+DPTR
MOV R2,A
MOV 60H,R2
MOV 61H,R3 ; ACALL BH2 ;余弦值BCD转为HEX
RET
ZHQI: ;0.1hz_1khz测量,测周期 ;16进制
MOV TMOD,#01H
MOV TL0,#00H
MOV TH0,#00H
SETB P3.5
GDP1: MOV C,P3.5
JC GDP1
DDP1: MOV C,P3.5
JNC DDP1
SETB TR0
GDP2: MOV C,P3.5
JC GDP2
; DDP2: MOV C,P3.5
; JNC DDP2
CLR TR0
RET
XWCH: ;0.1hz_1khz测量,测周期 ;16进制
MOV TMOD,#10H
MOV TL1,#00H
MOV TH1,#00H
SETB P3.5
GDP6: MOV C,P3.5
JC GDP6
DDP6: MOV C,P3.5
JNC DDP6
SETB TR1
GDP7: MOV C,P3.5
JC GDP7
; DDP2: MOV C,P3.5
; JNC DDP2
CLR TR1
RET
KEY:MOV DPTR ,#A8279_1
MOV A,#40H
MOVX @DPTR,A
MOV DPTR,#A8279_2
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#09H,KEY1
SETB 09H
LJMP RETUN1
KEY1:CJNE A,#01H,KEY2
SETB 01H
LJMP RETUN1
KEY2:CJNE A,#02H,KEY3
SETB 02H
AJMP RETUN1
KEY3:CJNE A,#03H,KEY4
SETB 03H
LJMP RETUN1
KEY4:CJNE A,#04H,KEY5
SETB 04H
LJMP RETUN1
KEY5:CJNE A,#05H,RETUN1
SETB 05H
RETUN1:RET
ADC0809:
CLR 06H
MOV R7,#18H
SETB EA
SETB IT1
SETB EX1
MOV DPTR,#8200H ;;DAC0809首址
MOVX @DPTR,A ;;启动AD转换
HERE:JBC 06H,RETUN56
SJMP HERE
RETUN56:CLR EA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -