步进电机控制实验c语⾔程序,⽤AT89C51单⽚机控制步进电机
的汇编源程序
:单⽚机(2540)源程序(50)步进电机(282)汇编语⾔(64)
下⾯程序完成的主要功能:实现的正反转,加速、减速;显⽰电机转速(转速级别)和⼯作状态(正转、反转、不转)。
源程序
SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~7
FX EQU 11H ;FX 为⽅向标志
COUNT EQU 12H ;COUNT次数标志
ORG 0000H
AJMP MAIN
ORG 0003H ;外部中断0⼊⼝地址,加速⼦程序
AJMP UP
ORG 0013H ;外部中断1⼊⼝地址,减速⼦程序
AJMP DOWN
ORG 000BH ;定时器0中断⼊⼝地址,控制中断次数来达到控制转速 AJMP ZDT0
ORG 0030H
MAIN: MOV SP,#60H
MOV TMOD,#01H ;⼯作于定时、软件置位启动,模式1(16 位计时器)
MOV TH0,#0CFH
MOV TL0,#2CH
MOV COUNT,#01H
SETB ET0 ;定时/计数器允许中断
CLR IT0 ;外部中断为电平触发⽅式,低电平有效
CLR IT1
SETB EX0 ;外部允许中断
SETB EX1
SETB EA ;开总中断
MOV R1,#11H ;四相单四拍运⾏,共阳数码管⽅向显⽰8,速度值显⽰0
MOV SPEED,#00H
MOV FX,#00H
XIANS: MOV A,SPEED
MOV DPTR,#LED
MOVC A,@A+DPTR ;查表获取等级对应数码管代码
MOV P2,A ;第⼆个数码管显⽰转速等级
MOV A,FX ;准备判断转向
CJNE A,#11H,ELS
MOV P0, #0F9H ;第⼀个数码管显⽰ 1,表⽰正转
AJMP QD
ELS: CJNE A,#00H,ZHENG
MOV P0,#0C0H ;第⼀个数码管显⽰ 0,表⽰不转
AJMP QD
ZHENG: MOV P0,#0BFH ;第⼀个数码管显⽰-,表⽰反转QD: JB P3.4,DD ;P3.4 接启动开关 K1,P3.4=1 时启动CLR TR0 ;停⽌定时/计数器
MOV P0,#0C0H ;第⼀个数码管显⽰ 0,表⽰不转
MOV P2,#0C0H ;第⼆个数码管显⽰ 0,表⽰转速为 0 MOV SPEED,#00H ;重新赋初值
MOV FX,#00H
AJMP QD
DD: MOV A,SPEED
JNZ GO ;A 不等于 0,即初始速度不为零,则转移到 GO CLR TR0 ;停⽌定时/计数器
AJMP QD
GO: SETB TR0 ;开启定时/计数器
ACALL DELAY
AJMP XIANS
DELAY: MOV R6,#10 ;延时⼦程序
汇编语言转c语言的软件DEL1: MOV R7,#250
HERE1: DJNZ R7, HERE1
DJNZ R6,DEL1
RET
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论