关于51单片机定时器的提问!!!

2019-07-15 14:16发布

求哪位能给解决一下,先谢谢了!!
怎样实现单片机的任意时间定时?(就是需要单片机开始计时,它才计时)
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
super_dt
1楼-- · 2019-07-16 08:01
twilight26 发表于 2016-4-25 09:52
需要用的时候开启定时器中断(别忘了定时器赋初值),不用的时候定时器关闭中断即可。

那是不是只要定时器初值设置好,需要时直接给TR置1就可以了呢。还是需要在特定情况下TR置1才有效
super_dt
2楼-- · 2019-07-16 11:14
twilight26 发表于 2016-4-25 09:52
需要用的时候开启定时器中断(别忘了定时器赋初值),不用的时候定时器关闭中断即可。

那是不是只要定时器初值设置好,需要时直接给TR置1就可以了呢。还是需要在特定情况下TR置1才有效
张大猛
3楼-- · 2019-07-16 16:17
 精彩回答 2  元偷偷看……
张大猛
4楼-- · 2019-07-16 20:43
TR0=1   是打开定时器0    一打开就开始计时
super_dt
5楼-- · 2019-07-16 20:56
张大猛 发表于 2016-5-6 14:42
TR0=1   是打开定时器0    一打开就开始计时

能给看一下我这个程序哪错了么?它老是不能计时,debug显示不进入中断
#include <reg52.h>
# include <intrins.h>
# define uint unsigned int
# define uchar unsigned char

uint tt=0;
void timerdy ()
{
  tt=0;
  P0=0xfe;
  TMOD=0X01;
  TH0=0X4C;
  TL0=0X00;
  IE=0X82;
  
}
void delay(uint a)
{
  uint b,c;
  for(b=0;b<=a;b++)
    for(c=0;c<=110;c++);
}
void main ()
{
  timerdy();
  while(1)
  {
  P0=_crol_(P0,1);
  delay(1000);
  if(P0==0xef)
  {
    TR0=1;
        P1=0x00;
  }
        if(tt==40)
        {
          tt=0;
          P1=0xf0;
          TR0=0;
        }
   
   }
}
void timer() interrupt 1 using 2
{
  TH0=0X4C;
  TL0=0X00;
  tt++;
}
15295611271
6楼-- · 2019-07-16 22:31
看看 学习学习!!!!!!

一周热门 更多>