登录
首页 单片机论坛
回帖 发帖
正文

主题:请教如何重复利用定时器T0 T1控制不同的定时时间?

点击:1490 回复:9

D1 D2 D3 D4共4个时间,我要循环走这4个时间,比如D1定时300秒,D2定时20秒,D3定时100秒,D4定时50秒,这个4个时间也是要可以设置的,而且循环的次数也可以设定.那位师傅帮我指点一下,谢谢帮忙!
09-09-06 23:21
这4个时间根据需要,要求可以改变设置的.
09-09-06 23:23
D1,D2,D3,D4时间可以设置。
用触摸屏来做,很简单。
09-09-07 07:40
在中断里面判断控制位,比如20H.0为0,就执行第一段时间,20H.1为0就执行第二段时间,
09-09-07 08:16
可能设置你就在屏上做个输入域,其他的逻辑在程序里做好.
09-09-07 08:40
是PLC做的吗?
如果是
人机改时间,次数也通过人机实现,循环功能通过自已的程序实现
最后修改:2009-9-7 8:50:40
09-09-07 08:49
谢谢各位,
甘陵至尊你好,我用C语言,汇编还不懂哦,谢谢你的提示.
fumz78你好,是用单片机.
09-09-07 10:16
你说不是很清楚,但我尽按我理解你的意思写的,你要是用按键改变参数的话,加个按键程骗序就是了,写得不好,希望大家不要见笑,程序如下
/***************把这个放中断里*******************************************************/
if(k1)
{
t++;
if(t==num_d)
{
t=0;
bit_d=1;
}
}
/***********************************************************************************/
/***********下面为D1-D4走时*********************************************************/
if(num<4) //这里改变MUM值就可以改变循环次数
{
switch(temp)
{
  case 0:
num_d=d1; //若中断为10MS D1=30000,为300秒。更改D1-D4的值可以改变时间
k1=1;
if(bit_d)
{
bit_d=0;
k1=0;
temp=1;
}
break;
case 1:
num_d=d2;
k1=1;
if(bit_d)
{
bit_d=0;
k1=0;
temp=2;
}
break;
case 2:
num_d=d3;
k1=1;
if(bit_d)
{
bit_d=0;
k1=0;
temp=3;
}
break;
   case 3:
num_d=d4;
k1=1;
if(bit_d)
{
bit_d=0;
k1=0;
temp=0;
num++; //走到D4循环次数加一
}        
break;
}
}
09-09-08 01:12
谢谢yyddyym,你的提示真好,按照你的思路我去做一下看.谢谢你!
09-09-08 08:26
应该要用到变址寄存器的吧
09-09-08 19:50

工控新闻

更多新闻资讯