189 8069 5689

单片机c51c语言函数 c51单片机指令大全

C51函数是如何调用

在你原来的函数基础上,加上三个参数,分别是:

创新互联公司服务项目包括武威网站建设、武威网站制作、武威网页制作以及武威网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,武威网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到武威省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1 要操作的PORT口

2 要进行的操作

3 要操作的引脚

当然,如果你的目标很明确,可以把以上三个参数裁剪掉一些,利于系统的效率提高.

下面是我写的示例程序,你可能参考一下:

#includereg52.h

#define Pin0 0x01

#define Pin1 0x02

#define Pin2 0x04

#define Pin3 0x08

#define Pin4 0x10

#define Pin5 0x20

#define Pin6 0x40

#define Pin7 0x80

#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;

}

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语言实现数值的开方和平方运算?

C51是基于标准的C语言扩展而来的,所以,标准C语言能做的东西,C51也可以。

平方运算,自不必说,就是两个数相乘:

例如:float a,b,c; c = a*b;

开方,则需要用到库函数:

标准c语言里用的是 sqrt()函数,这个函数包含在math.h文件中。

所以:

#include math.h

c = sqrt(a);

就可以了

单片机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); //测试并返回源点数状态

看你的要求~~

51单片机中,指针函数 在C语言程序 如何使用?

你好,比较方便的实现方式是在函数的外部申请数组;在调用函数的时候传入数组的地址进行操作。如果一定要在子函数内部申请空间并返回地址,那么需要在子函数内部动态申请内存空间。具体的方法一般是使用标准库中的malloc函数。对于c51函数库,参考这个链接:


分享题目:单片机c51c语言函数 c51单片机指令大全
转载源于:http://jkwzsj.com/article/dojsjis.html

其他资讯