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

📄 demostep.asm

📁 用89S52进行DS1820温度读取程序
💻 ASM
字号:
    ;这是一个使用单片机通过NUL2003驱动步进电机程序.
    ;步进电机: 5伏,500MA/STEP,四限四拍.
    ;将步进电机的A B C D四个绕组连接到 S51E板"步进电机"的A,B,C,D,将公用抽头并接在VCC上.
    ;将"控制输入口"的A B C D 接焊盘 P2.3,P2.2,P2.1,P2.0.
    ;将P2.3-P2.0跳帽置焊盘位.
   
  ;----------- IT'S FOR S51E --------------------------
    BUFF_STEP   EQU   21H
    SW1         BIT   P2.7
    KEY         BIT   P3.3
    org  000h
    JMP  START
    ORG  100H
;----------------------------------------
start:mov   P0,#0f0h          ;初始化MCU端口
      mov   P1,#0ffh
      mov   P3,#0ffh
      MOV   P2,#0ffH
      MOV   A,#00H           ;初始化寄存器
      MOV   PSW,#00H
      MOV   IE,#00H
      MOV   SP,#30H
      CLR   KEY
MAIN: JNB   SW1,CCW_LP     ;正常电机正向转动
      MOV   DPTR,#TAB_CW   ;按下SW1键,电机反向转动
      JMP   LOOP
CCW_LP:MOV  DPTR,#TAB_CCW
LOOP:  MOV   A,BUFF_STEP
       MOVC  A,@A+DPTR
       MOV   P0,A
       LCALL  DEL
       INC   BUFF_SteP
       MOV   A,BUFF_STEP
       CJNE  A,#04H,MAIN
       MOV   BUFF_STEP,#00H
       JMP   MAIN

DEL:   MOV   R6,#200
DEL0:  MOV   R7,#200
       DJNZ  R7,$
       DJNZ  R6,DEL0
       RET

TAB_CW:  DB   00000011B,00000110B,00001100B,00001001B     ;正转相序
TAB_CCW: DB   00001001B,00001100B,00000110B,00000011B     ;反转相序

         END

;提问: (1) 如需改变电机转速,程序应如何修改?
       (2) 使用定时中断方式,如何改变驱动相序?

⌨️ 快捷键说明

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