串口调试助手通信调试原理图PCB及使用手册文档格式.docx

上传人:b****6 文档编号:17632982 上传时间:2022-12-07 格式:DOCX 页数:31 大小:2.03MB
下载 相关 举报
串口调试助手通信调试原理图PCB及使用手册文档格式.docx_第1页
第1页 / 共31页
串口调试助手通信调试原理图PCB及使用手册文档格式.docx_第2页
第2页 / 共31页
串口调试助手通信调试原理图PCB及使用手册文档格式.docx_第3页
第3页 / 共31页
串口调试助手通信调试原理图PCB及使用手册文档格式.docx_第4页
第4页 / 共31页
串口调试助手通信调试原理图PCB及使用手册文档格式.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

串口调试助手通信调试原理图PCB及使用手册文档格式.docx

《串口调试助手通信调试原理图PCB及使用手册文档格式.docx》由会员分享,可在线阅读,更多相关《串口调试助手通信调试原理图PCB及使用手册文档格式.docx(31页珍藏版)》请在冰豆网上搜索。

串口调试助手通信调试原理图PCB及使用手册文档格式.docx

【原理图】

【PCB图】

【元件清单】

【应用举例】

【应用举例2】

例如:

将下面一组数据通过串口发送给电脑。

波特率是9600,电脑用串口助手显示出来。

数据是:

A0B2CCFFEFD89088

第一步:

板子供电,串口连接电脑,查看串口号。

如下图:

我的电脑--属性--硬件---设备管理器---端口设备。

第二步:

打开串口助手,设置对应的串口号和十六进制显示。

第三步:

从发送板,按下下面一组数据,数据是:

A0B2CCFFEFD89088数据按完之后,按发送键“S2”,如果数据输入错误,可以按”S1”按键清零,重新输入。

如果要发送多遍,重复按“S2”按键。

单遍发送如下图。

【源代码程序】

/*

一次最多发送20组数据,大于这个数据就不再发送

*/

#include<

STC12C5A60S2.H>

#defineucharunsignedchar

#defineuintunsignedint

/**************************************************************/

unsignedcharT0RH=0;

//T0重载值的高字节

unsignedcharT0RL=0;

//T0重载值的低字节

externvoidUartDriver();

//串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用

externvoidConfigUART(unsignedintbaud);

//串口配置函数,baud-通信波特率

externvoidConfigUART1(unsignedintbaud1);

//串口配置函数,baud-通信波特率

externvoidUartRxMonitor(unsignedcharms);

//串口接收监控,由空闲时间判定帧结束,需在定时中断中调用,ms-定时间隔

externvoidSendString(char*s);

externvoidUartWrite(unsignedchar*buf,unsignedcharlen);

//串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度

externvoidfengming();

ucharzh[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

ucharjieshou[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

ucharjj=0;

/*****************************************************************/

sbitout0=P2^0;

sbitout1=P2^1;

sbitout2=P2^2;

sbitout3=P2^3;

sbitin0=P2^4;

sbitin1=P2^5;

sbitin2=P2^6;

sbitin3=P2^7;

sbitsmgk=P3^6;

sbitboma1=P1^1;

sbitboma2=P1^0;

bitd1=1;

bitd2=1;

sbitin4=P1^6;

sbitin5=P1^5;

ucharcodexianshi[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};

uchardangqianzhuangtai[4][4]={{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}};

voidt0()interrupt1

{

uchari;

staticucharlie=0;

staticucharsao[2]={1,1};

staticucharsaomiaobaocun[4][4]={{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff},{0xff,0xff,0xff,0xff}};

TH0=0xfc;

TL0=0x67;

UartRxMonitor

(1);

//串口接收监控

sao[0]=(sao[0]<

<

1)|in4;

sao[1]=(sao[1]<

1)|in5;

saomiaobaocun[lie][0]=(saomiaobaocun[lie][0]<

1)|in0;

saomiaobaocun[lie][1]=(saomiaobaocun[lie][1]<

1)|in1;

saomiaobaocun[lie][2]=(saomiaobaocun[lie][2]<

1)|in2;

saomiaobaocun[lie][3]=(saomiaobaocun[lie][3]<

1)|in3;

if(sao[0]==0x00)

{

d1=0;

}

elseif(sao[0]==0xff)

d1=1;

if(sao[1]==0x00)

d2=0;

elseif(sao[1]==0xff)

d2=1;

for(i=0;

i<

4;

i++)

if((saomiaobaocun[lie][i]&

0x0f)==0x00)

dangqianzhuangtai[lie][i]=0;

elseif((saomiaobaocun[lie][i]&

0x0f)==0x0f)

dangqianzhuangtai[lie][i]=1;

lie++;

lie=lie&

0x03;

switch(lie)

case0:

out1=1;

out2=1;

out3=1;

out0=0;

break;

case1:

out0=1;

out1=0;

case2:

out2=0;

case3:

out3=0;

}

voidmain()

uchari,j;

bitq1=1;

bitq2=1;

ucharqianyicizhuangtai[4][4]={{1,1,1,1},{1,1,1,1},{1,1,1,1},{1,1,1,1}};

smgk=0;

TMOD=0x01;

TR0=1;

EA=1;

ET0=1;

P0=xianshi[16];

//ConfigUART(9600);

//配置波特率为9600

while

(1)

UartDriver();

//调用串口驱动

if((boma1==0)&

&

(boma2!

=0))

ConfigUART(2400);

//配置波特率为1200

if((boma2==0)&

(boma1!

ConfigUART(4800);

//配置波特率为4800

(boma2==0))

ConfigUART(9600);

//配置波特率为9600

if((boma1!

=0)&

ConfigUART1(19200);

//配置波特率为19200

if(d1!

=q1)

q1=d1;

if(d1==0)

{

if((jj!

(jj<

=2))

{

zh[0]=jieshou[0]|jieshou[1];

UartWrite(zh,1);

fengming();

}

if((jj>

2)&

=4))

zh[1]=jieshou[2]|jieshou[3];

UartWrite(zh,2);

4)&

=6))

zh[2]=jieshou[4]|jieshou[5];

UartWrite(zh,3);

6)&

=8))

zh[3]=jieshou[6]|jieshou[7];

UartWrite(zh,4);

8)&

=10))

zh[4]=jieshou[8]|jieshou[9];

UartWrite(zh,5);

10)&

=12))

zh[5]=jieshou[10]|jieshou[11];

UartWrite(zh,6);

if((jj>

12)&

=14))

zh[6]=jieshou[12]|jieshou[13];

UartWrite(zh,7);

14)&

=16))

zh[7]=jieshou[14]|jieshou[15];

UartWrite(zh,8);

if((jj>

16)&

=18))

zh[8]=jieshou[16]|jieshou[17];

UartWrite(zh,9);

if((jj>

18)&

=20))

zh[9]=jieshou[18]|jieshou[19];

UartWrite(zh,10);

}

if(d2!

=q2)

q2=d2;

if(d2==0)

jj=0;

jieshou[0]=0x00;

jieshou[1]=0x00;

jieshou[2]=0x00;

jieshou[3]=0x00;

jieshou[4]=0x00;

jieshou[5]=0x00;

jieshou[6]=0x00;

jieshou[7]=0x00;

jieshou[8]=0x00;

jieshou[9]=0x00;

P0=xianshi[16];

fengming();

for(j=0;

j<

j++)

{

if(dangqianzhuangtai[i][j]!

=qianyicizhuangtai[i][j])

qianyicizhuangtai[i][j]=dangqianzhuangtai[i][j];

if(qianyicizhuangtai[i][j]!

=0)

jj++;

if((i*4+j)<

9)

{

P0=xianshi[i*4+j+1];

}

if((i*4+j)==9)

P0=xianshi[0];

if((i*4+j)>

P0=xianshi[i*4+j];

fengming();

/******************1组**************************/

if(jj==1)

//jieshou[0]=i*4+j;

//jieshou[0]=jieshou[0]<

4;

if((i*4+j)<

{

jieshou[0]=i*4+j+1;

}

if((i*4+j)==9)

jieshou[0]=0;

if((i*4+j)>

jieshou[0]=i*4+j;

jieshou[0]=jieshou[0]<

if(jj==2)

//jieshou[1]=i*4+j;

jieshou[1]=i*4+j+1;

jieshou[1]=0;

jieshou[1]=i*4+j;

/******************2组**************************/

if(jj==3)

//jieshou[2]=i*4+j;

jieshou[2]=i*4+j+1;

jieshou[2]=0;

jieshou[2]=i*4+j;

jieshou[2]=jieshou[2]<

if(jj==4)

//jieshou[3]=i*4+j;

jieshou[3]=i*4+j+1;

jieshou[3]=0;

jieshou[3]=i*4+j;

}

/******************3组**************************/

if(jj==5)

//jieshou[4]=i*4+j;

jieshou[4]=i*4+j+1;

jieshou[4]=0;

jieshou[4]=i*4+j;

jieshou[4]=jieshou[4]<

if(jj==6)

//jieshou[5]=i*4+j;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 哲学历史

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1