📄 main_m.c
字号:
#include <intrins.h>
#include"3552.h"
#include "i2cm.h"
extern ERS_BLOCK1();
extern _program_data();
extern READ_DATA();
extern unsigned char idata Slave_Adr;
extern unsigned char idata FReceive_Done;
extern unsigned char idata FTransmitted_Done;
extern unsigned short CustomCode;
extern unsigned char DataCode;
extern unsigned char Ir0Index;
extern unsigned char Ir1Index;
extern unsigned char IrIndex;
extern bit read;
extern unsigned char idata SDATA[10];
extern unsigned char DATA[6];
extern unsigned char doubleE[7];
extern unsigned char wait2sFlag;
extern unsigned char wait20ms;
bit PowerOnFlag = 1;
void delay(unsigned int delay_time);
void Wait_ms(char cTime);
int main()
{
char *addrHigh;
char *addrLow;
char *romData;
Initial();
//I2C mode Master transmit
#if 0
read = 0;
delay(10000);
FTransmitted_Done = 0;
transs("---Master transmit mode!!---\n\r");
delay(1000);
S1CON = SEND_START_ACK;
Slave_Adr = SLA_W;
while(!FTransmitted_Done){};
transs("---Master transmit end !!---\n\r");
delay(1000);
#endif
//I2C mode Master receive
#if 0
read = 1;
FReceive_Done = 0;
transs("---Master receive mode!!---\n\r");
delay(10000);
Slave_Adr = SLA_W;
S1CON = SEND_START_ACK;
while(!FReceive_Done){};
transs("---Master receive end !!---\n\r");
delay(10000);
#endif
//erase flash and program an address and read
//iap test
#if 1
{
DataCode = 0xff;
CustomCode = 0xffff;
ERS_BLOCK1();
Wait_ms(3);
addrHigh = (char *)0x20;
addrLow = (char *)0x21;
romData = (char *)0x22;
*addrHigh = 0x55;
*addrLow = 0x66;
*romData = 0x55;
_program_data();
Wait_ms(3);
READ_DATA();
Wait_ms(3);
*romData = *(char *)0x22;
transreg(*romData);
}
#endif
while(1)
{
}
}
void Initial()
{
// SP =0x30;
INT1 = 1;
IE = 0xA6;
IP = 0x20;
IT1 = 1;
SCON = 0x50;
TMOD = 0x22;
TL0 = 0x38;
TH0 = 0x38;
TR0 = 1;
TL1 = 0x00;
TH1 = 0xF3; //0xFD 11M 9600 //0xF3; //12M 2400
TR1 = 1;
PowerSwitch= 0;
relay_on = 1;
}
//* transmit a char*/
void transc (char c)
{
SBUF = c;
while(!TI);
TI = 0;
}
//---------------------------------------
//---------------------------------------
void transreg(char c)
{
int tmp;
int tmpc;
tmp=c;
tmp=(tmp>>4)&0x0F;
ACC=tmp;
tmpc=hextoascii(tmp);
transc(tmpc);
tmp=c&0x0F;
tmpc=hextoascii(tmp);
transc(tmpc);
transs("\n\r");
}
//-----------------------------------------
int hextoascii(int hex2)
{
int tmp1;
tmp1=hex2;
if (tmp1 >= 0x0A )
{
tmp1 += 0x37;
}
else
{
tmp1+=0x30;
}
return tmp1;
}
//-------------------------------------------
/* transmit a string */
void transs(char *s)
{
while (*s!='\0')
{
SBUF=*s;
while(!TI);
TI = 0 ;
s++;
}
}
//--------------------------------------------
void delay(unsigned int delay_time)
{
while(delay_time)
{
delay_time--;
}
}
void Wait_ms(char cTime)
{
unsigned char i,j;
for(i=0;i<cTime;i++)
{
for(j=0;j<250;j++)_nop_();
for(j=0;j<250;j++)_nop_();
for(j=0;j<250;j++)_nop_();
for(j=0;j<250;j++)_nop_();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -