c51中c语言函数,c51语言在标准c语言的基础上

c51定时计数C语言代码

#includereg51.h

创新互联建站专注于仁布网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供仁布营销型网站建设,仁布网站制作、仁布网页设计、仁布网站官网定制、微信小程序定制开发服务,打造仁布网络公司原创品牌,更为您提供仁布网站排名全网营销落地服务。

#includeINTRINS.h

#define u16 unsigned int

#define u8 unsigned char

/*********************************************************/

u8 ds[3]; //数码管显示缓存

//共阳

code u8 w[]={0x01,0x02,0x04,0x08}; //位码

code u8 d[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,};//断码

void dispaly(){//显示函数

static u8 a;

if(++a=3)a=0;

P0=0xff;

P2=w[a];

P0=d[ds[a]];

}

/****************************************/

void init() //初始化函数

{   TMOD=0x01;

TH0=(65536-1000)/256;

TL0=(65536-1000)%256;

EA=1;

ET0=1;

}

u16 count=0; //计数

u16 V=0;//速度

u16 js;//计时

u8 mc=P1^1;//脉冲引脚

u8 tt=0xff;

void smmc(){

tt=1;

if(mc)tt|=0x01;

if((tt0x03)==0x02){//下降沿脉冲

if(count65535)count++;

}

}

/***********************************/

void main()//主函数

{

init();//系统初始化

TR0=1; //定时器开始计时

while(1){

ds[0]=V/100%10; //计数送到数码管显示缓存中

ds[1]=V/10%10;

ds[2]=V%10;

smmc();

if(js=10000){//10s

js=0;

V=4*count/10+2;//计算速度

count=0;

}

}

}

/****************************/

void timer0() interrupt 1//1ms定时器

{   

TH0=(65536-1000)/256;//重载初值

TL0=(65536-1000)%256;

dispaly();//显示

js++;

}

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、在延时子程序设计时,要进行循环体嵌套时,采用先内循环,再减减比先减减,再内循环要好。

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

#include stdlib.h

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

dat = rand() ;

单片机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语言中定义的库函数不同;与标准c的输入输出处理不相同;与标准c在函数使用方面也有一定的区别。数据类型和标准c语言中的数据类型有一定的区别,变量类型比如int类型占用空间不一样,像特殊位型sbit在标准c中就没有;变量中的存储模式与标准c语言中的变量的存储模式不相同,C51存储类型有ddata、bdata、idata等多种;与标准c的输入输出处理不相同;与标准c在函数使用方面有一定的区别。

单片机C51语言是建立在标准c语言架构基础上的,两者基本语法和结构是相通、一样的,但是单片机C51语言由于加入了对单片机I/O口,寄存器的控制,所以才与标准c语言有所差异。

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语言函数,c51语言在标准c语言的基础上
文章网址:http://pwwzsj.com/article/dseceij.html