微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > RS-232接口与单片机串行通信程序

RS-232接口与单片机串行通信程序

时间:01-15 来源:互联网 点击:

单片机的串行口是非常有用的,通过他我们可以把单片机系统的数据传回电脑处理或者接受电脑传过来的数据而进行相应的动作,下面我就给大家介绍上一下电脑的RS-232接口与单片机串行通信程序设计方法,www.51hei.com上还有很多这样的文章大家去搜索下。

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 ASC:75 ”,表示K的HEX码为“4BH”,ASC码为:“75”

图 3

注:按压PC键盘的按键“2”单片机将串口接收到按键实时显示在液晶模块上
1、液晶模块第二行显示“HEX:32h ASC:50 ”,表示K的HEX码为“32H”,ASC码为:“50”
2、液晶模块第一行显示“PS2-KEY: 2 ”, 表示接收到PS2键盘的按键:“2”

从上面两幅图中可以看到,我们实现主要目标如下:

1、在计算机上,VB6.0编写的通信测试程序检测的键盘操作,将我们的按压PS2键盘(PC键盘)按键显示在数据发送窗中,显示按键当前按键、按键的ASC码、按键的16进制码。同时将键值通过电脑的RS-232串口发送到S51单片机实验板上,实验板上的AT89S51单片机接收到数据后,以二进制方式显示在实验板的8位高亮度LED上,然后把接收到的数据重新发送回电脑的RS-232串口,电脑接收到后显示在程序的接收数据窗中。

2、单片机检测识别计算机发送过来的键盘键值,将按键值以二进制形式显示在P1口的8位高亮度LED上,同时,将当前按键、按键的HEX码、ASC码实时显示在1602液晶模块上面。

3、单片机接收计算机对单片机的控制指令,当计算机发送“继电器ON指令”时,则单片机驱动实验板上的继电器吸合;相反,如果计算机发送“继电器OFF指令”时,单片机驱动继电器释放,我们可以学习掌握计算机智能控制的原理,只要掌握了这种方法,我们要在电脑上轻轻点击鼠标就可以控制家里的电气开关了就不难了(操作方法,点击软件的“继电器”按钮,实验板的继电器吸合,再次点击按钮,继电器释放)。

4、单片机接收到数据后,发出一时短声提示。同时将数据重新发送回电脑串口,供电脑程序接收显示,电脑软件接收到单片机发送过来的数据后,显示在软件的接收数据窗中。



该系统程序由单片机通信程序和电脑通信程序构成。在微机测控系统中,一般称计算机为上位机、而前端采集控制的单片机系统称为下位机。上位机主要负责所有测控数据的综合管理与下位机的调度控制,而下位机由单片机构成前端的测控系统,进行原始数据的采集及设备的控制,下位机受上位机的管理控制。

一、单片机程序开发

51单片机有一个全双工的串行通信口,非常适合与电脑进行通信,51单片机的串口开发在各种教科书上都有详细的介绍,我们这里不在重复,大家可以参考一下书籍。单片机程序功能主要如下:初始化串口、打开串口中断、接收电脑发送的数据、在1602液晶模块上显示数据、将数据发送回电脑RS-232串口、接收继电器控制命令、控制继电器动作等。

单片机通信参考程序如下:

ORG0000H
AJMPSTART ;转到初始化程序

ORG0023H
AJMPPGUART ;转到串行中断服务子程序

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top