摘要:随着PC机技术和单片机技术的日益成熟,单片机与PC机通信技术的应用也越来越广泛, 对通信技术的研究也越来越多,特别是串行通信。该文以RS-232为接口线路,89C51单片机学习板为硬件环境,Visual Basic作为软件开发工具,利用其提供的各种面向对象的开发工具及串行通信控件MSComm,设计了一个PC机与C51单片机串行通信系统。系统主要可以完成PC机和单片机之间手动的数据发送,自动的数据发送,数据传输过程中的奇偶校验,单片机的按键触发,数码管显示等功能。
关键词:RS-232;串行通信;MSComm;C51单片机
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2014)36-8810-02
随着技术的发展和数据流量的不断增长,传统采用并行接口方式中存在着干扰和时钟传送两大关键问题,这成为影响并行I/O接口的数据传输效率。在这个背景下,串行通信方式作为一种比较灵活的方式被广泛的在工业控制中使用,逐渐取代并行通信。单片机和微机技术的快速发展成为多机网络测控系统中的一个新的发展方向。
1 串行通信原理介绍
在串行通信传输的过程中,通信的双方都要按照一定的通信协议来进行数据的传输。这里所指的通信协议包括数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,在通信的双方都必须要遵守这些规范与规定。该文中只讨论起止式异步通信数据格式。
起始位:位于字符帧开头,只占一位,为逻辑0低电平,用于向接收设备表示发送端开始发送一帧信息。
数据位:紧跟起始位之后,用户根据情况可取5位、6位、7位或8位,低位在前高位在后。
奇偶校验位:位于数据位之后,仅占一位,用来表征串行通信中采用奇校验还是偶校验,由用户决定。
停止位:位于字符帧最后,为逻辑1高电平。通常可取1位、1.5位或2位,用于向接收端表示一帧字符信息已经发送完,也为发送下一帧做准备。
在串行通信中,两相邻字符帧之间可以没有空闲位,也可以有若干空闲位,这由用户来决定[4]。
2 系统硬件设计
2.1 系统组成结构
在这个系统中,主要是以实现一台PC机与一台单片机串行通信,正常传输数据为目地的。这样就形成了上位机和下位机的概念,上位机是一台高性能的PC机,下位机则是由单片机组成[3]。
2.2 系统部件功能介绍
2.2.1 MCS-51单片机
在这个系统中,主要实现的是一台PC机和一台单片机串行通信。上位机是一台高性能的PC机,软件的程序设计则在上面完成。下位机则是由一单片机组成的,在此不仅要求单片机有足够的空间存储自身的执行程序,而且可以方便用户扩展功能,有好的交互性。因此,我选用了市场上比较流行的性价比比较高的89C51单片机[2]作为下位机。
2.2.2 .电平转换
单片机的串口有很大一部分是使用TTL电平标准的,它的逻辑1电平是5V,逻辑0电平是0V,而电脑串行口所使用的是RS232C的电平标准,它的逻辑1电平是-3V~-15V,逻辑0电平+3V~+15V。两者的电平范围相差很远,所以连接时需要用到电平转换电路。这样电路有好多种,一般来说商业化的成品会用到MAX232,DS275等专用的RS232、TTL电平转换集成电路,但是对于普通的电子爱好者,采用这样的器件一来购买不方便,二来还会使制作电路板的成本提高。所以对于小型器件操作,一般采用的方法是使用小功率三极管搭建电平转换电路。本系统所使用的学习板就是采用了两个NPN管(9014) 来完成电平转换的。两个NPN管各有自己的功能,一个用来数据接收,一个用来数据发送。
2.2.3 按键触发
组成键盘的按键有触点式和非触点式两种,单片机中应用的一般是由机械触点构成的。由于按键是机械触点,当机械触点断开、闭合时,会有抖动。这种抖动对于人来说是感觉不到的,但对计算机来说,则是完全可以感应到的,因为计算机处理的速度是在微秒级,而机械抖动的时间至少是毫秒级,对计算机而言,这已是一个“漫长”的时间了。为使CPU能正确地读出按键的状态,对每一次按键只作一次响应,就必须考虑如何去除抖动,常用的去抖动的方法有两种:硬件方法和软件方法。单片机中常用软件法,因此,对于硬件方法我们不介绍。软件法其实很简单:在检测到有键按下时,执行一个10ms左右的延时程序后,在确认该键的电平是否保持闭合状态电平,若仍保持为闭合状态的电平,则确认为该键处于闭合状态,从而去除了抖动影响。
本次系统采用的键盘就是非编码机械触点式键盘,由于按键有16个,使用的为最常见的行列式接法。
2.2.4 数码管显示
在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的I/O接口用于笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片机中CPU的开销小。但是静态显示也有很大的缺点,在位数较多的时,字符更新速度慢,电路比较复杂,成本比较高。因而在实际应用中常常采用动态显示方式。
本系统所使用的单片机学习板上共有8个数码管,且段码为多少是由单片机P0口决定的,选取哪个数码管则是由P2口决定的,对于我们编写程序,知道上面这两个内容已经足够了。
2.3 MCS51单片机设计流程
2.3.1 按键触发程序设计
按键触发程序设计由三部分组成:按键扫描程序设计,延时程序设计,按键处理程序设计。按键扫描程序设计和延时程序设计互相配合就可以实现软件防抖的功能。本次系统中起作用的按键只有一个,所以扫描程序不会很复杂,也不需要采用逐点,逐行乃至全局扫描,其原理是比较现在按键和原来按键的状态是否发生变化(通过异或运算即可),如果发生变化则去执行处理程序,如果没有变化则顺序执行。图1为按键处理程序流程图。endprint
2.3.2 数码管显示程序
本系统所采用的单片机学习板上的数码管是共阳集的。所要显示的数据都是传给P0口,然后通过位选择(由P2口控制)来打开你所选取的数码管,这样你所想要显示的数据就在数码管上显示出来了。具体的步骤如下:(1)、通过查表把所要显示的数据传给P0口。(2)、置位选信号为低电位,使数码管导通。(3)、调用延时程序,使数码管连续显示。(4)、关闭数码管。
本系统所点亮的数码管是P2.6和P2.7所控制的,如果需要变换点亮的数码管,只需要使相对应的位选信号为低位即可。
图2 数码管显示程序
3 系统软件设计(PC机程序结构图)
软件设计是在Visual Basic 6.0环境下完成的,主要使用了MSComm控件的相关属性。对于PC机程序设计,为了使设计的系统可以完成正常的串行通信,并且具有一定的辅助功能,比如数据的串口的选择,数据的自动传输,时间间隔的选择,接收阀值的设定等等。图 3为PC机程序设计的结构图。
4 结论
在过去中,串行通信系统已经被应用到工业控制的很多领域,比如一些宽带网络公司利用光纤接口转换器与串行口连接;数字影像测量仪都备有RS-232接口,与计算机连接后,采用专门测量软件对测绘图形进行处理和输出。该文运用Visual Basic 6.0和串行口RS-232在WINDOWS操作系统基础上开发出基于PC机与单片机的串行通信系统,并取得良好实验效果。
参考文献:
[1] 李志全.智能仪表设计原理及应用[M].国防工业出版社,1998.
[2] 何立民.MCS-51系列单片机应用系统设计[M].北京.航空航天大学出版社,1990.
[3] 张毅刚,彭喜元,姜守达,等.新编MCS-51系列单片机应用设计[M].哈尔滨工业大学出版社,2003.
[4] KaiHuang,Faye Briggs A.Computer Architecture and Parallel processing[M]. McGraw-HMCom-pany.1994.
2.3.2 数码管显示程序
本系统所采用的单片机学习板上的数码管是共阳集的。所要显示的数据都是传给P0口,然后通过位选择(由P2口控制)来打开你所选取的数码管,这样你所想要显示的数据就在数码管上显示出来了。具体的步骤如下:(1)、通过查表把所要显示的数据传给P0口。(2)、置位选信号为低电位,使数码管导通。(3)、调用延时程序,使数码管连续显示。(4)、关闭数码管。
本系统所点亮的数码管是P2.6和P2.7所控制的,如果需要变换点亮的数码管,只需要使相对应的位选信号为低位即可。
图2 数码管显示程序
3 系统软件设计(PC机程序结构图)
软件设计是在Visual Basic 6.0环境下完成的,主要使用了MSComm控件的相关属性。对于PC机程序设计,为了使设计的系统可以完成正常的串行通信,并且具有一定的辅助功能,比如数据的串口的选择,数据的自动传输,时间间隔的选择,接收阀值的设定等等。图 3为PC机程序设计的结构图。
4 结论
在过去中,串行通信系统已经被应用到工业控制的很多领域,比如一些宽带网络公司利用光纤接口转换器与串行口连接;数字影像测量仪都备有RS-232接口,与计算机连接后,采用专门测量软件对测绘图形进行处理和输出。该文运用Visual Basic 6.0和串行口RS-232在WINDOWS操作系统基础上开发出基于PC机与单片机的串行通信系统,并取得良好实验效果。
参考文献:
[1] 李志全.智能仪表设计原理及应用[M].国防工业出版社,1998.
[2] 何立民.MCS-51系列单片机应用系统设计[M].北京.航空航天大学出版社,1990.
[3] 张毅刚,彭喜元,姜守达,等.新编MCS-51系列单片机应用设计[M].哈尔滨工业大学出版社,2003.
[4] KaiHuang,Faye Briggs A.Computer Architecture and Parallel processing[M]. McGraw-HMCom-pany.1994.
2.3.2 数码管显示程序
本系统所采用的单片机学习板上的数码管是共阳集的。所要显示的数据都是传给P0口,然后通过位选择(由P2口控制)来打开你所选取的数码管,这样你所想要显示的数据就在数码管上显示出来了。具体的步骤如下:(1)、通过查表把所要显示的数据传给P0口。(2)、置位选信号为低电位,使数码管导通。(3)、调用延时程序,使数码管连续显示。(4)、关闭数码管。
本系统所点亮的数码管是P2.6和P2.7所控制的,如果需要变换点亮的数码管,只需要使相对应的位选信号为低位即可。
图2 数码管显示程序
3 系统软件设计(PC机程序结构图)
软件设计是在Visual Basic 6.0环境下完成的,主要使用了MSComm控件的相关属性。对于PC机程序设计,为了使设计的系统可以完成正常的串行通信,并且具有一定的辅助功能,比如数据的串口的选择,数据的自动传输,时间间隔的选择,接收阀值的设定等等。图 3为PC机程序设计的结构图。
4 结论
在过去中,串行通信系统已经被应用到工业控制的很多领域,比如一些宽带网络公司利用光纤接口转换器与串行口连接;数字影像测量仪都备有RS-232接口,与计算机连接后,采用专门测量软件对测绘图形进行处理和输出。该文运用Visual Basic 6.0和串行口RS-232在WINDOWS操作系统基础上开发出基于PC机与单片机的串行通信系统,并取得良好实验效果。
参考文献:
[1] 李志全.智能仪表设计原理及应用[M].国防工业出版社,1998.
[2] 何立民.MCS-51系列单片机应用系统设计[M].北京.航空航天大学出版社,1990.
[3] 张毅刚,彭喜元,姜守达,等.新编MCS-51系列单片机应用设计[M].哈尔滨工业大学出版社,2003.
[4] KaiHuang,Faye Briggs A.Computer Architecture and Parallel processing[M]. McGraw-HMCom-pany.1994.