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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4215|回復: 2
收起左側

89c51控制42步進電機轉動一定角度,轉動角度不對,求指教!!!

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
ID:255195 發表于 2017-11-29 14:53 | 顯示全部樓層 |閱讀模式
本帖最后由 suellasun 于 2017-11-29 14:56 編輯

#include<reg51.h>
#define MotorTabNum 5
unsigned char T0_NUM;
unsigned char END_FLAG = 0;

sbit MotorEn = P2^1;     // 使能
sbit FX = P2^0;          // 方向
sbit CLK = P2^2;         // 脈沖
unsigned char g_MotorSt = 0;     // 啟停
unsigned char g_MotorDir = 0;    // 正反
unsigned int SET_MotorPulse = 0;  //相應角度對應的脈沖數量
unsigned int CLK_OUT_NUM = 0;  // 脈沖計數
signed int MotorSpedNum = 0;      // 速度檔
float CUR_MotorAngle = 0.0;   // 當前角度
int MotorAngle;      
unsigned char MotorTab[6] = {12, 10, 8, 6, 4, 2};

signed char g_MotorNum = 0;
//--------------
void delayms(xms);
void mDelay(unsigned int DelayTime);  //延時函數
void T0_Init();
unsigned char Recive();
void SecondPro();
// 串口接收主程序
void main(void)
{
unsigned char lsData = 0;
T0_Init();      // 定時器0 1 初始化
MotorEn = 0;     // 使能關閉
FX = 0;          // 方向
while(1)
{
  lsData = Recive();
  if(lsData == 'A')      
  {
   MotorAngle=90;
   SET_MotorPulse=(unsigned int)((MotorAngle/0.9)*8.0);
   SecondPro();  
  }
}
}
void SecondPro()
{
if (END_FLAG)   // 角度目標達到
{
  END_FLAG = 0; // 清
  g_MotorSt = 0; // 電機關閉標志
  MotorEn = 0;
}
else
{
  TR0 = 1; //開啟定時器
  g_MotorSt = 1;//開電機
  MotorEn = 1;  //電機使能
}
}

/********定時器初始化***********************************************************/

void T0_Init()
{
TMOD = 0x21;   //定時器0 1
SCON |= 0x50;
PCON |= 0x00;
TH0 = (65535-100)/256;  // 1ms
TL0 = (65535-100)%256;
TH1 = 0xf3;    // 12MHZ    2400波特率
TL1 = 0xf3;
EA = 1;
ET0 = 1;
TR1 = 1;
REN = 1;
}  
void Timer0_Init()    ////////
{
TMOD = 0x20;
SCON = 0x50;
PCON = 0x00;
TH1 = 0xf3;    // 12MHZ    2400波特率
TL0 = 0xf3;
TR1 = 1;
REN = 1;
}
unsigned char Recive()   // 串口接收程序
{
unsigned char  date;
while(RI == 0);
  RI = 0;
date = SBUF;
return date;
}
/********定時器中斷*****************/
void T0_time() interrupt 1
{
TH0 = (65535-100)/256;   
TL0 = (65535-100)%256;
T0_NUM++;
if(T0_NUM >= MotorTab[g_MotorNum]) // 增加按鍵g_MotorNum++   減小按鍵g_MotorNum--
{
  T0_NUM = 0;
  CLK=CLK^0x01;        //   輸出脈沖
  CLK_OUT_NUM++;  
  if(CLK_OUT_NUM >= SET_MotorPulse) // 達到角度目標
  {
   CLK_OUT_NUM = 0;       // 脈沖清空
   TR0 = 0;               // 關閉定時器
   END_FLAG = 1;          // 目標達到標志
  }
}
}  
/********延時函數***********************************************************/
void delayms(xms)
{
  unsigned int x,y;
  for(x=xms;x>0;x--)
   for(y=110;y>0;y--)
   ;
}

回復

使用道具 舉報

ID:74784 發表于 2017-11-29 22:31 | 顯示全部樓層
很想幫你
可惜看不懂C語言
回復

使用道具 舉報

ID:661664 發表于 2019-12-26 10:35 | 顯示全部樓層
樓主怎么解決的啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品久久久久 | 99精品一区二区 | 午夜私人影院在线观看 | 日本午夜视频 | 91精品导航| 久久一区二区三区四区五区 | 日韩毛片在线观看 | 欧美精品一区二区三区在线 | 精品欧美一区二区中文字幕视频 | 日本在线精品视频 | 中文字幕高清在线 | 亚洲毛片| 欧美一级黄色免费看 | 成人小视频在线免费观看 | 欧美一级免费观看 | 亚洲综合视频 | 成人在线视频一区 | 91xxx在线观看 | 日韩在线免费视频 | 欧美亚洲成人网 | 人人看人人干 | 国产一区二区三区四区 | 精品一区在线 | 久久久久亚洲精品 | 久久69精品久久久久久久电影好 | 米奇7777狠狠狠狠视频 | 日韩欧美国产一区二区三区 | 97色综合| 男女羞羞视频大全 | 欧美白人做受xxxx视频 | 色综合天天综合网国产成人网 | 亚洲一区精品在线 | 亚洲在线一区 | 在线看av网址 | 91精品久久久久久久久中文字幕 | 国产中文字幕网 | 黄色骚片| 国产在线观看一区二区三区 | 欧美多人在线 | 精品国产一区二区国模嫣然 | 久草热视频|