#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; }}灯闪
程序运行,但是不出结果?定时器不能调用?除了循环延时外,如何多次调用延时呢?先谢谢了
此帖出自
小平头技术问答
一周热门 更多>