#include<stdio.h> 
#include<string.h> 
#include<reg52.h> 
#include"TxMCU.h" 
#include"absacc.h" 
 
main() 
{ 
unsigned char i; 
MCU_Init(); 
SJA_Init(); 
REG_MODE = 0x01; //"进入复位模式     " 
temp_data1 = REG_MODE; 
temp_data1 = temp_data1 & 0x01; 
if(temp_data1 == 0x01) //"在复位模式中  " 
{ 
REG_BTR0 = 0x85; 
REG_BTR1 = 0xb4; //100k 
REG_OCR = 0x1a; 
REG_CDR = 0xc0; 
REG_RBSA = 0x00; 
REG_ACR0 = 0xff; 
REG_ACR1 = 0xff; 
REG_ACR2 = 0xff; 
REG_ACR3 = 0xff; 
REG_AMR0 = 0xff; 
REG_AMR1 = 0xff; 
REG_AMR2 = 0xff; 
REG_AMR3 = 0xff; 
REG_IR_ABLE = 0xff; 
} 
REG_MODE = 0x0c; //"进入自接收模式    " 
REG_MODE = 0x0c; 
for(i = 0;i<100;i++); 
temp_data1 = REG_Receive_Counter; 
send(temp_data1); 
for(;;) 
{ 
while(Tx_标志寄存器 == False); 
Tx_标志寄存器 = False; 
Tx_counter++; 
send(Tx_counter); 
temp_data1 = REG_SR; 
while((temp_data1 & 0x10) == 0x10); 
temp_data1 = REG_SR; 
if((temp_data1 & 0x04) == 0x04) 
{ 
REG_RxBuffer0 = 0x08; //"标准帧,长度为8      " 
REG_RxBuffer1 = 0xff; 
REG_RxBuffer2 = 0xff; 
REG_RxBuffer3 = 0x01; 
REG_RxBuffer4 = 0x02; 
REG_DataBuffer1 = 0x03; 
REG_DataBuffer2 = 0x04; 
REG_DataBuffer3 = 0x05; 
REG_DataBuffer4 = 0x06; 
REG_DataBuffer5 = 0x07; 
REG_DataBuffer6 = 0x08; 
REG_DataBuffer7 = 0x09; 
REG_DataBuffer8 = 0x0a; 
} 
REG_CMD = 0x10; 
temp_data1 = REG_SR; 
temp_data1 = temp_data1 & 0x20; 
while(temp_data1 == 0x20) //"检查是否发送完成     " 
{ 
//send(0xaa); 
temp_data1 = REG_ECC; 
send(temp_data1); 
temp_data1 = REG_SR; 
temp_data1 = temp_data1 & 0x20; 
//send(temp_data1); 
} 
send(0x66); 
temp_data1 = REG_ALC; 
send(temp_data1); 
temp_data1 = REG_ECC; 
send(temp_data1); 
temp_data1 = REG_SR; 
send(temp_data1); 
temp_data1 = REG_Receive_Counter; 
send(temp_data1); 
PC_RX_Buffer = 0x77; 
LED0 = ~LED0; 
// Tx_counter = 0x00; 
} 
} 
 
 
void MCU_Init(void) 
{ 
SJARst = 1; 
LED0 = OFF; 
LED1 = OFF; 
PC_RX_Buffer = 0x77; 
step_counter = 0x00; 
step_标志寄存器 = False; 
Tx_标志寄存器 = False; 
temp_data1 = 0x00; 
TMOD = 0x20; 
TH1 = 0xff; 
TL1 = 0xff; 
TR1 = 1; 
SCON = 0x50; 
PCON = 0x80; 
EA = 1; 
ES = 1; 
Tx_counter = 0x00; 
} 
 
 
void SJA_Init(void) 
{ 
unsigned char i; 
for(i = 0;i < 125;i++); 
SJARst = 0; 
for(i = 0;i < 125;i++); 
SJARst = 1; 
for(i = 0;i < 125;i++); 
} 
 
 
void send(unsigned char S_Data) 
{ 
SBUF = S_Data; 
while(TI == 0); 
TI =0; 
} 
 
 
void Serial() interrupt 4 using 2 
{ 
if(RI == 1) 
{ 
PC_RX_Buffer = SBUF; 
RI = 0; 
if(PC_RX_Buffer == 0xaa) 
{ 
send(0x13); 
Tx_标志寄存器 = True; 
PC_RX_Buffer = 0x77; 
} 
else if(PC_RX_Buffer == 0x55) 
{ 
send(0x14); 
Rx_标志寄存器 = True; 
PC_RX_Buffer = 0x77; 
} 
else 
{ 
send(0x15); 
PC_RX_Buffer = 0x77; 
} 
} 
} |   
     
  
 |