C51库函数积累
C51库函数积累:
(1)_chkfloat_:
函数定义:
unsigned char _chkfloat_ ( float val); /* number to check */ 函数功能:_chkfloat_函数检查浮点数val 的类型。
返回值:
_chkfloat_函数返回浮点数val 的类型。
返回值意义
0 标准浮点数
1 浮点0
2 +INF 正溢出
3 -INF 负溢出
4 NaN ⾮数
/*
本实验测试本征库中的_chkfloat_函数:
函数定义:unsigned char _chkfloat_(float val);
返回值:
Return Value Meaning
0 Standard floating-point number.
1 Floating-point value 0.
2 +INF (positive overflow).
3 -INF (negative overflow).
4 NaN (Not a Number) error status.
⽤P1指⽰返回值
*/
函数测试:
#include
#include
unsigned char f[4]={0xff,0xff,0xff,0xff};
void delay(unsigned int time)
{
while(time--);
}
void main()
P2=~_chkfloat_(1.2455); //Standard floating-point number. delay(50000);
P2=~_chkfloat_(0.00); //Floating-point value 0.
delay(50000);
P2=~_chkfloat_(1000000000000000000000000000000000000000000000000000000000000 000.0000000000); //+INF (positive overflow).
delay(50000);
P2=~_chkfloat_(-100000000000000000000000000000000000000000000000000000000000 0000.0000000000); //-INF (negative overflow).
delay(50000);
P2=~_chkfloat_(*((float *)f)); //NaN (Not a Number) error status.
while(1);
}
(2)_crol_:
函数定义:
unsigned char _crol_ ( unsigned char c, /* character to rotate left */
unsigned char b); /* bit positions to rotate */
函数功能:
_crol_函数将⼀个字节c循环左移b位。
返回值:
_crol函数返回将c循环左移b位后的值。
/*
本实验测试本征库中的_crol_函数
函数定义:unsigned char _crol_(unsigned char c,unsigned char b); 返回值:_crol_函数返回将c循环左移b位后的值。
⽤P1指⽰返回值
*/
函数测试:
#include
#include
void delay(unsigned int time)
{
while(time--);
}
void main()
{
unsigned char i;
P2=~0x01;
for(i=0;i<8;i++)
{
P2=_crol_(P2,1);
delay(50000);
}
while(1);
}
(3)_cror_:
函数定义:
unsigned char _cror_ ( unsigned char c, /* character to rotate right */
unsigned char b); /* bit positions to rotate */
函数功能:
_cror_函数将⼀个字节c循环右移b位。
返回值:
_cror_函数返回将c循环右移b位后的值。
/*
本实验测试本征库中的_cror_函数
函数定义:unsigned char _cror_(unsigned char c,unsigned char b); 返回值:_cror_函数返回将c循环右移b位后的值。⽤P1指⽰返回值
*/
函数测试:
#include
#include
void delay(unsigned int time) {
while(time--);
}
void main()
{
unsigned char i;
i=0;
P2=~0x80;
for(i=0;i<8;i++)
{
P2=_cror_(P2,1);
delay(50000);
}
while(1);
}
(4)_getkey:
函数定义:
char _getkey (void);
函数功能:
等待接收串⼝的⼀个字节的数据。
返回值:
从串⼝接收到的字节。
/*
本实验测试标准输⼊输出库中的_getkey函数
函数定义:char _getkey (void);
返回值:从串⼝接收到的字节。
⽤P1指⽰返回值
*/
函数测试:
#include
#include
void delay(unsigned int time)
{
while(time--);
}
void UART_Init() /* 通讯有关参数初始化*/ {
PCON&=0x7f;
TH1=0xfd; /* T1 use sio */
TL1=0xfd; /* 选择通讯速率:0=1200,1=2400,2=4800,3=9600,4=19.2k */ /* T1 use sio */ TMOD=0x21; /* T1=MODE2,sio; T0=MODE1,16bit,use time */
PS=1; /* SIO int high 优先级*/
EA=1;
ET1=0;
SM0=0;
SM1=1; /* SM0=0 SM1=1,mode1,10bit */
SM2=0; /* data int,⽆校验(TB8=bit_duble偶) */
TR1=1;
REN=1;
RI=0;
TI=0;
ES=1;
}
void main()
{
delay(50000);
UART_Init();
P2=0xff;
while(1)
{
P2=_getkey();
}
}
(5)_irol_:
函数定义:
unsigned int _irol_ ( unsigned int i, /* integer to rotate left */
unsigned char b); /* bit positions to rotate */ 函数功能:
对整型数i循环左移b位。
返回值:
i循环左移b位后的值。
/*
本实验测试本征库中的_irol_函数
函数定义:unsigned int _irol_(unsigned int i,unsigned char b); 返回值:i循环左移b位后的值。*/
函数测试:
#includec51中字符串函数
#include
unsigned int test;
void main()
{
test=0xa5a5;

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。