标题: 51单片机步进电机正反转与暂停控制汇编程序 [打印本页]

作者: daniu    时间: 2014-12-27 18:14
标题: 51单片机步进电机正反转与暂停控制汇编程序
  1. ;==================================================================
  2. ;程序编写人:兰建文
  3. ;编写地点:51hei培训机构
  4. ;时间:6月8日下午星期一
  5. ;功能:本程利用节拍法,三个按键,一个实现正转到反转的切换,
  6. ;一个实现反转到正转的切换,一个实现步进电机哦暂停。
  7. ;===============================================================
  8. ;=========================开始初始化============================
  9.            SHUCHU   EQU   P2            ;定义P2口为输出口
  10.      ZANT     BIT   20H.0      ;设置暂停标志位         
  11.      ZHENGZ   BIT   20H.1      ;设置正转标志位
  12.      FANZ     BIT   20H.2      ;设置反转标志位
  13.      BIT0   BIT   20H.3      ;设置中断定时器0标志位
  14.      MODE     EQU   01H
  15. ;========================程序开始==============================
  16.                     ORG   00H           ;程序开始
  17.                     LJMP  START         ;跳到START
  18.      ORG   0BH      ;中断定时器0入口地址
  19.      JMP   T0_1      ;跳到定时器0服务程序
  20.                     ORG   0030H         ;入口地址
  21. ;=========================主程序===============================        
  22.               START:MOV   SP,#60H  ;移开指针
  23.            MOV   A,#0EEH      
  24.      CALL  INIT   ;开中断
  25.    
  26.         CLR   ZANT        ;暂停按键标志位清0
  27.      CLR   ZHENGZ  ;正转按键标志位清0
  28.      CLR   FANZ   ;反转按键标志位清0
  29.      SETB  BIT0   ;中断标志位置1
  30.       
  31.       MAIN:JNB   BIT0,MAIN     ;等待中断
  32.            CLR   BIT0      ;中断标志位清0
  33.         JB    ZANT,ZANCHULI ;判断暂停标志位是否为1,为1则暂停
  34.         JB    P1.0,L1
  35.      SETB  ZANT
  36.      CLR   ZHENGZ
  37.      CLR   FANZ
  38.      JMP   MAIN
  39.      L1:JB    ZHENGZ,ZHENGCHULI  ;判断正转标志位是否为1,为1则正转
  40.         JB    P1.1,L2
  41.      SETB  ZHENGZ
  42.      CLR   ZANT
  43.      CLR   FANZ
  44.      JMP   MAIN
  45.      L2:JB    FANZ,FANCHULI   ;判断反转标志位是否为1,为1则反转
  46.         JB    P1.2,MAIN
  47.      SETB  FANZ
  48.      CLR   ZANT
  49.      CLR   ZHENGZ
  50.      JMP   MAIN
  51.      ZANCHULI:      ;暂停处理
  52.         MOV   SHUCHU,#0FFH
  53.      JB    P1.1,L3
  54.      CLR   ZANT
  55.      SETB  ZHENGZ
  56.      CLR   FANZ
  57.      L3:JB    P1.2,MAIN
  58.         SETB  FANZ
  59.      CLR   ZANT
  60.      CLR   ZHENGZ
  61.               JMP   MAIN
  62.    ZHENGCHULI:     ;正转处理
  63.               RR    A
  64.      MOV   SHUCHU,A
  65.      JB    P1.2,MAIN
  66.      CLR   ZANT
  67.      CLR   ZHENGZ
  68.      SETB  FANZ
  69.               JMP   MAIN
  70.       FANCHULI:     ;反转处理
  71.               RL    A
  72.      MOV   SHUCHU,A
  73.      JMP   MAIN
  74. ;====================定时中断0服务子程序========================
  75. ;输入:无
  76. ;输出:无
  77. ;实现的功能:实现定时20MS,影响标志位BIT0.
  78. ;===============================================================
  79.       T0_1:MOV    TL0,#0E0H     ;设置定时初值
  80.      MOV    TH0,#0B1H
  81.      SETB   BIT0       ;定时标志位清0
  82.      RETI
  83. ;========================中断设置子程序=========================
  84. ;输入:无
  85. ;输出:无
  86. ;实现的功能:初始化设置定时器,设置初值
  87. ;===============================================================
  88.                INIT:MOV    TMOD,#MODE  ;定时器0工作方式1
  89.             MOV    TL0,#0E0H
  90.      MOV    TH0,#0B1H
  91.      MOV    IE,#82H   ;开定时器中断0
  92.      SETB   TR0    ;开定时器0
  93.      RET
  94. ;=======================程序结束================================
  95.         END
复制代码



作者: wadp    时间: 2020-5-20 16:36
请问有电路图吗
作者: wadp    时间: 2020-5-20 16:36
请问有proteus仿真图吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1