dcpfm.cpp

来自「大学微型计算机接口技术实验源代码,直接就可以运行,包含了C++和asm代码,比较」· C++ 代码 · 共 117 行

CPP
117
字号
//PFM.CPP
#include<dos.h>
#include<conio.h>
#include<stdio.h>
char *title="Test dc motor use PFM method";
#define PC 0x302
#define CR 0x303
void rotate();
void rotate2();
void rotate4();
void rotate8();
void main()
{
  char ch;
  outportb(CR,0x90);
  outportb(PC,0xff);
 
  clrscr();
  puts(title);

  puts("1------>100% duty cycle");
  puts("2------>50% duty cycle");
  puts("3------>25% duty cycle");
  puts("4------>12% duty cycle");
  puts("5------>exit");

  while(1)
  if(kbhit())
    {
			ch=getch();
			switch(ch)
			  {
				 case '1': rotate();
							break;
				 case '2': rotate2();
break;							
				 case '3': rotate4();
							break;
				 case '4': rotate8();
							break;
				 case '5': return ;
				 default:break;
			     }
		}
  outportb(PC,0xff);
  }
/*-----------------------------------*/
void  rotate8()/*1/8 duty cycle*/
  {
    int c,i,ti=50;
    gotoxy(10,10);
    printf("duty: 12% ");
    for(c=0;c<10;c++)
       {
	 outportb(PC,0);
	 delay(ti);
	 for(i=0;i<8;i++)
	    { outportb(PC,1);
	      delay(ti);
	      }
				 }
    }
/*-----------------------------------*/
void	rotate4()/*1/4 duty cycle*/
  {
    int c,i,ti=50;
    gotoxy(10,10);
    printf("duty: 25%");
    for(c=0;c<10;c++)
       {
	 for(i=0;i<2;i++)
	 {
	   outportb(PC,0);
	   delay(ti);
	   for(i=0;i<3;i++)
	    { outportb(PC,1);
	      delay(ti);
	      }
	   }
	}
  }
/*-----------------------------------*/
void	rotate2()/*1/2 duty cycle*/
  {
    int c,i,ti=50;
    gotoxy(10,10);
    printf("duty: 50%");
    for(c=0;c<10;c++)
       {
	for(i=0;i<4;i++)
	{
	 outportb(PC,0);
	 delay(ti);
	 outportb(PC,1);
	 delay(ti);
	 }
      }
    }
/*-----------------------------------*/
void	rotate()/*100% duty cycle*/
  {
    int c,i,ti=50;
    gotoxy(10,10);
    printf("duty:100%");
    for(c=0;c<10;c++)
       {
	 for(i=0;i<8;i++)
	    {
	      outportb(PC,0);
	      delay(ti);
		outportb(PC,1);
	 	delay(ti);
	      }
	 }
	 outportb(PC,1);
     }

⌨️ 快捷键说明

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