Delay.c
/***********************************************************************************************************
* 文 件 名:Delay.c
* 芯 片:STC12C5A60S2
* 晶 振:12MHz
* 創(chuàng) 建 者:冷月
* 創(chuàng)建日期:2010.8.20
* 修 改 者:
* 修改日期:
* 功能描述:?jiǎn)纹瑱C(jī)us和ms級(jí)延時(shí),適用于12MHz的12T和1T單片機(jī)
***********************************************************************************************************/
#include "Delay.h"
#define uchar unsigned char
#define uint unsigned int
/***************************************************************************************************
* 函 數(shù) 名:DelayUs12T
* 功能描述:12T單片機(jī)us級(jí)延時(shí),7us~515us,精度2us
* 輸入?yún)?shù):delayUsVal = (t-5)/2
* 返 回 值:無(wú)
******************************************************************************************************/
void DelayUs12T(uchar delayUsVal)
{
while (--delayUsVal);
}
/******************************************************************************************
* 函 數(shù) 名:DelayUs1T
* 功能描述:1T單片機(jī)us級(jí)延時(shí),2us~85us,精度1us
* 輸入?yún)?shù):delayUsVal = 3t - 3
* 返 回 值:無(wú)
****************************************************************************************/
void DelayUs1T(uchar delayUsVal)
{
while (--delayUsVal);
}
/*******************************************************************
* 函 數(shù) 名:DelayMs12T
* 功能描述:12T單片機(jī)ms級(jí)延時(shí)
* 輸入?yún)?shù):delayMsVal:延時(shí)多少ms,1ms~65535ms
* 返 回 值:無(wú)
***************************************************************/
void DelayMs12T(uint delayMsVal)
{ uchar i, j;
while (delayMsVal--)
for (i = 0; i<3; i++)
for (j = 0; j<106; j++);
}
/********************************************************************
* 函 數(shù) 名:DelayMs1T
* 功能描述:1T單片機(jī)ms級(jí)延時(shí)
* 輸入?yún)?shù):delayMsVal:延時(shí)多少ms,1ms~65535ms
* 返 回 值:無(wú)
*********************************************************************/
void DelayMs1T(uint delayMsVal)
{
uchar i, j;
while (delayMsVal--)
for (i = 0; i<10; i++)
for (j = 0; j<169; j++);
}
===============================================================================================================
Delay.h
========================================================================================================
/******************************************************
* 模 塊 名:Delay.h
* 芯 片:STC12C5A60S2
* 晶 振:12MHz
* 創(chuàng) 建 者:冷月
* 創(chuàng)建日期:2010.8.20
* 修 改 者:
* 修改日期:
* 功能描述:12T單片機(jī)和1T單片機(jī)的us級(jí)和ms級(jí)延時(shí)函數(shù)(12T單片機(jī)未測(cè)試), 適用于晶振12MHz
***************************************************************/
#ifndef _DELAY_H_
#define _DELAY_H_
#define uchar unsigned char
#define uint unsigned int
/*********************************************************
* 函 數(shù) 名:DelayUs12T
* 調(diào) 用:DelayUs12T(1--------255);
* 延時(shí)7us------515us
* 延時(shí)* 功能描述:12T單片機(jī)us級(jí)延時(shí),delayUsVal = (t-5)/2
* 延時(shí)時(shí)間t = 2delayUsVal+5,7us~515us,精度2us
**************************************************************/
void DelayUs12T(uchar delayUsVal);
/**********************************************************
* 函 數(shù) 名:DelayUs1T
* 調(diào) 用:DelayUs1T(2);
* 延時(shí)1us
* DelayUs1T(254);
* 延時(shí)85us
* 功能描述:1T單片機(jī)us級(jí)延時(shí),delayUsVal = 3t - 3 > 1
* 延時(shí)時(shí)間t = (delayUsVal+3)/3,2us~85us,精度1us
****************************************************************/
void DelayUs1T(uchar delayUsVal); /*********************************************************
* 函 數(shù) 名:DelayMs12T
* 調(diào) 用:DelayMs12T(100);
* 延時(shí)100ms
* 功能描述:12T單片機(jī)ms級(jí)延時(shí),可延時(shí)1ms~65535ms
******************************************************************/
void DelayMs12T(uint delayMsVal);
/**************************************************************
* 函 數(shù) 名:DelayMs1T
* 調(diào) 用:DelayMs1T(100);
* 延時(shí)100ms
* 功能描述:12T單片機(jī)ms級(jí)延時(shí),可延時(shí)1ms~65535ms
*-**************************************************************/
void DelayMs1T(uint delayMsVal);
#endif
|