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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 新建 文本文檔.txt

?? 華邦單片機w77e58的雙串口通信源程序。此源程序只作參考
?? TXT
字號:
W77E58雙串口通信源代碼
 
注:此源程序只作參考,內有些函數未有原型,借鑒在于其通信方式及其設置。
CRC檢??闪韰⒖计渌a。
#i nclude <W77E58.h>
#i nclude <Const.h>
#i nclude <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;
/**************************************************
壓入單數據串口0發送隊列
**************************************************/
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接收隊列單數據
**************************************************/
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接收隊列指定序號數據
**************************************************/
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;
/**************************************************
壓入單數據串口1發送隊列
**************************************************/
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接收隊列單數據
**************************************************/
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為波特率發生器*/
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; /*關
串行口中斷*/
if(TI){
TI = 0; /*清
發送中斷標志*/
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; /*關
串行口中斷*/
if(TI_1){
TI_1 = 0; /*清
發送中斷標志*/
if(Seri1_SendNum==0)fSeri1_Send_Ok=0; /*已發送完畢*/
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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美大片在线观看一区| 欧美人动与zoxxxx乱| 久久久久久亚洲综合影院红桃 | 8x8x8国产精品| 亚洲自拍都市欧美小说| 欧美网站大全在线观看| 五月天精品一区二区三区| 欧美一区二区在线不卡| 麻豆极品一区二区三区| 久久久蜜桃精品| 91偷拍与自偷拍精品| 亚洲一区在线观看免费| 欧美一区二区视频在线观看2020| 国产综合成人久久大片91| 欧美国产一区二区| 欧美三级电影在线看| 麻豆精品在线视频| 国产精品婷婷午夜在线观看| 色爱区综合激月婷婷| 日本麻豆一区二区三区视频| 国产欧美日韩久久| 色久综合一二码| 久久99精品国产91久久来源 | 国产精品美女久久久久久久久 | 欧美激情在线免费观看| 在线观看成人小视频| 精品亚洲国产成人av制服丝袜| 久久久国产精品不卡| 欧美亚洲动漫精品| 精品亚洲成a人在线观看| 亚洲精品中文字幕在线观看| 日韩免费福利电影在线观看| 久久99九九99精品| 亚洲精品va在线观看| 欧美精品一区二区三区蜜臀| 色婷婷久久久综合中文字幕| 韩国成人精品a∨在线观看| 亚洲精品伦理在线| 久久久欧美精品sm网站| 欧美日韩国产影片| 成人av午夜影院| 另类综合日韩欧美亚洲| 亚洲日本在线视频观看| 精品日韩在线观看| 欧美亚洲动漫精品| www.欧美精品一二区| 日韩一区精品视频| 亚洲欧美日韩一区二区三区在线观看| 欧美成人猛片aaaaaaa| 在线观看免费亚洲| a级高清视频欧美日韩| 久久国产麻豆精品| 天天综合天天综合色| 日韩av一区二| 亚洲永久免费av| 国产精品乱子久久久久| 久久综合狠狠综合| 日韩午夜av电影| 欧美高清性hdvideosex| 99热99精品| 成人免费黄色在线| 久久av老司机精品网站导航| 亚洲国产一二三| 国产精品久久久久久久第一福利| 久久久久久99久久久精品网站| 91精品国产综合久久久久久久久久 | 国产精品自拍三区| 免费成人av资源网| 日本少妇一区二区| 婷婷夜色潮精品综合在线| 一级做a爱片久久| 亚洲美女免费在线| 中文字幕一区二区三区在线播放| 国产午夜精品在线观看| 久久先锋影音av鲁色资源| 精品国产欧美一区二区| 精品动漫一区二区三区在线观看| 91精品国产91热久久久做人人| 欧美人体做爰大胆视频| 欧美一区二区三区视频免费播放| 欧美精品自拍偷拍动漫精品| 欧美日韩一区中文字幕| 欧美卡1卡2卡| 制服视频三区第一页精品| 91精品国产综合久久香蕉麻豆| 欧美精品在线视频| 日韩一区二区在线观看视频| 欧美不卡123| 亚洲精品一区二区三区蜜桃下载| 久久精品夜色噜噜亚洲aⅴ| 国产区在线观看成人精品| 国产精品免费人成网站| 亚洲精品福利视频网站| 午夜精品影院在线观看| 免费在线观看日韩欧美| 国产乱对白刺激视频不卡| 国产白丝精品91爽爽久久| 99re8在线精品视频免费播放| 91麻豆免费观看| 中文字幕成人av| 一区av在线播放| 美女国产一区二区| 国产成人综合在线| 91小视频免费观看| 欧美日韩mp4| 久久精品免视看| 一二三区精品福利视频| 一片黄亚洲嫩模| 精品一区二区国语对白| 99久久99久久久精品齐齐| 538在线一区二区精品国产| 久久久久亚洲综合| 亚洲黄色录像片| 国产麻豆成人精品| 在线视频中文字幕一区二区| 日韩天堂在线观看| 亚洲色图视频免费播放| 强制捆绑调教一区二区| 97久久精品人人爽人人爽蜜臀| 欧美一区二区视频在线观看| 国产精品美女一区二区三区 | 亚洲视频综合在线| 美国av一区二区| 色欧美日韩亚洲| 精品国产亚洲一区二区三区在线观看 | 老司机精品视频一区二区三区| 国产精品综合网| 欧美日产在线观看| 国产精品久久久久精k8| 天堂av在线一区| 不卡av在线免费观看| 欧美一级xxx| 亚洲日本一区二区| 国产精品一区免费在线观看| 欧美老肥妇做.爰bbww视频| 欧美国产欧美综合| 日本vs亚洲vs韩国一区三区二区| av电影在线观看完整版一区二区| 欧美xxxx老人做受| 亚洲chinese男男1069| 96av麻豆蜜桃一区二区| 精品国产乱码久久久久久1区2区| 亚洲一级在线观看| 91老师国产黑色丝袜在线| 久久精品水蜜桃av综合天堂| 蜜桃免费网站一区二区三区| 欧美性生活影院| 亚洲精选视频在线| 成人av网站在线观看免费| 精品粉嫩aⅴ一区二区三区四区| 亚洲国产综合视频在线观看| 91在线你懂得| 中文字幕一区av| 国产99久久精品| 久久久久国产精品麻豆ai换脸| 蜜桃视频在线观看一区二区| 欧美午夜宅男影院| 亚洲色欲色欲www| 成人免费视频视频在线观看免费 | 日韩视频一区二区在线观看| 亚洲国产va精品久久久不卡综合 | 国产精品99久久不卡二区| 精品伦理精品一区| 麻豆91精品视频| 日韩欧美色综合| 九一久久久久久| 日韩欧美国产高清| 精品一区二区影视| 精品99一区二区三区| 极品销魂美女一区二区三区| wwwwww.欧美系列| 国产在线精品一区二区| 久久久国产一区二区三区四区小说| 精品一区二区免费看| 久久精品亚洲麻豆av一区二区 | 国产精品少妇自拍| 粉嫩av一区二区三区在线播放| 国产欧美精品在线观看| 粉嫩高潮美女一区二区三区| 国产日韩欧美电影| 99久久伊人久久99| 一区二区三区在线免费播放| 欧美手机在线视频| 日日摸夜夜添夜夜添国产精品| 91精品在线免费| 精品一区二区三区在线视频| 久久久精品人体av艺术| 99久久婷婷国产综合精品| 亚洲人123区| 欧美日韩国产精选| 精品影视av免费| 国产精品国产精品国产专区不片| 91老师国产黑色丝袜在线| 成人91在线观看| 一区二区理论电影在线观看| 欧美一区日韩一区| 成人国产在线观看| 亚洲大片免费看| 久久午夜老司机| 91丝袜国产在线播放|