原创 基于AT89S52的串口通信控制LCM显示

2009-8-15 00:42 1786 4 4 分类: MCU/ 嵌入式

发布: 2009-4-04 23:42 |  作者: 贺秀玲 高焕芝 李芳 张恒 |   来源: 微计算机信息 |  查看: 29次


摘要:系统实现了AT89S52单片机和计算机的串口通信,通过计算机端的软件控制单片机驱动字符显示屏显示规定的字符,来实现通过计算机控制单片机驱动字符显示屏的功能。整个系统由三个部分组成:计算机端软件,单片机系统,字符显示屏驱动。计算机端的软件采用JAVA2平台。
W3C _)b|K6Jd Z!L0关键词:串口通信  字符显示屏    JAVA2平台
'@q h$F&@1]fx"O,t0

k)M4Q#V*v8pw01引言电子园51单片机学习网X-pnOt;be"~

电子园51单片机学习网-A5]X*k.|

计算机带来的革命性进步渗透到各个行业,传统意义上计算机的定义也发生大的变化.单片机简称Micro-Controller/Embedded -Controller,以其高性价比,备受工业控制,电子消费领域重视.单片机串口通信是很多系统集成用到的方式。在一些复杂的控制系统中,单片机和PC机互联成为一种系统解决方案。单片机和PC机互联,利用PC机的强大运算决策能力,单片机作为特殊环境的数据采集和执行单元,越来越多地被利用到工业控制领域,这样可以大幅度地节约系统成本。电子园51单片机学习网Iq5knTq4RE

电子园51单片机学习网u.}Eg[

2总体解决方案

f1u1w1V%gv0

9wxf F*t2f0       单片机选用Atmel89S52,通过DB9串口线连接到计算机,串口通信采用RS232标准。单片机和计算机之间通信采用一定的通信协议。通过计算机端的串口通讯软件控制单片机上LCM的显示内容和显示方式。发送字符串或文本文件到单片机,单片机驱动LCM,并将接收到的内容显示在LCM上(LCM只能显示ASCII字符及8个自定义字符),通过PC端软件可以控制字符的显示方式,如滚动显示,换行显示,换屏显示,并可以读取当前LCM显示的内容。所以系统的基本组成就是单片机,PC机端串口通信软件。

e)I P#|N$[ @i9s9\0电子园51单片机学习网}1E(KPB3i

由于PC端计算功能强于单片机,所以要预先处理好数据再向MCU发送。MCU提供一个容量有限的缓冲区,PC机端软件把要显示的内容送入缓冲,也可以从缓冲中读取正在显示的内容。PC端串口通信软件采用JAVA语言编写,JAVA语言的特色是高度的可移植性,另外JDK (JAVA Development Kits)提供了丰富的类库,能够很方便地构造良好图形用户接口的(GUI)应用程序。电子园51单片机学习网0\~K)aN(^m

电子园51单片机学习网?'II w3pn?

3系统硬件电路设计与实现电子园51单片机学习网0}1wp,M,jc

电子园51单片机学习网gt V ns6UM

硬件电路主要分成电源电路,单片机的上电复位和振荡电路,单片机和LCM间的数据通路,另外就是单片机和PC机间的RS232通信模块的设计,采用MAX232系列芯片,负责电平信号的转换。

oN djd,dn.f2Pv!i.d0电子园51单片机学习网N-G eTBx2P6S

.3.1 电源部分设计电子园51单片机学习网S)I(b1r*jo bz{ E


Uj+u'~ l9m6_0如图1所示,该电源部分电路,自带整流桥,所以可以输入直流或是交流9V电源,然后再通过7805稳定到5V供单片机工作。固定式三端稳压电源7805是由输出脚Vo,输入脚Vi和接地脚GND组成,它的稳压值为+5V,它属于CW78XX系列的稳压器,输入端接电容可以进一步的滤波,输出端也要接电容可以改善负载的瞬间影响,此电路的稳定性也比较好,只是采用的电容必须要漏电流要小的钽电容,如果采用电解电容,则电容量要比其他的数值要增加10倍。电子园51单片机学习网~%S/Cj}ASal/x


点击看大图电子园51单片机学习网~L:B(D"d0c



1G|I%X6J4VT0  图1 系统电源电路图电子园51单片机学习网-ZP3N$|K

电子园51单片机学习网!E \%x+rT9~n

3.2单片机外围电路及LCM驱动电路

9Z4a/C)SB0电子园51单片机学习网 O'Tj.eq-J)IL

单片机的最小系统包括震荡电路、复位电路等。该系统的时钟部分都是采用晶体振荡器实现的。考虑到电源的输入纹波对单片机的影响,在电源的管脚增加一个电容来实现滤波,以较小输入端受到的干扰。在本系统中采用11.0592Mhz的晶振,由10K电阻和10uF电容构成上电复位电路。-EA/Vpp 接VCC,因为访问内部存储器.ALE/-PROG应置空。单片机的P0和P2口和RT1602 LCM连接。采用11.0592MHz的目的是方便串口使用9600bit/s的通信速率。

%Z6gxhUk6R0电子园51单片机学习网0n)rd[:P&H

LCM显示模块是一种将液晶显示器件,连接件,集成电路,PCB线路板,背光源,结构件装配在一起的组件,实际上它是一种商品化的部件。本设计选用1602系列液晶点阵字符模块,每行可以显示16个字符,共2行。它是由点阵字符液晶显示器和专用的行,列驱动器,控制器及必要的连接件,结构件装配而成的,可以显示数字和西文字符。这种点阵字符模块本身具有字符发生器,显示容量大,功能丰富。电子园51单片机学习网(dq ggm.nL

电子园51单片机学习网qCM^"pF#{

点击看大图电子园51单片机学习网N5T(}zAb

电子园51单片机学习网RC u}sy!R4I

图2  单片机外围电路及LCM驱动电路原理图电子园51单片机学习网v ~7X%~H0AX

电子园51单片机学习网9PcBh`2n%ws%zJ

3.3  RS232串口通信电路电子园51单片机学习网,N+?&d8T*Q(xzE

电子园51单片机学习网y TVS2}

该系统实现串口通信模块主要是与上位机进行通信。单片机系统将保存在RAM中的数据送到上位机进行处理,从而减轻单片机系统的负担。由于单片机与上位机进行通信时接口电平不同,因此需要进行接口转化,这里采用MAX232芯片来实现接口电平的转化。电子园51单片机学习网nNS W.{ nK'G }i

电子园51单片机学习网wx4Z'M^R9b

4通信协议的设计

Krp|MuU:y0电子园51单片机学习网'J]sz0W i7H

单片机和PC机端软件进行通信,就必须要遵守一定的通信规则,比如,MCU主动发送初始化成功代码到PC端,PC端发送一个特定的代码说明将要向MCU发送数据了,MCU做好接收的准备.电子园51单片机学习网,hVuweB?Kc


T(s3p9Ru_ u9QE;h0RS232通信速率最高支持19200bit/s.本软件采用9600bit/s通信速率。所以通信协议要尽可能短小,以提高通信效率。电子园51单片机学习网/z9WQu9Rb4e


E}pa0rM.JG ~0因为LCM只能显示192个英文字符及标点符号。所以握手信号不能采用此已知的字符,并且要保证握手信号尽可能地短,所以使用十六进制的值来表示。通信协议的定义如表2所示:电子园51单片机学习网dx6FPT,s$JF


x C+c4Bzy A0表2   通讯协议电子园51单片机学习网 x @4?K c#_;|




握手信号(通信协议)

Z On-yx'jg0

字节码(十六进制)

nQ+["m,}$^8\ @5q0
电子园51单片机学习网#u+}k y#?5b_!b D

含义

QSB9JP/Q6qf0

5}bt;I0z%@00xff

t|q,m};^f(G0
电子园51单片机学习网HP5B(]dN*d\%H

PC向MCU发送LCM 显示信息

t\`h:[I0
电子园51单片机学习网}l\.{Z1u~J;q$x

0xfe 

1]6I(q1lGGB Jz/V#U0

4a ? T#ff"z?0PC发送LCM信息结束电子园51单片机学习网9gYG:j8c bL#FI;@.e


sT7g0Ce7bf,Y"i00xfd 电子园51单片机学习网{ E$Tgw'g KV


mtW2j:Aw!D8v0PC请求MCU发送LCM显示信息到PC电子园51单片机学习网'Vf:{T~

电子园51单片机学习网\-w0M*Tm'k}

 电子园51单片机学习网a&Z%uu8u'v!js

电子园51单片机学习网s rL5S&p wH

5系统软件设计电子园51单片机学习网7\GY)x9w$Hg c

电子园51单片机学习网.VD8V!l^GWet

系统软件设计部分包括单片机端和PC端两部分。单片机端主要是通过串口接收来自上位机的信息,然后将得到的信息在LCM中显示。PC端软件部分主要通过编写图形界面,来实现对用户对整个系统的操控。单片机端和软件端的主流程如图3所示:

s4u2U9ED,TO0

u0V,`;is/@8p;p1k0点击看大图电子园51单片机学习网 }dQ#q1M


cenRG _Q-G$GXG0图3  单片机端和PC端软件操作流程图

)GBG;F@\YEY0

pN w lge y+i-s0 电子园51单片机学习网E$YEGF G4iM_

电子园51单片机学习网_/\1[v5x

5.1单片机端软件设计电子园51单片机学习网w9gl4i0_-n;d@


T^U&y3]q/G0单片机端软件采用C51编写(类C代码),使用Keil uVision集成开发环境。单片机端主要完成单片机的初始化、LCM的显示、串口通信。

K Yfd${1n$zym&R6u~0

X$G jdM0单片机的初始化的主要是单片机的串口中断打开和LCM的初始化显示。要设置下列寄存器的值:IE,EA,ES,SCON,PCON, TCON等。

e5{s$Q:Uv0电子园51单片机学习网KboP'A JQY+R

LCM的显示主要完成控制LCM的显示内容和方式,及接收和发送信息给PC机,并且在显示时必须要先读取其忙状态标记,以判断LCM是否可以接受数据。电子园51单片机学习网c)g?Iw5zR&f"D(^X'`


ZL)o0x!OEG0单片机部分的串口通信模块只要完成单片机与上位机的通信,从而将系统所需的信息传送给上位机进行处理。由于AT89S52单片机具有片内的UART,因此实现串口通信相当容易,只需要设置适当的寄存器就可以使串口工作起来。串口通信有循环(查询)和中断两种方式。就使用效率而言,中断方式比查询方式节约CPU资源。所以此单片机的串口通讯采用中断方式接受、发送数据。电子园51单片机学习网Ls e'l,}+PdJ

电子园51单片机学习网8sP+op)` c-l*`/?X8A

5.2  PC端软件设计电子园51单片机学习网*|| T[k~.LF.L {9sle


$@ _l)i4S4W+ah(R"F0PC端软件主要负责提供一个方便的用户界面以便发送和接收,并且处理串口信息。此软件运行后,要使用主线程初始化用户界面,同时启动一个后台线程负责一直监视用户选择的串口,接受单片机发送来的信息,并及时地显示出来。当用户输入要发送的字符,点击发送时,能够及时的向串口发送数据,另外,一个完整的软件,帮助也是必不可少的,这样方便用户使用软件。

x%zk#g6}L/n0

8j0{E.m0kZ+ce0归纳出系统需要的类对象:用户界面类MainFrame,串口类PortControl,串口写数据类SerialWriter,串口读数据类SerialReader。电子园51单片机学习网8M"d\x0L0w3g2]]

电子园51单片机学习网V,cH.GTb

PC端在进行串口通信编程时,必须在使用之前首先向操作系统提出资源申请要求(打开串口),然后对端口进行参数配置,之后才可以同串口进行数据交换并完成数据从串口的发送与接收。最后,在通信完成时释放资源(关闭串口)。创建串口类PortControl,负责串口的列举,数据发送和数据接收。

toE uCb#\"B0

!A6S.Y@q ?MS3\06总结电子园51单片机学习网RT_cVDQ$y`


&X4L2gI"eI0本文的创新点在于设计的串口通信软件采用JAVA语言编写,,成功的解决了因为串口属于系统底层资源,大多与系统紧密结合,要想开发跨平台的软件很难实现的问题,通过为不同的系统定制不同的JAVA VM并向上提供统一的接口;其次本设计选用1602系列液晶点阵字符模块,这种点阵字符模块本身具有字符发生器,显示容量大,功能丰富;最后通过编程上位机软件界面,方便了对LCM的控制,从而避免了因改变LCM显示内容而改变源代码的功能。该项目实施一年以来,创造经济效益68多万元。电子园51单片机学习网(gB"]+PF wz

电子园51单片机学习网qo8[;Zs

 电子园51单片机学习网?*j`l.I

电子园51单片机学习网6Dr7@^']]

参考文献电子园51单片机学习网 G4U"Q,?.x)u L n;rw

电子园51单片机学习网 Z I3dU q7o1?[

[1]唐俊,许雷,张群瞻,单片机原理与应用 ,冶金工业出版社,2003电子园51单片机学习网!S,C9` g7M{C g

电子园51单片机学习网io0p D+_ n D

[2]赵亮,候国锐 编著,单片机C语言编程与实例 ,人民邮电出版社 2003-7电子园51单片机学习网r y @/IK9R;P3y


;Qm3Wt q2A:dn0[3]胡凯,张颖超.生化分析仪的设计及与PC机的通信[J].微计算机信息.2006,22(4-1):208-209

Nv7@8m bWA0

%\$\)B~(?5Y;W Vw0[4]马鸿文.基于AT89C52单片机的自动存取柜的设计与实现[J].微计算机信息,2006,22(1-2):101-103电子园51单片机学习网;ABH H6@Wz$R \3kw k

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /3 下一条