当前位置:首页 > 单片机 > 单片机
[导读]引言随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,

引言

随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行检测和控制。PC机具有强大的监控和管理功能,而单片机则具有快速及灵活的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。因此如何实现PC机与单片机之间的通讯具有非常重要的现实意义。本文将论述在VB环境下PC机与单片机之间实现串行通讯的软硬件方案。PC机的通讯程序使用Visual Basic编写,VB是Microsoft公司推出的Windows应用程序开发工具,因其具有界面友好,编程简便等优点而受到广泛的使用,而且 Visual Basic 6.0 版本带有专门实现串行通讯的MSCOMM控件。

1、硬件原理

目前的PC机都有至少一个串行通讯端口RS-232,RS-232端口可用于两台计算机之间进行通讯,RS-232的逻辑电平用正负电压表示,且信号使用负逻辑,逻辑0的电压范围是+5V~+15V,而逻辑1的电压范围是-5V~ -15V,RS-232端口是计算机与其他设备沟通的最常用的接口,不但实作简单,而且价格便宜。在8051单片机的内部有一个全双工的异步串行I/O 口,它的输入和输出使用5V逻辑而不是RS-232电压,如何进行两种信号的转换,是连接时需要解决的问题,事实上,解决的方法很简单,只需使用一个诸如 MAX232这样的专用芯片即可。

电路结构见下图。

MAX232包含两个将TTL输入转换成RS-232输出的驱动器,还包含两个将RS-232输入翻译成CMOS输出的接收器,这些驱动器和接收器具有反向的功能。4个外置的电容大小为1uF,如果使用极化电容,注意极性,引脚6的电压为负,因此它的电容的正极连接到地,电容等级至少为15V。

2、软件设计

本次通讯中,我们以一个测控系统的上位机和下位机之间的通信为背景,给出单片机部分和VB环境下的通信程序实例,系统中单片机负责数据采集、处理和控制,上位机进行现场可视化检测,通信协议采用半双工异步串行通信方式,通过RS232的RTS信号进行收发转换,传输数据采用二进制数据,上位机与下位机之间采用主从式通讯。

(1)单片机的串行通讯程序

8051单片机从外部采集到的一组数据(30个),存在片内RAM20H~3DH区域,要求将这个数据块传送给PC机,为了保证传送的正确,传送前由单片机先向PC机发送数据# 55H(联络信号),PC机接收到后,向单片机回送数据# 0AAH(回应信号),经检验正确后,单片机才开始向PC机传送数据。

对串行口的操作可分为以下几步进行:①串行口初始化;②发送联络信号;③接收联络信号;④发送数据。以下程序由汇编语言编写:
ORG  0030H
START:MOV  SP,#60H
       MOV  TMOD, #20H   ;T1工作模式2
       MOV  TH1, #72H
       MOV  TL1, #72H      ;波特率110HZ
       SETB  TR1
       MOV  PCON,  #00H   ;SMOD=0
       MOV  SCON,  #50H   ;串行方式1
       MOV  R0,#20H
       MOV  R2,#30        ;数据个数
XX1:MOV  A,#55H
       MOV  SBUF,A       ;发送联络信号
WAIT1:JBC  TI,WAIT2     ;等待发送完毕
       AJMP  WAIT1
WAIT2:JBC  RI,READ      ;等待接收完毕
        AJMP  WAIT2
READ:MOV  A,SBUF      ;接收联络信号
        CJNE   A,# 0AAH,XX1 ;接收数据不正确,重新开始
LOOP:MOV  A,@R0
MOV  SBUF,A
WAIT:  JBC  TI, LOOP1
       AJMP  WAIT          ;等待发送完毕
 LOOP1:INC  R0
           DJNZ  R2,LOOP
END
(2)计算机的串行通讯程序
    为了更方便地实时了解数据采集的情况,我们把从单片机读来的数据分别赋给数组,然后描绘出波形曲线。
    首先开启一个VB项目,并在窗体上安排一个MSCOMM控件,作为串行通讯的信道。按下F4调出属性窗口,变量COMPORT属性为2,另外将 Rthreshold属性设为1,意思就是只要外界传送任何字符串,随即引发事件。安排一个定时器,作为连续动作的执行控件,一旦一位数据发送完就引发中断,发送下一个数据。设置一个picturebox对象,把由单片机传送来的数据以线条方式绘制在此图片框控件上。按下F4调出属性窗口,其Name属性改为“Graph1”。
    MSCOMM控件支持以文本和二进制格式传输数据,由于下位机是单片机,处理二进制数据较为方便。因此本例中以二进制格式发送和接受数据,VB支持字节变量类型来存储二进制数据,从串口读入的字节被保存在字节数组变量中,因此定义两个BYTE类型的动态数组来存放和接受数据,在接受数据时采用事件驱动法,当接受缓冲区有Rthreshold个数据时,引起ONCOMM事件。
本程序接收从单片机发来的30个数据,当数据进入PC机的输入缓冲区后,程序会不断读取输入缓冲区的数据,并将这些读入的数据收在一起,赋给数组。
    因为VB支持坐标格式,我们用SCALE函数作出坐标,定义X轴由0到30,表示有30个数据,Y轴由-20到+20,表示采集数据的范围是-20 到+20,表达式为SCALE(0,+20)-(30,-20),为了实时采集数据,可以用定时器不断地更新曲线。这样就可以动态地显示被采集的数据。


Private  sub  form_l oad()
Comm1.portopen=true
Timer.interval=1000      '定时器时间间隔为1000s
Timer.enabled=true
Mscomm1.compore=1     '选择通讯口1
Mscomm1.settings=“110,n,8,1”    '波特率110,无奇偶校验,8个数据位,一个停止位
Mscomm1. inputmode=1          '通过input属性以二进制形式取回数据
Mscomm1.inputlen=0            '读取接收缓冲区全部内容
Mscomm1.rthreshold=1          '每收到一个字符位引发oncomm事件
Graph1.scale(0,10)-(20,0)         '定制坐标
Grahp1.forecoclr=rgb(0,0,255)
End sub
Private Sub Command1_Click()
Dim a!(30), b!(30)
num = MSComm1.InBufferCount     '取输入缓冲区字节个数
instring = MSComm1.Input          '把输入缓冲区数据送给数组
For i = 0 To num - 1
a(i) = i
b(i) = instring(i)
GRAPH1.Cls
If i = 1 Then
GRAPH1.PSet (a(i), b(i))
Else
GRAPH1.Line -(a(i), b(i))          '将数组数据给绘图函数
End If
Next i
End Sub

3、结束语

利用VB6.0的事件驱动方式可以很方便地开发数据采集与监控系统,用单台PC机可以测量和监控多路控制信号,整控制系统设计方便,对小型测控系统的设计具有很大的实用性。

参考文献:
1、 何立民,单片机应用系统设计.北京:航空航天大学出版社,1992
2、 美Jan Axelson 著,串行端口大全,精英科技译,2001.5
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

助力科研与检测新突破 上海2024年5月15日 /美通社/ -- 全球知名的科学仪器和服务提供商珀金埃尔默公司今日在上海举办了主题为"创新不止,探索无界"的新品发布会,集中展示了其在分析仪器领域的最...

关键字: 质谱仪 BSP DSC 气相色谱

上海2024年5月16日 /美通社/ -- 2024年5月10日至5月13日,富士胶片(中国)投资有限公司携旗下影像产品创新力作亮相北京P&E 2024。在数码相机展览区域,全新制定的集团使命"为世界绽...

关键字: 富士 数码相机 影像 BSP

贝克曼库尔特目前已成为MeMed Key免疫分析平台和MeMed BV检测技术的授权经销商 在原有合作的基础上,继续开发适用于贝克曼库尔特免疫分析仪的MeMed BV检测 加州布瑞亚和以色列海法2024年5月16日...

关键字: BSP IO 检测技术 免疫分析仪

英国英泰力能的燃料电池是可产业化的产品解决方案 英国首个专为乘用车市场开发的燃料电池系统 在 157kW 功率下,此燃料电池比乘用车的其他发动机更为强大 &...

关键字: ENERGY INTELLIGENT 氢燃料电池 BSP

深爱人才,共赴"芯"程 深圳2024年5月15日 /美通社/ -- 5月11日,深圳国资国企"博士人才荟"半导体与集成电路产业专场活动在深圳市重投天科半导体有限公司(简...

关键字: 半导体 集成电路产业 BSP 人工智能

武汉2024年5月15日 /美通社/ -- 北京时间4月26日-5月4日,2024 VEX 机器人世界锦标赛于美国得克萨斯州达拉斯市举办。本届 VEX 世锦赛为期九天,设有 VIQRC 小学组/初中组、V5RC 初中组/...

关键字: 机器人 BSP RC POWERED

上海2024年5月15日 /美通社/ -- 由生成式人工智能(AI)驱动的临床阶段生物医药科技公司英矽智能宣布,与复星医药(600196.SH;02196.HK)合作开发的潜在"全球首创"候选药物IS...

关键字: ISM BSP PC 人工智能

上海2024年5月13日 /美通社/ -- 5月8日,浦东新区国资委组织陆家嘴集团等9家区属企业与立邦中国召开合作交流会,旨在贯彻落实浦东新区区委、区政府工作要求,进一步放大进博会溢出带动效应,持续扩大区属企业与进博会重...

关键字: BSP 数字化 自动化立体仓库 智慧园区

上海2024年5月13日 /美通社/ -- 在数字化时代,高效的税务管理和ERP系统成为企业发展的关键。为了满足这一需求商应信息科技与Exact Software 易科软件就金四全电票税系统与ERP系统集成及商务合作建立...

关键字: AC 软件 BSP 数字化

北京2024年5月13日 /美通社/ -- 5月11日,鲲鹏昇腾开发者大会2024期间,华为举办"昇思AI框架及大模型技术论坛",软通动力数字基础设施与集成事业部总经理谢睿受邀出席、软通动力...

关键字: AI 模型 BSP 精度
关闭
关闭