




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验单片机与PC机串口通信(C51编程)实验要求:1、 掌握串行口的控制与状态寄存器SCON2、 掌握特殊功能寄存器PCON3、 掌握串行口的工作方式及其设置4、 掌握串行口的波特率(bond rate)选择任务:1、实现PC机发送一个字符给单片机,单片机接收到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到PC机发来的信号后用串口中断方式处理,而单片机回发给PC机时用查询方式。采用软件仿真的方式完成,用串口调试助手和KEILC,或串口调试助手和PROTEUS分别仿真。需要用到以下软件:KEIL,VSPD XP5(virtual serial ports driver
2、xp5.1虚拟串口软件),串口调试助手,Proteus。(1)虚拟串口软件、串口调试助手和KEILC的联调首先在KEIL里编译写好的程序。#include <reg51.h>#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&q
3、uot;%回送预置数据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;i<k;i+) for(j=0;j<121;j+) ;1 / 8/mainvoid main(void) uchar i; init(); while(1)/用数码管显示PC发给单片机的数据,并回送给PC P1=SEG7(a-
4、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;打开VSPD,界面如下图所示:(注明:这个软件用来进行串口的虚拟实现。在其网站上可以下
5、载,但使用期为2周)。左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入mode com3 9600,0,8,1 %分别设置com3的波特率、奇偶校验位、数据位、停止位assign com3 <sin> sout%把单片机的串口和COM3绑定到一起。因为所用的单片机是%AT89C51,只有一
6、个串口,所以用SIN,SOUT,如果单片机有%几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。(以上参数设置注意要和所编程序中设置一致!)打开串口调试助手可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率9600,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。实验实现PC机发送一个字符给单片机,单片机接收到后将其回发给PC机。在调试助手上(模拟PC)发送数据,单片机收到后将收到的结果
7、回送到调试助手上。2、以下在Proteus和串口调试助手实现的结果:将编译好的HEX程序加载到Proteus中,注意这里需要加上串口模块,用来进行串行通信参数的设置。点击串口,可以对串口进行设置:用串口调试助手发送数据,即可看到仿真结果。实验参考程序源文件在exp2-comm文件夹中。#include <reg52.h>#define uchar unsigned char#define uint unsigned intsbit duan=P22;sbit wei=P23;uchar code SEG710=0X3F,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0
8、x07,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;i<k;i+) for(j=0;j<121;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') SB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玉米加工与农业产业链优化考核试卷
- 玻璃成分分析与调整考核试卷
- 航空航天器推进剂供给系统考核试卷
- 篷布制造与智能化生产流程的改进考核试卷
- 景区旅游安全生产责任追究制度考核试卷
- 船舶货运与跨境电商的融合考核试卷
- 玻璃水刀切割技术考核试卷
- 羊毛混纺纱线生产工艺试题考核试卷
- 影视剧服装定制设备租赁与知识产权保护合同
- 电商仓储物流服务及仓储设施租赁及仓储管理合同
- JT-T 1495-2024 公路水运危险性较大工程专项施工方案编制审查规程
- 幸福心理学智慧树知到期末考试答案章节答案2024年浙江大学
- 个人工劳务分包合同
- 5月8日世界微笑日微笑的力量生活中保持微笑宣传课件
- 2024年四川省自然资源投资集团有限责任公司招聘笔试参考题库附带答案详解
- 2022智慧健康养老服务与管理专业人才培养调研报告
- 酒店网评分提升方案
- 石油化工设备维护检修规程设备完好标准SHS010012004-副本
- 妊娠合并垂体侏儒的护理查房
- 厨房消防安全培训课件
- 全国工会财务知识竞赛题库及答案
评论
0/150
提交评论