Chinaunix首页 | 论坛 | 博客
  • 博客访问: 610951
  • 博文数量: 262
  • 博客积分: 8433
  • 博客等级: 中将
  • 技术积分: 2141
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 09:37
文章分类

全部博文(262)

文章存档

2012年(1)

2011年(168)

2010年(92)

2009年(1)

分类: C/C++

2010-12-15 22:08:35

我的延时程序:

/*
 * 文件:delay.h
 * 时间:2010-12-14
 * 作用:延时程序
 * 说明:晶振-115200/12M
 */

#ifndef __DELAY_H_
#define __DELAY_H_

#define RATE_110592    //定义晶振频率


#ifdef RATE_110592
//延时1ms

 void delay_ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0xfc;
        TL0=0x66;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }
 //延时10ms

 void delay_10ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0xdc;
        TL0=0x0;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }

//延时50ms

 void delay_50ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0x4c;
        TL0=0x0;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }

#endif //RATE_115200


 #ifdef RATE_12M

//延时1ms


 void delay_ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0xfc;
        TL0=0x18;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }
 //延时10ms

 void delay_10ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0xd8;
        TL0=0xf0;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }
 //延时50ms

 void delay_50ms(unsigned int ms)
 {
     unsigned int i;
    for(i=0;i<ms;i++)
    {
         TMOD=0x01;    //定时器0,工作在模式1

        TF0=0;         //清溢出标志位,软清零

        TH0=0x3c;
        TL0=0xb0;
        TR0=1;        //启动定时器0

        while(TF0==0){;}    //定时器无溢出,循环等待

        TR0=0;    //关闭定时器0

    }
 }

 #endif    //RATE_12M


 #endif    

文件: lights.rar
大小: 9KB
下载: 下载
阅读(811) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~