单片机实验(简单的串口通信)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机技术与应用
实验报告
实验名称:单片机串行口与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
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.心得体会
本次实验中我们做的是一个单片机串口通信的问题,虽然只是简单的将我们输入的数据进行简单的加一处理,但是我们还是学习了对该流程的大体了解,知道了一些基本的知识。这样我们以后再遇到较难的问题我们就会化繁为简,解决掉了。