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