基于AT89S52的串口通信控制LCM显示
写图形界面,来实现对用户对整个系统的操控。单片机端和软件端的主流程如图3所示:
图3 单片机端和PC端软件操作流程图
5.1单片机端软件设计
单片机端软件采用C51编写(类C代码),使用Keil uVision集成开发环境。单片机端主要完成单片机的初始化、LCM的显示、串口通信。
单片机的初始化的主要是单片机的串口中断打开和LCM的初始化显示。要设置下列寄存器的值:IE,EA,ES,SCON,PCON, TCON等。
LCM的显示主要完成控制LCM的显示内容和方式,及接收和发送信息给PC机,并且在显示时必须要先读取其忙状态标记,以判断LCM是否可以接受数据。
单片机部分的串口通信模块只要完成单片机与上位机的通信,从而将系统所需的信息传送给上位机进行处理。由于AT89S52单片机具有片内的 UART,因此实现串口通信相当容易,只需要设置适当的寄存器就可以使串口工作起来。串口通信有循环(查询)和中断两种方式。就使用效率而言,中断方式比查询方式节约CPU资源。所以此单片机的串口通讯采用中断方式接受、发送数据。
5.2 PC端软件设计
PC端软件主要负责提供一个方便的用户界面以便发送和接收,并且处理串口信息。此软件运行后,要使用主线程初始化用户界面,同时启动一个后台线程负责一直监视用户选择的串口,接受单片机发送来的信息,并及时地显示出来。当用户输入要发送的字符,点击发送时,能够及时的向串口发送数据,另外,一个完整的软件,帮助也是必不可少的,这样方便用户使用软件。
归纳出系统需要的类对象:用户界面类MainFrame,串口类PortControl,串口写数据类SerialWriter,串口读数据类SerialReader。
PC端在进行串口通信编程时,必须在使用之前首先向操作系统提出资源申请要求(打开串口),然后对端口进行参数配置,之后才可以同串口进行数据交换并完成数据从串口的发送与接收。最后,在通信完成时释放资源(关闭串口)。创建串口类PortControl,负责串口的列举,数据发送和数据接收。
6 总结
本文的创新点在于设计的串口通信软件采用JAVA语言编写,,成功的解决了因为串口属于系统底层资源,大多与系统紧密结合,要想开发跨平台的软件很难实现的问题,通过为不同的系统定制不同的JAVA VM并向上提供统一的接口;其次本设计选用1602系列液晶点阵字符模块,这种点阵字符模块本身具有字符发生器,显示容量大,功能丰富;最后通过编程上位机软件界面,方便了对LCM的控制,从而避免了因改变LCM显示内容而改变源代码的功能。该项目实施一年以来,创造经济效益68多万元。
参考文献
[1]唐俊,许雷,张群瞻,单片机原理与应用 ,冶金工业出版社,2003
[2]赵亮,候国锐 编著,单片机C语言编程与实例 ,人民邮电出版社 2003-7
[3]胡凯,张颖超.生化分析仪的设计及与PC机的通信[J].微计算机信息.2006,22(4-1):208-209
[4]马鸿文.基于AT89C52单片机的自动存取柜的设计与实现[J].微计算机信息,2006,22(1-2):101-103.
- 基于嵌入式WinCE与MSP430单片机多串口通信设计(07-10)
- 皮肤流电响应监护系统与PC串口通信的设计(08-29)
- 基于Lua脚本语言的嵌入式UART通信的实现(04-05)
- 串口通信-传输速率与传输距离(12-15)
- 串口通信基本原理及接线方法(12-13)
- RS232串口通信协议怎么写?(12-13)