想写一个51定时器延时五秒的子函数
请教傻孩子一个问题,我想写一个51定时器延时五秒钟的子函数请赐教。 没有用过51……你的疑问觉得在什么地方? 回复【1楼】Gorgon Meducer 傻孩子-----------------------------------------------------------------------
想实现,定时器延时五秒的时候CPU可以去做其他的事情,我的CPU要重复去检测P2.1,如果用其他延时的话,会出现检测不到和检测滞后的现像,所以想封装一个能延时五秒的函数,用定时器0,谢谢了 你用的51有定时器么?可以产生定时器中断么?你会设定定时器中断的周期么? 回复【3楼】Gorgon Meducer 傻孩子
----------------------------------------------------------------------
真是很谢谢傻孩子这样的大侠 不管什么样小的问题也会细细教 设立一个标志位,就用定时器中断做个5秒,然后对标志位判断 定时器定时时间设为50毫秒~按晶振还有指令周期算出THL,THH值
定义一个全局变量NUM
定时时间到了,装初值,NUM++.。。。。num=20的时候说明一秒到了
主程序里判断if(num==100),及到5秒。再将NUM清零
思路就是这样 我也觉得用定时器就好、 解决了 这个是51中断程序
void timer0 () interrupt 1
{
TH0=(65536-50000)/256; //设置初值
TL0=(65536-50000)%256;
LED_5=0;
AA++;
if(AA==156) //8秒
{ LED_5=1;
EA=0; //关总中断开关
ET0=0; //关定时器中断
TR0=0; //关定时器
AA=0;
CTOUT_1=0, //开一号
CTOUT_1=0; //开一号
CTOUT_1=0; //开一号
EA=0; //关总中断开关
ET0=0; //关定时器中断
TR0=0; //关定时器
}
} 解决了 这个是51中断程序
void timer0 () interrupt 1
{
TH0=(65536-50000)/256; //设置初值
TL0=(65536-50000)%256;
LED_5=0;
AA++;
if(AA==156) //8秒
{ LED_5=1;
EA=0; //关总中断开关
ET0=0; //关定时器中断
TR0=0; //关定时器
AA=0;
CTOUT_1=0, //开一号
}
}
页:
[1]