您的位置:首页版主原创51示例程序
内容搜索: 标题内容作者
     
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

89C2051马达测试(己调试OK)

[日期:2008-02-15 ] [来源:东哥开发网(www.picavr.com) 作者:东哥] [字体: (投递新闻)

;********WAVE-E6000/T**************************
;*MCU:          AT89C51                       *
;*MCU-crystal:  6M                            *
;*Version:      00                            *
;*Last Updata:                                *
;*Author:       www.picavr.com                *
;*Description:
;               基于89C2051的马达测度电路     *                      
;**********************************************
              ORG   0000H                    ;程序执行开始地址
              LJMP  MAIN                     ;跳到标号START执行
              ORG   0003H                    ;外中断0中断程序入口
              RETI                           ;外中断0中断返回
              ORG   000BH                    ;定时器T0中断程序入口
         RETI                         ;跳至INTTO执行
              ORG   0013H                    ;外中断1中断程序入口
         RETI                         ;外中断1中断返回
         ORG   001BH                  ;定时器T1中断程序入口
         RETI                         ;跳至INTT1执行
         ORG   0023H                  ;串行中断程序入口地址
              RETI                           ;串行中断程序返回
;****************************************************************************

****
              ORG    0030H                   ;程序从0030开始
MAIN:         MOV    P3,#11001111B           ;端口P3初始化
              MOV    P1,#00H                 ;端口P1初始化                   

 
START:        NOP
              JNB    P1.7,START              ;判断-是否-开机
              ACALL  DL10MS                  ;开机延时10MS再判断
;****************************************************************************

****
START1:       JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JB     P3.2,UP1                ;判断--下限位开关--是否-接触到
              AJMP   UP11                    ;是则再判断--下限位开关
UP1:          JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JB     P3.3,DOWN1              ;判断--上限位开关--是否-接触到
              AJMP   LOOP1                   ;是则再判断--上限位开关
DOWN1:        JNB    P1.7,STOP
              SETB   P3.4                    ;预设顺时针转动
              CLR    P3.5
LOOP1:        JNB    P1.7,STOP
              JB     P3.3,UP11               ;判断--上限位开关--是否-接触到是

则停止
              CLR    P3.4                    ;马达停止
              CLR    P3.5
              AJMP   LOOP2                   ;转到判断--奶瓶开关--是否按下
UP11:         JNB    P1.7,STOP
              JB     P3.2,LOOP1             
              CLR    P3.4                    ;逆时针返回
              SETB   P3.5
              AJMP   LOOP1                   ;再判断--上限位开关--是否-接触到
;****************************************************************************

******
LOOP2:        JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JNB    P3.1,LOOP3              ;判断--奶瓶开关--是否按下
              JB     P3.1,LOOP2              ;奶瓶开关--无按下再循环判断奶瓶

开关
;****************************************************************************

******
LOOP3:        JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JB     P3.2,DOWN2              ;判断--下限位开关--是否-接触到
              AJMP   UP21
DOWN2:        JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JB     P3.3,START2             ;判断--上限位开关--是否-接触到
              AJMP   LOOP4
START2:       JNB    P1.7,STOP
              SETB   P3.4                    ;预设顺时针转动
              CLR    P3.5
;****************************************************************************

******
UP21   :      JNB    P1.7,STOP               ;判断--ON/OFF开关--是否-拨到OFF
              JB     P3.2,LOOP4
              CLR    P3.4                    ;逆时针返回
              SETB   P3.5
              AJMP   Middleloop              ;判断奶瓶开关--是否按下
LOOP4:        JNB    P1.7,STOP
              JB     P3.3,Middleloop
              SETB   P3.4                    ;顺时针转动
              CLR    P3.5
Middleloop:   JNB    P1.7,STOP
              JNB    P3.1,UP21               ;奶瓶开关--按下循环判断--上/下限

位开关
              AJMP   START1                  ;奶瓶开关--无按下回到初始状态
;************* ON/OFF停止子程序

*****************************************************
STOP  :       JB     P3.2,UP3                ;判断--下限位开关--是否-接触到
              AJMP   UP31
UP3:          JB     P3.3,DOWN3              ;判断--上限位开关--是否-接触到
              AJMP   LOOP5
DOWN3:        SETB   P3.4                    ;预设顺时针转动
              CLR    P3.5
LOOP5:        JB     P3.3,UP31
              CLR    P3.4                    ;马达停止
              CLR    P3.5    
              AJMP   MAIN                    ;回到开机初始状态
UP31:         JB     P3.2,LOOP5
              CLR    P3.4                    ;逆时针返回
              SETB   P3.5
              AJMP   LOOP5                   ;再判断--上限位开关--是否-接触到
;*************延时节10MS子程序

******************************************************
DL10MS:       MOV  R6,#200
DL1:          MOV  R7,#250
DL2:          DJNZ  R7,DL2
              DJNZ  R6,DL1
              RET
              END

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
    JETTA会员 于12日评论道: 查看全部评论  
c4是复位用的,c1是高频滤波用的
    yhly8051 于10日评论道: 查看全部评论  
先看了下电路,双端输入双端输出差分式放大电路。 有个问题: 上电复位电路的两个滤波电容C1、C4有何特殊用意?
发表评论


点评: 字数
姓名:
赞助商广告