《2022年实验单片机与PC机串口通信.pdf》由会员分享,可在线阅读,更多相关《2022年实验单片机与PC机串口通信.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验单片机与PC机串口通信实验单片机与 PC 机串口通信 (C51 编程 )实验要求 : 1、 掌握串行口的控制与状态寄存器SCON 2、 掌握特殊功能寄存器PCON 3、 掌握串行口的工作方式及其设置4、 掌握串行口的波特率(bond rate)选择任务 : 1、实现PC 机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC 机。要求:单片机收到PC 机发来的信号后用串口中断方式处理,而单片机回发给 PC 机时用查询方式。采用软件仿真的方式完成,用串口调试助手与KEILC,或串口调试助手与PROTEUS 分别仿真。需要用到以下软件:KEIL,VSPD XP
2、5(virtual serial ports driver xp5、1 虚拟串口软件 ), 串口调试助手 ,Proteus。(1) 虚拟串口软件、串口调试助手与KEILC 的联调首先在 KEIL 里编译写好的程序。#include #define uchar unsigned char #define uint unsigned int uchar code SEG710=0X3F,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/数码管位值uchar code ACT4=0XFE,0 xfd,0 xfb,0 xf7;%数码管位选信号
3、uchar code as=Receving data:0;%回送预置数据uchar a=0 x30,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+) ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - -
4、- - - -第 1 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信 /main void main(void) uchar i; init(); while(1)/用数码管显示PC 发给单片机的数据,并回送给PC P1=SEG7(a-0 x30)/10; P2=ACT1; delay(500); P1=SEG7(a-0 x30)%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
5、; EA=1; /INTERRUPT 4, 将收到的信息进行转存void serial_serve(void) interrupt 4 a=SBUF; b=a; EA=0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信打开 VSPD,界面如下图所示:( 注明 : 这个软件用来进行串口的虚拟实现。在其网站上可以下载, 但使用期为2 周 ) 。左边栏最上面的就是电脑自带的物理串口。点右边的add pair,可以添加成对的
6、串口。一对串口已经虚拟互联了, 如果添加的就是COM3 、 COM4, 用 COM3 发送数据 ,COM4就可以接收数据, 反过来也可以。接下来的一步很关键。把KEIL 与虚拟出来的串口绑定。现在把COM3 与 KEIL 绑定。在 KEIL中进入 DEBUG 模式。在最下面的COMMAND命令行 , 输入mode com3 9600,0,8,1 % 分别设置com3的波特率、奇偶校验位、数据位、停止位assign com3 sout % 把单片机的串口与COM3 绑定到一起。因为所用的单片机就是%AT89C51, 只有一个串口, 所以用 SIN,SOUT, 如果单片机有% 几个串口 , 可以选
7、择S0OIN,S0OUT,S1IN,S1OUT。(以上参数设置注意要与所编程序中设置一致!) 打开串口调试助手精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信可以瞧到虚拟出来的串口COM3 、 COM4, 选择 COM4, 设置为波特率9600, 无校验位、8 位数据位 ,1位停止位 ( 与 COM3 、程序里的设置一样)。打开 COM4 。现在就可以开始调试串口发送接收程序了。可以通过KEIL 发送数据 , 在串口调试
8、助手中就可以显示出来。也可以通过串口调试助手发送数据, 在 KEIL 中接收。实验实现 PC 机发送一个字符给单片机,单片机接收到后将其回发给PC 机。在调试助手上(模拟 PC)发送数据 ,单片机收到后将收到的结果回送到调试助手上。2、以下在 Proteus 与串口调试助手实现的结果: 将编译好的HEX 程序加载到Proteus 中,注意这里需要加上串口模块,用来进行串行通信参数的设置。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 8 页 - - - - - - - - - - 实验单片机与
9、PC机串口通信XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5
10、/A1326P2.6/A1427U2AT89C51ERRORTXD3RXD2CTS8RTS7DSR6DTR4DCD1RI9P1COMPIM点击串口 ,可以对串口进行设置: 用串口调试助手发送数据,即可瞧到仿真结果。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信实验参考程序源文件在exp2-comm 文件夹中。#include #define uchar unsigned char #define uint unsign
11、ed int sbit duan=P22; sbit wei=P23; uchar code SEG710=0X3F,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/数码管位值uchar code ACT4=0XFE,0 xfd,0 xfb,0 xf7;/%数码管位选信号uchar code as=Receving data:0;/% 回送预置数据uchar a=0 x30,b; /initiate, 串口设置为波特率9600, void init(void) TMOD=0X20; TH1=0XFD; TL1=0XFD; SCON=
12、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+) ; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信/main void main(void) uchar i; init(); while(1)/ 用数码管显示PC 发给单片机的数据,并回送给 PC P1=0
13、; 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; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 8 页 - - - - - - - - - - 实验单片机与PC机串口通信 /INTERRUPT 4, 将收到的信息进行转存void serial_serve(void) interrupt 4 a=SBUF; b=a; EA=0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -