以下延时函数适用于C51系列单片机,晶振频率:12MHZ
- /*******************************************************************************
- * 函 数 名 : Delay50us
- * 函数功能 : 延时函数,延时n*50us
- * 输 入 : n-延时次数
- * 输 出 : 无
- *******************************************************************************/
- void Delay50us(unsigned int n)
- {
- unsigned int a;
- for(; n>0; n--)
- for(a=19; a>0; a--);
- }
- /*******************************************************************************
- * 函 数 名 : Delay10ms (单个)
- * 函数功能 : 延时函数,延时10ms
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Delay10ms(void)
- {
- unsigned char i, j, k;
- for(i=5; i>0; i--)
- for(j=4; j>0; j--)
- for(k=248; k>0; k--);
- }
- /*******************************************************************************
- * 函 数 名 : Delay10ms (多个)
- * 函数功能 : 延时函数,延时n*10ms
- * 输 入 : n-延时次数
- * 输 出 : 无
- *******************************************************************************/
- void Delay10ms(unsigned int n)
- {
- unsigned char a, b;
- for (; n>0; n--)
- {
- for (b=38; b>0; b--)
- {
- for (a=130; a>0; a--);
- }
- }
- }
- /*******************************************************************************
- * 函 数 名 : Delay50ms
- * 函数功能 : 延时函数,延时 n*50ms
- * 输 入 : n-延时次数
- * 输 出 : 无
- *******************************************************************************/
- void Delay50ms(unsigned int n)
- {
- unsigned int j;
- for(; n>0; n--)
- for(j=6245; j>0; j--);
- }
- /*******************************************************************************
- * 函 数 名 : Delay200ms
- * 函数功能 : 延时函数,延时200ms
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Delay200ms(void)
- {
- unsigned char i,j,k;
- for(i=5; i>0; i--)
- for(j=132; j>0; j--)
- for(k=150; k>0; k--);
- }
- /*******************************************************************************
- * 函 数 名 : Delay500ms
- * 函数功能 : 延时函数,延时500ms
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Delay500ms(void)
- {
- unsigned char i, j, k;
- for(i=15; i>0; i--)
- for(j=202; j>0; j--)
- for(k=81; k>0; k--);
- }
- /*******************************************************************************
- * 函 数 名 : Delay1s
- * 函数功能 : 延时函数,延时1s
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void Delay1s(void)
- {
- unsigned char h, i, j, k;
- for(h=5; h>0; h--)
- for(i=4; i>0; i--)
- for(j=116; j>0; j--)
- for(k=214; k>0; k--);
- }
本文作者为mengkun,转载请注明。
补充一个Delay1ms