0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于AT89S51液晶显示系统的设计步骤介绍

电子设计 作者:电子设计 2018-08-29 00:50 次阅读

引言

液晶显示器因其具有功耗低、质量轻、体积小和超薄等优点,成为袖珍式电子产品显示系统中的主流显示技术,被广泛用于通讯、家庭娱乐、广告、仪表等领域。本文设计了一种由计算机与单片机之间的通讯来直接控制液晶显示的系统。采用vb 软件编程,设计直观的人机界面,通过计算机的键盘直接输入字符和字符移动方式,利用串口通讯传送至单片机,再由单片机系统控制液晶显示模块,使字符能够在液晶屏上进行移动显示。

1 主控芯片和液晶屏的选择

本系统中,主控芯片选用Atmel 公司生产的AT89S51.该芯片具有4k 字节可编程FLASH 存储器,支持串行、并行下载程序ISP 在线编程,且价格低廉,执行速度快。液晶显示屏采用点阵字符型液晶显示模块LCD162,LCD162 采用标准的16 脚接口,可以显示2 行32 个字、每行显示16 个ASCII字符,并且可以自定义图形,只需要写入相对应字符的ASCII 码就可以显示。

2 硬件电路设计

系统硬件电路主要有液晶显示模块和通讯模块两个部分组成,电路如图1 所示。

图1 系统硬件电路

图1 中,液晶显示部分,单片机与LCD162 采用并行接口方式,单片机的P0 口与液晶显示屏的数据线D0~D7 进行连接,并通过8 个10 kΩ 的上拉电阻上拉。P1.5 连接LCD162 的RS 端,当P1.5为高电平时选择数据寄存器,低电平时选择指令寄存器。P1.6 连接RW,用于控制液晶显示屏的读写操作,当P1.6 为高电平时进行读操作,低电平时进行写操作。P1.7 则连接到LCD162 的使能端,当E 由高电平跳变成低电平时,液晶模块执行命令。

V0为液晶显示器对比度调整端,通过一个10 kΩ的电位器R9为V0提供可调的液晶驱动电压,实现显示对比度的调节。

本系统需要将微机键盘键入的字符显示在液晶屏上,因此利用51 单片机的异步串行通信接口与计算机进行串行通信,再由单片机控制液晶显示模块。计算机有一个串行通讯端口RS-232, 其逻辑电平用正负电压表示,且信号使用负逻辑,逻辑0 的电压范围是+5~+15V, 逻辑1 的电压范围是-5~-15V.而51 单片机的输出信号实际并不符合RS-232 的标准,其串行通信管脚上的电压为TTL 标准,即0~5V 之间的两个状态。因此,51 单片机与MODEM 连接时,中间必须插入一个电平和逻辑转换环节。这里利用MAX232 芯片实现TTL电平和RS-232 电平之间的转换任务。

3 软件设计与开发

软件部分包括单片机控制的液晶显示子程序、单片机和PC 机间通讯子程序以及VB 程序设计部分。

3.1 液晶显示

LCD162 液晶模块内部有一个字符发生器CGRAM,存储了160 个不同点阵字符图形,每个字符有一个固定代码,通过标准字库表查找其对应代码即可。显示字符时需要先送地址(写命令),然后再送字符(写数据)。如果要显示字符库外的字符,则需要利用CGRAM 编制显示。本系统液晶显示模块包括LCD 的初始化、光标定位、显示字符等模块,其程序流程图如图2 所示。

图2 液晶显示控制主程序

初始化时需要设置初始状态、显示光标、清屏、显示模式等,这里设置LCD162 为8 位数据,5×7 字符点阵,两行显示,即将P0 口写入38H.LCD162 有写命令、读状态、写数据和读数据4 种操作,4 种操作由P1.5,P1.6,P1.7 的状态确定。在进行写命令、写数据和读数据3 种操作前需先进行读状态操作,通过查询方式查询忙标志,当忙标志为0 时才可以进行其他3 类操作。送显示字符时,需将显示数据写在相应的DDRAM 地址中,用以确定显示字符的显示位置。以下是忙碌状态判断子程序和写数据子程序,其子程序流程如图3 和图4 所示。

RS BIT P1.5

RW BIT P1.6

E BIT P1.7

LCD EQU P0

;判断是否忙碌子程序:

CHECK_BF:

MOV LCD,#0FFH

CLR RS ; RS 为低电平,RW 为高电平时,可以读状态

SETB RW ; RW=1,选择读模式

CLR E

NOP

SETB E ;E=1,允许读/写LCD

NOP

JB LCD.7,CHECK_BF

RET

;写数据子程序:

WR_DATA:

SETB RS ;RS=1,选择数据寄存器

CLR RW

CLR E

ACALL CHECK_BF

MOV LCD,A ;将数据送入P0,

NOP ;给硬件反应时间

NOP

NOP

NOP

SETB E

NOP

NOP

NOP

NOP

CLR E ;E 由1-->0 时,液晶模块开始

执行命令

RET

图3 判忙碌子程序

图4 写数据子程序

3.2 单片机与PC 的串口通讯

单片机的串行数据发送端TXD 和串行数据接收端RXD 分别与MAX232 的T1 和R1 相连。设置时应与PC 机的串口设置相对应。本系统单片机串行口采用工作方式1,波特率设置为9 600,由定时器T1 产生。通信开始时由PC 机发出握手信号,单片机收到握手信号后再向PC 机发回响应信号,PC机收到响应信号,经验证正确后表示串口通信成功。

3.3 PC 机串行通信

计算机的通信采用VB6.0 软件编写。在VB 中有一个MSComm 通讯控件,该控件可设置串行通信数据的发送和接收,通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。MScomm 控件提供了两种通信方式:事件驱动和查询方式,本系统采用查询方式处理通信。为保证计算机和单片机的可靠通信,双方需要设置相同的数据格式和波特率。本系统采用二进制发送和接收数据。发送数据前,需将发送缓冲区清零,即MScomm 控件的OutBufferCount 属性值为0.对通讯端口初始化时选用串行通讯口Com1,设置其波特率为9 600, 无奇偶校验,8 位数据传送,1 位停止位。字符数据发送完毕后以回车键作为结束。

下面的程序是实现通讯的代码。其中Label1 控件用于串口通讯成功时的提示标签。

Private Sub MSComm1_OnComm()' 串口设置

Dim Buffer As Variant

Dim Hexbuffer() As Byte

If MSComm1.PortOpen = True Then

Select Case MSComm1.CommEvent

Case comEvReceive ' 有接受事件发生

MSComm1.InputLen = 0

MSComm1.InputMode = comInputModeBinary

' 数据收发采用二进制

Buffer = MSComm1.Input

Label1.Caption = Buffer

Hexbuffer() = Buffer

Dim I As Integer

For I = 0 To UBound(Hexbuffer)

If Hex(Hexbuffer(I)) = 1 Then

Label1.Caption = Label1.Caption & "0" &Hex(Hexbuffer(I))

Else

Label1.Caption = Label1.Caption & Hex(Hexbuffer(I))

End If

Next I

End Select

End If

End Sub

在VB 窗体界面中还设置了左右移动两个按钮,通过添加两个定时器timer1 和timer2,在定时器的timer 事件里更改控件的位置属性,从而实现字符的在窗体上的移动。图5 为通过虚拟串口和Proteus 软件仿真效果。图5 中,左图为VB 窗体界面,右图是液晶显示仿真图。在窗体文本框控件中输入字符,点击发送按钮后可以在液晶显示屏中进行显示,点击左右移按钮,液晶显示屏的内容也可以同时进行移动。

图5 VB 控制的液晶显示仿真

4 结论

本系统以计算机作为主机,单片机作为从机,实现了计算机和单片机的串行通讯,并能够通过键盘向计算机输入字符显示在液晶显示屏上。系统结构设计简单,具有一定实用性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7124

    浏览量

    161930
  • 液晶显示
    +关注

    关注

    6

    文章

    573

    浏览量

    39873
  • AT89S51
    +关注

    关注

    3

    文章

    229

    浏览量

    33913
收藏 人收藏

    评论

    相关推荐

    图形点阵式液晶显示模块与51单片机的接口设计

    AT89S51的硬件接口电路和软件编程方法。采用点阵式液晶显示模块,使硬件结构简单,软件易于维护和扩展,实现了交互式菜单显示和图文并茂的人机界面效果。
    发表于 03-02 13:49

    基于AT89S51单片机的数字温度测量及显示系统设计

    本帖最后由 eehome 于 2013-1-5 09:49 编辑 基于AT89S51单片机的数字温度测量及显示系统设计
    发表于 08-16 14:31

    基于AT89S51单片机的数字温度测量及显示系统设计

    基于AT89S51单片机的数字温度测量及显示系统设计
    发表于 08-16 16:46

    89C51液晶显示设计

    89C51液晶显示设计
    发表于 05-30 11:31

    AT89S51单片机

    ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51
    发表于 10-12 11:45

    基于AT89S52单片机的液晶显示屏接口设计

    :4 结 语本文介绍液晶显示屏与AT89S52 单片机接口的设计方法,硬件电路与软件实现简单易行。AT89S52 高性能单片机功耗低、兼容性强、具有可反复擦写1 000 次的ISP F
    发表于 06-04 05:00

    AT89S51单片机实验及实践教程

    技术拉幕式数码显示技术 1 1 1 1 实验任务实验任务 用 AT89S51 单片机的 P0 0 AD0 P0 7 AD7 端口接数码管的a h 端 8 位数码管的 S1 S8 通过
    发表于 07-15 07:50

    AT89S51单片机的I/O端口的特点及使用注意事项有哪些

    AT89S51单片机的I/O端口的特点及使用注意事项有哪些?AT89S51单片机的中断系统的中断源是什么?AT89S51单片机中断系统的结构
    发表于 08-04 07:09

    基于51单片机的液晶显示

    主要介绍显示控制系统设计,研制一种基于51单片机实时控制的LCD液晶显示屏控制系统。硬件
    发表于 04-13 15:00 76次下载

    基于AT89S51实现机车故障显示屏测试仪硬件与软件设计

    AT89S51单片机为核心部件,实现了机车故障显示屏测试仪的硬件和软件设计。介绍AT89S51型单片机与HS12864型液晶显示屏、A6
    发表于 11-11 11:29 21次下载
    基于<b class='flag-5'>AT89S51</b>实现机车故障<b class='flag-5'>显示</b>屏测试仪硬件与软件设计

    AT89S51特点及其液晶显示原理与接口电路的设计

    液晶显示程序。设计的该显示模块能够应用予测控系统中。 接口电路设计 目前测控仪表系统中大多采用单片机为主控器件。由于AT89S51型单片机
    发表于 12-01 15:32 6次下载
    <b class='flag-5'>AT89S51</b>特点及其<b class='flag-5'>液晶显示</b>原理与接口电路的设计

    AT89C51AT89S51有何不同_AT89C51AT89S51的区别

    本文对AT89C51AT89S51的引脚及功能等方面进行了详细的介绍,并对AT89C51AT89S51进行了区别分析。
    发表于 01-08 16:44 3.6w次阅读
    AT<b class='flag-5'>89C51</b>与<b class='flag-5'>AT89S51</b>有何不同_AT<b class='flag-5'>89C51</b>与<b class='flag-5'>AT89S51</b>的区别

    AT89S51系列单片机的特点(AT89S51引脚功能及应用电路)

    本文首先介绍AT89S51性能参数和AT89S51引脚功能,其次介绍AT89S51系列单片机的特点,最后
    的头像 发表于 05-14 11:58 5.2w次阅读
    <b class='flag-5'>AT89S51</b>系列单片机的特点(<b class='flag-5'>AT89S51</b>引脚功能及应用电路)

    AT89S51和插座与可调电阻及液晶显示器的AD电路图和PCB图免费下载

    本文档的主要内容详细介绍的是AT89S51和插座与可调电阻及液晶显示器的AD电路图和PCB图免费下载。
    发表于 01-06 08:00 0次下载
    <b class='flag-5'>AT89S51</b>和插座与可调电阻及<b class='flag-5'>液晶显示</b>器的AD电路图和PCB图免费下载

    基于AT89C51单片机字符液晶显示的频率计Proteus仿真程序

    基于AT89C51单片机字符液晶显示的频率计Proteus仿真及程序
    发表于 05-05 09:54 4次下载