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

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

51單片機驅動步進電機protues仿真

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年08月07日   【字體:

電路圖:
protues仿真文件和完整代碼下載地址:http://www.zg4o1577.cn/bbs/dpj-20399-1.html
下面是部分程序代碼:
#include"reg51.h"
#include"intrins.h"
#include"math.h"
#include"absacc.h"
#define  PORTA  XBYTE[0x8500]
#define  PORTB  XBYTE[0x8502]
#define  PORTC  XBYTE[0x8504]
#define  PORTC0 XBYTE[0x8506]
#define nop _nop_()
#define Right_RUN  1
#define Left_RUN  0
unsigned long RunSpeed=76;
unsigned  char  RUNState=1;
sbit  RS=P2^0;
sbit  RW=P2^1;
sbit  E=P2^2;
sbit P17=P1^7;
bit   flag=0;
unsigned char xx[]="speed(n/min):";
unsigned char SD[]="76";
char  state[2][14]={"direction:cw","direction:ccw"};
unsigned char  FLG,INMA=0;
unsigned  char  t,s=0x01;
unsigned  int   a;
main()
{
  void  OPJIAN();
  unsigned char JIAN();
  unsigned char JIANZHI();
   void  speed();
 void  SHOW_LCD();
 void  show_state();
 void  write1();
 void  writ2(unsigned char i);
 void  delay();
 void time();
 void  busy();
 unsigned  char  i;
  i=0x90;
  PORTC0=i;
  i=0x01;
  TMOD=i;
  t=0x10;
  a=0x0f;
  TH0=0x10;
  TL0=0x0f;
  FLG=INMA; 
  SHOW_LCD();
  show_state();
  EA=1;
  ET0=1;
  TR0=1;
while(1)
{
 i=JIAN();
     if(i!=0)
 {
   time();
   time();
  }
 i=JIAN();
 if(i!=0)
 {
 INMA=JIANZHI();
   OPJIAN();
  time();
 }
  if(FLG!=INMA||flag==1)
   {  FLG=INMA;
  SHOW_LCD();
      show_state();
  flag=0;
  }
  }
  }
 void SHOW_LCD()/*lcd設置程序*/
 {
  P1=0x38;
  write1();
  delay();
  P1=0x38;
  write1();
  delay();
  P1=0x38;
  write1();
  delay();
  P1=0x01;
  write1();
 delay();
  P1=0x0f;
  write1();
 delay();
  P1=0x06;
  write1();
  delay();
  P1=0x0c;
  write1();
 
 }
void  show_state()/*狀態顯示程序*/
  {
   unsigned char i=0;
   P1=0x80;
 write1();
 while(xx[i]!='\0')
   {
     writ2(xx[i]);
   i++;
   delay();
   }
   i=0;
  while(SD[i]!='\0')
    {
   writ2(SD[i]);
   delay();
   i++;
 
   }
   P1=0xc0;
  write1();
  i=0;
  if(RUNState==Right_RUN)
  while(state[0][i]!='\0')
    {
    writ2(state[0][i]);
    i++;
   }
 else
   if(RUNState==Left_RUN)
    while(state[1][i]!='\0')
     {
     writ2(state[1][i]);
      i++;
    }
   }
void  write1()/*lcd寫控制字*/
 {
   RS=0;
 RW=0;
 E=0;
 busy();
 E=1;
  }
void  writ2( unsigned char i)/*lcd寫數據*/
 { P1=i;
   RS=1;
 RW=0;
 E=0;
   busy();
 E=1;
 }
 
 void delay()/*延時程序*/
{
  unsigned char  i;
  for(i=0;i<100;i++)
    {
    i=i;
  }
 
}
void time()
{ unsigned char i,j;
for(i=0;i<100;i++)
 {
for(j=0;j<30;j++)
 {
   j=j;
  }
  }
}

void busy()         //判斷LCD是否忙
{   
  do
  {
  P1=0xff;
   RS=0;
     RW=1;
     E=0;
   nop;
   E=1;
   }while(P17==1);
 
 }
 unsigned char JIAN()/*判斷是否有鍵按下*/
 {
  unsigned char  i,j;
     i=0xff;
     PORTA=i;
     time();
     i=0x00;
     PORTB=i;
     j=PORTA;
     j=~j;
     j=j&(0x0f);
     return  j;
 }
unsigned char JIANZHI()/*讀鍵值程序*/
 {
   unsigned i,j,d,k,m=1;
  i=0xfe;
  k=0x01;
  do
  {
  PORTB=i;
  j=PORTA;
  m=j&(0x01);
    if(m==0)
    d=k/2;
  else
     {
  m=j&(0x02);
      if(m==0)
     d=k/2+4;
    else
      {
     m=j&(0x04);
      if(m==0)
      d=k/2+8;
       else
      {
       m=j&(0x08);
                  if(m==0)
      d=k/2+12;
      }
         }
       }
 k=k+2;
 i=i<<1;
 i=i|(0x01);
 }while(m!=0);
 return  d;
}
void OPJIAN() /* 鍵值處理程序*/
{
   switch(INMA)
 {
   case 0x08:  {RUNState=Right_RUN;s=0xf7;}break;
   case 0x09:  {RUNState=Left_RUN;s=0x01;}break;
   case 0x0b:  {
            flag=1;
      t=t-2;
      RunSpeed=5000000/(65536-t*256-a);
      speed();}break;
   case 0x0f:  {flag=1;
                t=t+2;
                 RunSpeed=5000000/(65536-t*256-a);
                 speed();}
 }
}
void speed()/*速度處理程序*/
 {
  unsigned  char  i=0;
  SD[0]=RunSpeed/100+48;
  SD[1]=RunSpeed%100/10+48;
  SD[2]=RunSpeed%10+48;
  }
  void time1(void) interrupt 1 using 2
  {

   TR0=0;
   PORTC=s;
 if(RUNState==0)
 {
 s=(s<<1);
 if(s==0x10)
   s=0x01;

 }
   else
 {
  s=s>>1;
 if(s==0x0f)
 s=0xf7;
  }
   TH0=t;
  TL0=a;
  TR0=1;
  }

   
 
 

關閉窗口

相關文章

主站蜘蛛池模板: 91精品欧美久久久久久久 | 成人三级在线观看 | 成人一区二区三区在线观看 | 国产免费一二三区 | 日韩一区二区三区在线 | 国产丝袜一区二区三区免费视频 | www亚洲精品| 久久综合一区二区三区 | 狠狠色狠狠色综合系列 | 91在线色视频 | 日本网站免费在线观看 | 风间由美一区二区三区在线观看 | 99在线资源 | 国产乱人伦 | 不卡欧美| 国产精品毛片无码 | 91久久国产综合久久 | 欧洲精品码一区二区三区免费看 | 国产一区亚洲二区三区 | 91精品国产一区二区三区 | 精品国产乱码久久久久久a丨 | 国产午夜在线 | 日韩国产中文字幕 | 中文字幕一区二区三区不卡 | 黑人精品欧美一区二区蜜桃 | 观看av| caoporn国产精品免费公开 | 亚洲精品av在线 | 久久久久国产一区二区三区四区 | 欧美日韩国产中文字幕 | 一级片网站视频 | 精品粉嫩aⅴ一区二区三区四区 | 日韩在线小视频 | 在线观看日韩精品视频 | 综合自拍| 99久久婷婷国产综合精品电影 | 久草网免费 | 亚洲精品日本 | 九色91视频 | www.亚洲一区二区 | 中文字幕一区二区三区不卡 |