com.c

来自「sst89c54 isp program for user」· C语言 代码 · 共 78 行

C
78
字号
//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 + =
减小字号Ctrl + -
显示快捷键?