按键kai按下时(即P2.2=0)电机正转(P2.0=1,P2.1=0),按键guan按下时(即P2.2=0)电机反转(P2.0=0,P22.1=1),正反转有一定时间,这段时间用单片机定时器怎么控制,求c语言的编程!主要是怎么反复使用。
如果加上两个按键kai和guan呢?怎么反复使用?中断后要怎么调整?
追答这可是两个问题一定要加分
#include
#define uchr unsigned char
#define uint unsigned int
sbit zh0 = P2^0;
sbit zh1 = P2^1; //定义两个端口\
sbit kai=P3^0; //开
sbit guan=P3^1; //关
uint t,a; //变量T和A
void main()
{
TMOD = 0x01;
THO = (65536-50000)/256;
TL0 = (65536-50000)%256;
EA = 1;
ET0 = 1;
TR0 =1; //启动中断
a=10000; //变量A赋值
while(1)
{
if(kai==0) //判断开关是否按下,开启
{
while(a--);//简单延时,用于销抖
if(kai=0) //再次判断是否按下,如果按下执行下面的程序
{
zh0=1;
zh1=0; //程序近来后开始正传
if(t==200) //当中断进入200次,也就是10秒后电机反转
{
t=0; //把T清零
zh0=0;
zh1=1;
}
if(guan==0) //关闭
{
while(a--);
if(guan==0)
{
zh0=0;
zh1=0;
}
}
}
}
}
}
/*中断程序*/
void timer0 () interrupt 1
{
TH0 = (65536-50000)/256;
TL0 = (65536-50000)%256;
t++;
}