RS-232接口与单片机串行通信程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本文由zzuzx贡献
doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 RS-232 接口与单片机串行通信程序设计
作者:mcu110 来源:51hei 点击数:7377 更新时间:2007 年 08 月 07 日【字体:大中小】
单片机的串行口是非常有用的,通过他我们可以把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作,下面我就给大家介绍上一下电脑的 RS-232 接口与单片机串行通信程序设计方法, 上还有很多这样的文章大家去搜索下。
RS-232 简介:在串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯.RS-232-C 接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口. ("RS-232-C"中的"-C"只不过表示 RS-232 的版本,所以与"RS-232"简称是一样的)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统,调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准.它的全名是"数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准"该标准规定采用一个 25 个脚的 DB-25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定.后来 IBM 的 PC 机将 RS232 简化成了 DB-9 连接器,从而成为事实标准.而工业控制的 RS-232 口一般只使用RXD,TXD,GND 三条线.
下面,让我们使用 S51 增强型单片机实验板来开发一个简单的串口通信实验程序,这是一个串口通信综合实验,需要全套餐客户的相关配件配合才能完成。通过该实验程序,我们可以检测实验板串口的状态,接收计算机发送来的数据,然后再发送回计算机,如果程序中发送和接收窗中显示的字符相同,则说明实验板的串口是良好的,能够正常收发数据,另外单片机接收计算机的控制指令,根据控制指令来控制实验板上的继电器动作。
首先让我们来看看我们做的通讯软件的实际效果……
RS-232 接口与单片机串行通信程序设计的界面
图 1 注:当前按键:“K”,按键的 ASC 码:“75”,按键的 16 进制码:“4BH”
S51 增强型单片机实验板与电脑串口实现 RS232 通信运行效果图
图 2 注:按压 PC 键盘的按键“K”单片机将串口接收到按键实时显示在液晶模块上(锁定了大小键)。 1、液晶模块第一行显示“PS2-KEY: K ”,表示接收到 PS2 键盘的按键:“K” 2、液晶模块第二行显示“HEX:4Bh “75” ASC:75 ”,表示 K 的 HEX 码为“4BH”,ASC 码为:
图 3
注:按压 PC 键盘的按键“2”单片机将串口接收到按键实时显示在液晶模块上 1、液晶模块第二行显示“HEX: 32h ASC:”, 50 表示 K 的 HEX 码为“32H”, ASC 码为:“50”
2、液晶模块第一行显示“PS2-KEY: 2 ”,表示接收到 PS2 键盘的按键:“2”
从上面两幅图中可以看到,我们实现主要目标如下:
1、在计算机上,VB6.0 编写的通信测试程序检测的键盘操作,将我们的按压 PS2 键盘(P C 键盘)按键显示在数据发送窗中,显示按键当前按键、按键的 ASC 码、按键的 16 进制码。同时将键值通过电脑的 RS-232 串口发送到 S51 单片机实验板上,实验板上的AT89S51 单片机接收到数据后,以二进制方式显示在实验板的 8 位高亮度 LED 上,然后把接收到的数据重新发送回电脑的 RS-232 串口,电脑接收到后显示在程序的接收数据窗中。
2、单片机检测识别计算机发送过来的键盘键值,将按键值以二进制形式显示在 P1 口的 8 位高亮度 LED 上,同时,将当前按键、按键的 HEX 码、ASC 码实时显示在 1602 液晶模块上面。
3、单片机接收计算机对单片机的控制指令,当计算机发送“继电器 ON 指令”时,则单
片机驱动实验板上的继电器吸合;相反,如果计算机发送“继电器 OFF 指令”时,单片机驱动继电器释放,我们可以学习掌握计算机智能控制的原理,只要掌握了这种方法,我们要在电脑上轻轻点击鼠标就可以控制家里的电气开关了就不难了(操作方法,点击软件的“继电器”按钮,实验板的继电器吸合,再次点击按钮,继电器释放)。
4、单片机接收到数据后,发出一时短声提示。同时将数据重新发送回电脑串口,供电脑程序接收显示,电脑软件接收到单片机发送过来的数据后,显示在软件的接收数据窗中。
【RS-232 接口与单片机串行通信程序设计】
该系统程序由单片机通信程序和电脑通信程序构成。在微机测控系统中,一般称计算机为上位机、而前端采集控制的单片机系统称为下位机。上位机主要负责所有测控数据的综合管理与下位机的调度控制,而下位机由单片机构成前端的测控系统,进行原始数据的采集及设
备的控制,下位机受上位机的管理控制。
一、单片机程序开发
51 单片机有一个全双工的串行通信口,非常适合与电脑进行通信,51 单片机的串口开发在各种教科书上都有详细的介绍,我们这里不在重复,大家可以参考一下书籍。单片机程序功能主要如下:初始化串口、打开串口中断、接收电脑发送的数据、在 1602 液晶模块上显示数据、将数据发送回电脑 RS-232 串口、接收继电器控制命令、控制继电器动作等。
单片机通信参考程序如下:
ORG 0000H AJMP START ;转到初始化程序
ORG 0023H AJMP PGUART ;转到串行中断服务子程序
START: MOV
SP,#60H
;堆栈指针初始化 ;P0 端口初始化 ;P1 端口初始化 ;P2 端口初始化 ;P3 端口初始化 ;定时器T1 工作于模式2,自动重装载;TH1 初值为"0FDH",9600bps ;TL1 初值为"0FDH",9600bps ;串行口工作于方式 1,允许接收
MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV TMOD,#20H MOV TH1,#0FDH MOV TL1,#0FDH MOV SCON,#50H SETB TR1 SETB ES SETB EA CLR UABIT
;启动定时器 T1 ;允许串行口中断 ;开总中断
;RS-232 接口与单片机串行通信程序设计
MAIN: …… AJMP MAIN
;主程序处理其他任务,等待串口中断
PGUART: …… RETI
;串口中断服务子程序,接收处理数据
END
二、RS-232 串行通信测试软件开发
计算机 RS-232 串行通信测试软件采用 VB6.0 开发,VisualBasic 6.0(简称 VB6.0)以其简单易学,
VB6.0 为可视化编程开发软件,开发程序简单易学,VB 程序开发主要分为两步:第一步、使用 VB 控件设计出软件界面,第二步、给各种控件编写相应的执行程序代码,代码编写完成后可以运行查看结果了。
VB6 提供了多种控件,其中 MSCOMM.OCX 是用于串行通信的控件,我们可将该控件添加到工具箱(Toolbox)内,这样就可以利用该控件进行串行通信程序的设计了。
下面介绍 Mscomm 控件的主要属性和方法: 1) CommPort:设置或返回串行端口号,VB6 的取值范围为 1~16,表示打开或返回通信端口号 COM1~COM16 2) Setting:设置或返回