📄 com.h
字号:
/************************************************************/
/********* COM.H C51 driver *************/
/********** Written by WangBiao---20060416 ****************/
/************************************************************/
//P3_0->RXD ;; P3_1->TXD
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------
//-----------------------外部函数----------------------------------------
void Init_Com(void);
void sendstr(char *ptr);
void SendChar(unsigned char InData);
void SendHex(unsigned char InData);
void ct(void);//chang tab==enter
//void serial() interrupt 4 using 3;//ES interrupt,set read_flag
//unsigned char rece_wait(void);//wait until the RI=1;
//unsigned char rece_short(void);//wait for RI=1 for a little time;
//-----------------------------------------------------------------------
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
//-----------------------------------------------------------------------
//--------------------------------------------------------------------
void Init_Com(void)
{
TMOD=0x20; //定时器1,方式2
TL1=0xFD;
TH1=0xFD; //11.0592MHZ晶振,波特率为9600
PCON=0x00;
SCON=0x50; //方式3
ET0 = 1;
TR1=1; //启动定时
}
//------------------------------------------------------------------
//发送一个字节
//------------------------------------------------------------------
void SendChar(unsigned char InData)
{
TMOD=0x20; //定时器1,方式2
TL1=0xFD;
TH1=0xFD; //11.0592MHZ晶振,波特率为9600
SBUF=InData;
while(TI!=1);TI=0;
}
//------------------------------------------------------------------
//-----------------------------------------------------------------
//发送十六进制数据
//-----------------------------------------------------------
void SendHex(unsigned char InData)
{
unsigned char i;
SendChar('0');
SendChar('x');
i=InData>>4;
if(i>9){i=i+0x57;}
else i=i+0x30;
SendChar(i);
i=InData&0x0F;
if(i>9){i=i+0x57;}
else i=i+0x30;
SendChar(i);
}
//发送一串字符
//------------------------------------------------------------------
void sendstr(unsigned char *ptr)
{
unsigned char i,l=0;
while(ptr[l]>31) l++;//get length
for(i=0;i<l;i++) SendChar(*(ptr+i));
}
//-------------------------------------------------------------------
//回车、换行
//-------------------------------------------------------------------
void ct(void)
{
SendChar(0x0d);SendChar(0x0a);
}
//--------------------------------------------------------------------
//查询接收(一直查询)
//--------------------------------------------------------------------
unsigned char rece_wait(void)//wait until the RI=1;
{ unsigned char a;
while(RI!=1);
RI=0;
a=SBUF;
return(a);
}
//--------------------------------------------------------------------
//查询接收(查询一段时间)
//--------------------------------------------------------------------
unsigned char rece_short(void)//wait for RI=1 for a little time;
{ unsigned char a=0;
unsigned int i;
for(i=0;i<100;i++)
{ if(RI)
{ RI=0;
a=SBUF;
break;
}
}
return(a);
}
//--------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -