/*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;
}
}
}
}
温馨提示:答案为网友推荐,仅供参考