"); //-->
关于步进电机的工作原理大家可以在网上查查,这里主要介绍的是两相四线的步进电机控制,采用的是四拍方式。
要求如下:
1、有开机停止键。按第奇数次时为开机,第偶数次为停止。此例选择P3.3口。
2、有加速键。加速范围为1~9档。
3、有减速键。减速范围为1~9档。
具体实施方案:
采用L298N驱动板驱动步进电机,采用如下相序:
表1:正转环形脉冲分配表
|
步数 |
P0.0 |
P0.1 |
P0.2 |
P0.3 |
|
A |
B |
/A |
/B |
|
|
1 |
1 |
1 |
0 |
0 |
|
2 |
0 |
1 |
1 |
0 |
|
3 |
0 |
0 |
1 |
1 |
|
4 |
1 |
0 |
0 |
1 |
源程序如下:
ENA EQU P1.0
ENB EQU P1.1
IN1 EQU P1.2
IN2 EQU P1.3
IN3 EQU P1.4
IN4 EQU P1.5
SWITCH EQU P3.3
FAST EQU P3.6
SLOW EQU P3.5
CYCLENUM EQU 50H ;存放对应定时循环次数
TEMP EQU 53H ;存放按键次数。初值为5,每按加速叠加1,按减速递减
MARK EQU 56H ;启动停止标识
LEDBUF EQU 57H
ORG 0
AJMP START
;*****************检测是否开启启动电机键***************************
START:
MOV P0,#0 ;清显示
SETB MARK ;预启动电机工作,标识为1
MOV TEMP,#5 ;开始工作于5Hz
MOV CYCLENUM,#01H ;循环1次
JNB SWITCH,NEXT ;按键按下?
SJMP START ;没有返回继续检测
NEXT:
CALL DELAY ;消抖确认
JNB SWITCH,MAIN ;再次确认按键,不为1说明按键按下
SJMP START ;没有按下,继续检测
;*****************开始运行电机***************************************
MAIN:
MOV A,TEMP
MOV DPTR,#TAB4
MOVC A,@A+DPTR
MOV LEDBUF,A ;送显示
CALL DISPLAY
LOOP:
JB MARK,WORK ;检测运行标识是否为1,为1则继续运行,为0则停止运行
NOTWORK:
CLR ENA
CLR ENB
SJMP START
WORK:
MOV P1,#000010111B ;步进电机运行方式为两相四拍
CALL TIMER
CALL TESTSTOP
MOV P1,#000011011B ;第二拍
CALL TIMER
CALL TESTSTOP
MOV P1,#000101011B ;第三拍
CALL TIMER
CALL TESTSTOP
MOV P1,#000100111B ;第四拍
CALL TIMER
CALL TESTSTOP
CALL TESTKEY
SJMP MAIN
;***************************检测是否有按键按下************************
TESTKEY:
SETB FAST
SETB SLOW
NEXT1:
JNB FAST,YES2
NEXT2:
JNB SLOW,YES3
SJMP RETURN ;都没有键按下,则返回
YES2:
MOV A,TEMP ;FAST按下,若此时temp等于9,则保持速度不变,若小于则加1
CJNE A,#9,CANFAST
DEC A
CANFAST:
INC A
MOV TEMP,A
SJMP RETURN
YES3:
MOV A,TEMP
CJNE A,#1,CANSLOW
INC A
CANSLOW:
DEC A
MOV TEMP,A
RETURN:
RET
TESTSTOP:
SETB SWITCH
JNB SWITCH,GO
SJMP ENND
GO:
CALL DELAY
JNB SWITCH,YESSTOP
SJMP ENND
YESSTOP:
CPL MARK
ENND:
RET
;***********************定时器设置*******************
TIMER:
MOV TMOD,#10H ;T1工作于定时方式1
CALL TIMERSET
SETB TR1
SETB EA
SETB ET1 ;启动定时器工作
WAIT:
JBC TF1,HERE
SJMP WAIT ;定时未到继续等待
HERE:
DJNZ CYCLENUM,TIMER ;循环次数未满继续定时
MOV A,TEMP
MOV DPTR,#TAB3
MOVC A,@A+DPTR
MOV CYCLENUM,A
RET
TIMERSET:
MOV A,TEMP
MOV DPTR,#TAB1 ;获取定时器高位
MOVC A,@A+DPTR
MOV TH1,A ;存放至定时器高位
MOV A,TEMP
MOV DPTR,#TAB2
MOVC A,@A+DPTR ;获取定时器定位
MOV TL1,A ;存放至定时器低位
RET
;***********************50ms延时**********************
DELAY:
MOV R0,#100
DL1:
MOV R1,#10
DJNZ R1,$
DJNZ R0,DL1
RET
;************显示子程序****************************
DISPLAY:
CLR P2.7
CLR P2.6
CLR P2.5
SETB P2.4 ;关闭高三位,保留个位
MOV P0,LEDBUF
RET
TAB1: DB 15H,0AH,07H,05H,04H,03H,03H,02H,02H ;定时器高位TH1
TAB2: DB 0B3H,0D9H,3BH,6CH,57H,0A5H,19H,0B6H,69H ;定时器地位TL1
TAB3: DB 01H,01H,01H,01H,01H,01H,01H,01H,01H ;循环次数CYCLENUM
TAB4: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ;数码显示0~9
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
鼎阳科技推出SDG3000X任意波形发生器,配备7寸大屏,支持40Mpts存储深度与1.2GSa/s采样率
八路遥控发射器(CS901)
SF05A/B组成的发射电路
[求助]求助ING
PDIUSBD12鼠标:给入门者(3)
HCS301编码器在无线电发射电路中的应用
让大模型训练更高效,奇异摩尔用互联创新方案定义下一代AI计算
最全的IC封装代号及尺寸
可编程混合信号技术弥补逻辑IC的成本与密度空白
紫光国微换帅,李天池接任
发射组件SB-100ATX
12 X 12 中文点阵字库
14 X 14中文点阵字库
全球首家专业的IC即时商务平台――IC一点通隆重上市
英飞凌达成200mm碳化硅(SiC)新里程碑:开始交付首批产品
BQ3060:符合 SBS 1.1 的电量监测计和保护器
能源发展趋势和测试新要求,如何促进功率转换效率的提升
[求助]为何FLASHPGM中的Program按扭总是灰色的
SB-50ALTX发射机
用于消费电子产品的ispMACH 4000ZE CPLD系列
想成为硬件工程师,难不难?
鼠标的电路原理图
助力半导体等精密测试!鼎阳科技发布精密源表SMM3000X系列
LatticeECP3 FPGA低功耗视频
求助,U盘问题
第25次,让你的示波器焕然一新!
以 AMD 自适应计算技术进行虚拟制作
快速开发基于Blackfin处理器的视频应用
高精度实时时钟芯片-SD2003A
LatticeECP3 CPRI 解决方案