单片机串口通信实验Word文件下载.docx
《单片机串口通信实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机串口通信实验Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
![单片机串口通信实验Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/13/4bcb8df7-157c-4edc-831f-9447a2010c17/4bcb8df7-157c-4edc-831f-9447a2010c171.gif)
串行通信是指数据逐位顺序串行传送的通信方式。
串行通信只需一对传输线,并且可以利用电话线等现有通信信道作为传输介质,因而可以大大降低传输线路的成本。
关键字:
51单片机,串口通信,全双工
正文:
MCS一51系列单片机内部有一个可编程的全双工串行通信口,可作为通用异步接收和发送器,也可作为同步移位寄存器用。
该串行口有4种工作模式。
片内的定时器/计数器可用作波特率发生器。
接收、发送均可工作在查询方式或中断方式。
MCS一51系列单片机内部的串行通信口,有二个物理上相互独立的接收、发送缓冲器SBUF,对外也有两条独立的收、发信号线RxD(P3.0)和TxD(P3.1)。
可以同时发送、接收数据,实现全双工传送。
发送缓冲器和接收缓冲器不能互换,发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入。
两个缓冲器占用同一个端口地址(99H)。
具体对哪一个缓冲器进行操作,取决于所用的指令是发送还是接收。
1、实验
1、实验目的
掌握单片机串行口工作原理,单片机串行口与PC机的通信工作原理及编程方法。
2、实验器材
微机、串口通讯软件、程序烧录软件、面包板一块、芯片一块、电焊等
3、实验内容
实验板上有RS-232接口,将该接口与PC机的串口连接,可以实现单片机与PC机的串行通信,进行双向数据传输。
本实验要求当PC机向实验板发送的数字在实验板上显示,按实验板键盘输入的数字在PC机上显示,并用串口助手工具软件进行调试。
4、实验原理
51单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通信。
进行串行通讯信要满足一定的条件,比如电脑的串口是RS232电平(-5~-15V为1,+5~+15V为0),而单片机的串口是TTL电平(大于+2.4V为1,小于-0.7V为0),两者之间必须有一个电平转换电路实现RS232电平与TTL电平的相互转换。
为了能够在PC机上看到单片机发出的数据,我们必须借助一个Windows软件进行观察,这里我们可以使用免费的串口调试程序SSCOM32或Windows的超级终端。
单片机串行接口有两个控制寄存器:
SCON和PCON。
串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。
在这种方式下,数据为8位,只能从RXD端输入输出,TXD端用于输出移位同步时钟信号,其波特率固定为振荡频率的1/12。
由软件置位串行控制寄存器(SCON)的REN位后才能启动,串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。
待8位数据输完后,硬件将SCON寄存器的T1位置1,必须由软件清零。
单片机与PC机通信时,其硬件接口技术主要是电平转换、控制接口设计和远近通信接口的不同处理技术。
在DOS操作环境下,要实现单片机与微机的通信,只要直接对微机接口的通信芯片8250进行口地址操作即可。
WINDOWS的环境下,由于系统硬件的无关性,不再允许用户直接操作串口地址。
如果用户要进行串行通信,可以调用WINDOWS的API应用程序接口函数,但其使用较为复杂,可以使用KEILC的通信控件解决这一问题。
实验原理图
5、焊接图
焊接参考图
实物图
二、程序
#include<
reg51.h>
string.h>
voidinit_serialcomm(void)
{
SCON=0x50;
//SCON:
串口工作方式1,允许接收
TMOD|=0x20;
//TMOD:
定时器1的工作方式2
PCON|=0x80;
//SMOD=1;
TH1=0xF4;
//Baud:
4800fosc=11.0592MHz
IE|=0x90;
//开总中断,开串口中断
TR1=1;
//开启定时器1
}
//向串口发送一个字符
voidsend_char_com(unsignedchar*ch)
{
unsignedinti=0;
while(ch[i]!
='
\0'
)
{
SBUF=ch[i];
while(TI==0);
TI=0;
i++;
}
}
//串口接收中断函数
voidserial()interrupt4
if(RI)
{//清除接收中断标志位
raid[count]=SBUF;
RI=0;
//读出接收到的数据
count++;
}
if(raid[count-1]=='
\r'
)
{
raid[count-1]='
;
send_char_com(raid);
//串口输出
count=0;
//接收中断并且单片机向arm传14byte字符串是否完毕*/
main()
init_serialcomm();
//初始化串口
while
(1)
{//等待串口接收中断
}
3、调试
打开VSPD,界面如下图所示:
左边栏最上面的是电脑自带的物理串口。
点右边的addpair,可以添加成对的串口。
一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。
接下来的一步很关键。
把KEIL和虚拟出来的串口绑定。
现在把COM3和KEIL绑定。
在KEIL中进入DEBUG模式。
在最下面的COMMAND命令行,输入
modecom39600,0,8,1 %分别设置com3的波特率、奇偶校验位、数据位、停止位
assigncom3<
sin>
sout %把单片机的串口和COM3绑定到一起。
因为所用的单片机是
%AT89C51,只有一个串口,所以用SIN,SOUT,如果单片机有
%几个串口,可以选择S0OIN,S0OUT,S1IN,S1OUT。
打开串口调试助手
第一步:
把串口线或者USB转串口线插到计算机上。
第二步:
打开串口调试助手接着选择串口,串口线和USB转串口的端口号查看路径:
可以到桌面上鼠标放在我的电脑上--右键--属性--硬件--设备管理器-(COM和LPT),点开端口前面的+号查看即可。
4、结论
我们认真学习和熟练掌握了电子器件的理论知识和使用方法,特别留意焊接过程中的焊锡使用的技术要点,以及对电路的正确验证(以防短路,烧毁器件)。
焊接完毕之后,进行程序测试硬件。
通过对单片机实验开发板的硬件认识和对开发板完整测试,实验的测试现象达到预期要求。
最终达到了此次实验的成功。