猿问

我下面的写法经过实验是不行,我想知道怎么才能实现这个功能。

void HuXi_up(uint IO_port)
{
for(pwm_low=1;pwm_low<CYCLE;pwm_low++)
{
IO_port=0;
duty=0;
while(duty<=pwm_low);
IO_port=1;
duty=0;
while(duty<=(CYCLE-pwm_low));
}
}

目的就是我想通过HuXi_up(uint IO_port);这句话,在括号里输入P1^0;,它就在P1^0这个端口运行我的子函数,我输入指定IO就在指定的IO执行程序,我上面的写法经过实验是不行,我想知道怎么才能实现这个功能。

小怪兽爱吃肉
浏览 112回答 1
1回答

阿晨1998

不能把IO口直接当参数,但可以使用变通方法:一、确定输出端口,如P1,这是一个固定不变的端口。二、可以把指定端口的某位当参数传入子函数oid HuXi_up(uint IO_Bit){unsigned char i,mask;mask=1;mask = _crol_(1,IO_Bit)for(pwm_low=1;pwm_low<CYCLE;pwm_low++){P1 = P1 & (~ mask);duty=0;while(duty<=pwm_low);P1 = P1 ^ mask;duty=0;while(duty<=(CYCLE-pwm_low));}}单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能型”,如智能型洗衣机等 。&nbsp;
随时随地看视频慕课网APP
我要回答