单片机c51c语言函数 c51单片机c语言编程

C51函数是如何调用在你原来的函数基础上,加上三个参数,分别是:
1 要操作的PORT口
2 要进行的操作
3 要操作的引脚
当然,如果你的目标很明确,可以把以上三个参数裁剪掉一些,利于系统的效率提高.
下面是我写的示例程序,你可能参考一下:
#includereg52.h
#define Pin00x01
#define Pin10x02
#define Pin20x04
#define Pin30x08
#define Pin40x10
#define Pin50x20
#define Pin60x40
#define Pin70x80
#define OPT_CPL 0x00 //----取反某位操作
#define OPT_CLR 0x01 //----清零某位操作
#define OPT_SET 0x02 //----置一某位操作
void Operate(
/*这里写你原来的参数,*/
unsigned char Port_Num,
unsigned char Opr_Style,
unsigned char Pins
)
{
//----如果在单片机PORT口范围之内 , 刚读取当前PORT口的状
//----如果不在范围之内,死循环
//----注意,为了效率起见,这个部分可以根据实际应用进行裁剪
if(Port_Num == 0)
{
Port_Num = P0;
【单片机c51c语言函数 c51单片机c语言编程】}
else if(Port_Num == 1)
{
Port_Num = P1;
}
else if(Port_Num == 2)
{
Port_Num = P2;
}
else if(Port_Num == 3)
{
Port_Num = P3;
}
else
{
while(1);
}
//----如果是取反相应位,进行异或操作
//----如果清零相应位,则位与操作
//----如果置位相应位,则位或操作
//----如果都不在范围之内,则死循环
//----这段代码也根据实际情况裁剪
if(Opr_Style == OPT_CPL)
{
Port_Num ^= Pins;
}
else if(Opr_Style == OPT_CLR)
{
Port_Num = ~Pins;
}
else if(Opr_Style == OPT_SET)
{
Port_Num |= Pins;
}
else
{
while(1);
}
//----如果在单片机PORT口范围之内,刚读取当前PORT口的状
//----如果不在范围之内,死循环
//----注意,为了效率起见,这个部分可以根据实际应用进行裁剪
if(Port_Num == 0)
{
P0 = Port_Num;
}
else if(Port_Num == 1)
{
P1 = Port_Num;
}
else if(Port_Num == 2)
{
P2 = Port_Num;
}
else if(Port_Num == 3)
{
P3 = Port_Num;
}
else
{
while(1);
}
//----以上的内容,可根据实际情况进行裁剪,以实现程序最优化
//----添加你的功能的其他代码---------------
}
void main(void)
{
//----使用示例:函数功能的同时,置位P2口的P2.0,P2.5,P2.7
Operate(/*这里写你原来的参数*/2,OPT_SET,(Pin0|Pin5|Pin7));
//----使用示例:函数功能的同时,清零P1口的P1.2,P1.5,P2.6
Operate(/*这里写你原来的参数*/1,OPT_CLR,(Pin2|Pin5|Pin6));
}
单片机C51中c语言函数(-nop-())求助extern void_nop_(void);//空操作,相当于8051的NOP指令
extern bit_testbit_ (bit);//测试并清零位,相当于8051的JBC指令
extern unsigned char _cror_(unsigned char, unsigned char);//字符循环右移
extern unsigned int_iror_(unsigned int,unsigned char); //整数循环右移
extern unsigned long _lror_(unsigned long, unsigned char); //长整数循环右移
extern unsigned char _crol_(unsigned char, unsigned char); //字符循环左移
extern unsigned int_irol_(unsigned int,unsigned char); //整数循环左移
extern unsigned long _lrol_(unsigned long, unsigned char); //长整数循环左移
extern unsigned char _chkfloat_(float);//测试并返回源点数状态
看你的要求~~
C51单片机怎么用C语言实现数值的开方和平方运算?C51是基于标准的C语言扩展而来的单片机c51c语言函数 , 所以单片机c51c语言函数,标准C语言能做的东西,C51也可以 。
平方运算,自不必说,就是两个数相乘:
例如:float a,b,c; c = a*b;
开方 , 则需要用到库函数:
标准c语言里用的是 sqrt()函数,这个函数包含在math.h文件中 。
所以:
#include math.h
c = sqrt(a);
就可以单片机c51c语言函数了
单片机c51c语言函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c51单片机c语言编程、单片机c51c语言函数的信息别忘了在本站进行查找喔 。

    推荐阅读