|
//晶振12MHZ
功能:
1.外中断INT1,M1启动,延时3秒后,M2也启动
2.定时器T0,每50ms发送一次脉冲//
#include
#define uchar unsigned char
#define uint unsigned int
unsigned char data SendBuffer[]={};
sbit P0_0 = P0^0;
sbit P0_1 = P0^1;
sbit P0_2 = P0^2;
sbit P0_3 = P0^3;
sbit ST = P0^4;
sbit P0_5 = P0^5;
sbit P0_6 = P0^6;
sbit P0_7 = P0^7;
sbit P1_0 = P1^0;
sbit P1_1 = P1^1;
sbit P1_2 = P1^2;
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;
sbit P1_5 = P1^5;
sbit P1_6 = P1^6;
sbit P1_7 = P1^7;
sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;
sbit CS = P2^4;
sbit SK = P2^5;
sbit DI = P2^6;
sbit DO = P2^7;
sbit P3_0 = P3^0;
sbit P3_1 = P3^1;
sbit P3_2 = P3^2;
sbit P3_3 = P3^3;
sbit P3_4 = P3^4;
sbit P3_5 = P3^5;
sbit P3_6 = P3^6;
sbit P3_7 = P3^7;
uint count=0;
void delay(uint delaytime)
{
uint j=0;
for(;delaytime>0;delaytime--)
{for(j=0;j<125;j++)
{;}
}
}
void service_int1()interrupt 2 using 2
{
if(P3_3==0)
delay(50);
if(P3_3==0)
{P1_2=1;P1_0=1;delay(30000);P1_6=1;}
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ST=0;
ST=1;
}
void main()
{
uint i;
TMOD=0X11;
TH0=(65535-50000)/256;
TL0=(65535-50000)%256;
ET0=1;
TR0=1;
EA=1;
IP=0X04;
IE=0X84;
for(;;)
{
i=0;
for(i=0;i<4;i++)
{
P1=0X7F;
P0_1=i%2;
P0_0=(i/2)%2;
if(P2_1==0)
delay(50);
if(P2_1==0)
{
if(P0_0==0&P0_1==0){P1_4=1;P1_1=1;}
else if(P0_0==0&P0_1==1){P1_5=1;P1_4=1;P1_1=1;P1_3=1;}
else if(P0_1==0&P0_1==0){P1_5=1;P1_4=1;P1_1=1;P1_3=1;P1_6=1;}
else if(P0_1==0&P0_1==1){P1_5=1;P1_3=1;}
break;
}
if(P2_2==0)
delay(50);
if(P2_2==0)
{
if(P0_0==0&P0_1==0){P1_0=1;}
else if(P0_0==0&P0_1==1){P1_0=1;P1_2=1;}
else if(P0_1==0&P0_1==0){P1_6=1;P1_0=1;P1_2=1;}
else if(P0_1==0&P0_1==1){P1_2=1;}
break;
}
if(P2_3==0)
delay(50);
if(P2_3==0)
{
if(P0_0==0&P0_1==1){P1_6=1;P1_4=1;P1_1=1;P1_2=1;}
else if(P0_0==1&P0_1==0){P1_1=1;P1_4=1;delay(30000);P1_5=1;P1_3=1;}
break;
}
if(P2_0==0)
delay(50);
if(P2_0==0)
{
if(P0_0==0&P0_1==1){P1_6=1;P1_5=1;P1_0=1;P1_3=1;}
else if(P0_0==1&P0_1==0){P1_2=1;delay(30000);P1_0=1;}
break;
}
}
}
}
*********************************************************
|
|