|
在代碼下方點(diǎn)復(fù)制代碼,然后另存到電腦磁盤即可下載.
- /*****************************************************************************
- 單 位:廣西民族大學(xué)物理與電子工程學(xué)院07物本班
- 文件名稱:Delay.h
- 文件標(biāo)識(shí):_DELAY_H_
- 摘 要:AVR系列單片機(jī)的通用軟件延時(shí)頭文件
- 當(dāng)前版本:V1.0
- 作 者: 【白 羽】
- 完成日期:2010年5月1日
- *****************************************************************************/
- #ifndef _DELAY_H_
- #define _DELAY_H_
- #include <BaiYuAvrKu\DataType.h>
- #include <BaiYuAvrKu\NOP.H>
- #ifndef CRYSTAL
- #define CRYSTAL 8.0 //默認(rèn)晶振頻率為8.0MHz(可在主程序文件中修改)
- #endif
- /*****************************************************************************
- 以下三個(gè)宏是參數(shù)預(yù)修正宏,它們?cè)谌我庠O(shè)定的晶振頻率下均能實(shí)現(xiàn)準(zhǔn)確的延時(shí)
- *****************************************************************************/
- #define delay_s(n) delay_ms(1000*(n))
- #define delay_ms(n) wait_ms(((n)*CRYSTAL-0.017)/(CRYSTAL+0.006))
- #define delay_us(n) wait_us((n)>14.0/CRYSTAL?((n)*CRYSTAL-8.0)/6.0:1)
- /*****************************************************************************
- 函數(shù)名稱:wait_us
- 函數(shù)參數(shù):n
- 描 述:延時(shí) 8+6*n 個(gè)時(shí)鐘周期
- *****************************************************************************/
- void wait_us( UINT16 n )
- {
- do{
- n--;
- }while(n);
- }
- /*****************************************************************************
- 函數(shù)名稱:wait_ms
- 函數(shù)參數(shù):n
- 描 述:延時(shí) n 毫秒,約有 17+6*n 個(gè)時(shí)鐘周期的正向誤差
- *****************************************************************************/
- void wait_ms( UINT16 n )
- {
- do{
- delay_us(1000);
- }while(--n);
- }
- #endif
復(fù)制代碼
|
|