#include<pic.h>
__CONFIG(0x3b31);
#define uint unsigned int
#define uchar unsigned char
uchar dir,ceng,DJ,position,d,e,f,g,j,num,nub11,nub21,nub22,nub31,nub32,nub41,nub42,nub52,
nub1,nub2,nub3,nub4,nub5,i1,i2,i3,i4,i5,o1,o2u,o2d,o3u,o3d,o4u,o4d,o5,h0,h1,h2,h3,h4,h5,h6,h7, h8,h9,h10,h11,h12;
const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void keyscan();
void state11();
void state22();
void tingche11();
void tingche22();
void tc11();
void tc22();
void delay(uint z)
{
uint x,y;
for(x=110;x>0;x--)
for(y=z;y>0;y--);
}
void init()
{
INTCON=0xc0;//开总中断,准许外围接口中断
// TMR2IF=0;//清中断标志
// TMR2IE=0;//定时器2中断不使能
TMR1IE=1;//使能定时器1
TMR1IF=0;
TMR1L=(65536-10)%256;
TMR1H=(65536-10)/256;
T0IE=0;
OPTION=0x07;
TMR0=61;
TRISA=0x1f;//红外
ADON=0;
ADCON1=0x07;//将A端口和E端口设置通用数字IO引脚
TRISB=0x0f;
TRISC=0;
TRISD=0;
TRISE=0;
PORTD=0;
PORTE=0;
RC1=0;
}
void pwm(uint a,uint b,uint c)
{
RA5=a;//电机方向
CCPR1L=b;//脉宽
CCP1CON=0x0c;//设置CCP1为PWM模式
PR2=c;//TMR2周期寄存器,即为pwm周期
T2CON=0x07;//开定时器2,16预分频,后分频为1 }
void main()
{
init();
RC3=1;RC4=0;RC5=0;RC6=0;RC7=0;
while(1)
{
keyscan();
if(RA0==0)ceng=1;
if(RA1==0)ceng=2;
if(RA2==0)ceng=3;
if(RA3==0)ceng=4;
if(RA4==0)ceng=5;
if(ceng==1)
{
if(o2u||o2d||o3u||o3d||o4u||o4d||o5||i2||i3||i4||i5)
{
dir=1;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o1||i1)
{
天天向上 尹峰o1=0;nub11=0;RD0=0;
i1=0;nub1=0;RE0=0;
RC6=1;RC7=0;//开门
h8=0;h0=0;
暖暖 伴奏}
RC4=1;RC5=0;
}
if(ceng==2)
{
if(i1||o1)
dir=2;RC5=1;RC4=0;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o3u||o3d||o4u||o4d||o5||i3||i4||i5)
{
dir=1;RC4=1;RC5=0;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o2u||o2d||i2)
{
o2u=0;nub21=0;RD2=0;
o2d=0;nub22=0;RD1=0;
i2=0;nub2=0;RE1=0;おにいちゃんのため在线
RC6=1;RC7=0;//开门
h1=0;h5=0;h9=0;
}
else
if(!nub1&&!nub3&&!nub4&&!nub5&&!nub11&&!nub31&&!nub32&&!nub41&&!nub42&&!n ub52)
{RC4=0;RC5=0;}
}
if(ceng==3)
{
if(i1||i2||o1||o2u||o2d)
{
dir=2;RC4=0;RC5=1;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o4u||o4d||o5||i4||i5)
{
dir=1;RC4=1;RC5=0;
if(g==0)about time
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o3u||o3d||i3)
{
o3u=0;nub31=0;RD4=0;
o3d=0;nub32=0;RD3=0;
i3=0;nub3=0;RE2=0;
RC6=1;RC7=0;//开门
h2=0;h6=0;h10=0;
}
else
if(!nub1&&!nub2&&!nub4&&!nub5&&!nub11&&!nub21&&!nub22&&!nub41&&!nub42&&!n ub52)
{RC4=0;RC5=0;}
}
if(ceng==4)
{
if(i1||i2||i3||o1||o2u||o2d||o3u||o3d)
{
dir=2;RC4=0;RC5=1;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o5||i5)
{
dir=1;RC4=1;RC5=0;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(o4u||o4d||i4)
{
o4u=0;nub41=0;RD6=0;
o4d=0;nub42=0;RD5=0;
i4=0;nub4=0;RC0=0;
RC6=1;RC7=0;//开门
洪剑涛的儿子
h3=0;h7=0;h11=0;
}
else
if(!nub1&&!nub2&&!nub3&&!nub5&&!nub11&&!nub21&&!nub22&&!nub31&&!nub32&&!n ub52)
{RC4=0;RC5=0;}
}
if(ceng==5)
{
if(i1||i2||i3||i4||o1||o2u||o2d||o3u||o3d||o4u||o4d)
{苏有朋郑家榆
dir=2;
if(g==0)
{T0IE=1;num=0;}
else {T0IE=0;num=100;}
}
else if(i5||o5)
{
i5=0;nub5=0;RC1=0;
o5=0;nub52=0;RD7=0;
RC6=1;RC7=0;//开门
h4=0;h12=0;
}
RC4=0;RC5=1;
}
while(dir==1)
{
keyscan();
while(num==100)
{
keyscan();
T0IE=0;
if(ceng==1)
{
position=1;
if(o1||i1)
{
o1=0;nub11=0;RD0=0;
i1=0;nub1=0;RE0=0;
}
if(!nub21&&!nub31&&!nub41&&!nub52&&!nub2&&!nub3&&!nub4&&!nub5) {
if(nub22||nub32||nub42)
{f=2;}
else {f=0;}
}
else {f=0;}
}
if(ceng==2)
{
if(o2u||o3u||o3d||o4u||o4d||o5||i3||i4||i5)
{position=21;}