历史上的今天
返回首页

历史上的今天

今天是:2025年10月08日(星期三)

正在发生

2022年10月08日 | 51单片机STC12C5A60S2定时器做延时函数,定时器实现精准延时

2022-10-08 来源:csdn

/*======================================================================

利 用 定 时 器 实 现 精 准 延 时 的 调 用 函 数

========================================================================*/

#include

typedef unsigned char u8;

typedef unsigned int u16;

u16 count;   //中断次数变量

bit flag = 0; //标志时间结束

//======================================================================

//                   定 时 器 0 中 断

//======================================================================

void T0()interrupt 1

{

    TH0 = (65536 - 1000) >> 8; //定时1ms中断一次

    TL0 = (65536 - 1000);

    if(flag)

    {

    if(--count == 0)  //计数器自减1,并判断时间是否截止

        flag = 0;     //标志位置0, 延时结束 

}

}

//======================================================================

//                  精准延时函数-单位ms

//======================================================================

void delay_ms(u16 ms)

{

    count = ms; //设定计数器值

    flag = 1; //启动倒计时   

    while(flag);//等待时间结束,标志位则变成0跳出while语句

}

//======================================================================

//                       主  函  数

//======================================================================

void main()

{

    u8 i;

    TMOD = 0x01;

    TR0 = 1;

    ET0 = 1;

    EA = 1;

    while(1)

    {

    P1 = 0xFF;

        for(i = 0; i < 8; i++)

        {

            P1 = P1 >> 1; //8个LED逐渐点亮

            delay_ms(1000); //延时1秒

        }

    }

}

//======================================================================

//

//======================================================================


推荐阅读

史海拾趣

问答坊 | AI 解惑

SIMCOM廉价GPRS模块,在车载终端中高效传输数据之经验

1、稳定的电路,特别是电源,过流能力最好能达3A的瞬间值,模块在空闲状态和发送状态时,电压波动绝对不能超过0.5V2、有足够大发送队列和接收队列,发送队列长度最好能容纳16个数据包以上3、在通讯过程中,一旦超时,即主动断线,重拨,比发送N次不 ...…

查看全部问答>

IIC驱动 为难

要写一个芯片的驱动,是IIC接口的,要求是些8Bytes数据,读8Bytes 本来想自己写个IIC驱动的,但看了下三星BSP里面有IIC的驱动,所以想移植一下,结果,发现它里面的东西真的好多, 如果自己写的话,   好不好做?    ---- ...…

查看全部问答>

Marvell PXA300 解决方案

深圳飞昂科技有限公司 本公司主要承接各类消费电子和工业控制解决方案,提供WinCE和Linux的各类软件服务。并长期供应 Marvell PXA300开发板和 Marvell PXA300 CPU。 …

查看全部问答>

请问VS 2005 PPC 2003 能用 ADO CE3.1访问 SQL MOBILE 数据库吗?

我已经做了用ADO CE访问 SQL CE 2.0的程序,现在想换SQL MOBILE 2005数据库,请问能继续使用ADO CE访问吗? 求助!!!!!!!!1 …

查看全部问答>

请问一下,可否直接控制USB端口的两个数据线的高低状态

不是做这方面的,想知道后再学习这方面的知识 谢谢…

查看全部问答>

好久没来了,放分

haha,有点亲切。。。。。哈哈…

查看全部问答>

由多个正弦信号叠加的信号怎么检测

     最近想做一个多信号检测器。要求是要对由多个频率和幅度都不同的正弦信号叠加成的信号进行分析。要检测出该复合信号所包含哪几种正弦信号信息,并测出每个正弦信号的频率和幅度。有哪位大神给点想法的?…

查看全部问答>

TPS7A4901没有电压输出!

用SOP-8转接板加洞洞板焊接了一块TPS7A4901的TI官网推荐连接电路图。输入用的是12的开关电源,Vin和Ven电压都是14V,为什么Vout为0呢?    电容用的是两个6.8uf和两个104的。电阻一个是2K,另一个为50K的可变电阻器。希望可以手动调节输 ...…

查看全部问答>