单片机实现 4个开关的控制

开关1接通0.2s后断开,开关2接通;开关2接通0.2s后断开,开关3接通;开关3接通0.2s后断开,开关4接通;开关4接通0.2s后断开,开关1接通;

/*51单片机12M晶体,指令周期1微秒
开关1~4,分别为P1.0~P1.3,高电平接通,低电平断开*/
#include <reg51.h>
uchar T20mS;
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x0B1;
TL0 = 0x0E0;
EA = 1;
ET0 = 1;
TR0 = 1;
}

void Timer0Interrupt(void) interrupt 1
{
TH0 = 0xb1;//50mS定时中断
TL0 = 0x0e0;
T20mS=0;
}

void main(void)
{
char i,j k;
InitTimer0();
T20mS=1;
while(1)
{
for(i=0;i<4;i++)//4种状态
{
j=P1;
j &= 0xf0;//保留高位
j |= 1<<i;//设定开关值
P1=j;// 输出
for(k=0;k<10)//10次
{
while(T20mS);//延时20mS
T20mS=1;
}
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-01
一块单片机如何控制4个以上的伺服电机,而且每个伺服电机要单独运行,需要添加要实现单独的4路舵机控制的话,我建议使用具有至少4路PWM的单片机。比如AVR
第2个回答  2011-05-01
我来帮帮你!