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

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;   }}灯闪

程序运行,但是不出结果?定时器不能调用?除了循环延时外,如何多次调用延时呢?先谢谢了 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。