实验单片机与PC机串口通信

上传人:每**** 文档编号:59435237 上传时间:2022-03-03 格式:DOC 页数:8 大小:134KB
返回 下载 相关 举报
实验单片机与PC机串口通信_第1页
第1页 / 共8页
实验单片机与PC机串口通信_第2页
第2页 / 共8页
实验单片机与PC机串口通信_第3页
第3页 / 共8页
点击查看更多>>
资源描述
实验单片机与PC机串口通信(C51编程)实验要求:1、 掌握串行口的控制与状态寄存器SCON2、 掌握特殊功能寄存器PCON3、 掌握串行口的工作方式及其设置4、 掌握串行口的波特率(bond rate)选择任务:1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。采用软件仿真的方式完成,用串口调试助手和KEILC,或串口调试助手和PROTEUS分别仿真。需要用到以下软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手,Proteus。(1)虚拟串口软件、串口调试助手和KEILC的联调首先在KEIL里编译写好的程序。#include #define uchar unsigned char#define uint unsigned intuchar code SEG710=0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数码管位值uchar code ACT4=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;ik;i+) for(j=0;j121;j+) ;授课:XXX/mainvoid main(void) uchar i; init(); while(1)/用数码管显示PC发给单片机的数据,并回送给PC P1=SEG7(a-0x30)/10; P2=ACT1; delay(500); P1=SEG7(a-0x30)%10; P2=ACT0; delay(500); if(RI) RI=0; i=0; while(asi!=0) SBUF=asi; 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;授课:XXX打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下载,但使用期为2周)。左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入mode com3 9600,0,8,1 %分别设置com3的波特率、奇偶校验位、数据位、停止位assign com3 sout%把单片机的串口和COM3绑定到一起。因为所用的单片机是%AT89C51,只有一个串口,所以用SIN,SOUT,如果单片机有%几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。(以上参数设置注意要和所编程序中设置一致!)打开串口调试助手授课:XXX可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。2、以下在Proteus和串口调试助手实现的结果:将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。授课:XXX点击串口,可以对串口进行设置:用串口调试助手发送数据,即可看到仿真结果。授课:XXX实验参考程序源文件在exp2-comm文件夹中。#include #define uchar unsigned char#define uint unsigned intsbit duan=P22;sbit wei=P23;uchar code SEG710=0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/数码管位值uchar code ACT4=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;ik;i+) for(j=0;j121;j+) ;授课:XXX/mainvoid main(void) uchar i; init(); while(1)/用数码管显示PC发给单片机的数据,并回送给PCP1=0;duan=1;duan=0;P1=ACT1;wei=1;wei=0;P1=SEG7(a)/10;duan=1;duan=0; delay(2);P1=0;duan=1;duan=0;P1=ACT0;wei=1;wei=0;P1=SEG7(a)%10;duan=1;duan=0;P1=0; delay(2); if(RI) RI=0; i=0; while(asi!=0) SBUF=asi; while(!TI) ; TI=0; i+; SBUF=b; while(!TI) ; TI=0;授课:XXX EA=1; /INTERRUPT 4,将收到的信息进行转存void serial_serve(void) interrupt 4 a=SBUF; b=a; EA=0; (注:可编辑下载,若有不当之处,请指正,谢谢!) 授课:XXX
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!