久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5045|回復: 0
打印 上一主題 下一主題
收起左側

單片機步進電機直線插補程序

[復制鏈接]
跳轉到指定樓層
樓主
電路原理圖如下:


直線插補程序
//****************************************
//假設步進電機的步距角=90
//假設滾珠絲杠與步進電機直聯,導程=4mm
//****************************************

#include<reg51.h>  
#include<intrins.h>  //包含_nop_()函數定義的頭文件
#define uchar unsigned char
#define uint unsigned int
sbit RS=P2^5;    //寄存器選擇位
sbit RW=P2^6;    //讀寫選擇位
sbit E=P2^7;     //使能信號位
sbit M1=P1^0;
sbit M2=P1^1;
sbit M3=P1^2;
sbit M4=P1^3;
sbit M5=P1^4;
sbit M6=P1^5;
sbit M7=P1^6;
sbit M8=P1^7;
char b=-1;
char by=-1;
char F=0;     //偏差函數
char x=13;     //X軸的終點坐標
char y=16;     //Y軸的終點坐標
uint NT=0;     //總步數
uint N=0;
uchar string1[ ]={"X-Position="};
uchar string2[ ]={"Y-Position="};
//延時
void DelayMS(uint dm)
{
uchar i;
while(dm--)
{
  for(i=0;i<120;i++);

}
}
void delay(uchar d)
{
    uchar i,j;
    for(i=d;i>0;i--);
    for(j=120;j>0;j--);
}

//********************寫指令
void WriteInstruction(uchar dictate)
{  
  RS=0;                 //根據規定,RS和R/W同時為低電平時,可以寫入指令
   RW=0;  
    E=0;                  //E置低電平(寫指令時,E為高脈沖),就是讓E從0到1發生正跳變,所以應先置"0"
    P0=dictate;            //將數據送入P0口,即寫入指令或地址
    delay(1);
    E=1;                   //E置高電平
        //_nop_();
        //_nop_();
        //_nop_();
        //_nop_();         //空操作四個機器周期,給硬件反應時間
     E=0;                  //當E由高電平跳變成低電平時,液晶模塊開始執行命令
}

//*********************寫數據
void WriteData(uchar dat)
{
      RS=1;          //RS為高電平,RW為低電平時,可以寫入數據
      RW=0;
      E=0;           //(寫指令時,E為高脈沖, 就是讓E從0到1發生正跳變,所以應先置"0"
      P0=dat;        //將數據送入P0口,即將數據寫入液晶模塊
      delay(1);
      E=1;           //E置高電平
      E=0;           //當E由高電平跳變成低電平時,液晶模塊開始執行命令
}

//*******************初始化
void Init(void)
{
WriteInstruction(0x38);    //顯示模式設置:16×2顯示,5×7點陣,8位數據接口/111000
  WriteInstruction(0x0c);    //顯示模式設置:顯示開,無光標/1100
  WriteInstruction(0x06);    //顯示模式設置:光標右移,字符不移/110
  WriteInstruction(0x01);   //清屏幕指令,將以前的顯示內容清除/1
}

//偏差函數F>=0,F=F-y;  F<0, F=F+x
//*******************主函數
void XAXIS(void)
{if (b<4)
     { b=b+1;
          switch (b)
         {
         case 0:
             M1=1;
                DelayMS(360);
             M1=0;
             M2=1;
     break;
             case 1:
           M2=1;
                 DelayMS(360);
       M2=0;
           M3=1;
     break;
            case 2:
              M3=1;
                 DelayMS(360);
           M3=0;
           M4=1;
     break;
            case 3:
             M4=1;
                DelayMS(360);
       M4=0;
          M1=1;
    b=-1;
     break;
        }
    }
}

void YAXIS(void)
{if (by<4)
     {  by=by+1;
       switch (by)
         {
         case 0:
             M5=1;
                DelayMS(360);
             M5=0;
             M6=1;
        break;
             case 1:
           M6=1;
                 DelayMS(360);
       M6=0;
           M7=1;
     break;
          case 2:
              M7=1;
                 DelayMS(360);
           M7=0;
           M8=1;
     break;
           case 3:
             M8=1;
                DelayMS(360);
       M8=0;
          M5=1;
    by=-1;
     break;
        }
   }
}

void main(void)         
{
  uchar a;
  char xx=0;
  char yy=0;
  NT=x+y;
  Init();
  while(N<NT)
  {
    if (F>=0)
      {N=N+1;
   F=F-y;
   xx=xx+1;
   XAXIS();
       a=0;
         WriteInstruction(0x80);       // 設置顯示位置為第一行的第1個字
         while(a<11)  
         {      
           WriteData(string1[a]);
           a++;
         }
            WriteData(xx/10%10+0x30);
   WriteData(xx%10+0x30);
      }
   if (F<0)
      {N=N+1;
   F=F+x;
   yy=yy+1;
   YAXIS();  
         a=0;
         WriteInstruction(0x80+0x40); // 設置顯示位置為第二行的第1個字
         while(a<11)
         {      
           WriteData(string2[a]);
           a++;
         }   
             WriteData(yy/10+0x30);
       WriteData(yy%10+0x30);
      }
   }
}  


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美一区二区三区在线看 | h片在线看 | 久久国 | 亚洲电影在线播放 | 国产精品特级毛片一区二区三区 | 国产第一页在线观看 | 自拍偷拍精品 | 一区中文字幕 | 国产日本精品视频 | 欧美日韩亚洲二区 | aaa一区 | 91久久久久久久久 | 亚洲欧美中文字幕在线观看 | 岛国精品 | 亚洲视频三 | 亚洲精品专区 | 久久久www成人免费精品 | 国产三区在线观看视频 | 国产 欧美 日韩 一区 | 久久不卡| 欧美精品一区三区 | 91精品成人久久 | 国产精品视频一区二区三区四蜜臂 | 精品视频久久久久久 | 亚洲午夜在线 | 欧洲精品一区 | 久久久久久国产精品久久 | 国产亚洲欧美日韩精品一区二区三区 | 欧美寡妇偷汉性猛交 | av成人在线观看 | 国产一区亚洲 | 在线综合视频 | 精品国产一区二区在线 | 在线观看中文字幕 | 久久国产欧美日韩精品 | 麻豆精品一区二区三区在线观看 | 人人射人人草 | 国产欧美精品区一区二区三区 | 欧美在线a | 成人二区| 中文字幕精品一区久久久久 |