单片机c51中c语言函数 单片机c语言编程300例c51

C51单片机用C语言写个随机函数该如何写呢?最好不要加载其它头文件的,能否实现呢?

#include stdlib.h

成都创新互联2013年开创至今,是专业互联网技术服务公司,拥有项目成都网站建设、成都网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元龙湖做网站,已为上家服务,为龙湖各地企业和个人服务,联系电话:028-86922220

srand(dat); //初始化随机种子,使用该函数需要上面的头文件。如果不要这个,每次开机,对应的随机数都是相同的. dat 也是需要是个随机数,一般可以用掉电存储的方式来读取。

dat = rand() ;

单片机C51中c语言函数(-nop-())求助

怎么用?

直接调用就行了啊

这几个内部函数实际上就是汇编指令,为了能在C中方便调用才做个函数

比如

_nop_();

NOP

bit _testbit_(bit);

i=_testbit_(j);

SETB C

JBC 0x20.1,L

CLR C

L:

MOV 0x20.0,C

单片机C语言编程,要使用C语言自带的库函数,使用哪个宏包含命令?

使用#include调用库函数。

C51语言的编译器中包含有丰富的库函数,使用库函数可以大大简化用户程序设计的工作量,提高编程效率。每个库函数都在相应的头文件中给出了函数原型声明,在使用时,必须在源程序的开始处使用预处理命令#include将有关的头文件包含进来。

C51库函数中类型的选择考虑到了8051单片机的结构特性,用户在自己的应用程序中应尽可能地使用最小的数据类型,以最大限度地发挥8051单片机的性能,同时可减少应用程序的代码长度。

单片机c语言编程是基于C语言的单片机编程。单片机的C语言采用C51编译器(简称C51)。由C51产生的目标代码短,运行速度高,存储空间小,符合C语言的ANSI标准,生成的代码遵循Intel目标文件格式,而且可与A51汇编语言PL/M51语言目标代码混合使用。51单片机支持三种高级语言,即PL/M,C和BASIC。C语言是一种通用的程序设计语言,其代码率高,数据类型及运算符丰富,并具有良好的程序结构,适用于各种应用的程序设计,是使用较广的单片机编程语言。

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

}

51单片机C语言中delay函数是怎么定义和使用的?

定义一个延时xms毫秒的延时函数

void delay(unsigned int xms) // xms代表需要延时的毫秒数

{

unsigned int x,y;

for(x=xms;x》0;x--)

for(y=110;y》0;y--);

}

使用:

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms》0;Ms--)

for(i=26;i》0;i--);

}

i=[(延时值-1.75)*12/Ms-15]/4

扩展资料

1、在C51中进行精确的延时子程序设计时,尽量不要或少在延时子程序中定义局部变量,所有的延时子程序中变量通过有参函数传递。

2、在延时子程序设计时,采用do…while,结构做循环体要比for结构做循环体好。

3、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。

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

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


网页题目:单片机c51中c语言函数 单片机c语言编程300例c51
浏览路径:http://pwwzsj.com/article/hgcggd.html