定时器不能调用延时吗?请教高人

2019-03-24 19:02发布

#include <reg52.h>
typedef   unsigned char  uint8;
typedef   unsigned int   uint16;
unsigned char cd=0;//增变量
sbit led=P1.0;
unsigned char sd=40;//设定计数值
void ini(void)//定时器0初始化函数
  {
   TMOD = 0x01; //模式1,
   TH0=0xdc;  
   TL0=0x00;
   ET0 = 1; //定时器0开
   EA = 1; //允许中断
   TR0 = 1;}//启动定时器0
void Time0() interrupt 1 using 0 //中断程序
{ TH0=0xdc;
    TL0=0x00; //设定时值为10ms
    cd++; } //加一
void delay(unsigned int sd )//延时函数
{  ini();//初始化
while(1)
{ if(cd==sd)  //中断次数到设定次数时,
   {  cd=0;     //清零,
    } }  }

void main() //主程序
{   while(1)
delay(40);//调用延时0.4秒
  {led=!led;   }}灯闪

程序运行,但是不出结果?定时器不能调用?除了循环延时外,如何多次调用延时呢?先谢谢了 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
wrlsohu
1楼-- · 2019-03-25 04:01
就是用定时器做延时子程序,被其他函数调用,如何做?
ahshmj
2楼-- · 2019-03-25 07:34
 精彩回答 2  元偷偷看……
wrlsohu
3楼-- · 2019-03-25 11:32
51是没戏了?谢谢
zhq468
4楼-- · 2019-03-25 15:14
我在此表示怀疑楼主会用C不...
曹世鹏
5楼-- · 2019-03-25 18:07
#include <reg52.h>
typedef   unsigned char  uint8;
typedef   unsigned int   uint16;
unsigned char cd=0;//增变量
sbit led=P1^0;
unsigned char sd=40;//设定计数值
void main()//定时器0初始化函数
  {
   TMOD=0x01; //模式1,
   TH0=0xdc;// (65536-45872)/256;
   TL0=0x00;// (65536-45872)%256;
   ET0=1; //定时器0开
   EA=1; //允许中断
   TR0=1;
   while(1);
   }//启动定时器0
void Time0() interrupt 1 using 0 //中断程序
        {        
                TH0=0xdc;//
            TL0=0x00; //设定时值为10ms
            cd++;
                if(cd==sd)
                {
                        cd=0;
                        led=!led;
                }
        } //加一
/*void delay(unsigned int sd )//延时函数
{  
        ini();//初始化
        while(1)
        {
                if(cd==sd)  //中断次数到设定次数时,
                           {  
                           cd=0;     //清零,
                    }
        }
}*/

/*void main() //主程序
{   
        while(1)
                delay();//调用延时0.4秒
                  {
                        if(cd==sd)
                        {
                                cd=0;
                                led=!led;
                        }               
                }
} */

一周热门 更多>