当前位置: 代码迷 >> 单片机 >> 51单片机中,怎么在函数中给引脚命名,如A1=P0^1
  详细解决方案

51单片机中,怎么在函数中给引脚命名,如A1=P0^1

热度:183   发布时间:2016-04-28 14:45:19.0
51单片机中,如何在函数中给引脚命名,如A1=P0^1
请问如何在函数中命名引脚,如
//两个函数在同一个程序中。以下为示例需求
void test()
{
        P1_3= P1^3;
}

void ceshi()
{
        P1_4= P1^3;
}

void main()
{
       test();
       ceshi();
}
一般需要在程序头部定义 sbit P1_1=P1^1,这个我知道。但是用什么办法可以实现以上功能呢?即在程序中给引脚改名
------解决思路----------------------
有人问过这问题的
最终目的就是实现IO口的参数化,原帖不好找了

你这个可以这样
sbit sda1=P1^1;
sbit sda2=P1^2;
void sda_set(uchar chn)
{
  switch(chn)
  {
    case 1:sda1=1;break;
    case 2:sda2=1;break;
.....
  }
}
void sda_clr(uchar chn)
{
    ......
}
void scl_set(uchar chn)
{
   ...
}
......

//然后把I2C的函数也改成带参数的
void i2c_ack(uchar chn)
{
     scl_clr(chn);
     sda_set(chn);
scl_set(chn);
     scl_clr(chn);
}
......
void i2c_sendbuye(uchar chn, uchar dat)
{

}

     

  相关解决方案