⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor.asm

📁 步进电机的单片机控制
💻 ASM
字号:
		org 0000h
		jmp stop
		org 0100h
stop: 
		orl p1,#0ffh 		;步进电机停止
loop:
		jnb p3.2,for2 		;如果p3.2 按下正转
		jnb p3.3,rev2 		;如果p3.3 按下反转
		jnb p3.4,stop1 		;如果p3.4按下停止
		jmp loop 			;反复监测键盘
for: 
		mov r0,#00h 		;正转到tab取码指针初值
for1:
		mov a,r0 			;取码
		mov dptr,#table 	;
		movc a,@a+dptr
		jz for 				;是否到了结束码00h
		cpl a 				;把acc 反向
		mov p1,a 			;输出到p1开始正转
		jnb p3.4,stop1 		;如果p3.4 按下停止
		jnb p3.3,rev2 		;如果p3.3按下反转
		call delay 			;转动的速度
		inc r0 				;取下一个码
		jmp for1 			;继续正转
rev:
		mov r0,#05h 		;反转到tab取码指针初值
rev1:
		mov a,r0
		mov dptr,#table 	;取码
		movc a,@a+dptr
		jz rev 				;是否到了结束码00h
		cpl a 				;把acc 反向
		mov p1,a 			;输出到p1开始反转
		jnb p3.4,stop1 		;如果p3.4 按下停止
		jnb p3.3,rev2 		;如果p3.3按下反转
		call delay 			;转动的速度
		inc r0 				;取下一个码
		jmp rev1 			;继续反转
stop1:
		call delay 			;按p3.4 的消除抖动
		jnb p3.4,$ 			;p3.4 放开否?
		call delay 			;放开消除抖动
		jmp stop
for2:
		call delay 			;按p3.2 的消除抖动
		jnb p3.2,$ 			;p3.2 放开否?
		call delay 			;放开消除抖动
		jmp for
rev2:
		call delay 			;按p3.3的消除抖动
		jnb p3.3,$ 			;p3.3 放开否?
		call delay 			;放开消除抖动
		jmp rev
delay:
		mov r1,#40 			;步进电机的转速20ms
d1:
		mov r2,#248
		djnz r2,$
		djnz r1,d1
		ret
table:
		db 03h,09h,0ch,06h 	;正转表
		db 00 				;正转结束
		db 03h,06h,0ch,09h 	;反转
		db 00 				;反转结束

		end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -