收藏 分销(赏)

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

上传人:二*** 文档编号:4517120 上传时间:2024-09-26 格式:DOC 页数:8 大小:144KB
下载 相关 举报
实验单片机与PC机串口通信.doc_第1页
第1页 / 共8页
亲,该文档总共8页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

2、er 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

3、,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+);/mainvoid main(void) uchar i; init(); while(1)/用数码管显示PC发给单片机的数据,并回送给PC P1=SEG7(a-0x30)/10; P2=ACT1;delay(500); P1=SEG7(

4、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;打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其上可以下载,但使用期为2周)。左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一

5、对串口已经虚拟互联了,如果添加的是3、4,用3发送数据,4就可以接收数据,反过来也可以。接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的MAND命令行,输入mode 3 9600,0,8,1 %分别设置3的波特率、奇偶校验位、数据位、停止位assign 3 sout%把单片机的串口和3绑定到一起。因为所用的单片机是%AT89C51,只有一个串口,所以用SIN,SOUT,如果单片机有%几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。(以上参数设置注意要和所编程序中设置一致!)打开串口调试助手可以看到虚拟出来的串

6、口3、4,选择4,设置为波特率9600,无校验位、8位数据位,1位停止位(和3、程序里的设置一样)。打开4。现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果回送到调试助手上。2、以下在Proteus和串口调试助手实现的结果:将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。点击串口,可以对串口进行设置:用串口调试助手发送数据,

7、即可看到仿真结果。实验参考程序源文件在exp2-m文件夹中。#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,

8、串口设置为波特率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+) ;/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; EA=1; /INTERRUPT 4,将收到的信息进行转存void serial_serve(void) interrupt 4 a=SBUF; b=a; EA=0;. .word.

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服