实验单片机与pc机串口通信.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 8 实验 单片机与PC机串口通信(C51编程)实验 要求: 掌握串行口的控制与状态寄存器SCON 掌握特殊功能寄存器PCON 掌握串行口的工作方式及其设置 掌握串行口的波特率(bond rate)选择 任务: 1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。 采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和PROTEUS分别仿真。 需要用到以下软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手,Proteus。 (1)虚拟串口软件、串口调试助手和KEIL C的联调 首先在KEIL里编译写好的程序。 #include <reg51.h> #define uchar unsigned char #define uint unsigned int uchar code SEG7[10]={0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数码管位值 uchar code ACT[4]={0XFE,0xfd,0xfb,0xf7};%数码管位选信号 uchar code as[]="Receving data:\0";%回送预置数据 uchar a=0x30,b; //initiate,串口设置为波特率9600, void init(void){ TMOD=0X20; TH1=0XFD; TL1=0XFD; SCON=0X50; TR1=1; ES=1; EA=1; } //DELAY,为数据管交替显示 void delay(uint k){ uint data i,j; for(i=0;i<k;i++){ for(j=0;j<121;j++) {;} } } //main void main(void){ uchar i; init(); while(1){ //用数码管显示PC发给单片机的数据,并回送给PC P1=SEG7[(a-0x30)/10]; P2=ACT[1]; delay(500); P1=SEG7[(a-0x30)%10]; P2=ACT[0]; delay(500); if(RI){ RI=0; i=0; while(as[i]!='\0'){ SBUF=as[i]; while(!TI){ ; } TI=0; i++; } SBUF=b; while(!TI){ ; } TI=0; EA=1; } } } //INTERRUPT 4,将收到的信息进行转存 void serial_serve(void) interrupt 4 { a=SBUF; b=a; EA=0; } 打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。   左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 mode com3 9600,0,8,1  %分别设置com3的波特率、奇偶校验位、数据位、停止位 assign com3 <sin> sout %把单片机的串口和COM3绑定到一起。因为所用的单片机是  %AT89C51,只有一个串口,所以用SIN,SOUT,如果单片机有 %几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。   (以上参数设置注意要和所编程序中设置一致!)   打开串口调试助手   可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。   现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。 实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。 2、以下在Proteus和串口调试助手实现的结果: 将编译好的HEX程序加载到Proteus中,注

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档