实训报告
学 院 名 称: 福建船政交通职业学院
专 业:11计算机控制技术
题 目:单片机与PC机串口通信
组 别: 第一组
组 员 姓 名: 池清清,黄倩滢,蓝春燕
学 号: 114103101,114103111,114103116
指 导 教 师: 朱其祥,黄炳乐, 武光信,陈明 ,任慧
摘 要
串行口是计算机与外部设备之间进行数据交换的重要介质,所以串行通信在工程中有着广泛的应用。这种通信的实现,主要是靠上位PC机与下位单片机组成的二级系统通过RS232进行通信。此次设计通过计算机输入数据通过串口传送给单片机进而在LED上显示,使学生进一步巩固所学的单片机系统硬件知识,C语言程序设计方法,计算机通信原理,计算机可视化程序设计,综合性很强,学生得到很大的锻炼。
关键词:单片机 PC机 串口通信
1实训要求与任务
1.1要求
1、掌握串行口的控制与状态寄存器scon
2、掌握特殊功能寄存器pcon
3、掌握串行口的工作方式及其设置
4、掌握串行口的破特率(bond rate)选择
1.2任务
实现PC机发送一个字符给单片机,单片机接受到后即在个位、十位数码管上进行显示,同时将其回发给PC机。要求:单片机收到pc机发来的信号后用串口中断方式处理,而单片机回发给pc机时用查询方式。
采用软件仿真的方式完成,用串口调试助手和KEIL C,或串口调试助手和Proteus分别仿真。
2程序代码
#include #define uchar unsigned char #define uint unsigned int uchar code SEG7[10]={0x3F,0x60,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar code ACT[4]={0XFE,0xfd,0xfb,0xf7}; uchar code as[]="Receving data:\\0"; uchar a=0x30,b; void init(void) { TMOD=0X20; TH1=0XFD; TL1=0XFD; SCON=0X50; TR1=1; ES=1; EA=1; } void delay(uint k) { uint data i,j; for(i=0;i } void main(void) { uchar i; init(); while(1) { P1=SEG7[(a-0x30)/10]; P2=ACT[1]; delay(500); P1=SEG7[(a-0x30)%10]; P2=ACT[0]; delay(500); if(RI) { RI=0; i=0; while(as[i]!='\\0') { } void serial_serve(void) interrupt 4 { a=SBUF; b=a; EA=0; } 3程序运行平台 Keil,VSPD XP5 (virtual serial ports driver xp5.1虚拟串口软件),串口调试助手,Proteus。 4总体设计 开始 发送至串口 PC机设置传输数据 串口通过RS232传送给单片机 单片机通过LED显示数据 5串行通信方案设计 5.1 利用COMPIM组件 把 COMPIM 放在仿真电路图中,当仿真运行起来之后,送到 COMPIM 3 号引脚的串行数据,将会通过 PC 机的 COM1 串行口输出,如果在 PC 机的 COM1 串行口外接一条电缆,可将串行数据送到其它的硬件设备上。 同样道理,其它的硬件设备送到 PC 机的 COM1 的串行数据,也会在 COMPIM 的2号引脚出现,送到仿真电路里面。 由于COMPIM 组件内部,自带 RS-232 和 TTL 的电平转换功能,因此不需要再使用电平转换芯片。 5.2 利用 VSPD 软件 左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入 mode com3 9600,0,8,1 %分别设置com3的波特率、奇偶校验位、数据位、停止位 assign com3 %ATC51,只有一个串口,所以用SIN,SOUT,如果单片机有 6 Proteus仿真 画好Proteus仿真图后加载Keil生成的.HEX文件,利用虚拟串口助手发送数据进行仿真,截图如下。 7结论 这次实训,有很多的心得体会,有关于单片机与串口通信方面的,更多的是关于人与人之间关系方面的。 在这短短一周期间,我得到了很多老师与同学的帮助。本组对单片机并不是很熟悉,理论联系不了实际。串口调试与软件安装令我们束手无策了。后来请教我们班的同学,看他边做边给我们讲解。最后调试成功,完成了本程序。 最后说明对这次实训的感受,课堂教学考虑到大多数同学的需求,主要强调“基本”—基本知识、基本理论、基本方法、基本技能。而这次设计正是为我们提供了一个深入学习、探索的机会,成为课堂教学的有益补充。 下载本文
Proteus中的COMPIM选择COM1串口,串口调试助手选择COM2串口,这样就可以进行通讯了。%几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。