您现在所在的是:

单片机论坛

回帖:4个,阅读:3162 [上一页] [1] [下一页]
926
zhaoxukiller
文章数:6
年度积分:50
历史总积分:926
注册时间:2006/3/27
发站内信
发表于:2006/4/20 9:15:00
#0楼
因为是图片 所以不上传了  还没怎么画完
给点程序吧

8051系列

JAJ: CPL P1.0
     PUSH ACC
     PUSH PSW
     PUSH B
     PUSH DPTH
     SETB RS0
     JNB P1.0,JAJ10
     CLR EA
     JNB P1.1,JAJ1
     MOV R0,#32H
     INC @R0

读懂上述程序的放整个程序

R0   中间寄存器
32H~34H  存放绝对位置参数

第一步是改变P1.0电平  自己看看能不能读懂  
跟帖子
919
zwhmail2008
文章数:6
年度积分:50
历史总积分:919
注册时间:2006/4/20
发站内信
发表于:2006/4/22 13:08:00
#1楼
请问有没有四相步进电机的驱动程序啊
zwhmail2008@163.com
910
dahai85
文章数:4
年度积分:50
历史总积分:910
注册时间:2007/3/21
发站内信
发表于:2007/3/21 11:18:00
#2楼
请问有三相步进电机的驱动程序吗?以及硬件原理图,
可以发给鄙人吗?
谢谢!dahai85@163.com.cn
910
dahai85
文章数:4
年度积分:50
历史总积分:910
注册时间:2007/3/21
发站内信
发表于:2007/3/21 11:18:00
#3楼
请问有三相步进电机的驱动程序吗?以及硬件原理图,
可以发给鄙人吗?
谢谢!dahai85@163.com.cn
1121
屏凡
文章数:78
年度积分:50
历史总积分:1121
注册时间:2006/4/21
发站内信
发表于:2007/3/23 8:03:00
#4楼
这个是我实验程序。希望可以给些帮助。
#include<pic.h>

#define uchar  unsigned char
#define uint   unsigned int
#define ulong  unsigned long

__CONFIG(XT&UNPROTECT&PWRTEN&BORDIS&WDTEN);

//asm("FILL  (GOTO   $),(0x0FFF-$)");

union {
     struct {
        unsigned b0:1;
        unsigned b1:1;
        unsigned b2:1;
        unsigned b3:1;
        unsigned b4:1;
        unsigned b5:1;
        unsigned b6:1;
        unsigned b7:1;
        }tpBit;
       unsigned char tpBits;
      } tp;
#define bj0  tp.tpBit.b0
#define bj1  tp.tpBit.b1
#define bj   tp.tpBits  

const  unsigned char table[]={ 0x60,0x30,0x90,0x0C0, };
const  unsigned char tablef[]={0x0C0,0x90,0x30,0x060, };
   

uchar  i;
///////AD 延时子程序////////////////
void  ADdelay (uchar i)
{  
 while(i--) ;
}    

/////// 延时子程序////////////////
void delay(uint i)
{  
 while(i--)
 {
   uchar a=127;
    while(a--);
 }
 
}    


////系统 各I/O初始化子程序////////////////////
void  initial (void)
{   TRISB=0;
   //TRISC=0;
   TRISA=0x0ff;
}
///////A/D转换初始化子程序/////////////////////
void  adinitial()
{
       ADCON1=0;//;设置RA为A/D甬道模拟输入
                  //;RC时钟。打开A/D转换器。先中通道0
      ADCON0=0x0c1;// B'11000001'   // ;A/D时钟为RC。RA0作A/D输入等
              // ADIE=1; //时。开放中断
      ADIF=0; //清/AD中断标志位   PIR1,
              //  PEIE=1; //开放外围部件中断INTCON,
              // GIE=1;   //开放总中断   INTCON,
      TRISA0=1;
      TRISA1=1;
}

//////////////////////////A/D转换/////////////////////////////////////////////////////////
void  AD_ad()
{
        ADCON0=0x0c1;   // B'11001001'   // ;A/D时钟为RC。RA0作A/D输入等
       
        ADdelay(3);//采样时间30us
        ADGO=1;      //启动A/D转换 ADCON0,
        while(ADGO); //等待
 }
 
////////////////主程序///////////////////
void main()
 {
       initial ();  //系统 各I/O初始化子程序
       adinitial();  //A/D转换初始化子程序
       i=250;
      while(1)
      {
          unsigned char   c;
       
        for(c=0;c<4;c++)
             {
              if(bj0)PORTB=table[ c] ;      
          else   PORTB=tablef[ c] ;      
               CLRWDT();
                AD_ad();
               delay(ADRES );
         }
            i--;
             while(i==0)
              {
                i=250;bj0=!bj0;
              }
        }
  }

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

78.0005