亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? w77e58的雙串口通信源代碼.txt

?? 注:此源程序只作參考
?? TXT
字號:
 
W77E58 雙串口通信源代碼
 
注:此源程序只作參考,內(nèi)有些函數(shù)未有原型,借鑒在于其通信方式及其設(shè)置。
CRC檢校可另參考其它代碼。
#include <W77E58.h>
#include <Const.h>
#include <CRC8.h>

bit fSeri0_Send_Ok;
bit fSeri1_Send_Ok;

bit fSeri1_Odd;

/**************************************************
串口0隊列
**************************************************/
unsigned char xdata xBuf_Send_0[XBUFSERIAL0SEND];
unsigned char xdata xBuf_Reci_0[XBUFSERIAL0RECI];

unsigned char xdata *Seri0_ReadSendPoint=xBuf_Send_0;
unsigned char xdata *Seri0_WriteSendPoint=xBuf_Send_0;
unsigned char data Seri0_SendNum;

unsigned char xdata *Seri0_ReadReciPoint=xBuf_Reci_0;
unsigned char xdata *Seri0_WriteReciPoint=xBuf_Reci_0;
unsigned char data Seri0_ReciNum;

/**************************************************
壓入單數(shù)據(jù)串口0發(fā)送隊列
**************************************************/
void Seri0_PushSend(unsigned char mData)
{
*Seri0_WriteSendPoint=mData;
if(Seri0_WriteSendPoint==(xBuf_Send_0+XBUFSERIAL0SEND-1))
Seri0_WriteSendPoint=xBuf_Send_0;
else Seri0_WriteSendPoint++;
Seri0_SendNum++;
if(fSeri0_Send_Ok==0){fSeri0_Send_Ok=1;TI=1;}
}

/**************************************************
彈出串口0接收隊列單數(shù)據(jù)
**************************************************/
unsigned char Seri0_PopReci()
{
unsigned char i;
if(Seri0_ReciNum==0)return 0;

i=*Seri0_ReadReciPoint;
if(Seri0_ReadReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))
Seri0_ReadReciPoint=xBuf_Reci_0;
else Seri0_ReadReciPoint++;
Seri0_ReciNum--;
return i;
}

/**************************************************
讀出串口0接收隊列指定序號數(shù)據(jù)
**************************************************/
unsigned char Seri0_ReadReci(unsigned char mId)
{
unsigned char xdata *pTemp;
pTemp=Seri0_ReadReciPoint+mId;

if(pTemp<(xBuf_Reci_0+XBUFSERIAL0RECI))return(*pTemp);
else return(*(pTemp-XBUFSERIAL0RECI));
}


/**************************************************
串口1隊列
**************************************************/
unsigned char xdata xBuf_Send_1[XBUFSERIAL1SEND];
unsigned char xdata xBuf_Reci_1[XBUFSERIAL1RECI];

unsigned char xdata *Seri1_ReadSendPoint=xBuf_Send_1;
unsigned char xdata *Seri1_WriteSendPoint=xBuf_Send_1;
unsigned int data Seri1_SendNum;

unsigned char xdata *Seri1_ReadReciPoint=xBuf_Reci_1;
unsigned char xdata *Seri1_WriteReciPoint=xBuf_Reci_1;
unsigned char data Seri1_ReciNum;

/**************************************************
壓入單數(shù)據(jù)串口1發(fā)送隊列
**************************************************/
void Seri1_PushSend(unsigned char mData)
{
*Seri1_WriteSendPoint=mData;
if(Seri1_WriteSendPoint==(xBuf_Send_1+XBUFSERIAL1SEND-1)){
Seri1_WriteSendPoint=xBuf_Send_1;
}
else Seri1_WriteSendPoint++;
Seri1_SendNum++;
if(fSeri1_Send_Ok==0){fSeri1_Send_Ok=1;TI_1=1;}
}

/**************************************************
彈出串口1接收隊列單數(shù)據(jù)
**************************************************/
unsigned char Seri1_PopReci()
{
unsigned char i;
i=*Seri1_ReadReciPoint;
if(Seri1_ReadReciPoint==(xBuf_Reci_1+XBUFSERIAL1RECI-1))
Seri1_ReadReciPoint=xBuf_Reci_1;
else Seri1_ReadReciPoint++;
Seri1_ReciNum--;
return i;
}


/**************************************************
CY=0,使用T1;CY=1,使用T2
入口:Location=0,串口0;否則串口1
mBps,波特率。參考Const.h中的定義
mMode,方式。2慰糃onst.h中的定義
**************************************************/
void Init_Serial(unsigned char Location,unsigned char mBps,unsigned char mMode)
{
if(CY==0){ /*T1*/
TMOD=(TMOD&0x0f)|0x20; /*自動重裝*/
if(Location){ /*second*/
ACC=mBps;
if(ACC7)CKCON|=0x10; /*x3*/
ACC=mBps;
if(ACC6)WDCON|=0x80; /*x2*/
}
else { 
/*first*/
ACC=mBps;
if(ACC7)CKCON|=0x10; /*x3*/
ACC=mBps;
if(ACC6)PCON|=0x80; /*x2*/
}
mBps&=0x3f;
TL1=TH1=(~mBps)+1;
TR1=1;
}
else
{ 
/*T2*/
ACC=mBps;
if(ACC7)CKCON|=0x20; /*x3*/
ACC=mBps;
if(ACC6)mBps<<=1; /*x2*/
mBps&=0x3f;

if(CKCON&0x20)mBps*=4;
else mBps*=12;

TL2= RCAP2L=(~mBps)+1;
TH2=RCAP2H=0xff;
T2CON|=0x30; /*選擇T2為波特率發(fā)生器*/
TR2=1;
}

if(Location==0){
SCON|=0x40; /*方式8位*/
REN=1;
ES=1;
}
else {
ACC=mMode;
if(ACC3){
SCON1|=0xc0; /*方式9位*/
}
else {
SCON1|=0x40; /*方式8位*/
}
fSeri1_Odd=ACC4; /*奇偶效驗方式,0奇*/

REN_1=1;
ES1=1;
}
}

/**************************************************
串口0中斷
**************************************************/
void Int_serial0() interrupt 4 using 1{
// ES=0; /*關(guān)
串行口中斷*/
if(TI){
TI = 0; /*清
發(fā)送中斷標(biāo)志*/
if(Seri0_SendNum==0)fSeri0_Send_Ok=0;
else {
SBUF=*Seri0_ReadSendPoint;

if(Seri0_ReadSendPoint==(xBuf_Send_0+XBUFSERIAL0SEND-1))
Seri0_ReadSendPoint=xBuf_Send_0;
else Seri0_ReadSendPoint++;
Seri0_SendNum--;
}

}

if(RI){
RI = 0;
*Seri0_WriteReciPoint=SBUF;
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))
Seri0_WriteReciPoint=xBuf_Reci_0;
else Seri0_WriteReciPoint++;
Seri0_ReciNum++;
}

// ES=1; /*開
中斷*/
}

/**************************************************
串口1中斷
**************************************************/
void Int_serial1() interrupt 7 using 1{
// ES1=0; /*關(guān)
串行口中斷*/
if(TI_1){
TI_1 = 0; /*清
發(fā)送中斷標(biāo)志*/

if(Seri1_SendNum==0)fSeri1_Send_Ok=0; /*已發(fā)送完畢*/
else {
if((SCON1&0xc0)==0xc0){
ACC=*Seri1_ReadSendPoint;
if(fSeri1_Odd==0)TB8=~P; /*奇效驗*/
else TB8=P; 
/*偶效驗*/
}

SBUF1=*Seri1_ReadSendPoint;
if(Seri1_ReadSendPoint==(xBuf_Send_1+XBUFSERIAL1SEND-1))
Seri1_ReadSendPoint=xBuf_Send_1;
else Seri1_ReadSendPoint++;
Seri1_SendNum--;
}
// SBUF1=0xaa;
}

if(RI_1){
RI_1 = 0;
*Seri1_WriteReciPoint=SBUF1;
if(Seri1_WriteReciPoint==(xBuf_Reci_1+XBUFSERIAL1RECI-1))
Seri1_WriteReciPoint=xBuf_Reci_1;
else Seri1_WriteReciPoint++;
Seri1_ReciNum++;
}

// ES1=1; 
/*開中斷*/
}
/***********************************************************
串口1打包程序
***********************************************************/
void Seri1_Block()
{
unsigned char i,j;

if(Seri1_ReciNum==0)return;

/*包*/
if(Seri1_ReciNum>BLOCKMAX)i=BLOCKMAX;
else i=Seri1_ReciNum;

/*--------------------------------------*/
Seri0_PushSend(STX);
Crc8_ClrSum();
Seri0_PushSend(SERIAL1);
Crc8_AddSum(SERIAL1);
Seri0_PushSend(i);
Crc8_AddSum(i);

while(i>0){
j=Seri1_PopReci();
Seri0_PushSend(j);
Crc8_AddSum(j);
i--;
}

Seri0_PushSend(Crc8_GetSum());
Seri0_PushSend(ETX);
}


/**************************************************
串口1接收緩沖清除
**************************************************/
void Seri1_BufCls()
{
Seri1_ReadReciPoint=xBuf_Reci_1;
Seri1_WriteReciPoint=xBuf_Reci_1;
Seri1_ReciNum=0;
}

/*
code unsigned char tTest2[]={0x02,0x00,0x02,0x0C,0x03,0xC3,0x03};
code unsigned char tTest1[]={0x02,0x00,0x02,0x0B,0x03,0x9D,0x03};

void Ser0_Test()
{
unsigned char i;

for(i=0;i<7;i++){
*Seri0_WriteReciPoint=tTest1[i];
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))
Seri0_WriteReciPoint=xBuf_Reci_0;
else Seri0_WriteReciPoint++;
Seri0_ReciNum++;
}

for(i=0;i<7;i++){
*Seri0_WriteReciPoint=tTest2[i];
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))
Seri0_WriteReciPoint=xBuf_Reci_0;
else Seri0_WriteReciPoint++;
Seri0_ReciNum++;
}
}
*/

#define NONEPARITY 0x0
#define ODDPARITY 0x08
#define EVENPARITY 0x18
#define DATA7BIT 0x80

/*th=256-2^n*f/384/B*/
//#define BPS115200_22M 1|0x40
//#define BPS57600_22M 1
//#define BPS38400_22M 3|0x40
//#define BPS19200_22M 3
//#define BPS9600_22M 6
//#define BPS4800_22M 12
//#define BPS2400_22M 24
//#define BPS1200_22M 48

#define BPS115200_30M_77E58 2|0x80 /**3*/
#define BPS57600_30M_77E58 4|0x80 /**3*/
#define BPS38400_30M_77E58 2
#define BPS19200_30M_77E58 4
#define BPS9600_30M_77E58 8
#define BPS4800_30M_77E58 16
#define BPS2400_30M_77E58 32

 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中国av一区二区三区| 欧美人xxxx| 欧美激情综合在线| 国产激情一区二区三区| 国产日韩亚洲欧美综合| 国产精品 欧美精品| 日韩一区欧美一区| 日本精品裸体写真集在线观看| 亚洲六月丁香色婷婷综合久久| 91国产福利在线| 日韩国产一区二| 欧美videos大乳护士334| 国产福利一区二区| 亚洲视频资源在线| 欧美电影一区二区三区| 激情五月激情综合网| 国产精品色哟哟网站| 色综合亚洲欧洲| 日本欧美韩国一区三区| 国产校园另类小说区| 色婷婷综合久色| 蜜桃av一区二区在线观看 | 国产精品久久久久久久久免费桃花| 成人性生交大片免费看中文 | 美国精品在线观看| 国产精品黄色在线观看| 欧美高清www午色夜在线视频| 国产精品自拍一区| 亚洲综合色视频| 久久久久久久久久电影| 91激情五月电影| 国产一区二区三区免费| 亚洲精品国产第一综合99久久 | 久久爱www久久做| 自拍偷拍欧美激情| 欧美精品一区二区高清在线观看 | 全国精品久久少妇| 国产精品白丝在线| 日韩精品一区二| 日本精品裸体写真集在线观看| 韩国欧美国产一区| 亚洲国产精品久久久久婷婷884| 久久久精品免费观看| 欧美片网站yy| 日本精品视频一区二区三区| 国产精品一区二区黑丝| 亚洲国产一区视频| 1000部国产精品成人观看| 欧美精品一区二区三区蜜桃视频| 日本韩国欧美国产| 成人中文字幕电影| 久久99国产精品久久99| 亚洲3atv精品一区二区三区| 国产精品免费视频网站| 欧美精品一区二区三区视频| 欧美日韩一二三| 91丨porny丨在线| 成人免费三级在线| 国产米奇在线777精品观看| 日日夜夜一区二区| 亚洲国产一区二区视频| 日韩专区欧美专区| 亚洲乱码国产乱码精品精小说 | 51久久夜色精品国产麻豆| 99国产欧美久久久精品| 丁香六月久久综合狠狠色| 久久国产综合精品| 免费久久精品视频| 人禽交欧美网站| 日韩国产精品大片| 日本中文字幕不卡| 日日摸夜夜添夜夜添精品视频| 亚洲影视在线播放| 一区二区三区在线看| 亚洲男人的天堂av| 亚洲精品菠萝久久久久久久| 中文字幕在线观看一区二区| 国产精品美女久久久久久久久| 欧美激情综合五月色丁香小说| 国产偷国产偷精品高清尤物| 久久精品这里都是精品| 国产情人综合久久777777| 久久免费精品国产久精品久久久久| 精品国内二区三区| 亚洲精品一区二区在线观看| xfplay精品久久| 亚洲国产精品国自产拍av| 中文字幕免费不卡| 成人免费在线视频观看| 一区二区在线观看免费视频播放 | 亚洲一区二区三区小说| 亚洲午夜精品在线| 裸体一区二区三区| 国产一区二区不卡在线 | 不卡的电影网站| 91成人免费网站| 6080日韩午夜伦伦午夜伦| 678五月天丁香亚洲综合网| 欧美α欧美αv大片| 国产欧美精品国产国产专区| 亚洲视频在线观看一区| 三级在线观看一区二区| 欧美亚洲精品一区| 欧美日韩一区成人| 26uuu国产在线精品一区二区| 欧美高清在线精品一区| 一区二区三区不卡视频| 日本伊人色综合网| 国产91富婆露脸刺激对白| 在线视频亚洲一区| 欧美成人一区二区| 国产精品毛片无遮挡高清| 视频一区视频二区中文| 成人一区二区在线观看| 欧洲国内综合视频| 久久夜色精品国产欧美乱极品| 成人欧美一区二区三区黑人麻豆 | 一区二区在线观看免费视频播放| 日韩高清在线一区| 成人午夜在线免费| 91精品国产品国语在线不卡| 国产精品无码永久免费888| 亚洲成人资源网| 成人av在线播放网址| 91麻豆精品国产91| 亚洲欧美一区二区视频| 极品少妇一区二区| 在线欧美日韩国产| 国产欧美综合色| 日本不卡123| 91福利社在线观看| 日本一区二区三区高清不卡| 午夜av一区二区| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩欧美一区中文| 韩国成人精品a∨在线观看| 91视频一区二区| 久久精品一区四区| 免费亚洲电影在线| 欧美在线观看视频一区二区 | 制服丝袜在线91| 亚洲激情自拍偷拍| 成人免费观看男女羞羞视频| 精品88久久久久88久久久| 午夜私人影院久久久久| 91网站黄www| 国产精品人人做人人爽人人添| 精品中文av资源站在线观看| 欧美日韩精品一区二区| 亚洲精品久久7777| 99精品在线观看视频| 国产日韩欧美一区二区三区综合| 奇米精品一区二区三区在线观看| 色婷婷亚洲精品| 1024国产精品| 99久久精品99国产精品| 国产网站一区二区| 国产精品主播直播| 久久久久88色偷偷免费| 国产尤物一区二区在线| 欧美大黄免费观看| 美女视频黄久久| 日韩欧美www| 久久精品国产色蜜蜜麻豆| 日韩一区二区免费高清| 免费高清在线一区| 日韩免费视频一区| 久草热8精品视频在线观看| 日韩精品中文字幕在线不卡尤物| 亚洲国产毛片aaaaa无费看| 欧美性xxxxxx少妇| 天天色 色综合| 欧美一卡在线观看| 老司机精品视频一区二区三区| 欧美一区二区视频在线观看| 青青草成人在线观看| 日韩一级大片在线| 国产一区二区成人久久免费影院| 国产午夜三级一区二区三| 丁香一区二区三区| 日韩毛片高清在线播放| 91久久精品国产91性色tv| 粉嫩一区二区三区在线看| 国产日韩欧美精品综合| caoporm超碰国产精品| 国产精品天干天干在观线| av一区二区不卡| 亚洲成人自拍一区| 日韩一区二区三区精品视频| 国产真实乱子伦精品视频| 中文字幕欧美三区| 色网站国产精品| 奇米综合一区二区三区精品视频| 欧美videos大乳护士334| 粉嫩在线一区二区三区视频| 一区二区三区四区中文字幕| 欧美一区二区三区视频免费| 国产黄色精品网站| 亚洲午夜久久久久中文字幕久| 日韩欧美激情一区|