欢迎来到专业的无忧考公务员网!

注册登陆 我要投稿
当前位置:无忧考公务员网>资讯快报 >

单片机实现数据的串口发送与接收

日期:2018-07-15 10:25:40 浏览次数:

  摘 要 单片机的串口为单片机与外部设备之间的数据传输带来了很大的方便,现实生产中大多数的8位单片机提供了一个串行接口SCI,已不能满足系统需要的多个串口,所以,教学过程当中,既满足通信的要求又不增加成本的前提下,利用单片机自身的资源进行串行通信接口的扩展具有非常现实的意义。”
  【关键词】单片机串口通信 全双工接口 波特率
  单片机串行通信一般用于和外部设备进行数据的交换,比如和PC的串口机通信,单片机可以采集一些模拟量(温度,湿度,气体浓度等),将这些模拟量转换成数字量后通过串行通信接口传输个PC机,PC机上还得编写一个简单的应用软件,可以显示这些模拟量的值,这个简单的应用软件应具有串口设置,数据显示,绘制曲线等功能。还可以通过PC机串口发送数据给单片机,用来控制单片机的工作状态等等。和其他串口设备通信过程中,单片机一般充当了控制器的角色,通过串口发送一定格式的数据来控制与之相连设备的动作,同时设备反馈回来一些自己的状态信息给单片机,供单片机进行判断,做出相应的控制。
  1 串口通信实现的工作原理
  51 单片机内部包含有全双工的串行接口,它能同时接收和发送数据,它的传输是通过一位一位地按顺序传送数据,优点是只需一根传输线,便可以大大降低硬件成本,比较适合于远距离通信。它有两个物理上独立的接收、发送缓冲器SBUF,它们占用同一地址99H ;接收器是双缓冲结构 ;发送缓冲器,因为发送时CPU是主动的,不会产生重叠错误。它具有以下几个(转载自:www.BdfQy.Com 千 叶帆 文摘:单片机实现数据的串口发送与接收)不同功能的寄存器:定时器/计数器模式寄存器TMOD、定时器/计数器控制寄存器TCON、串行端口寄存器SCON以及电源控制寄存器PCON。 其中,TMOD是管制单片机定时器如何进行工作的,SCON实现在串口进行通讯时通知单片机一些注意事项,如什幺时候开始传送数据、什幺时候开始接收数据等。PCON管制单片机如何通过计算知道定时器具体走了多久,然后让单片机来发送脉冲。
  2 串口通信的实现
  2.1 设置波特率
  波特率是数字信号的传输速率,它采用的是单位时间内传输的二进制代码的有效位(bit)数进行表示,其单位为每秒比特数bit/s(bps),Rs232常用的波特率有4800、9600、19200,本次实验设置为 4800。
  接着设置定时器T1为工作方式2(设置TMOD寄存器),给计数器赋初值(工作方式2会自动重装)
  2.2 设置串口工作方式
  设置SCON,如果使用中断方式,还要打开对应的中断和总中断。打开定时器T1,开始产生波特率。并设置TRx,C语言源程序编程如下:
  /**************************************************************
  * 函数名: UsartConfiguration()
  * 函数功能: 设置串口
  * 输入 :
  * 输出 :
  **************************************************************/
  void UsartConfiguration()
  {
  SCON=0X50;//设置为工作方式1
  TMOD=0X20;//设置计数器工作方式2
  PCON=0X80;//SMOD=1,波特率加倍
  TH1=0XF3; //计数器初始值设置,注意波特率是4800的
  TL1=0XF3;
  ES=1; //打开接收中断
  EA=1; //打开总中断
  TR1=1; //打开计数器
  }
  2.3 编译并下载
  KEIL uVISION拥有强大的功能,还有仿真、调试等功能,此次实验用了stc-isp进行程序的下载。
  3 串口实验现象
  我们利用了串口调试助手来实现数据的传输,它可以支持常用的300-115200bps波特率,可以设置校验、数据位和停止位,还可以实现任意进制接收或发送数据、任意设定自动发送周期,并将接收数据保存成文本文件,以及发送任意大小的文本文件。
  值得注意的是,如果单片机开发板采用串口下载并且和串口调试助手使用的是同一个串口,那幺在打开串口软件的同时不能给单片机下载程序,如需要下载,必须点击“关闭串口”,做发送数据的实验的时候,如果选中16 进制发送数据,比如发送“0”,实际接收的就应该是16进制的0x00,如果不选中,默认发送的是ASCII 码值,发送“0”,接收的就是0x30,这些数据都可以通过板子P0 口上的对应的LED 显示出来。
  本次实验,成功的掌握了51 单片机串口通信的原理与应用流程,通过C语言编程方法,结合利用串口通信,准确实现了数据的发送与接收。单片机在实际的工程应用中非常广泛,不仅可以与计算机互联,也可以与单片机互联,甚至还可以与多个单片机相互通信组网等,我们掌握好了它,对我们的学习是大有帮助的。
  参考文献
  [1]李军.51系列单片机高级实例开发指南[M].北京:北京航空航天大学出版社,2003.
  [2]王幸之.AT89系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2006.
  [3]欧阳斌林.单片机原理及应用[M].北京:中国水利水电出版社,2011.
  作者单位
  湖北襄阳汽车职业技术学院 湖北省襄阳市 441021

声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

Copyright©2024无忧考公务员网 www.51kaogwy.cn 版权所有