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

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

?? w77e58.c

?? 華邦W77E55單片機雙串口通訊例程
?? C
字號:
//W77E58 雙串口通信源代碼 
//單片機 發表于 2005-9-22 21:07:36 

//W77E58 雙串口通信源代碼
 
//注:此源程序只作參考,內有些函數未有原型,借鑒在于其通信方式及其設置。
//CRC檢??闪韰⒖计渌a。
#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;

/**************************************************
壓入單數據串口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一区二区三区免费野_久草精品视频
国产精品福利一区二区| 亚洲女爱视频在线| 中文字幕亚洲精品在线观看| 亚洲二区在线视频| 国产剧情在线观看一区二区| 欧美亚洲综合色| 国产日韩av一区| 日产欧产美韩系列久久99| 国产999精品久久| 日韩精品一区二区三区视频播放| 国产精品亲子乱子伦xxxx裸| 美女视频黄 久久| 欧美羞羞免费网站| 亚洲色图丝袜美腿| 国产99久久久久久免费看农村| 欧美男生操女生| 一区二区三区**美女毛片| 高清beeg欧美| 久久综合久久鬼色| 美女精品一区二区| 欧美一区二区三区电影| 亚洲一二三区在线观看| 色婷婷亚洲精品| 亚洲欧洲av另类| 不卡的av在线播放| 中文无字幕一区二区三区| 韩国欧美国产1区| 日韩久久精品一区| 久久99日本精品| 日韩写真欧美这视频| 青娱乐精品在线视频| 欧美日韩成人在线一区| 亚洲成人av电影| 欧美欧美欧美欧美首页| 日韩激情一二三区| 欧美一区二区网站| 久久成人久久爱| 久久众筹精品私拍模特| 国产剧情一区二区| 国产精品网站在线观看| 99久久综合狠狠综合久久| 国产精品丝袜黑色高跟| 成人激情免费视频| 亚洲精品大片www| 欧美三级日韩三级| 美日韩黄色大片| 国产色爱av资源综合区| 成人听书哪个软件好| 亚洲视频综合在线| 日本精品视频一区二区三区| 一区二区三区毛片| 91麻豆精品国产91久久久 | 午夜欧美大尺度福利影院在线看| 国产欧美一区二区在线观看| 国产成人免费视频网站| 国产亚洲精品超碰| 99精品视频一区二区三区| 中文字幕日本不卡| 欧美在线观看视频一区二区| 日韩国产欧美在线观看| 久久综合九色综合欧美98| 国产suv精品一区二区三区| 亚洲区小说区图片区qvod| 777久久久精品| 国产成人aaaa| 亚洲一区二区三区小说| 欧美一区二区三区影视| 成人性生交大合| 婷婷综合五月天| 中文字幕一区二区三区在线观看| 中文字幕一区二区三区不卡| av电影在线观看完整版一区二区 | 精品免费日韩av| 国产麻豆成人传媒免费观看| 亚洲欧美综合网| 欧美一二三在线| 99久久婷婷国产综合精品| 日韩国产欧美在线视频| 中文一区在线播放| 91精品国产高清一区二区三区蜜臀| 久久精品99国产国产精| 亚洲免费看黄网站| 久久久精品黄色| 欧美理论片在线| 成人福利视频网站| 精品一区二区免费在线观看| 亚洲伦理在线免费看| 亚洲精品一区二区三区四区高清| 91福利精品第一导航| 国产一区二区三区免费| 天天色图综合网| 一区二区三区毛片| 日本一区二区三区四区| 26uuu久久天堂性欧美| 欧美三级三级三级爽爽爽| 99久久精品国产观看| 国产精品一线二线三线| 玖玖九九国产精品| 午夜精品福利一区二区蜜股av| 中文字幕在线一区免费| 久久久一区二区三区捆绑**| 91精品国产综合久久久久久久 | 欧美性感一类影片在线播放| 国产成人精品亚洲日本在线桃色| 日韩精品电影一区亚洲| 亚洲在线观看免费视频| 亚洲乱码中文字幕| 亚洲人成在线播放网站岛国| 国产精品久久久久久久久免费相片 | 麻豆精品在线播放| 五月婷婷另类国产| 亚洲第一激情av| 亚洲成在线观看| 香蕉久久夜色精品国产使用方法| 中文字幕日韩一区二区| 中文字幕一区二区三区不卡 | 成人黄色免费短视频| 国产成人精品免费在线| 国产精品1024| 国产精品亚洲一区二区三区妖精 | 国产精品视频看| 国产欧美精品一区二区色综合朱莉| 欧美tickling网站挠脚心| 日韩欧美卡一卡二| 亚洲免费观看高清完整版在线观看 | 一本色道综合亚洲| 国产成a人亚洲| 国产精品亚洲成人| 成人毛片老司机大片| 99视频国产精品| 欧洲色大大久久| 91精品欧美综合在线观看最新| 9191精品国产综合久久久久久 | 久久久www免费人成精品| 久久久久亚洲综合| 国产精品伦理在线| 亚洲影视在线播放| 日韩1区2区日韩1区2区| 激情av综合网| 99精品视频在线免费观看| 国产精品传媒视频| 国产精品黄色在线观看| 精品国产1区二区| 国产成人精品在线看| 婷婷中文字幕一区三区| 日本不卡一二三| 韩国成人精品a∨在线观看| 国产成都精品91一区二区三| 一本色道久久综合亚洲aⅴ蜜桃| 欧美性受极品xxxx喷水| 亚洲精品一区二区三区在线观看| 国产欧美精品在线观看| 亚洲一区二区在线免费观看视频| 免费在线观看精品| 成人不卡免费av| 69精品人人人人| 国产午夜精品一区二区三区视频| 一区二区三区四区乱视频| 理论电影国产精品| 日本国产一区二区| 精品剧情v国产在线观看在线| 中文字幕中文乱码欧美一区二区| 日韩精品一级中文字幕精品视频免费观看 | 精品乱人伦小说| 欧美在线观看18| 国产视频不卡一区| 亚洲成av人片在线观看无码| 国产a级毛片一区| 91精品国模一区二区三区| 国产精品伦一区二区三级视频| 午夜视频久久久久久| www.久久久久久久久| 欧美成人一区二区三区片免费| 亚洲人成在线播放网站岛国| 久久精品国产久精国产爱| 在线亚洲人成电影网站色www| 欧美精品一区二区高清在线观看| 亚洲福中文字幕伊人影院| 丰满亚洲少妇av| 精品国产91久久久久久久妲己| 亚洲成人黄色小说| 色网综合在线观看| 成人欧美一区二区三区| 国产一区二区三区| 日韩美女在线视频| 日韩国产在线观看一区| 91国偷自产一区二区开放时间 | 亚洲精品久久久蜜桃| 国产一区二区三区四区五区美女| 欧美男男青年gay1069videost | 精品欧美乱码久久久久久1区2区 | 日本在线不卡视频| 欧美色图在线观看| 亚洲精品视频观看| 91在线视频官网| 国产精品成人网| 99视频在线精品| 综合激情网...| 色哟哟精品一区| 亚洲女同女同女同女同女同69|