📄 直流电机.asm
字号:
;******************************************
;直流电机调速控制程序
;直流电机驱动电路正转输入接入P0.0脚,反转输入接入P0.1脚
;按键 P2.7为停止键 P2.6、P2.5为正转快慢速 P2.4、P2.3、P2.2为反转快慢速
;-----------------------------
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN:
DIAN: ; P2.7 用作停止键
JNB P2.6,K6_1 ;为正转快速键
JNB P2.5,K6_2 ;为正转慢速键
JNB P2.4,K6_1_ ;为反转快速键
JNB P2.3,K6_3_ ;为反转快速键
JNB P2.2,K6_2_ ;为反转慢速键
AJMP DIAN
;-------------------------------------
;用占空比来输出不同的频率
K6_0: CLR P0.0 ;1
ACALL YSH0GS
SETB P0.0
ACALL YSH0AS
JNB P2.7,DIAN
AJMP K6_0
RET
K6_1:CLR P0.0 ;2
ACALL YSH0CS
SETB P0.0
ACALL YSH09S
JNB P2.7,DIAN
AJMP K6_1
RET
K6_2: CLR P0.0 ;3
ACALL YSH09S
SETB P0.0
ACALL YSH09S
JNB P2.7,DIAN
AJMP K6_2
RET
K6_1_:
CLR P0.1 ;2
SETB P0.1
ACALL YSH02S
JNB P2.7,DIAN
AJMP K6_1_
RET
K6_2_: ;SETB P0.0
CLR P0.1 ;3
ACALL YSH01S
SETB P0.1
ACALL YSH0DS
JNB P2.7,DIAN
AJMP K6_2_
RET
K6_3_:
CLR P0.1 ;3
ACALL YSH01S
SETB P0.1
ACALL YSH09S
JNB P2.7,DIAN
AJMP K6_3_
RET
K6_3: CLR P0.0 ;4
ACALL YSH05S
SETB P0.0
ACALL YSH05S
AJMP DIAN
RET
K6_4: CLR P0.0 ;5
ACALL YSH03S
SETB P0.0
ACALL YSH03S
AJMP DIAN
RET
K6_5: ;6
CLR P0.0
ACALL YSH01S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K5: CLR P0.0 ;7
ACALL YSH09S
SETB P0.0
ACALL YSH03S
AJMP DIAN
RET
K4: CLR P0.0 ;1[H]
ACALL YSH09S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K4_2:CLR P0.0 ;2[H]
ACALL YSH08S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K4_3:CLR P0.0 ;3[H]
ACALL YSH07S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
;-------------------------------------
K7: CLR P0.0
ACALL YSH0AS
SETB P0.0
ACALL YSH02S
AJMP DIAN
; DJNZ J0,K7
RET
;*----------------------------
K7_: CLR P0.0
ACALL YSH03S
SETB P0.0
ACALL YSH03S
AJMP DIAN
RET
K8: CLR P0.0
ACALL YSH04S
SETB P0.0
ACALL YSH02S
AJMP DIAN
RET
K9: CLR P0.0
ACALL YSH01S
SETB P0.0
ACALL YSH01S
AJMP DIAN
RET
K1: CLR P0.0
ACALL YSH04S
SETB P0.0
ACALL YSH06S
AJMP DIAN
RET
K2: CLR P0.0
ACALL YSH03S
SETB P0.0
ACALL YSH06S
AJMP DIAN
RET
K0_:SETB P0.0
ACALL YSH05S
SETB P0.0
ACALL YSH05S
AJMP DIAN
RET
K4_: CLR P0.0
ACALL YSH06S
SETB P0.0
ACALL YSH07S
AJMP DIAN
RET
K3: CLR P0.0
ACALL YSH06S
SETB P0.0
ACALL YSH08S
AJMP DIAN
RET
;延时子程序
YSH2S: MOV R3,#01H
LOOP2: MOV R4,#028H
LOOP21: MOV R5,#06AH
XHD3: DJNZ R5,XHD3
DJNZ R4,LOOP21
DJNZ R3,LOOP2
RET
YSH3S: MOV R3,#01H
LOOP3: MOV R4,#028H
LOOP31: MOV R5,#03AH
XHD4: DJNZ R5,XHD4
DJNZ R4,LOOP31
DJNZ R3,LOOP3
RET
YSH4S: MOV R3,#01H
LOOP4: MOV R4,#010H
LOOP41: MOV R5,#03AH
XHD5: DJNZ R5,XHD5
DJNZ R4,LOOP41
DJNZ R3,LOOP4
RET
YSH5S: MOV R3,#01H
LOOP5: MOV R4,#005H
LOOP51: MOV R5,#03AH
XHD6: DJNZ R5,XHD6
DJNZ R4,LOOP51
DJNZ R3,LOOP5
RET
YSH01S: MOV R3,#01H
LOOP01: MOV R4,#01H
LOOP011: MOV R5,#03AH
XHD01: DJNZ R5,XHD01
DJNZ R4,LOOP011
DJNZ R3,LOOP01
RET
YSH02S: MOV R3,#01H
LOOP02: MOV R4,#01H
LOOP021: MOV R5,#04AH
XHD02: DJNZ R5,XHD02
DJNZ R4,LOOP021
DJNZ R3,LOOP02
RET
YSH03S: MOV R3,#01H
LOOP03: MOV R4,#01H
LOOP031: MOV R5,#05AH
XHD03: DJNZ R5,XHD03
DJNZ R4,LOOP031
DJNZ R3,LOOP03
RET
YSH04S: MOV R3,#01H
LOOP04: MOV R4,#01H
LOOP041: MOV R5,#06AH
XHD04: DJNZ R5,XHD04
DJNZ R4,LOOP041
DJNZ R3,LOOP04
RET
YSH05S: MOV R3,#01H
LOOP05: MOV R4,#01H
LOOP051: MOV R5,#07AH
XHD05: DJNZ R5,XHD05
DJNZ R4,LOOP051
DJNZ R3,LOOP05
RET
YSH06S: MOV R3,#01H
LOOP06: MOV R4,#01H
LOOP061: MOV R5,#08AH
XHD06: DJNZ R5,XHD06
DJNZ R4,LOOP061
DJNZ R3,LOOP06
RET
YSH07S: MOV R3,#01H
LOOP07: MOV R4,#03H
LOOP071: MOV R5,#03AH
XHD07: DJNZ R5,XHD07
DJNZ R4,LOOP071
DJNZ R3,LOOP07
RET
YSH08S: MOV R3,#01H
LOOP08: MOV R4,#05H
LOOP081: MOV R5,#03AH
XHD08: DJNZ R5,XHD08
DJNZ R4,LOOP081
DJNZ R3,LOOP08
RET
YSH09S: MOV R3,#01H
LOOP09: MOV R4,#07H
LOOP091: MOV R5,#04AH
XHD09: DJNZ R5,XHD09
DJNZ R4,LOOP091
DJNZ R3,LOOP09
RET
YSH0AS: MOV R3,#01H
LOOP0A: MOV R4,#07H
LOOP0A1: MOV R5,#05AH
XHD0A: DJNZ R5,XHD0A
DJNZ R4,LOOP0A1
DJNZ R3,LOOP0A
RET
YSH0BS: MOV R3,#01H
LOOP0B: MOV R4,#08H
LOOP0B1: MOV R5,#05AH
XHD0B: DJNZ R5,XHD0B
DJNZ R4,LOOP0B1
DJNZ R3,LOOP0B
RET
YSH0CS: MOV R3,#01H
LOOP0C: MOV R4,#09H
LOOP0C1: MOV R5,#05AH
XHD0C: DJNZ R5,XHD0C
DJNZ R4,LOOP0C1
DJNZ R3,LOOP0C
RET
YSH0DS: MOV R3,#01H
LOOP0D: MOV R4,#0AH
LOOP0D1: MOV R5,#05AH
XHD0D: DJNZ R5,XHD0D
DJNZ R4,LOOP0D1
DJNZ R3,LOOP0D
RET
YSH0ES: MOV R3,#01FH
LOOP0E: MOV R4,#0FFH
LOOP0E1: MOV R5,#05AH
XHD0E: DJNZ R5,XHD0E
DJNZ R4,LOOP0E1
DJNZ R3,LOOP0E
RET
YSH0FS: MOV R3,#00AH
LOOP0F: MOV R4,#0ACH
LOOP0F1: MOV R5,#05AH
XHD0F: DJNZ R5,XHD0F
DJNZ R4,LOOP0F1
DJNZ R3,LOOP0F
RET
YSH0GS: MOV R3,#00FH
LOOP0G: MOV R4,#0AFH
LOOP0G1: MOV R5,#0AAH
XHD0G: DJNZ R5,XHD0G
DJNZ R4,LOOP0G1
DJNZ R3,LOOP0G
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -