单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx

上传人:b****6 文档编号:3153564 上传时间:2022-11-18 格式:DOCX 页数:14 大小:264.52KB
下载 相关 举报
单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx_第1页
第1页 / 共14页
单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx_第2页
第2页 / 共14页
单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx_第3页
第3页 / 共14页
单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx_第4页
第4页 / 共14页
单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx

《单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx》由会员分享,可在线阅读,更多相关《单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx(14页珍藏版)》请在冰豆网上搜索。

单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真.docx

单片机与PC通信proteus与虚拟串口驱动软件以及串口调试助手的仿真

单片机与PC通信-(proteus与虚拟串口驱动软件以及串口调试助手的仿真)

 

 

————————————————————————————————作者:

————————————————————————————————日期:

 

实验:

单片机与PC通信

(proteus与虚拟串口驱动软件以及串口调试助手的仿真)

 

实现内容:

设置单片机串行口为工作方式一,波特率为9600。

PC从串口发送字符1、2、3或4到单片机串行口,单片机接收到该字符后,首先在P2口显示字符,然后根据字符不同返回不同字符串,具体要求如下表:

表:

单片机与PC通信内容

PC发送字符

单片机返回

1

1:

WhatdoyouplantodothisFriday?

2

2:

Iplantogototheconcert.

3

3:

Whatareyoudoingnextweek?

4

4:

I'mthinkofgoingtomygrandma's.

其他字符

5:

Pleaseselectacharacter'1','2','3'or'4'!

 

一、proteus仿真图:

(此proteus仿真图可免费下载,下载网址:

1、

图1.1

 

2、注意:

(1)51单片机属性的时钟频率(clockfrequency)必为11.0592mhz,否则无法仿真。

请按下图设置AT89SC52

图1.2

 

3、在仿真图中P1即(元件名称:

COMPIN)模块为集成电平转换的串行通信接口(如下图)

(1)

图1.3

(2)设置参数如下

图1.4

 

4、虚拟串口驱动设置

在右侧选择端口一:

“COM3”端口二:

“COM4”,然后按“添加端口”,

此时左侧的Virtualports下出现:

图1.5

表示添加了COM3,COM4一对虚拟串行口,且已连接,故我们把单片机和PC选择COM3和COM4。

(如图1.4中的physicalport选项:

COM4;图中:

串口号COM3)。

接着再在右侧选择端口一:

“COM1”端口二:

“COM2”,则为下图,

图1.6

虚拟串口驱动设置完毕

 

5、串口调试助手设置

 

如图1.7

图1.7

 

6、

 

(1)将“程序”在Keil软件中编译生成“HEX”文件,加载到仿真图中的AT89C52中,启动仿真

图1.9

 

(2)按下图1.7中串口调试助手的“连接”按钮,在串口调试助手的”发送窗口”,依次输入1、2、3、4和5,发送后可以看到单片机返回的字符串一次显示在接收窗口。

 

如下图所示

 

实验程序

#include

#include

#include

#include

#include

#include

 

#definebyteunsignedchar

#defineucharunsignedchar

#definewordunsignedint

#defineuintunsignedint

#defineulongunsignedlong

#defineBYTEunsignedchar

#defineWORDunsignedint

 

#defineTRUE1

#defineFALSE0

voidtime(unsignedintucMs);

voidinitUart(void);

voidsendString(uchar*ucString);

 

voidmain(void)

{

time

(1);

initUart();

IE=0x90;

while(TRUE){}

}

 

voidinitUart(void)

{

SCON=0x50;//选择串口工作方式,打开接收允许

RCAP2H=(65536-(3456/96))>>8;

RCAP2L=(65536-(3456/96))%256;

T2CON=0x34;

//启动定时器T1

}

 

voidserial0_int(void)interrupt4

{

ucharrChar;

ucharcodestr1[]="WhatdoyouplantodothisFriday?

";

ucharcodestr2[]="Iplantogototheconcert.";

ucharcodestr3[]="Whatareyoudoingnextweek?

";

ucharcodestr4[]="I'mthinkofgoingtomygrandma's.";

ucharcodestrdefault[]="Pleaseselectacharacter'1','2','3'or'4'!

";

 

EA=0;

RI=0;

rChar=SBUF;

P2=rChar;

switch(rChar)

{

case'1':

SBUF='1';while(TI==0){}TI=0;

SBUF=':

';while(TI==0){}TI=0;

sendString(str1);

break;

 

case'2':

SBUF='2';while(TI==0){}TI=0;

SBUF=':

';while(TI==0){}TI=0;

sendString(str2);

break;

case'3':

SBUF='3';while(TI==0){}TI=0;

SBUF=':

';while(TI==0){}TI=0;

sendString(str3);

break;

case'4':

SBUF='4';while(TI==0){}TI=0;

SBUF=':

';while(TI==0){}TI=0;

sendString(str4);

break;

default:

SBUF='d';while(TI==0){}TI=0;

SBUF=':

';while(TI==0){}TI=0;

sendString(strdefault);

break;

}

EA=1;

}

voidsendString(uchar*ucString)

{

uchari,stringLength=strlen(ucString);

REN=0;

for(i=0;i

{

SBUF=ucString[i];while(TI==0);TI=0;

}

SBUF=0x0d;while(TI==0);TI=0;

SBUF=0x0a;while(TI==0);TI=0;

SBUF=0x0a;while(TI==0);TI=0;

REN=1;

}

voiddelay_5us(void)

{

_nop_();

_nop_();

}

 

voiddelay_50us(void)

{

unsignedchari;

for(i=0;i<4;i++);

{

delay_5us();

}

}

voiddelay_100us(void)

{

delay_50us();

delay_50us();

}

 

voidtime(unsignedintucMs)

{

unsignedcharj;

while(ucMs>0)

{

for(j=0;j<10;j++);

delay_100us();

ucMs--;

}

}

 

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

当前位置:首页 > 高等教育 > 研究生入学考试

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

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