自定义函数头文件和C文件

void Long_Str(unsigned long dat,char *str) ;
void Int_Str(unsigned int dat,char *str) ;
void delay100ms(void); // 22.1184MHz
void delay50ms();
void delay10ms(void); // 22.1184MHz
void delay5ms(void); // 22.1184MHz
void delay1ms();
void delay130ms();
void delay35ms();

C文件

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

  • 功能描述:将一个32位长整型变量dat转为字符串,比如把1234转为"1234"
  • 参数说明:dat:待转的long型的变量
    str:指向字符数组的指针,转换后的字节串放在其中
    ******************************************************************/
    #include “myfun.h”
    #include “intrins.h”
    void Long_Str(unsigned long dat,char *str)
    {
    unsigned char temp[11]; // 长整数最大值4294967295,转ASCII码后占用10字节
    unsigned char i=0,j=0;
    while(dat) // 数值转ASCII码,字节在数组中反向排列
    {
    temp[i]=dat%10+0x30;
    i++;
    dat/=10;
    }
    j=i;
    for(i=0;i<j;i++) // 数组交换先后顺序,正向排列
    {
    str[i]=temp[j-i-1]; // C语言中数组下标固定从0开始
    }
    if(!i) {str[i++]=‘0’;} // 函数参数dat=0处理
    str[i]=0; // 由于要使用KEIL自带的字符串处理函数处理,必须有结束标记。
    }
    void Int_Str(unsigned int dat,char *str)
    {
    unsigned char temp[4]; // 长整数最大值4294967295,转ASCII码后占用10字节
    unsigned char i=0,j=0;
    while(dat) // 数值转ASCII码,字节在数组中反向排列
    {
    temp[i]=dat%10+0x30;
    i++;
    dat/=10;
    }
    j=i;
    for(i=0;i<j;i++) // 数组交换先后顺序,正向排列
    {
    str[i]=temp[j-i-1]; // C语言中数组下标固定从0开始
    }
    if(!i) {str[i++]=‘0’;} // 函数参数dat=0处理
    str[i]=0; // 由于要使用KEIL自带的字符串处理函数处理,必须有结束标记。
    }

void delay100ms() //@11.0592MHz
{
unsigned char i, j, k;

_nop_();
i = 6;
j = 157;
k = 59;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}

void delay50ms() //@11.0592MHz
{
unsigned char i, j, k;

i = 3;
j = 207;
k = 28;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}

void delay30ms() //@11.0592MHz
{
unsigned char i, j, k;

_nop_();
_nop_();
i = 2;
j = 175;
k = 220;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}

void delay10ms() //@11.0592MHz
{
unsigned char i, j;

_nop_();
_nop_();
i = 144;
j = 157;
do
{
	while (--j);
} while (--i);

}

void delay5ms() //@11.0592MHz
{
unsigned char i, j;

_nop_();
_nop_();
i = 72;
j = 205;
do
{
	while (--j);
} while (--i);

}

void delay1ms() //@11.0592MHz
{
unsigned char i, j;

i = 15;
j = 90;
do
{
	while (--j);
} while (--i);

}
void delay130ms() //@11.0592MHz
{
unsigned char i, j, k;

_nop_();
_nop_();
i = 8;
j = 76;
k = 26;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}
void delay35ms() //@11.0592MHz
{
unsigned char i, j, k;

_nop_();
_nop_();
i = 2;
j = 247;
k = 172;
do
{
	do
	{
		while (--k);
	} while (--j);
} while (--i);

}

猜你喜欢

转载自blog.csdn.net/lmf666/article/details/87742229
今日推荐