qiang2751290
级别: 家园常客
精华主题: 0
发帖数量: 482 个
工控威望: 892 点
下载积分: 463 分
在线时间: 373(小时)
注册时间: 2012-06-03
最后登录: 2024-05-27
查看qiang2751290的 主题 / 回贴
楼主  发表于: 2014-06-02 14:45
51单片机如何长时间延时?

单片机延时一个小时???
hzn19900420
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 122 点
下载积分: 558 分
在线时间: 2(小时)
注册时间: 2014-03-25
最后登录: 2019-11-28
查看hzn19900420的 主题 / 回贴
1楼  发表于: 2014-07-23 01:56
你需要程序延时还是定时器中断了
hzn19900420
级别: 探索解密
精华主题: 0
发帖数量: 5 个
工控威望: 122 点
下载积分: 558 分
在线时间: 2(小时)
注册时间: 2014-03-25
最后登录: 2019-11-28
查看hzn19900420的 主题 / 回贴
2楼  发表于: 2014-07-23 02:04
for(a=0;a<时间/单位时间,a++)
       delay100ms();

或者delay100ms(时间/单位时间);


void Timer0Init(void)        //1毫秒@11.0592MHz
{
    AUXR |= 0x80;        //定时器时钟1T模式
    TMOD &= 0xF0;        //设置定时器模式
    TMOD |= 0x01;        //设置定时器模式
    TL0 = 0xCD;        //设置定时初值
    TH0 = 0xD4;        //设置定时初值
    TF0 = 0;        //清除TF0标志
    TR0 = 1;        //定时器0开始计时
}


void Timer0Interrupt(void) interrupt 1      //1ms
{
  a++;
          
}

main()
{
while(1){
  if(a>=时间/单位时间)
    ............



}