找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1567|回复: 7
收起左侧

最近在自学并尝试制作一个闹钟 发现单片机定时器t0和t1无法同时运行

[复制链接]
ID:627013 发表于 2019-10-20 14:09 | 显示全部楼层 |阅读模式
sbit P00=P0^0;
void time0s()
{
TMOD|=0X01;
TH0=0X3c;
TL0=0Xb0;
ET0=1;
TR0=1;  
}
void time1sON()
{
    TMOD|=0X10;
TH1=0X3c;
TL1=0Xb0;
ET1=1;
TR1=1;  
}
void Time0() interrupt 1
{
static ui i=0;
TH0=0X3C;
TL0=0Xb0;
i++;
if(i==20)
{
  i=0;
  second1++;
  if(second1==60)
       {
        second1=0;
  minute1++;
       }
     if(minute1==60)
    {
     minute1=0;
  hour1++;
    }
     if(hour1==24)
    {
     hour1=0;
    }
}
}
void Time1() interrupt 3
{
static ui i=0,r=0;
TH1=0X3C;
TL1=0Xb0;
if(i==20)
{
  r++;
  if(r==60)
   {
    if(minute1==minute2&&hour1==hour2)//小时和分钟相同时闹钟响起
    {
     for(r=0;r<10;r++)
   {
    P00=~P00;
    delay(100);
    r=0;
   }
    }
    }
}

}

回复

使用道具 举报

ID:627013 发表于 2019-10-20 14:10 | 显示全部楼层
void main()
{

        key();
        time0s();
        time1sON();  
        while(1)               
        {
         if(mode==0)
         {
          shizhong(second1,minute1,hour1);
     
         }
         if(mode!=0)
         {
          shizhong(second2,minute2,hour2);
     }   
        }
}
回复

使用道具 举报

ID:213173 发表于 2019-10-20 16:36 | 显示全部楼层
明明一个定时器就足以搞定的事情为什么偏要用两个定时器?而且中断中还用了长延时delay(100);,不互相干扰才怪。
回复

使用道具 举报

ID:7485 发表于 2019-10-20 19:45 | 显示全部楼层
程序不全,看不出问题。
回复

使用道具 举报

ID:155507 发表于 2019-10-20 20:38 | 显示全部楼层
你的 允许开总中断  EA=1;  没有看到
回复

使用道具 举报

ID:627013 发表于 2019-10-29 15:26 来自手机 | 显示全部楼层
wulin 发表于 2019-10-20 16:36
明明一个定时器就足以搞定的事情为什么偏要用两个定时器?而且中断中还用了长延时delay(100);,不互相干扰 ...

第二个定时器的作用是  当时钟与闹钟界面时间相同时 显示闹钟界面并响铃60s  请问一个定时器如何写出
回复

使用道具 举报

ID:606366 发表于 2019-10-30 15:48 | 显示全部楼层
楼上两位说的对,中断里面最好不要用加延时,如果对时间要求不高,代码还是写在main函数中,中断函数中尽量少写代码;关于定时器1中断服务函数中的代码,你完全可以写在while中循环检测;还有总中断也没有开。
最后,我来告诉你为什么不能同时运行,定时器1的中断优先级低于定时器0的中断优先级,你想判断两个数值是否相同,还没等你判断,定时器0中的数值已经变了。建议初学还是不要用这么多定时器,一个一个来,弄明白了再用也不迟。
回复

使用道具 举报

ID:213173 发表于 2019-10-30 17:58 | 显示全部楼层
907383184@qq.co 发表于 2019-10-29 15:26
第二个定时器的作用是  当时钟与闹钟界面时间相同时 显示闹钟界面并响铃60s  请问一个定时器如何写出

数码管时钟长短按调整点闪烁+闹钟38译码器+仿真.zip (78.64 KB, 下载次数: 8)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表