📄 stepmotor.asm
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名: StepMotor.ASM
//
//编写人: LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明: 此程序通过I/O口驱动步进电机
//P50--STEPA P51--STEPB P52--STEPC P53--STEPD
//------------------------------------------------------------------------------------
// Includes
//------------------------------------------------------------------------------------
$include (c8051f020.inc) // SFR declarations
ORG 0
AJMP main
ORG 0100H
;延使子程序
Delay:
MOV R7, #08h
Delay1:
MOV R6, #80h
Delay0:
MOV R5, #00h
DJNZ R5, $
DJNZ R6, Delay0
DJNZ R7, Delay1
RET
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
main:
;无效看门狗
MOV WDTCN,#0deH
MOV WDTCN,#0adH
LCALL PORT_Init
MOV R1,#0ffH ;4相线圈都截止
LOOP:
;步进电机正转
MOV R0,#0AH
TT:
MOV A,#0eH ;A相通电
MOV P5,A
LCALL Delay
MOV A,#0CH ;AB相通电
MOV P5,A
LCALL Delay
MOV A,#0DH ;B相通电
MOV P5,A
LCALL Delay
MOV A,#09H ;BC相通电
MOV P5,A
LCALL Delay
MOV A,#0BH ;C相通电
MOV P5,A
LCALL Delay
MOV A,#03H ;CD相通电
MOV P5,A
LCALL Delay
MOV A,#07H ;D相通电
MOV P5,A
LCALL Delay
MOV A,#06H ;DA相通电
MOV P5,A
LCALL Delay
DJNZ R0,TT
LJMP LOOP
RET
;初始化I/O
PORT_Init:
MOV XBR2,#40H ;使能交叉开关和弱上拉
ORL P74OUT,#0fH ;P5低4位为推挽输出,其余口为开漏输出
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -