⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 step 080314.c

📁 微型电机的驱动
💻 C
字号:
#include <ht46r51a.h>
#pragma rambank0
char mtp;
unsigned char highbit;
unsigned int percent_light;
unsigned int i,u;
char L_start;
char R_start;
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
#pragma vector isr_c @ 0xc
#pragma vector isr_14 @ 0x14 

//ISR for safequard

void isr_8(){} // timer/event 0

void isr_14(){_nop();
              _nop();
              _nop();} 

void isr_4()
{
}

void io_init()
{
 _pac=0x00;  // "1"=input
 _pa=0x00;
 _pbc=0xff;
 _pb=0x00;
}

void wait(unsigned int t)
{ unsigned int i;
  for(i=0;i<t;i++)
  {
  _delay(5000);
  
  }
}


char left_1(char left)
{
  char result;
  char mid;
  mid=(left<<1);
   _acc=mid;	
   result=_acc;
  _pa=result;
  wait(1);
  _pa=0x00;
  wait(1);
 return result;
}

char right_1(char right)
{
  char result;
  char mid=right;
   _acc=mid;	
   result=_acc;
  _pa=result;
  result=(right>>1);
  result=(result&0x07f);
 _acc=result;
  wait(1);
  _pa=0x00;
 wait(1);
  
 return result;
}

void turn_left()
{
 L_start=left_1(L_start);
  if(L_start==0x80)
   { L_start=0x08;}
}
  
void turn_right()
{
 R_start=right_1(R_start);
 if(R_start==0x08)
  {R_start=0x80;}
}

void wiseclock()
{
 R_start=0x080;
 for(u=0;u<15;u++)
 {
 turn_right();
 }
}

void counter_clock()
{
 L_start=0x08;
 for(u=0;u<15;u++)
 {
  turn_left();
 }
}

void main()
{
  
 io_init();
 _pa=0x00;
 L_start=0x08;
 R_start=0x80;
  while(1)
{
  for(i=0;i<100;i++)
 {counter_clock();
  }
  for(i=0;i<100;i++)
 {
   wait(10);
  
  }
  for(i=0;i<100;i++)
  {
     wiseclock();
  }
  
}
}
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -