您当前的位置:五五电子网电子知识电子制作自动控制-单片机用VB实现微机控制字符型液晶显示 正文
用VB实现微机控制字符型液晶显示

用VB实现微机控制字符型液晶显示

点击数:7501 次   录入时间:03-04 11:42:13   整理:http://www.55dianzi.com   自动控制-单片机

  液晶显示器(LCD)以低电压、微功耗、超薄轻巧、接口简单、显示内容丰富诸多优点,在袖珍式电子产品的显示系统中得到广泛应用。为此,本文介绍一种由微机与单片机之间通讯直接控制液晶显示电路。微机在控制中,采用Visual BasIC(简称VB)编程,做出十分直观的人机界面,操作方便,可直接将字符由微机的键盘输入通过串行通讯口传送到单片机,再由单片机系统控制液晶显示模块,将字符显示在液晶屏上。另外,单片机系统又将字符发送回到微机的人机界面上显示,用于字符传送过程的实时监测。

一、硬件设计

 

 


系统电路如图(1)。

 

 

图(1)

本系统关键的器件是AT89C51单片机,一方面利用AT89C51单片机自身具有的串行通讯口,可以与微机的RS232(9针)串行通讯口直接通讯。另一方面通过单片机控制液晶显示模块。AT89C51单片机系统在硬件设计上具有简单、方便等优点。但由于微机的RS232标准接口的电平与AT89C51单片机接口的TTL电平规范不一致,所以采用MAXIM公司的MAX232电平转换器,实现这两种接口的电平相互转换。

字符型液晶显示模块是一种用5x7点阵图形来显示字符的液晶显示器。根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。这里采用2行16个字的TC1602A液晶模块。TC1602A采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择:RS=1选择数据寄存器;RS=0选择指令寄存器。R/W为读写信号线:R/W=1进行读操作;R/W=0进行写操作。当RS=0,R/W=0时,可以写入指令或者显示地址;当RS=0,R/W=1时,可以读忙信号;当RS=1,R/W=0时,可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0~D7为8位双向数据线。 TC1602A液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等。每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 TC1602A液晶模块内部的控制器共有11条控制指令,它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

一、软件设计

1、微机串口发送、接收的VB程序设计

VB程序设计包括人机界面设计如图(2),主要利用VB6.0提供的串口控件MSCOMM32.OCX。该控件可方便地对串口状态与89C51单片机之间串口通讯的格式和协议进行设置。MSCOMM控件的属性预设置为:Commport=2,Settings=“9600,n,8,1”,Rthreshold=1,Sthreshold=1。

VB程序设计如下:

Private Sub CmdExit_Click()                '使用命令按钮控件

MSComm1.PortOpen = False                '关闭通讯端口

End                                    '结束系统

End Sub

Private Sub CmdSend_Click()               '使用命令按钮控件

MSComm1.Output = textsend.Text & Chr(13)  '将发送区数据传送出去

End Sub

Private Sub Command4_Click()              '使用命令按钮控件

MSComm1.Settings = Trim(Text3.Text)       '改变通讯参数设置

End Sub

Private Sub ComReceive_Click()             '使用命令按钮控件

  textreceive.Text = ""                     '清除接收区数据

End Sub

Private Sub Form_Load()

Text3.Text = CStr(MSComm1.Settings)       '显示通讯参数设置

 MSComm1.CommPort = 2                 '判断串行口

 On Error Resume Next

  Opcom(1).Value = True

 If MSComm1.PortOpen Then

 MsgBox "COM2被用,请选COM1!", vbExclamation + vbOKOnly, "系统信息"

Exit Sub

Else

  MSComm1.PortOpen = True             '打开通讯端口

 End If

End Sub

Private Sub MSComm1_OnComm()          'MSComm1_OnComm事件

[1] [2] [3] [4]  下一页


本文关键字:暂无联系方式自动控制-单片机电子制作 - 自动控制-单片机