📄 com.c
字号:
//com.c
#include "public.h"
#include "com.h"
#include "sst89cxx.h"
void InitComm(unsigned char Crystal);
unsigned char ReadComm(unsigned char *ch);
unsigned char WriteComm(unsigned char ch);
/////////////////////////////////////////
//CPU种类:12分频时钟周期
//定时器: T2定时器
//误差: 4.5%
//公式: 波特率= 晶振频率/(32*(65536 - [RCAP2H,RCAP2L]))
//CopyRight by YTH 2002.11.11
//#define Baud9600 6//误差:0
//#define Baud19200 8//误差:0
//#define Baud38400 9//误差:0
//#define Baud115200 11//误差:0
void InitComm(unsigned char nBaudRate)
{
T2CON=0x30;
switch(nBaudRate)
{
case Baud9600:
RCAP2H=255;RCAP2L=184;
break;
case Baud19200:
RCAP2H=255;RCAP2L=220;
break;
case Baud38400:
RCAP2H=255;RCAP2L=238;
break;
case Baud115200:
RCAP2H=255;RCAP2L=250;
break;
}
SCON=0x50;
TR2=1;
}
unsigned char ReadComm(unsigned char *ch)
{
timerout= COMM_TIMEOUT;
while(--timerout)
{
if(RI==1)
{
RI=0;
*ch=SBUF;
return TRUE;
}
}
return FALSE;
}
unsigned char WriteComm(unsigned char ch)
{
timerout= COMM_TIMEOUT;
SBUF=ch;
while(--timerout)
{
if(TI==1)
{
TI=0;
return TRUE;
}
}
return FALSE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -