#include <reg52.h>
#include "DVH505.h"
struct SProgram_s code AutoList_s[20][10]=
{
{
{7,9,-14, 180, NOBL,Fno, RG,RG,0},
{7,14,-9, 200, NOBL,Fno, FLOW,RG,0},
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{100,19,-29, 2, NOBL,FL4, RG,RG,0},
{60,90,-10, 2, NOBL,Fno, RG,RG,0},//01
}, //00
{
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{7,9,-9, 39, NOBL,Fno, FLOW,FLOW,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
{7,9,-9, 39, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//01
//
{7,4,-4, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 5, NOBL,Fno, RG,RG,0},
}, //01
{
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
{7,29,-29, 4, NOBL,Fno, FLOW,FLOW,0},
{7,29,-114, 1, NOBL,Fno, RG,RG,0},//02
//
{7,4,-4, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
}, //02
{
{7,29,-29, 4, NOBL,Fno, RG,RG,0},
{7,29,-114, 1, NOBL,Fno, RG,RG,0},//02
//
{7,4,-4, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, G,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
{7,29,-29, 4, NOBL,Fno, RG,RG,0},
{7,29,-114, 1, NOBL,Fno, RG,RG,0},//02
//
{7,4,-4, 5, NOBL,Fno, RG,RG,0},
}, //03
{
{7,9,-9, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
{7,29,-29, 4, NOBL,FL5, RG,RG,0},
{7,29,-114, 1, NOBL,Fno, RG,RG,0},//02
//
{7,4,-4, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
}, //04
{
{60,24,-24, 1, NOBL,Fno, RG,RG,0},
{70,9,-29, 2, NOBL,Fno, RG,RG,0},
{80,29,14, 5, NOBL,Fno, RG,RG,0},//02
//
//
{7,14,-9, 70, NOBL,Fno, RG,RG,0},
{7,19,-14, 40, NOBL,Fno, RG,RG,0},
{7,24,-19, 35, NOBL,Fno, RG,RG,0},
{7,29,-24, 30, NOBL,Fno, RG,RG,0},
{80,34,-29, 3, NOBL,FL3, RG,RG,0},
{100,-14,-14, 2, NOBL,Fno, RG,RG,0},
{120,9,4, 6, NOBL,Fno, RG,RG,0},//03
//
//
}, //05
{
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,FL8, RG,RG,0},
{7,89,-14, 1, NOBL,FL8, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,FL8, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
}, //06
{
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,Fno, RG,FLOW,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,89,-14, 1, NOBL,Fno, RG,RG,0},//04
//
//
{7,14,-14, 19, NOBL,Fno, RG,RG,0},
{7,74,-14, 1, NOBL,Fno, RG,RG,0},//05
//
//
{7,9,-14, 69, NOBL,Fno, RG,RG,0},
{7,9,-19, 1, NOBL,Fno, RG,RG,0},
}, //07
{
{7,14,-19, 39, NOBL,Fno, RG,RG,0},
{7,14,-24, 1, NOBL,Fno, RG,RG,0},
{7,19,-24, 34, NOBL,Fno, RG,RG,0},
{7,19,-29, 1, NOBL,Fno, RG,RG,0},
{7,24,-29, 29, NOBL,FL8, RG,RG,0},
{7,24,-34, 1, NOBL,FL8, RG,RG,0},
{7,29,-34, 24, NOBL,Fno, RG,RG,0},
{7,64,-34, 1, NOBL,Fno, RG,RG,0},//06
//
//
{7,34,-34, 4, NOBL,Fno, RG,RG,0},
{7,29,-29, 5, NOBL,Fno, RG,RG,0},
}, //08
{
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 4, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//07
//
//
{7,34,-34, 5, NOBL,Fno, RG,RG,0},
{7,29,-29, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,Fno, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
}, //09
{
{7,9,-9, 4, NOBL,Fno, FLOW,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//08
//
{7,34,-34, 5, NOBL,Fno, RG,RG,0},
{7,29,-29, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,FL3, RG,RG,0},
{7,19,-19, 5, NOBL,FL3, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 4, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//08
//
{7,34,-34, 5, NOBL,Fno, RG,RG,0},
}, //010
{
{7,29,-29, 5, NOBL,Fno, RG,RG,0},
{7,24,-24, 5, NOBL,FL6, RG,RG,0},
{7,19,-19, 5, NOBL,Fno, RG,RG,0},
{7,14,-14, 5, NOBL,Fno, RG,RG,0},
{7,9,-9, 4, NOBL,Fno, RG,RG,0},
{7,9,-84, 1, NOBL,Fno, RG,RG,0},//08
//
//
{7,9,-14, 160, NOBL,Fno, RG,RG,0},
{7,19,-14, 250, NOBL,Fno, RG,RG,0},//09
{150,50,30, 3, NOBL,Fno, RG,RG,0},
{60,10,-60, 2, NOBL,Fno, RG,RG,0},//09
//{20,9,-14, 160, NOBL,Fno, RG,RG,0},
//{10,19,-14, 250, NOBL,Fno, RG,RG,0},//09
//
}, //011
};
void GetAddress(void)
{
uchar temp = 0;
temp = ~P0;
Address = temp;
if(Address==0)
{
Address = 1;
}
Address10=1;
Address9=1;
if(Address10 == 0)
{
CtrlMode = NODMX;
DmxLed=1;
SendOrReceive = 1;
if(Address9 == 1)
{
PlayMode = VOICE_CONTRUL_MODE;
}
else
{
PlayMode = AUTO_CONTRUL_MODE;
}
}
else
{
CtrlMode = DMX;
DmxLed=0;
SendOrReceive = 0;
PlayMode = SBUF_Mode/70;
}
// DmxLed=1;
/*
CtrlMode = NODMX;
SendOrReceive = 1;
PlayMode = AUTO_CONTRUL_MODE;*/
//PlayMode = VOICE_CONTRUL_MODE;
}
void init(void)
{
SCON = 0x50; /*串口通信方式1,允许接收,*/
PCON = 0x00;
T2CON = 0x30;
// T2MOD = 0x00;
RCAP2H=0xff;
// RCAP2L=0xdc;//波特率=9600 11.0592
//RCAP2L=0xb2;//波特率=9600 24M
RCAP2L=0xfd; //波特率=250k 24M
TH2=RCAP2H;
TL2=RCAP2L;
TR2=1;
//------------------------------------------------------------------//
TMOD = 0x11; /*T0 的工作模式为模式1*/
IT0 = 1;
IT1 = 1;
IP = 0x10; /*串行口中断优先*/
IE = 0x9e; /*开中断,开放的中断有:串行口,外部中断0,定时器0 1*/
TH0 = 0xfe;
TL0 = 0xb2;
TH1 = 0x00;
TL1 = 0x00;
TR0 = 1;
TR1 = 1;
DmxLed=0;
SendOrReceive = 0; /*允许接收DMX信号*/
g_Onlight=On_Light;
x_Speed=300;
xSpeed_count = 0;
xSpeed_Flag = 0;
//------------------------------------------------------------------//
}
/*外部 2 中断(声控)*/
//uint VCont;
void into(void) interrupt 2
{
//VCont = (VCont +1)%2;
if(PlayMode == VOIC && Response_Time == TRUE)
{
g_Onlight=On_Light;
Response_Count=0;
//Response_Time=FALSE;
Off_Light_Count=0;
Ext_Int1_Flag=TRUE;
}
/* */
}
/*定时器1 中断*/
uint TCont1;
void timer1(void) interrupt 3
{
/*0.05秒 F=16M*/
/*0.03秒 F=24M*/
TH1 = 0x00;
TL1 = 0x00;
bTickFlag = 1;
if(PlayMode == VOIC)
{
if(Response_Time==FALSE)
{
Response_Count++;
if(Response_Count>=20)
{
Response_Time=TRUE;
Response_Count=0;
}
}
if(g_Onlight==On_Light)
{
Off_Light_Count++;
if(Off_Light_Count>=250)
{
g_Onlight=Off_Light;
Red = 0;
Green = 0;
Off_Light_Count=0;
}
}
}
GetAddress();
}
/*串口中断*/
void serial(void) interrupt 4 using 1
{
static uint counter;
RI = 0;
if(RB8 == 0)
{
start = 0;
if(SBUF == 0)
{
head = 1;
}
}
else if(head == 1)
{
head = 0;
start = 0;
if(SBUF == 0)
{
start = 1;
counter = 0;
}
}
else if (start == 1)
{
counter++;
switch(counter-Address)
{
ca