单片机技术与应用
实验报告
实验名称:单片机串行口与PC机通讯实验班级:11062811
学号:11061118
姓名:吕琳涛
指导老师:谷雨
2013年5月27日
1.实验要求
利用8031单片机串行口,实现与PC机通讯。
本实验实现以下功能,将从实验机键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符0-F(必须为大写字母)显示到实验机的数码管上。
2. 实验目的
1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制。
2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议。
3.了解PC机通讯的基本要求。
3.程序说明:
在本次实验中,我们可以SCON = 0x50;对应的解释为我们在初始化串口接口控制寄存器SCON用于确定串口通道工作方式的选择、接收和发送控制及其串口的状态标志。
TMOD = 0x20;表示我们在程序中用于设定定时和计数器的工作方式。
TH1 = 0xfd;TL1 = 0xfd;用于对低八位和高八位进行初始化,也就是进行赋值。
TR1 = 1;表明我们设定的计数器开始进行计数。
ES = 1;是对串行接口中断的中断控制进行设定。
EA = 1;是51单片机中断系统的总允许控制端。
s = SBUF;s = s+1;SBUF = s;这三个语句是对我们实验要求的主体部分的代码编写。
也就是获取数据,对数据进行自加1然后通过串口返回到我们pc机上。
我们知道接受RI = 1单片机没有自动复位的功能,也就是我们需要人为地进行赋值。
T1也是这样的。
至此,程序编写完成,放入软件中进行编译和下载。
2.上机调试说明
将程序编写成功后,我们就上机进行调试。
下载成功后,通过键盘我们将我们想要的数据输入pc机里,等待pc 与单片机进行串口通信,单片机进行加一处理之后然后传到pc机里,显示到电脑屏幕上。
至此实验仿真过程结束。
3.写出源程序清单及执行结果。
源程序:
#include <reg52.h>
unsigned char s;
void main()
{
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xfd;
TL1 = 0xfd;
TR1 = 1;
ES = 1;
EA = 1;
while(1)
{
}
}
void serial_isr() interrupt 4
{
if(RI == 1)
{
s = SBUF;
s = s+1;
SBUF = s;
RI = 0;
}
else if(TI == 1)
{
TI = 0;
}
}
4.心得体会
本次实验中我们做的是一个单片机串口通信的问题,虽然只是简单的将我们输入的数据进行简单的加一处理,但是我们还是学习了对该流程的大体了解,知道了一些基本的知识。
这样我们以后再遇到较难的问题我们就会化繁为简,解决掉了。