📄 shukongzhiliudianyuan.txt
字号:
ORG 0000H
SJMP 0030h
ORG 0003H
LJMP INT0
ORG 000BH
LJMP TINT0
ORG 0013H
LJMP INT1
ORG 001BH
LJMP TINT1
ORG 0030H
MAIN:
MOV P0,#0
LOOP: JB P3.1,YY ;P3.0、P3.1分别00时进入波形部分,10时进入频率部分
JNB P3.0,BOXING ;11时进入数控电源部分
LJMP PINL
YY: JB P3.0,DIANY
SJMP LOOP
DIANY: MOV IE,#085H
SETB IT0
SETB IT1
MOV R1,P2 ;电源部分
MOV A,R1
MOV R0,A
LOOP1: ACALL IN1
MOV A,R1
CJNE A,#0A0H,LL
LL: JC LOUT
MOV R1,#00H
LOUT:
ACALL OUT1
SJMP LOOP1
IN1: MOV R7,P2
MOV A,R7
SUBB A,R0
JNZ INN
RET
INN: MOV A,R7
MOV R0,A
MOV R1,A
RET
OUT1: MOV A,R1
ANL A,#0FH
MOV R4,A
MOV A,R1
ANL A,#0F0H
RR A
RR A
RR A
RR A
MOV B,#0AH
MUL AB
MOV R2,A
MOV A,B
RL A
RL A
RL A
RL A
MOV B,R2
ORL A,B
ADD A,R4
RL A
MOV R3,A
MOV P1,R1
MOV P0,R3
RET
;-------------------------------------------------------------------------------
BOXING: JNB P3.6,AA
JNB P3.7,SJIAO
LJMP FANGBO
AA: JB P3.7,SINBO ;p3.6、P3.7控制输出波形
SJMP BOXING
SJIAO: MOV DPTR,#TAB2
SJMP ZZ
FANGBO: MOV DPTR,#TAB3
SJMP ZZ
SINBO: MOV DPTR,#TAB1
SJMP ZZ
ZZ: MOV A,P2
MOV P1,A
ANL A,#0F0H
MOV R0,A
RR A
RR A
RR A
RR A
MOV B,#10
MUL AB
MOV 3AH,A
MOV A,R0
ANL A,#0FH
ADD A,3AH
MOV B,#10
MUL AB
MOV 30H,A
MOV 31H,B
PP1: MOV R0,#0
MOV R1,#0
MOV 33H,#0C8H ;计算波形取点后的时间间隔
;MOV R1,#39
MOV A,31H
MOV B,#39
DIV AB
RR A
RR A
RR A
RR A
ANL A,#0FH
MOV R0,A
MOV A,B
MOV B,#6
MUL AB
ADD A,R0
MOV R0,A
MOV R1,B
CLR C
MOV A,30H
MOV B,#39
DIV AB
ADD A,R0
MOV R0,A
MOV A,R1
ADD A,B
MOV B,#39
DIV AB
ADD A,R0
MOV R0,A
MOV B,A
MOV A,33H
DIV AB
SUBB A,#7
MOV B,#3
DIV AB
JNZ MM1
INC A
MM1:
MOV 34H,A
QQ1: MOV R0,#0 ;2
MOV R1,#128 ;2
LL11: ;1
LL22:
MOV R2,34H ; 1
MOV A,R0
DJNZ R2,$ ;1
MOVC A,@A+DPTR
;MOV B,R7
;DIV AB ;2
MOV P0,A
;1
INC R0 ;1
DJNZ R1,LL11 ;2
LJMP QQ1
;--------------------------------------------------------------------------
PINL: MOV IE,#8AH
MOV TMOD,#01010001B ;定时器初始化
MOV DPTR,#TAB1
MOV R7,P2
MOV A,R7
ANL A,#0FH
MOV R7,A
MOV 30H,#0 ;测试输入波的频率!
MOV 31H,#0
MOV 32H,#0
MOV R3,#20
TT0:
MOV TH0,#03CH
MOV TL0,#0B0H
SETB TR0
SETB TR1
NEXT: JB TF0,TINT0
NOP
SJMP NEXT
TINT0:
CLR TR0
CLR TR1
CLR TF0
DJNZ R3,TT0
READ: MOV A,TH1
MOV 30H,TL1
CJNE A,TH1,READ
MOV 31H,TH1 ;读到频率值存入到30H和31H单元中
;测试输入波形的频率,并输出同频率的正弦波
JB P3.7,KD
MOV A,31H
CJNE A,#04H,JJ
JJ: JNC KK
MOV B,#25
MUL AB
MOV 40H,A
MOV A,30H
MOV B,#10
DIV AB
ADD A,40H
MOV 40H,A
SJMP ZBCD
KK: MOV 40H,#00
SJMP ZBCD
KD: MOV A,32H
CJNE A,#1H,HH
HH: JNC DD
MOV A,31H
CJNE A,#27H,GG
GG: JNC FF
MOV B,#25
MUL AB
MOV 45H,B
MOV B,#10
DIV AB
MOV 40H,A
MOV A,B
MOV B,#25
MUL AB
MOV B,#10
DIV AB
ADD A,40H
MOV 40H,A
MOV A,30H
MOV B,#100
DIV AB
ADD A,40H
MOV 40H,A
MOV A,45H
MOV B,#25
MUL AB
ADD A,40H
;MOV B,#10
;DIV AB
MOV 40H,A
SJMP ZBCD
FF:
DD: MOV A,32H
MOV B,#65
MUL AB
MOV 40H,A
MOV A,31H
MOV B,#4
DIV AB
ADD A,40H
MOV 40H,A
ZBCD: MOV A,40H
MOV B,#10
DIV AB
RL A
RL A
RL A
RL A
ORL A,B
MOV P1,A
PP: MOV R0,#0
MOV R1,#0
MOV 33H,#0C8H ;计算波形取点后的时间间隔存入34H单元中
;MOV R1,#39
MOV A,31H
MOV B,#39
DIV AB
RR A
RR A
RR A
RR A
ANL A,#0FH
MOV R0,A
MOV A,B
MOV B,#6
MUL AB
ADD A,R0
MOV R0,A
MOV R1,B
CLR C
MOV A,30H
MOV B,#39
DIV AB
ADD A,R0
MOV R0,A
MOV A,R1
ADD A,B
MOV B,#39
DIV AB
ADD A,R0
MOV R0,A
MOV B,A
MOV A,33H
DIV AB
SUBB A,#7
MOV B,#3
DIV AB
JNZ MM
INC A
MM:
MOV 34H,A
QQ: MOV R0,#0 ;2
MOV R1,#128 ;2
LL1: ;1
LL2:
MOV R2,34H ; 1
MOV A,R0
DJNZ R2,$ ;1
MOVC A,@A+DPTR
MOV B,R7
DIV AB ;2
MOV P0,A
;1
INC R0 ;1
DJNZ R1,LL1 ;2
LJMP QQ
INT0: LCALL DELAY
PUSH PSW
PUSH A
MOV A,R1
CLR C ;中断0控制数控电源+0.1V
SUBB A,#99H
JNC LI2
CLR AC
MOV A,R1
INC A
CLR C
DA A
AJMP LI3
LI2: MOV A,R1
LI3: MOV R1,A
POP A
POP PSW
RETI
INT1: LCALL DELAY ;中断1控制数控电源-0.1V
PUSH PSW
PUSH A
MOV A,R1
SUBB A,#00H
JZ YU3
MOV A,R1
DEC A
MOV R1,A
ANL A,#0FH
SUBB A,#0AH
JC YU3
MOV A,R1
CLR C
SUBB A,#06H
AJMP YU4
YU3: MOV A,R1
YU4: MOV R1,A
POP A
POP PSW
RETI
DELAY: MOV R5,#202 ;延时20MS
DL2: MOV R6,#18H
DL1: NOP
NOP
DJNZ R6,DL1
DJNZ R5,DL2
RET
TINT1: MOV A,32H
INC A
MOV 32H,A ;频率的值存在32H,31H,30H单元内
RETI
TAB1:
DB 64 67 70 73 76 80 83 86 88 91 94 97 100 102 105 107 109
DB 111 113 115 117 119 120 122 123 124 125 126 127 127 127 128 128 128
DB 128 128 127 126 125 124 123 122 120 119 117 115 113 111 109 107 105
DB 102 100 97 94 91 88 86 83 80 76 73 70 67 64 61 58 55
DB 52 48 45 42 40 37 34 31 28 26 23 21 19 17 15 13 11
DB 9 8 6 5 4 3 2 1 1 1 0 0 0 1 1 1 2
DB 3 4 5 6 8 9 11 12 15 17 19 21 23 26 28 31 34 37
DB 40 42 45 48 52 55 58 61 64
TAB2:
DB 0 2 4 6 8 10 12 14 16 18 20 22
DB 24 26 28 30 32 34 36 38 40 42 44 46
DB 48 50 52 54 56 58 60 62 64 66 68 70
DB 72 74 76 78 80 82 84 86 88 90 92 94
DB 96 98 100 102 104 106 108 110 112 114 116 118
DB 120 122 124 126 128 130 128 126 124 122 120 118
DB 116 114 112 110 108 106 104 102 100 98 96 94
DB 92 90 88 86 84 82 80 78 76 74 72 70
DB 68 66 64 62 60 58 56 54 52 50 48 46
DB 44 42 40 38 36 34 32 30 28 26 24 22
DB 20 18 16 14 12 10 8 6 4 2 0
TAB3:
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H 0C6H
DB 0C6H 0C6H 0C6H 0C6H 0C6H 0 0 0 0 0 0 0
DB 0 0 0 0 0 0 0 0 0 0 0 0
DB 0 0 0 0 0 0 0 0 0 0 0 0
DB 0 0 0 0 0 0 0 0 0 0 0 0
DB 0 0 0 0 0 0 0 0 0 0 0 0
DB 0 0 0 0 0 0 0 0 0 0 0 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -