📄 testdj.asm
字号:
;P1.0为控制制电机转速,接电机输入端DJ,P3.4为转速测量端接DJ_OUT
;50H 设 转速,若设2000转/分,则输入20H
;内程序内数据下运行
ORG 0000H
AJMP CONT
ORG 001BH
AJMP T1_INT
ORG 0030H
CONT: MOV SP,#53H
MOV TMOD,#15H
MOV TH0,#00H
MOV TL0,#00H
MOV TH1,#0FFH ;0.5MS
MOV TL1,#06H
MOV 30H,#0H
SETB TR0
SETB TR1
SETB ET1
SETB EA
MOV 79H,#00H
MOV 7AH,#00H
MOV 7BH,#00H
MOV 7CH,#00H
MOV 7DH,#00H
MOV 7EH,#00H
CONT1:
LCALL DISP
SJMP CONT1
;****************************************
CONT2: CLR A ;二进制转十进制
MOV R4,A
MOV R5,A
MOV R6,A
MOV R7,#10H
CONT3: CLR C
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV A,R6
ADDC A,R6
DA A
MOV R6,A
MOV A,R5
ADDC A,R5
DA A
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
DJNZ R7,CONT3
RET
PWOR: MOV R1,A ;送显示缓冲
LCALL PWOR1
MOV A,R1
SWAP A
PWOR1: ANL A,#0FH
MOV @R0,A
INC R0
RET
;*****************************************************
T1_INT: PUSH ACC
PUSH PSW
MOV TH1,#0FFH
MOV TL1,#06H
;CLR P1.0
;CPL P1.0
INC 30H
INC 31H
MOV A,31H
CJNE A,40h,Q1
CLR P1.0
Q1: CJNE A,41h,Q2
SETB P1.0
MOV 31H,#00H
Q2: MOV A,30H
CJNE A,#0C8H,QUIT ;200
MOV 30H,#0H
INC 32H
MOV A,32H
CJNE A,#10,QUIT ;10
RDT0: CLR TR0 ; 读计数器值
MOV A,TH0
MOV R3,TL0
CJNE A,TH0,RDT0
MOV R2,A
CLR C
LCALL X5
CPL P1.1
LCALL CONT2
MOV R0,#79H
MOV A,R6 ;
LCALL PWOR
MOV A,R5 ;为实际转速中间二位
mov 51h,a
CJNE A,50H,Q3
AJMP Q5
;SETB C
Q3: JC Q4 ;<=50H (50HX100)为设置转速
DEC 40H
AJMP Q5
Q4: INC 40H
Q5: LCALL PWOR
MOV A,R4 ;转速的低二位
LCALL PWOR
MOV TH0,#0H
MOV TL0,#0H
MOV 32H,#0H
SETB TR0
QUIT: POP PSW
POP ACC
RETI
;*********************************
X5: CLR C ;将R2,R3中的计数值X5
MOV A,R3
RLC A
MOV R5,A
MOV A,R2
RLC A
MOV R4,A
CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R5
ADD A,R3
MOV R3,A
MOV A,R4
ADDC A,R2
MOV R2,A
RET
;*****************************************
;*****************************************
DISP: SETB 0D4H
MOV R1,#7EH
MOV R2,#20H
MOV R3,#00H
DISP1: MOV DPTR,#0FF21H
MOV A,R2
MOVX @DPTR,A
MOV DPTR,#CDATA
MOV A,@R1
MOVC A,@A+DPTR
MOV DPTR,#0FF22H
MOVX @DPTR,A
DISP2: DJNZ R3,DISP2
DEC R1
CLR C
MOV A,R2
RRC A
MOV R2,A
JNZ DISP1
MOV A,#0FFH
MOV DPTR,#0FF22H
MOVX @DPTR,A
CLR 0D4H
RET
CDATA: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -