046
基于PC机串行通讯的LED数字显示终端设计样本
(样本只提供该系统的基本情况介绍,若需要完整的设计和论文,建议您购买本系统,凡是购买本站系统的,本站均根据您的要求,把系统上的开发信息,题目等修改成符合您的要求)
本系统开发工具:单片机/汇编
本设计包含内容:源代码+毕业论文+开题报告+答辩稿
论文大概:
基于PC机串行通讯的LED数字显示终端设计
摘 要:本文介绍了采用RS232
接口进行串行通讯的原理,并给出了实现该系统功能的相应硬件电路。为了在人机对话设计中降低硬件成本,节约单片机的I/ O
口资源,通过动态扫描,设计了一种新颖的显示模块,经调试,效果良好。同时,为保证数据的可靠传输,针对通讯过程中可能出现的问题提出了相应的合理解决办法。该设计采用高级语言VB和KeilC51实现PC
机与单片机的通讯和LED动态显示。文中还介绍了实现通讯和LED动态显示的基本语句和主要编程思想。
关键字:数字显示终端;数据通信;MSComm;串行通信
LED digital display terminal station designs based on serial
communication of the PC
Abstract: This article is to introduce the principle of
adopting RS232 interface to carry on the serial communication, and
to provide the corresponding hardware circuit which realizes its
system function. In order to reduce hardware cost in interactive
design , and to economize I/ O mouth resource of single-chip
microcomputer, through the dynamic scaning,people have designed a
kind of novel display module.Through debugging, the result comes
wonderful. Meanwhile , in order to guarantee the reliable
transmission of the data , one should put forward the corresponding
rational solution to the problem that may appear in the process of
communication . This design adopts high-level language VB and
KeilC51 to realize the communication of one-chip computer and LED of
showing dynamically. this paper also introduces the basic sentence
and the main programming method of realizing communication and LED
showing dynamically.
Key word: Terminal station of digital
display ; Data communication; MSComm; Serial communication
1. 引 言
随着现代电子技术的飞速发展,
计算机的通信技术也日趋成熟。而计算机的串行口以其简单的硬件连接方式常常成为硬件开发者的首选。VB6. 0
是一种功能强大、简单易学、可视化的程序设计语言。其中MSComm
通信控件提供了一系列标准通信命令的接口,它允许上位机与其他通信设备(如Modem)
建立串口连接,还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的
各种错误和事件,从而可以利用它创建高效实用的串行通信程序。近些年来,
在以单片机为基础的数据采集和实时监控系统中, 越来越多的工程技术人员采用
VB来实现PC
机与单片机之间的命令和数据传输。根据通信距离的远近和下位机的数量, 可以选择RS232或RS485
来实现数据的传送和控制。
一个单片机系统中,显示是人机通道的重要组成部分。在小型的控制系统中,通常用L ED
数码管作为显示器件。L ED 数码管的显示方式通常可分为2
种:静态方式和动态方式。静态显示方式的优点是亮度高、没有闪动、稳定,缺点是功耗大、占pcb
面积大、成本高。因此,大多数设计人员采用动态显示方式。目前,市场上有许多专用的动态显示接口芯片可供选择。但是,这些芯片普遍价格较高,而无法在小系统中应用。有些专用芯片(如MC14489)
采用硬件译码方式,显示的信息量有限,有时难以满足各种要求,因而影响了它的应用。笔者通过实践,设计出一种价格低廉、效果良好的动态显示电路。
2. 硬件实现
本设计硬件电路主要由两部分组成,一部分是PC机与单片机串口通信电路,一部分是LED动态显示电路。串口通信采用MCS-51系列单片机作为下位机,
PC机为上位机。单片机通过RS-232串行口接收PC机发送的数据。LED动态显示电路选用74LS377作为段码锁存器,以ULN2003A作为显示驱动。设计的原理框图和实现后的电路板图如下所示:
TXD
TXD
RXD
RXD
图2-1 系统原理框图
图2-2
电路板反面图
图2-3 电路板正面图
2.1 PC机与MCS-51单片机通信的硬件实现
PC
的主板上通常都预留有一个或两个九针(DB-9) 全双工串行接口(COM1、COM2)
,其电气标准遵循RS-232C标准.在通常的异步串行通信中只使用其中三个引脚,即引脚2(接收RXD)、引脚3(发送TXD)、引脚5(信号地SG)。MCS-51单片机内含异步全双工串行通讯端口,可经P3.0、P3.1脚接收和发送TTL逻辑电平信息。由于单片机输入、输出电平是TTL
电平, 而PC机配置的是RS-232标准串行接口, 二者的电气规范不一致, 因此要完成单片机与PC
机的数据通讯,必须对单片机输出的TTL电平进行电平转换。以前常用的TTL 与RS-232
电平转换芯片为MC1488
和MC1489。MC1488 将TTL电平转换为RS-232 电平, 其供电电压为±12V,MC1489 则把RS- 232
标准电平转换为TTL,供电电压为+ 5V,因此电路中除系统的+
5V电源外,另需±12V电源。这对于不具备±12V电源的单片机系统很麻烦,
因此本电路用一种标准的RS-232芯片MAX232。MAX232 芯片是MAXIM
公司生产的低功耗、单电源RS232发送/接受器。适用于各种EIA-232E 和V•28/ V•24的通信结果。MAX232
芯片内部有一个电源电压变换器,可以把输入的+ 5
V电压变成RS-232C输出电平所需±10V电压,所以采用此芯片借口的串行通信系统只要单一的+
5V电源就可以。该芯片与单片机的接口电路非常简单, 只需外接5个0.1μF的电容,即可实现TTL与RS-232
两种电平的转换。转换后的串行口信号R2IN、T2IN直接和单片机的串行口连接。电路图如下:
图2-3
RS233电平转换电路
con9与PC机com口相连,R2IN,T2IN分别和单片机的RXD(10引脚),TXD(11引脚)相连。
2.2
LED显示的硬件设计
LED显示有两种方式:静态显示和动态显示。
2.2.1 LED静态显示方式
①静态显示
需要显示的字符的各字段连续通过电流,因此所显示的字段连
续发光。
②工作原理
LED显示器工作在静态显示方式时,各显示位的阴极(或阳极)
连接在一起接地(或+5V),每位的段选线(a~dp)与一个8位并行口相连。只要在该段选线上的段选码电平保持不变,该位就能保持相应的显示字符不变,一直到下次刷新段码为止。
③特点
这种显示方式占用CPU的时间少,但使用元件多,硬件成本高,适
合于显示位数较少的场合。
2.2.2
LED动态显示方式
①动态显示
是需要显示的字符的各字段断续通过电流,因此所显示的字段
发光是不连续的。
②工作原理
所有显示位的段选线并联在一起,由一个8位口控制,而各显
示位的共阴极点(或共阳极点)分别由其它的I/O口控制,并通过CPU定时一位一位地轮流点亮各显示位,这就是动态显示方式。它利用视觉暂留原理,实现所有显示器都在显示的效果。
③特点
与静态显示方式相比与静态动态扫描显示具有以下优点:第一,能
显著降低显示器的功耗;第二,能大大减少显示器的外部引线,给印制板的设计和安装带来方便;第三,能采用BCD码多路输出的方式,不仅使译码、驱动电路大为简化,还可以与微机相连;第四,只要位扫描信号频率足够高,由于人眼的“视觉暂留”现象,就观察不到闪烁现象。
基于动态显示的上述优点,我们采用动态显示方式来实现数字终端的显示。36位LED段选线通过3片74LS377锁存器与单片机P0口相连,位选线通过六片74LS377对36位LED进行分时选通。
动态扫描的频率有一定的要求,频率太低,LED将出现闪烁现象。如频率太高,由于每个LED点亮的时间太短,LED的亮度太低,肉眼无法看清,所以一般均取几个ms左右为宜,这就要求在编写程序时,选通某一位LED使其点亮并保持一定的时间,程序上采用定时中断的方法,实现显示图像的稳定性。
动态扫描还要解决显示的亮度问题。为了使LED有一定的亮度,必须增加驱动电路。我们采用ULN2003A器件,ULN2003A是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。电路图如下:
图2-4 LED 动态显示电路1
图2-5
LED动态显示电路2
图2-6 LED 动态显示电路3
图2-7 LED 动态显示电路4
图2-8 LED动态显示电路5
2.3
硬件“看门狗”技术的实现
微机测控系统的应用程序通常以循环方式运行,且每一次循环的时间基本固定。“看门狗”技术就是不断监视程序循环运行时间,
若发现时间超过已知的循
环设定时间, 则认为系统进入了“死循环”,
然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,从而使系统运行纳入正规。这些功能均由MAX813来完成。MAX813的主要功能如下:①系统上电、掉电以及供电电压降低时,第7脚产生复位输出,高电平有效;②看门狗电路输出,如果在1.6秒内没有触发该电路(即第6脚无脉冲输入)则第8脚输出一个低电平;③手动复位输入,低有效,即第1脚输入一个低电平,则第7脚产生复位输出。实际应用时,将第7脚接CPU的复位脚,第1脚与第8脚相连,电路图如下所示:
图2-9 硬件看门狗电路
3.软件实现
现在PC 机上的大多数基于Windows 系统的可视化语言都能实现串行通讯功能, 本设计采用微软的VB6. 0 ,
单片机采用51 系列, 语言用C51。通讯功能是实现PC 机键盘输入数值串,发送给单片机,
单片机收到PC机发来数据后,通过LED显示出来。如果通讯正常,发送的数值和显示的数值相同。双方约定:波特率为2400;信息格式为8个数据位,
一个停止位; 传送方式为PC机采用查询方式收发数据, 51
机采用中断方式接收数据。以“FF”为发送起始标志,“0X”(X=0,1…5)为数值串的标识,“EE”为发送终止标志。
图3-1系统总体结构流程图
3.1 PC 机的通讯界面及VB 通讯功能的程序的实现
用visual basic
6.0进行串行通信程序的设计有两种方式,一是直接调用Windows
API,另一种方式是使用通信组件,但后一种方式实际上是通过通信组件间接的调用了Windows API函数。 用API
函数编写串口通讯程序比较复杂, 而VB 6.0 的MSComm通讯控件为标准的通讯命令集提供了一个接口,
它允许程序员建立一个基于串行口的连接, 可进行命令的确认, 数据交换,
以及对串行接口处可能出现的各种事件或错误进行监视,并可做出反应。另外VB6.0
通过属性方法提供了串行通讯口参数的设置,可以较容易地解决串口通讯问题。所以本设计采MSComm控件编程来实现与单片机的通讯。
3.1.1
MSComm控件的基本属性
利用通讯控制的第一步应与串行口建立连接, 这可通过给MSComm的几个属性赋值,主要有Commport
, Setting , Portopen 属性。Commport 属性用来确认打开那个串行口; Set2ting
属性用来指定波特率、数据位、停止位,奇偶校验用于数据校验, 一般不用, 而直接设为“N”, 数据位指明传输的数据个数,
停止位表示收到所设字节时为一个数据的结束, 缺省情况下, Setting =9600 , N, 8 , 1 , 即波特率为9600b/
s , 8 个数据位, 1 个停止位, 无奇偶校验。设定发送和接收缓冲区大小这一步应设定INBuffersize
和OUTBuffersize , 其中INBuf
fersize指明分配给接收的缓冲存贮器的大小,OUTBuffersize
指明分配给发送的缓冲存贮器的大小。一般数值为INBuffersize =1024 ,OUTBuffersize =
512。
3.1.2界面设计
首先新建一个EXE 工程,
然后添加控件。因为MSComm控件不在通用工具窗口中,应添加到工具窗口内。具体步骤如下:选择菜单栏项中的“Project”菜单下的“Components“子菜单,
进入选择窗口(或在工具箱空白处击鼠标右键, 选择Components 也可进入选择窗口) , 在Controls
页中选取Microsoft Comm Con2
trol 6. 0 ,确认后MSComm即出现在工具箱内。加入MSComm
后再依次在窗口中加入6 个TextBox , 6个Command Button ,
6个TextBox文本框用来键入发送数值;6个Command
Button用来发送对应的数值。设计界面如下:
图 3-2 PC发送数据界面
双击窗体,进入代码窗口,开始编程。
下面给出第一个编辑框的发送程序:
图 3-3 串口初始化流程
N
Y
图 3-4 发送缓冲区数据流程图