at89s52 怎么让两个接口同时执行一个延时函数?

at89s52晶振12M定时器初值是2.5MS延时我声明了4个接口其中有2个接口写了个4ms的延时函数。另外两个是默认2.5MS的延时函数。但是我接在舵机上,不可以同时连... at89s52 晶振12M
定时器初值是2.5MS延时
我声明了4个接口
其中有2个接口写了个4ms的延时函数。
另外两个是默认2.5MS的延时函数。
但是我接在舵机上,不可以同时连接2个4ms的延时函数的接口
只能接入一个。否则会全部舵机旋转混乱。
但是默认的接口却可以接上2个
请问是怎么回事?
------------------------------------------------------------
#include <reg51.h>
#include<intrins.h>
sbit Q____Z=P2^0; //前左轮
sbit Q____Y=P2^5; //前右轮
sbit H____Z=P3^3; //后左轮
sbit H____Y=P3^0; //后右轮
unsigned char i ;
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0F0;
TL0 = 0x60;
EA = 1;
ET0 = 1;
TR0 = 1;
}
/*
void delay1(void) //此函数去掉会增加故障率,对功能无影响
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
*/

void delay(void)
{ unsigned char a,b,c;
for(c=7;c>0;c--)
for(b=8;b>0;b--)
for(a=34;a>0;a--);
}

void main(void)
{
InitTimer0();
while(1)
{
for(i=250;i>0;i--)
{
delay();
Q____Y=1;
Q____Y=0;
Q____Z=1;
delay();
Q____Z=0;
H____Y=1;
H____Y=0;
H____Z=1;
delay();
H____Z=0;
}
delay();
} //while(1)结束
delay();
} //main结束

---------------------------------------------
这个程序是个四轮小车的程序,一个接口控制一个轮子
延时函数4ms是顺时针旋转
延时函数2ms...好像是暂停
延时函数0ms....好像是逆时针旋转
代码全部都在上面了…定时程序没有是什么意思?
展开
 我来答
tx_bird
2012-09-20 · TA获得超过1842个赞
知道小有建树答主
回答量:738
采纳率:75%
帮助的人:670万
展开全部
从程序中看不出定时器的作用啊!!,只是delay()延时而已啊,是不是程序没贴全?
所谓定时是用中断处理的,而在你的程序中只是初始化了定时器,而没有使用定时器!
更多追问追答
追问
没有定时程序是什么意思呢?
追答
就是中断函数啊,假设函数名为:timer0()
那么就表述为:
void timer0(void) interrupt 1
{
......
你需要的代码;
......}
这样才是使用定时中断的方法。
科学大求证3l
2012-09-19
知道答主
回答量:54
采纳率:0%
帮助的人:15.3万
展开全部
#include <reg51.h>
#include<intrins.h>
sbit Q____Z=P2^0; //前左轮
sbit Q____Y=P2^5; //前右轮
sbit H____Z=P3^3; //后左轮
sbit H____Y=P3^0; //后右轮
unsigned char i ;
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0F0;
TL0 = 0x60;
ET0 = 1;
TR0 = 1;
EA = 1;//总中断开在后
}
/*
void delay1(void) //此函数去掉会增加故障率,对功能无影响
{
unsigned char a,b;
for(b=1;b>0;b--)
for(a=2;a>0;a--);
}
*/

void delay(void)
{ unsigned char a,b,c;
for(c=7;c>0;c--)
for(b=8;b>0;b--)
for(a=34;a>0;a--);
}

void main(void)
{
InitTimer0();
while(1)
{
for(i=250;i>0;i--)
{
delay();
Q____Y=1;
Q____Y=0;
Q____Z=1;
delay();
Q____Z=0;
H____Y=1;
H____Y=0;
H____Z=1;
delay();
H____Z=0;
}
delay();
} //while(1)结束
delay();
} //main结束

程序没给全,没有定时程序。
追问
没有定时程序是什么意思呢?
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式