📄 w77e58 双串口通信源代码.htm
字号:
<br>
if(CKCON&0x20)mBps*=4;<br>
else mBps*=12;<br>
<br>
TL2= RCAP2L=(~mBps)+1;<br>
TH2=RCAP2H=0xff;<br>
T2CON|=0x30; /*选择T2为波特率发生器*/<br>
TR2=1;<br>
}<br>
<br>
if(Location==0){<br>
SCON|=0x40; /*方式8位*/<br>
REN=1;<br>
ES=1;<br>
}<br>
else {<br>
ACC=mMode;<br>
if(ACC3){<br>
SCON1|=0xc0; /*方式9位*/<br>
}<br>
else {<br>
SCON1|=0x40; /*方式8位*/<br>
}<br>
fSeri1_Odd=ACC4; /*奇偶效验方式,0奇*/<br>
<br>
REN_1=1;<br>
ES1=1;<br>
}<br>
}<br>
<br>
/**************************************************<br>
串口0中断<br>
**************************************************/<br>
void Int_serial0() interrupt 4 using 1{<br>
// ES=0; /*关<br>
串行口中断*/<br>
if(TI){<br>
TI = 0; /*清<br>
发送中断标志*/<br>
if(Seri0_SendNum==0)fSeri0_Send_Ok=0;<br>
else {<br>
SBUF=*Seri0_ReadSendPoint;<br>
<br>
if(Seri0_ReadSendPoint==(xBuf_Send_0+XBUFSERIAL0SEND-1))<br>
Seri0_ReadSendPoint=xBuf_Send_0;<br>
else Seri0_ReadSendPoint++;<br>
Seri0_SendNum--;<br>
}<br>
<br>
}<br>
<br>
if(RI){<br>
RI = 0;<br>
*Seri0_WriteReciPoint=SBUF;<br>
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))<br>
Seri0_WriteReciPoint=xBuf_Reci_0;<br>
else Seri0_WriteReciPoint++;<br>
Seri0_ReciNum++;<br>
}<br>
<br>
// ES=1; /*开<br>
中断*/<br>
}<br>
<br>
/**************************************************<br>
串口1中断<br>
**************************************************/<br>
void Int_serial1() interrupt 7 using 1{<br>
// ES1=0; /*关<br>
串行口中断*/<br>
if(TI_1){<br>
TI_1 = 0; /*清<br>
发送中断标志*/<br>
<br>
if(Seri1_SendNum==0)fSeri1_Send_Ok=0; /*已发送完毕*/<br>
else {<br>
if((SCON1&0xc0)==0xc0){<br>
ACC=*Seri1_ReadSendPoint;<br>
if(fSeri1_Odd==0)TB8=~P; /*奇效验*/<br>
else TB8=P; <br>
/*偶效验*/<br>
}<br>
<br>
SBUF1=*Seri1_ReadSendPoint;<br>
if(Seri1_ReadSendPoint==(xBuf_Send_1+XBUFSERIAL1SEND-1))<br>
Seri1_ReadSendPoint=xBuf_Send_1;<br>
else Seri1_ReadSendPoint++;<br>
Seri1_SendNum--;<br>
}<br>
// SBUF1=0xaa;<br>
}<br>
<br>
if(RI_1){<br>
RI_1 = 0;<br>
*Seri1_WriteReciPoint=SBUF1;<br>
if(Seri1_WriteReciPoint==(xBuf_Reci_1+XBUFSERIAL1RECI-1))<br>
Seri1_WriteReciPoint=xBuf_Reci_1;<br>
else Seri1_WriteReciPoint++;<br>
Seri1_ReciNum++;<br>
}<br>
<br>
// ES1=1; <br>
/*开中断*/<br>
}<br>
/***********************************************************<br>
串口1打包程序<br>
***********************************************************/<br>
void Seri1_Block()<br>
{<br>
unsigned char i,j;<br>
<br>
if(Seri1_ReciNum==0)return;<br>
<br>
/*包*/<br>
if(Seri1_ReciNum>BLOCKMAX)i=BLOCKMAX;<br>
else i=Seri1_ReciNum;<br>
<br>
/*--------------------------------------*/<br>
Seri0_PushSend(STX);<br>
Crc8_ClrSum();<br>
Seri0_PushSend(SERIAL1);<br>
Crc8_AddSum(SERIAL1);<br>
Seri0_PushSend(i);<br>
Crc8_AddSum(i);<br>
<br>
while(i>0){<br>
j=Seri1_PopReci();<br>
Seri0_PushSend(j);<br>
Crc8_AddSum(j);<br>
i--;<br>
}<br>
<br>
Seri0_PushSend(Crc8_GetSum());<br>
Seri0_PushSend(ETX);<br>
}<br>
<br>
<br>
/**************************************************<br>
串口1接收缓冲清除<br>
**************************************************/<br>
void Seri1_BufCls()<br>
{<br>
Seri1_ReadReciPoint=xBuf_Reci_1;<br>
Seri1_WriteReciPoint=xBuf_Reci_1;<br>
Seri1_ReciNum=0;<br>
}<br>
<br>
/*<br>
code unsigned char tTest2[]={0x02,0x00,0x02,0x0C,0x03,0xC3,0x03};<br>
code unsigned char tTest1[]={0x02,0x00,0x02,0x0B,0x03,0x9D,0x03};<br>
<br>
void Ser0_Test()<br>
{<br>
unsigned char i;<br>
<br>
for(i=0;i<7;i++){<br>
*Seri0_WriteReciPoint=tTest1[i];<br>
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))<br>
Seri0_WriteReciPoint=xBuf_Reci_0;<br>
else Seri0_WriteReciPoint++;<br>
Seri0_ReciNum++;<br>
}<br>
<br>
for(i=0;i<7;i++){<br>
*Seri0_WriteReciPoint=tTest2[i];<br>
if(Seri0_WriteReciPoint==(xBuf_Reci_0+XBUFSERIAL0RECI-1))<br>
Seri0_WriteReciPoint=xBuf_Reci_0;<br>
else Seri0_WriteReciPoint++;<br>
Seri0_ReciNum++;<br>
}<br>
}<br>
*/<br>
<br>
#define NONEPARITY 0x0<br>
#define ODDPARITY 0x08<br>
#define EVENPARITY 0x18<br>
#define DATA7BIT 0x80<br>
<br>
/*th=256-2^n*f/384/B*/<br>
//#define BPS115200_22M 1|0x40<br>
//#define BPS57600_22M 1<br>
//#define BPS38400_22M 3|0x40<br>
//#define BPS19200_22M 3<br>
//#define BPS9600_22M 6<br>
//#define BPS4800_22M 12<br>
//#define BPS2400_22M 24<br>
//#define BPS1200_22M 48<br>
<br>
#define BPS115200_30M_77E58 2|0x80 /**3*/<br>
#define BPS57600_30M_77E58 4|0x80 /**3*/<br>
#define BPS38400_30M_77E58 2<br>
#define BPS19200_30M_77E58 4<br>
#define BPS9600_30M_77E58 8<br>
#define BPS4800_30M_77E58 16<br>
#define BPS2400_30M_77E58 32<br>
<br>
</p>
</td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
<table width="601" border="0" cellspacing="0" cellpadding="5" height="24" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="580" height="25" align="center">
<p align="center" style="margin-top: 0; margin-bottom: 0">
</p>
<p align="center" style="margin-top: 0; margin-bottom: 0">
<font size="4"><a target="_blank" href="http://www.fjmcu.com/">回首页</a></font></p>
</td>
</tr>
<tr>
<td width="593" valign="top" height="1">
<p align="center" style="margin-top: 0; margin-bottom: 0">
<font color="#FFFFFF" style="font-size: 7pt">MCS-51单片机、AVR系列MCU、CPLD/FPGA原理与应用实例,源程序下载,提供设计开发服务,原名:沈文的单片机世界,现更名为:精诚电子设计</font></p>
<p align="center" style="margin-top: 4; margin-bottom: 4">
<img border="0" src="../../image/line.gif" width="598" height="2"></td>
</tr>
</table>
<div align="left">
<table width="480" border="0" cellspacing="0" cellpadding="5" height="126" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="247" valign="top" height="27">
<table width="597" border="0" cellspacing="0" cellpadding="2" height="4" style="border-collapse: collapse" bordercolor="#111111">
<tr>
<td width="577" height="1" colspan="3">
</td>
</tr>
<tr>
<td width="577" height="28" align="center" colspan="3">
<p style="margin-top: 4; margin-bottom: 4">精诚电子设计,域名:<span lang="en-us"><a target="_blank" href="http://www.fjmcu.com/">http://www.fjmcu.com</a></span></p>
<p style="margin-top: 4; margin-bottom: 4"><span class="tab">
<font class="tab" size="2">Copyright@ 2000-2003 all rights reserved.</font></span></td>
</tr>
<tr>
<td width="91" height="70" align="center">
<p style="margin-top: 4; margin-bottom: 4" align="left"> </p>
<p style="margin-top: 4; margin-bottom: 4"> </td>
<td width="149" height="70" align="center">
<p style="margin-top: 4; margin-bottom: 4" align="left">与站长联系:</p>
<p style="margin-top: 4; margin-bottom: 4" align="left">手机:013905998618</p>
<p style="margin-top: 4; margin-bottom: 4" align="left">传真:<span lang="en-us">0599-5822874</span></td>
<td width="244" height="70" align="center">
<p style="margin-top: 4; margin-bottom: 4" align="left">邮件:<A HREF="mailto:help@fjmcu.com">help@fjmcu.com</A></td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -