单片机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://myzitong.com/article/dojsjis.html