#define CPU_F ((double)20000000) //1000000为MCLK=1MHZ 的意思
//#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
//#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
#define delay_us(A) __delay_cycles( (unsigned long) ( (double)(CPU_F) *((A)/1000000.0) + 0.5))
#define delay_ms(A) __delay_cycles( (unsigned long) ( (double)(CPU_F)*((A)/1000.0) + 0.5))
#define delay_s(A) __delay_cycles( (unsigned long) ( (double)(CPU_F)*((A)/1.0) + 0.5))
以前用的是这种,后来发现并不准确,请大家帮帮忙啊~~