📄 main.c
字号:
#define MAIN_FILE
#include "include.h"
//XXGFLAGS bdata bXXGFlags;
//extern unsigned char xdata DBUF[BUFFER_LENGTH];
void Init_Timer0(void)
{
TMOD &= 0xF0; /* clear Timer 0 */
TMOD |= 0x1;
TL0 = 0xf0; /* value set by user *//*定时器0时间,5ms*/
TH0 = 0xd8; /* value set by user */
ET0 = 1; /* IE.1*/
TR0 = 1; /* TCON.4 start timer */
// PT0 = 1;
}
void Init_SpecialInterrupts(void)
{
IT0 = 0;
EX0 = 1;
// PX0 = 0;
}
void Init_Port()
{
P0 = 0xFF;
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
}
/*Serial Port */
/*Mode = 1 /8-bit UART
Serial Port Interrupt = Disabled */
/*Receive = Enabled */
/*Auto Addressing = Disabled */
void Init_COMM(void)
{
SCON = 0x50;
PCON = 0x80 | PCON;
// TMOD = 0x21;
// TCON = 0x69; /* TCON */
//TH1 = 0xfa; // 9600bps @ 11.0592MHz
//TR1 = 0;
T2CON=0x30;
RCAP2H=0xFF; // 57600 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
RCAP2L=0xF3;
// TI=0;
// RI=0;
TR2=1;
IP=0x35;
ES = 1;
}
void disp_data(uint len,void *buf)
{
#ifdef ZLH_DEBUG
send_str(len,(uchar *)buf);
wait_send_end();
#endif
}
void main(void)
{
uchar temp,error;
// uchar buf[20],i;
uchar cmd,package,para[1100];
uint len;
// DISABLE_INTERRUPTS;
Init_Timer0();
Init_SpecialInterrupts();
Init_Port();
Init_COMM();
MCU_LED0=0; //==0 点亮 ==1 熄灭
MCU_LED1=1;
DelayMs(110);
#ifdef ZLH_DEBUG
// ENABLE_INTERRUPTS;
// while(1){
//
// error=rece_cmd(&cmd,&package,&len,para);
// disp_data(2,"A3");
// disp_data(1,&error);
// disp_data(1,&cmd);
// disp_data(1,&package);
// disp_data(2,&len);
// disp_data(len,para);
// while(!getkey());
// }
// while(1){
// i=rece(10,buf);
// if(!i) break;
// }
// send_str(10,buf);
// i=wait_send_end;
// DISABLE_INTERRUPTS;
#endif
bXXGFlags.bits.bUartInDone=0;
SL811_Init();
for(temp=0;temp<64;temp++)
DBUF[temp]=0;
ENABLE_INTERRUPTS;
while(TRUE)
{
if (bXXGFlags.bits.bTimer){
DISABLE_INTERRUPTS;
bXXGFlags.bits.bTimer = 0;
ENABLE_INTERRUPTS;
//if(bXXGFlags.bits.bConfiguration)
check_key_LED();
}
if(bXXGFlags.bits.SLAVE_FOUND){
DISABLE_INTERRUPTS;
bXXGFlags.bits.SLAVE_FOUND=FALSE;
//for(temp=0;temp<4;temp++)
DelayMs(250);
//DelayMs(50);
if(EnumUsbDev(1)) // enumerate USB device, assign USB address = #1
{
bXXGFlags.bits.SLAVE_ENUMERATED = TRUE; // Set slave USB device enumerated flag
MCU_LED1=0;
#ifdef ZLH_DEBUG
disp_data(2,"A3");
while(!getkey());
#endif
}
#ifdef ZLH_DEBUG
disp_data(2,"A2");
#endif
ENABLE_INTERRUPTS;
}
if(bXXGFlags.bits.SLAVE_REMOVED){
DISABLE_INTERRUPTS;
bXXGFlags.bits.SLAVE_REMOVED=FALSE;
bXXGFlags.bits.SLAVE_ENUMERATED = FALSE;
bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
//bXXGFlags.bits.bMassDevice=TRUE;
ENABLE_INTERRUPTS;
}
if(bXXGFlags.bits.bMassDevice){
DISABLE_INTERRUPTS;
bXXGFlags.bits.bMassDevice=FALSE;
if(EnumMassDev())
{
bXXGFlags.bits.SLAVE_IS_ATTACHED = TRUE;
MCU_LED1=1;
}
else
{
// MCU_LED1=1;
bXXGFlags.bits.SLAVE_IS_ATTACHED = FALSE;
}
ENABLE_INTERRUPTS;
}
error=rece_cmd(&cmd,&package,&len,para);
if((error)&&(error!=OVER_TIME)){
send_error(error);
}
if(!error){
#ifdef ZLH_DEBUG
disp_data(2,"A3");
disp_data(1,&cmd);
// disp_data(1,&package);
disp_data(2,&len);
// if(len)
// disp_data(len,para);
#endif
MCU_LED1=0;
UartHandler(cmd,package,len,para);
MCU_LED1=1;
}
// if(bXXGFlags.bits.bUartInDone){
// DISABLE_INTERRUPTS;
// bXXGFlags.bits.bUartInDone=0;
// UartHandler();
// ENABLE_INTERRUPTS;
// }
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -