PIC16系列的C语言延时子程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PIC16系列的C语言延时子程序

//********************************************

// 主芯片采用PIC16F630;4M晶振。

// us级延时3个,使用固定延时方式,分别是:

// Delay_1us();

// Delay_10us();

// Delay_100us();

// 精确度为100%

// ms级延时1个,使用填值方式,可以任意写入值

// Delay_1ms(1~10000);

// 固定误差:+24us

// 此文由lishenglin24于2011.8.13编写,经仿真验证。

//********************************************

#define Delay_1us() asm("nop")

//********************************************

#define Delay_10us() asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop"); asm("nop");asm("nop")

//********************************************

void Delay_100us()

{

Delay_10us(); //1

Delay_10us(); //2

Delay_10us(); //3

Delay_10us(); //4

Delay_10us(); //5

Delay_10us(); //6

Delay_10us(); //7

Delay_10us(); //8

Delay_10us(); //9

Delay_1us(); //6us

Delay_1us();

Delay_1us();

Delay_1us();

Delay_1us();

Delay_1us();

}

//*******************************************

void Delay_ms(unsigned int ms)

{

unsigned int j;

for(j=ms;j>0;j--)

{

Delay_100us(); //1

Delay_100us(); //2

Delay_100us(); //3

Delay_100us(); //4

Delay_100us(); //5

Delay_100us(); //6

Delay_100us(); //7

Delay_100us(); //8

Delay_100us(); //9

Delay_10us(); //86us

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_10us();

Delay_1us();

Delay_1us();

Delay_1us();

Delay_1us();

Delay_1us();

Delay_1us();

}

}

//*******************************************

相关文档
最新文档