联系方式:
更多
详细内容

用AT89C51单片机控制步进电机的汇编源程序

时间:2015-01-29 14:30:02      【原创】

标签:单片机(2540)源程序(50)步进电机(282)汇编语言(64)AT89C大电流电感51(89)

  下面程序完成的主要功能:实现步进电机的正反转,加速、减速;显示电机转速(转速级别)和工作状态(正转、反转、不转)。

  源程序

  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

  MAI大电流电感N: 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 ;查http://www.ruishen.net.cn/片式电感器表获取等级对应数码管代码

  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

标签:单片机(2540)源程序(50)步进电机(282)汇编语言(64)AT89C51(89)

  ;以下 ZDT0 为定时器中断程序

  ZDT0: PUSH ACC

  PUSH DPH

  PUSH DPL

  MOV TH0,#0D8H

  MOV TL0,#0F0H

  DJNZ COUNT,EXIT

  JB P3.5,NIZHUAN ;查询方向标志,P3.5 接换向开关 K2

  MOV FX,#11H

  NIZHUAN:MOV A,FX

  CJNE A,#11H,FZ ;若A不等于11,即正转,则转移到 FZ

  MOV A,R1 ;R1 记录上一次电机脉冲状态

  MOV P1,A

  RR A ;循环右一位

  MOV R1,A

  MOV P1,A

  AJMP RE

  FZ: MOV A,R1

  MOV P1,A

  RL A ;循环左移一位

  MOV P1,A

  MOV R1,A

  RE: MOV A,SPEED

  MOV DPTR,#TAB

大功率电感  MOVC A,贴片绕线电感@A+DPTR

  MOV COUNT,A ;把转速级别赋给 COUNT

  JB P3.5 ,FFX ;P3.5 接换向开关K2, 即换向位,若P3.5=1,则电感器单位跳到 FFX

  MOV FX,#11H

  AJMP EXIT

  FFX: MOV FX,#0FEH;只要FX不等于11H,就可以通过循环左移或右移进行换向

  EXIT: POP DPL

  POP DPH

  POP ACC

  RETI

  ;以下 UP 为加速中断程序

  UP: PUSH ACC

  ACALL DELAY ;延时防抖

  JB P3.2,UPEX ;P3.2 为外部中断0位,接增速开关S2,低电平有效,若P3.2=1,则退出

  MOV A,SPEED

  CJNE A,#7,SZ ;最大等级为 7,若 A 不等于 7,则转移到 SZ

  AJMP UPEX ;若 A=7,则退出

  SZ: INC SPEED ;SPEED= SPEED+1

  UPEX: POP ACC

  HERE2: JNB P3.2,HERE2 ;本条指令为防止开关 S2 按下去后弹不起,导致一直产生中断

  RETI

  ;以下 DOWN 为减速中断程序

  D差模电感

快速导航


联系我们

平面变压器定制,贴片变压器设计、反激式变压器定制

公司名称:领航京创

热线:181-2638-2251

官网: http://www.szmzhg.com 

公司地址:深圳市龙华区龙华街道油松第十工业区4楼


微信扫码咨询
微信扫码咨询
  • 电话直呼

    • 88888888
    • 99999999
    • 6666666
    • 产品经理 :
    • 产品经理 :
  • 微信扫码咨询

seo seo