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

📄 motor.c

📁 不少单片机C代码
💻 C
字号:
#include <reg51.h>
#define uchar unsigned char
#define uint  unsigned int

uchar time,status,percent,period;
bit one_round;
uint oldcount,target=500;

void pulse(void) interrupt 1 using 1
  {  TH0=(65536-833)/256; /*  1ms--10MHz */
     TL0=(65536-833)%256;
     ET0=1;
     if (++time==percent) P1=0;
     else if (time==100)
      { time=0; P1=1; }
  }

void tachometer(void) interrupt 2   using 2
  { union  { uint word;
                  struct {uchar hi;uchar lo;} byte;} newcount;
    newcount.byte.hi=TH1;
    newcount.byte.lo=TL1;
    period=newcount.word-oldcount;
    oldcount=newcount.word;
    one_round=1;
  }
void main(void)
  {  IP=0x04;  /* set int1 high priority */
     TMOD=0x11; /* T0,T1 16-bit mode */
     TCON=0x54; /* T0,T1 running,  IT1 edge triggered  */
     TH1=0;TL1=0; /* set initial count */
     IE=0x86;   /* enable EX1,ET0 */
     for(;;)
     { if(one_round)
        { if(period<target)
           {  if(percent<100) ++percent;
           }
           else if(percent>0) --percent;
           one_round=0;
        }
      }
  }

⌨️ 快捷键说明

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