当前位置:首页 > 单片机 > 单片机
[导读] ;FileSTEP508.ASM;...forPIC12C508Amicrocontroller;ProgramtousePICasastepanddirectioncontrollerforaunipolar;stepmotor.StepanddirectionPINsareGPIO-5,GPIO-3;GPIO_0,GPIO_1,GPIO_2,GPIO_4,are;th

;FileSTEP508.ASM
;...forPIC12C508Amicrocontroller
;ProgramtousePICasastepanddirectioncontrollerforaunipolar

;stepmotor.StepanddirectionPINsareGPIO-5,GPIO-3;GPIO_0,GPIO_1,GPIO_2,GPIO_4,are;thewindings;inorder(drivenbyNPNsmallsigtransistorsorMOSFETS)
;Stepsonnegativegoingedgeofsteppulse.

;CPUconfiguration
;(It’sa12C508A,InternalRCoscillator,
;watchdogtimeroff,power-uptimeron)
LISTP=12C508A
processor12c508A
include
;__config_IntRC_OSC&_WDT_OFF&_PWRTE_ON&_MCLRE_OFF

;Declarevariables

pattAequH’0D’;Currentsteppatternnumber(0-7)foraxisA
lastAequH’0E’;LaststateofsteppinonaxisA(1ishigh,0islow)
inportequH’11’;ValueofportAwhenread(storedforlateraCCess)
tempequH’12’

#DEFINESTEPinport,5;Steppulseinput
#DEFINEDIRinport,3;DirectionInput

OPMASKEQUB’11000000’
IOMASKEQUB’00101000’;allbitsoutput(exceptGP3andGP5)
;GP0,GP1,GP2,GP4controlsThestepperCoils
;GP3controlsdirection
;GP5ControlsStepPulses



ORG0

;startofmaincode
;***************************************************
;
;STARTOFPIC12c508ACODEFORSTEP;
;
;***************************************************
;

;------------------------------------------
;****Poweronresetstartpoint
;------------------------------------------

;***Initializationofprogram
MOVWFOSCCAL

MOVLWOPMASK
OPTION

;SetGPIOforinput&output

MOVLWIOMASK
TRISGPIO




;Clearportandzeromotors


MOVlwB’00000001’
MOVwfGPIO
clrflastA
clrfpattA

;Looparoundforawhiletoleteverythingstabilize

MOVlwd’255’
MOVwfinport
loop:decfszinport,f
;gotoloop

;***Basicprogramloop

;Mainroutine-checkpinstatesandsteponnegativeedge
;Getportdataandstore,thencheckaxisA
;A10checksifoldis0,newis1(updateregister)
;A01checksifoldis1,newis0(stepandupdateregister)
;SimilarlyforaxisB

main:MOVfGPIO,w
MOVwfinport
CLRWDT
A10:btfsclastA,0
gotoA01
btfssSTEP
gotoA01
bsflastA,0
A01:btfsslastA,0
gotoB10
btfscSTEP
gotoB10
bcflastA,0
gotostepA

B10:gotomain

;------------------------------------------
;***stepA-subtocycleaxisAoneFullstep
;Dirof1isincrease,elsedecrease

stepA:btfssDIR
decfpattA,f
btfscDIR
incfpattA,f

;Checkforpatternoverflowandfix


MOVfpattA,w
XORLWD’255’
MOVlwD’07’
btfscSTATUS,Z
MOVwfpattA

MOVfpattA,w
XORLWD’08’
btfscSTATUS,Z
clrfpattA

;GetsteppatternandsendtoGPIOonbits0-1-2-4

MOVfpattA,w
calldcode
MOVwfGPIO

gotomain



;------------------------------------------
;***stepcode-subtogeneratebitpatternfornumberinw(!!MUSTBE0-7!!)
;patternisstoredinwregister

dcode:addwfPCL,f;UsebelowcolumnforthehalfStep
retlwB’00000001’;0retlwB’00000001’;0
retlwB’00000010’;1retlwB’00000011’;1
retlwB’00000100’;2retlwB’00000010’;2
retlwB’00010000’;3retlwB’00000110’;3
retlwB’00000001’;4retlwB’00000100’;4
retlwB’00000010’;5retlwB’00010100’;5
retlwB’00000100’;6retlwB’00010000’;6
retlwB’00010000’;7retlwB’00010001’;7


;Mandatoryendofprogramcommand

end


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

一直以来,步进电机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来步进电机的相关介绍,详细内容请看下文。

关键字: 电机 步进电机

伺服电机是一种能够精确控制位置、速度和加速度的电动机。它通过内置的反馈系统,能够根据控制信号实时调整输出力矩和转速,从而实现精确的运动控制。伺服电机广泛应用于机械制造、自动化设备、机器人等领域。

关键字: 伺服电机 步进电机

反应式步进电机将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对反应式步进电机的相关情况以及信息有所认识和了解,详细内容如下。

关键字: 电机 步进电机 反应式步进电机

一直以来,电机都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来电机的相关介绍,详细内容请看下文。

关键字: 电机 感应电机 步进电机

伺服电机和步进电机在控制精度、低频特性、矩频特性、过载能力、编码器类型等方面存在显著差异。

关键字: 伺服电机 步进电机 编码器

直流减速电机是一种常见的电机类型,它由直流电机和减速器组成。这种电机通常具有较大的启动转矩和较低的转速,适用于需要大扭矩和低转速的场合。直流减速电机的结构包括电机本体、减速器、输出轴和外壳。其中,电机本体是驱动力源,通过...

关键字: 直流减速电机 步进电机

步进电机控制器是一种用于控制步进电机运行状态的设备。步进电机是一种将电脉冲信号转换为角位移的电机,每个脉冲信号都会使电机转动一个固定的角度。步进电机控制器通过控制电机的转速和转向,实现对电机运行状态的精确控制。

关键字: 步进电机 电机控制

控制器是指按照预定顺序改变主电路或控制电路的接线和改变电路中电阻值来控制电动机的启动、调速、制动和反向的主令装置。它由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,是发布命令的“决策机构”,即协调和指挥...

关键字: 控制器 步进电机

电动机是一种将电能转换为机械能的设备,它利用通电线圈(也就是定子绕组)产生旋转磁场并作用于转子(如鼠笼式闭合铝框)形成磁电动力旋转扭矩。电动机主要由定子与转子组成,通电导线在磁场中受力运动的方向跟电流方向和磁感线(磁场方...

关键字: 步进电机 普通电机

步进电机是一种将电脉冲转化为角位移的执行机构。通俗来说,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过...

关键字: 步进电机 控制脉冲
关闭
关闭