⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 motor-key.asm

📁 单片机开发系统程序-步进电机键控正反转实验,用按键来控制电机,包含C和ASM源码.
💻 ASM
字号:
;/******************************************************************/
;/*                                                                */
;/* ME300B单片机开发系统演示程序-步进电机键控正反转实验            */
;/*                                                                */
;/*                                                                */
;/* 邮箱:  gguoqing@willar.com                                     */
;/* 网站: http://www.willar.com                                   */
;/* 作者: gguoqing                                                */
;/* 时间: 2006/05/30                                              */
;/*                                                                */
;/*【版权】Copyright(C)伟纳电子 www.willar.com All Rights Reserved */
;/*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      */
;/*                                                                */
;/******************************************************************/

; 步进电机步进角为 7.5度,一圈 360 度。
; 双四拍工作方式:
; AB-BC-CD-DA (即一个脉冲,转 7.5 度)
; 单双八拍工作方式:
; A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度)
; 一个取数工作周期,步进电机转30度
; 步进电机转一圈需要12个取数工作周期
;-------------------------------------------------------
; A组线圈对应 P1.0    (桔色)
; B组线圈对应 P1.1    (棕色)
; C组线圈对应 P1.2    (黄色)
; D组线圈对应 P1.3    (黑色)
;-------------------------------------------------------
         K1  BIT  P1.4     ;步进电机正转
         K2  BIT  P1.5     ;步进电机反转
         K3  BIT  P1.6
         K4  BIT  P1.7     ;步进电机停止转动
       BEEP  BIT  P3.7
;-------------------------------------------------------
           ORG 0000H
           LJMP MAIN
           ORG 0030H
;-------------------------------------------------------
MAIN:
           MOV  SP,#60H
           MOV  P1,#0F0H   ;关闭步进电机,键输入线置高
MAIN1:           
           JB  K1,MAIN2
           ACALL  BEEP_BL   ;步进电机正转
           ACALL  FFW          
MAIN2:           
           JB  K2,MAIN1
           ACALL  BEEP_BL   ;步进电机反转
           ACALL  REV                     
           JMP  MAIN1
;------------------------正转-------------------------           
FFW:
           ;MOV R3,#12         ;7.5度电机正转1圈共12个周期
           MOV  R3,#60         ;转5圈
FFW1:
           MOV R0,#00H
FFW2:
           JB  K4,FFW3         ;终止步进电机运行
           ACALL  BEEP_BL
           JMP  FFW4
FFW3:           
           MOV P1,#0F0H
           MOV A,R0
           ;MOV DPTR,#TABLE_F  ;选择工作方式
           MOV DPTR,#TABLE1
           MOVC A,@A+DPTR
           MOV P1,A
           LCALL DELAY
           INC R0
           CJNE  A,#0FFH,FFW2
           DJNZ R3,FFW1
FFW4:
           MOV P1,#0F0H
           RET
;---------------------------反转--------------------------
REV:
           ;MOV R3,#12         ;7.5度电机反转1圈共12个周期
           MOV  R3,#60         ;转5圈
REV1:
           MOV R0,#00H
REV2:
           JB  K4,REV3          ;终止步进电机运行
           ACALL  BEEP_BL
           JMP  REV4
REV3:
           MOV P1,#0F0H
           MOV A,R0
          ; MOV DPTR,#TABLE_R   ;选择工作方式
           MOV DPTR,#TABLE2
           MOVC A,@A+DPTR
           MOV P1,A
           CALL DELAY
           INC R0
           CJNE  A,#0FFH,REV2
           DJNZ R3,REV1
REV4:
           MOV P1,#0F0H
           RET
           
;-------------------------------------------------------
DELAY:
           MOV R7,#40       ;步进电机的转速
DEL1:      MOV R6,#248
           DJNZ R6,$
           DJNZ R7,DEL1
           RET
;-------------------------------------------------------
DELAY1:
           MOV   R5,#20     ;2S 延时子程序
DEL2:
           MOV   R7,#200
DEL3:
           MOV   R6,#250
           DJNZ  R6,$
           DJNZ  R7,DEL3
           DJNZ  R5,DEL2
           RET
;-------------------------------------------------------
; 单双八拍工作方式
TABLE_F:  ;正转表
          DB  0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
          DB  0FFH
TABLE_R:  ;反转表
          DB  0F9H,0F8H,0FCH,0F4H,0F6H,0F2H,0F3H,0F1H
          DB  0FFH
;-------------------------------------------------------
; 双四拍工作方式:
TABLE1:
        DB   0F3H,0F6H,0FcH,0F9H  ;正转表
        DB   0FFH  ;正转结束
TABLE2:
        DB   0F9H,0FCH,0F6H,0F3H  ;反转表
        DB   0FFH  ;反转结束
;--------------------------------------------------------
;蜂鸣器响一声子程序
;--------------------------------------------------------
BEEP_BL:
         MOV  R6,#100
  BL1:
         CALL  DEX1
         CPL  BEEP
         DJNZ  R6,BL1
         RET
 DEX1:
         MOV  R7,#180
 DEX2:
         NOP
         DJNZ  R7,DEX2
         RET
;--------------------------------------------------------- 
         END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -