同一功能的函数针对不同对象,如何实现啊!

有4个电机A,B,C,D!
设定sbit A,B,C,D四个引脚
想写一个通用的函数,用于调速。
设定一个形参,调用函数的时候,把想要调速的电机传进来。要怎么弄啊!

但是难不成必须写四个函数?


//c51 中 sbit 不能在函数中传递参数。C51 也没有 bit 指针。
void control(sbit x) //这样肯定是不行的
void control(sbit *x) //这样肯定是不行的


//不过可以先做个 IO 的驱动
比如2个电机,每个电机 2 个 IO 
sbit A0 = P1^0;    //电机0
sbit B0 = P1^1;    //电机0
sbit A1 = P1^2;    //电机1
sbit B1 = P1^3;    //电机1

void set_ioa(char moto,bit var)
{
    if(moto == 0)
        A0 = var;
    if(moto == 1)
        A1 = var;
}

void set_iob(char moto,bit var)
{
    if(moto == 0)
        B0 = var;
    if(moto == 1)
        B1 = var;
}

void control(char moto,char speed)
{
    set_ioa(moto,0);
    set_iob(moto,1);
}

void control(char moto,int speed)
{
}