实验单片机与PC机串口通信之欧阳文创编_第1页
实验单片机与PC机串口通信之欧阳文创编_第2页
实验单片机与PC机串口通信之欧阳文创编_第3页
实验单片机与PC机串口通信之欧阳文创编_第4页
实验单片机与PC机串口通信之欧阳文创编_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验单片机与PC机串口通信(C51编程)实验时间:2021.03. 12创作:欧阳文要求:1、掌握串行口的控制与状态寄存器SCON2、掌握特殊功能寄存器PCON3、掌握串行口的工作方式及其设置4、掌握串行口的波特率(bond rate)选择任务:1、实现PC机发送一个字符给单片机,单片机接收到后即在 个位、十位数码管上进行显示,同时将其回发给PC机。要 求:单片机收到PC机发来的信号后用串口中断方式处理, 而单片机回发给PC机时用查询方式。采用软件仿真的方式完成,用串口调试助手和KEIL C,或 串口调试助手和PROTEUS分别仿真。需要用到以下软件:KEIL, VSPD XP5 (virtu

2、al serialports driver xp5. 1虚拟串口软件),串口调试助手,Proteus。(1)虚拟串口软件、串口调试助手和KEIL C的联调首先在KEIL里编译写好的程序。#include #define uchar unsigned char#define uint unsigned intuchar code SEG710=0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;数码管位值数码管位选信号uchar code as=Receving data:0M;%回送预置数据uchar a=0x30.b;/initiate,串口设

3、置为波特率9600,void init(void)TMOD=0X20;TH1=OXFD;TL1=OXFD:SCON=0X50;TR1 = 1;ES=1;EA=1;/DELAY,为数据管交替显示void delay(uint k)uint data i.j;for(i=0;ik;i+)for(j=0:j121:j+);/mainvoid main(void)uchar i;init();whiled) 用数码管显示PC发给单片机的数据,并回送给PCPl=SEG7(a-0x30)/10;P2=ACT1;delay(500);Pl=SEG7(a-0x30)%10);P2=ACT0;delay(500

4、);if(RI)RI=0;i=0:while(asi!=,0,)SBUF=asi;while(!TI)TI=0;SBUF二b: while(!TI)TI=0: EA=1; /INTERRUPT 4,将收到的信息进行转存void serial_serve(void) interrupt 4 a二SBUF:b=a;EA=0:打开VSPD,界面如下图所示:(注明:这个软件用来进 行串口的虚拟实现。在其网站上可以下载,但使用期为2 周)。Virtual Serial Port Driver 60 by Eltima SoftwarePort pairs Options HelpSerial ports

5、 explorerManage portsPort access listS1CFIHM2ua.M3觑 alyscocomcoco rtuphnDviao vimH ”-s:-fl 曰曰Other virtual portsVSPD by Eltima can create virtual serial ports with any names you like, $o you are not limited to COMx names only. However, please, make sure that programs working with these ports support

6、 custom port names.First port:Second port:C0M5C0M6Add pairFirst port:Second port:Delete pairDelete allno port selected no port selectedEnable strict baudrate emulationBreak line/Restore connection All virtual serial pairs will be removed from your system. Please, make sure all ports are closed.For h

7、elp press Fl左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如 果添加的是COM3、COM4,用COM3发送数据,COM4就可以接 收数据,反过来也可以。接下来的一步很关键。把KEIL和虚拟出来的串口绑定。 现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在 最下面的COMMAND命令行,输入mode com3 9600, 0, 8, 1弔分别设置com3的波特率、奇偶校验位、数据位、停1上位assign com3 sout%把单片机的串口和COM3绑定到起。因为所用的单片机是%AT89C51,只有个串口,所以

8、用SIN, SOUT,如果单片机有%几个串口,可以选择 SOOIN, SOOUT, S1IN, SlOUTo(以上参数设置注意要和所编程序屮设置一致!)打开串口调试助手可以看到虚拟出来的串口 COM3、COM4,选择COM4,设 置为波特率9600,无校验位、8位数据位,1位停止位(和 COM3、程序里的设置一样)。打开COM4。现在就可以开始调试串口发送接收程序了。可以通过 KEIL发送数据,在串口调试助手中就可以显示出来。也可以 通过串口调试助手发送数据,在KEIL中接收。实验实现PC机发送一个字符给单片机,单片机接收到后 将其回发给PC机。在调试助手上(模拟PC)发送数据,单 片机收到后

9、将收到的结果回送到调试助手上。2、以下在Proteus和串口调试助手实现的结果:将编译好的HEX程序加载到Proteus屮,注意这里需要加 上串口模块,用来进行串行通信参数的设置。点击串口,可以对串口进行设置:用串口调试助手发送数据,即可看到仿真结果。实验参考程序源文件在exp2-comm文件夹中。include #define uchar unsigned char#define uint unsigned intsbit duan二P22;sbit wei=P23;ucharcodeSEG710 = 0X3F, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x0

10、7, Ox 7f, 0x6f;/数码管位值uchar code ACT4 = 0XFE, Oxfd, Oxfb, 0xf7;/%数码管 位选信号uchar code as=,/Receving data: 0,z;/%回送预置数据uchar a二0x30, b;/initiate,串口设置为波特率9600,void init(void)TM0D=0X20;TH1二OXFD;TL1二OXFD;SCON二0X50;TR1=1;ES=1;EA=1;/DELAY,为数据管交替显示void delay(uint k)uint data i, j;for(i=0;ik;i+) for(j=0;j121;j+);/mainvoid main(void) uchar i;initO;while(1)/用数码管显示PC发给单片机的数据,并回 送给PCPl 二0;duan=l;duan=0;Pl二ACT 1;wei二1;wei=0;Pl二SEG7(a)/10;duan=l;duan=O;delay(2);Pl 二0;duan=l;duan=0;Pl二ACT0;wei二1;wei=0;Pl=SEG7(a)%10;duan=l;duan=0;Pl 二0;delay (2);if(RI) RI=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论