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

下载本文档

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

文档简介

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

2、 serial ports driver xp5.1虚拟串口软件),串口调试助手, Proteus o(1)虚拟串口软件、串口调试助手和KEIL C的联调首先在KEIL里编译写好的程序。#include <reg51i>#define uchar unsigned char#define uint unsigned intuchar code SEG710=0X3K0x06.0x5b,0x4f.0x66.0x6d.0x7d,0x07.0x7L0x6f;/数码管位值uchar code ACT4=0XFE.0xfd.0xfb.0xf7;%数码管位选信号uchar code as=MR

3、eceving data:0"%回送预置数据uchar a=0x30,b;/initiate,串口设置为波特率9600,void init(void)TMOD=0X20;THl=0XFD;TLl=0XFD:SCON=0X50;TR1 = 1;ES=1;EA=1;/DELAY.为数据管交替显示void delay(uint k)uint data ij;for(i=0:ivk:i+)for(j=0:jvl21:j+);/mainvoid main(void) uchar i;init();whiled) 用数码管显示PC发给单片机的数据,并回送给PCPl=SEG7(a-0x30)/10

4、);P2=ACT1;delay(500);Pl=SEG7(a-0x30)%10;P2=ACT|0;delay(500);if(RI)RI=0; i=0: while(asi!='Or) SBUF=asi; while(!TI)TI=0; i+:SBUF=b: while(!TI)TI=0;EA=1;/INTERRUPT 4,将收到的信息进行转存void seriaLserve(void) interrupt 4 a=SBUF;b=a;EA=0;打开VSPD,界面如下图所示:(注明:这个软 件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。For help press Fl

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

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

7、发送数据,单片机收到后将收到的结果回送到 调试助手上。2、以下在Proteus和串口调试助手实现的结果:将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。点击串口,可以对串口进行设置:用串口调试助手发送数据,即可看到仿真结果。实验参考程序源文件在exp2-comm文件夹中。#includc <reg52.h>#dcfinc uchar unsigned char#dcfine uint unsigned intsbit duan二P2"2;sbit wei=P23;ucharcodeSEG710 = 0X3F,0x06,0x

8、5b,0x4f,0x66,0x6d,()x7d>0x()7,Ox 7f,0x6f; /数码管位值uchar code ACT4 = 0XFE,0xfd,0xfb,0xf7;/%数码 管位选信号uchar code as=,'Rcccving data:()"/%回送预置数 据uchar a=()x3(),b;/initiate,串口设置为波特率9600,void init(void) TM()D=0X2();TH1=()XFD;TL1=()XFD;SC()N=()X5();TRI 二1;ES=1;EA 二 1;/DELAY,为数据管交替显示void delay(uint

9、 k) uint data i,j;for(i=();i<k;i+)for0=O;j<121;j+);/mainvoid main(void) uchar i;initO;while(l)/用数码管显示PC发给单片机的数据,2021.03.09并回送给PCpin);duan二 1;duan 二();P1=ACT1;wci=l;wei=();Pl=SEG7(a)/10;duan二 1;duan 二();delay (2);pi=();duan二 1;duan=();P1=ACT();wci=l;wci=();Pl=SEG7(a)%10;duan=l;duan 二();2021.03.09pin);duby ;iF(RI)Rin);i=();while(asi!=,()t)SBUF=asi;

温馨提示

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

评论

0/150

提交评论