首页 百科知识 单片机与机小型通信系统设计

单片机与机小型通信系统设计

时间:2023-10-22 百科知识 版权反馈
【摘要】:MCS-51单片机内部串行口有两个物理上独立的接收、发送缓冲器SBUF,可同时接收和发送数据。另外,为了保证通信的顺利进行,双方事先必须约定通信协议。设计一个单片机与PC机间的小型通信系统。串行通信技术是构建单片机应用系统的关键技术,尤其是构建网络控制单片机应用系统。其I/O端口使用的是TTL或CMOS电平;而PC机的串行通讯口是标准的RS232电平,二者在连接时应有必要的电平转换,本设计中电平转换采用MAX232芯片。

模块二 单片机与PC机小型通信系统设计

一、知识点

MCS-51单片机串行口(UART)的结构与控制,RS232C串行通信总线标准,异步串行通信的要求。

二、知识点分析

MCS-51单片机内部串行口有两个物理上独立的接收、发送缓冲器SBUF,可同时接收和发送数据。发送缓冲器只能写入不能读出,接收缓冲器只能读出不能写入,两个缓冲器占用同一个地址(99H)。MCS-51单片机中用两个特殊功能寄存器SCON、PCON控制串行接口的工作方式和波特率。SCON命令格式如下:

img176

SM0、SM1:串行口工作方式选择位,其定义如表4.1所示。

表4.1 串行口工作方式

img177

SM2:多机通信控制位,主要用于方式2和方式3中。接收状态,当SM2=1时,且接收到的第9位数据RB8为1时,才把接收到的前8位数据送入SBUF,且置位RI发中断申请,否则将接收到的数据放弃。当SM2=0,不论接收到的第9位RB8为0还是1,都将前8位数据送入SBUF,并发出中断申请。方式0时,SM2=0;方式1时,SM2=1,只有接收到有效的停止位时,才能置位RI。

REN:允许串行接收位,由软件置位或清零。REN=1时,允许接收;REN=0时,禁止接收。

TB8:发送数据的第9位。在方式2和方式3时,由软件置位或复位,可做奇偶校验位。在多机通信中,可作为区别地址帧或数据帧的标识位,一般约定地址帧时,TB8为1;数据帧时,TB8为0。

RB8:接收数据的第9位,功能同TB8。

TI:发送中断标志位。在方式0中,发送完8位数据后,由硬件置位;其他方式中,在发送停止位之初由硬件置位。TI是一帧数据发送完的标志,可用指令“JBCTI,rel”来查询是否发送结束。TI=1时,可向CPU申请中断,中断响应后,必须由软件清零。

RI:接收中断标志位。在方式0中,接收完8位数据后,由硬件置位;其他方式中,在接收停止位的中间由硬件置位。RI是一帧数据接收完的标志,可通过指令“JBCRI,rel”来查询是否接收完一帧数据。RI=1时,可向CPU申请中断,中断响应后,必须由软件清零。

PCON的最高位(SMOD)为波特率倍增位,SMOD=1时,波特率加倍;SMOD=0时,波特率不加倍。

RS232C是美国电气工业协会推广使用的一种串行通信总线标准。完整的RS232C总线由25根信号线组成,但在一般应用中只需要3根线即可完成通信。RS232C最大传输距离为15m,最高传输速率约为20kbps。RS232C采用负逻辑,即逻辑“1”为-15~-5V,逻辑“0”为+5~+15V;CMOS电平的逻辑“1”为4.99V,逻辑“0”为0.01V;TTL电平的逻辑“1”和“0”则分别为2.4V和0.4V。因此在用RS232C总线进行串行通信时需外接电路实现电平转换,实际常采用MAX232芯片。

异步串行通信中要求通信双方必须具有相同的数据收发格式和波特率。另外,为了保证通信的顺利进行,双方事先必须约定通信协议。

三、实践训练

1)设计要求

设计一个单片机与PC机间的小型通信系统。按单片机控制板上4个按键中的任何一个,在PC机的串口调试软件中就会显示按下的是哪个按键;在PC机的串口调试软件窗口中的字符串输入框中输入0~F的任意一个字符,单击“发送”,单片机接收后,就在LED数码管上显示相应的字符。

2)方案论证

串行通信技术是构建单片机应用系统的关键技术,尤其是构建网络控制单片机应用系统。MCS-51单片机的串行接口是全双工的,它能做通用异步接收/发送器(UART)。其I/O端口使用的是TTL或CMOS电平;而PC机的串行通讯口是标准的RS232电平,二者在连接时应有必要的电平转换,本设计中电平转换采用MAX232芯片。图4.4为单片机与PC机小型通信系统设计方案的硬件电路框图。

img178

图4.4 单片机与PC机小型通信系统硬件电路设计框图

3)系统硬件电路设计

单片机与PC机小型通信系统硬件电路设计图如图4.5所示。

img179

图4.5 单片机与PC机小型通信系统电路原理图

4)系统程序设计

(1)流程图

单片机通讯模块的主程序流程如图4.6所示。

img180

图4.6 单片机通讯模块主程序流程图

(2)参考程序

img181

img182

img183

5)思考题

(1)将RS-232C接口数据传送的波特率从1200改为2400,实验程序应如何修改?

(2)总结实践训练过程中所遇到的问题及解决的办法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈