步进电机控制实验c语言程序,用AT89C51单片机控制步进电机的汇编源程序.pdfVIP

  • 102
  • 0
  • 约1.35千字
  • 约 2页
  • 2023-09-05 发布于上海
  • 举报

步进电机控制实验c语言程序,用AT89C51单片机控制步进电机的汇编源程序.pdf

步进电机控制实验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 ;延时⼦程序 DEL1: MOV R7,#250 HERE1: DJNZ R7, HERE1 DJNZ R6,DEL1 RET

文档评论(0)

1亿VIP精品文档

相关文档