基于AT89C51控制器与显示模块的公交车液晶显示报站系统设计
2023-08-01 来源:elecfans
1 引 言
公交车对提升城市形象、促进社会经济发展起到积极推动作用。但在我国偏远的西部和经济还不太发达的一些地方,公交车的发展还明显跟不上人们日益增长的物质需求,如2009 年3 月,康定县才成为四川藏区第一个开通公交服务的城市。对于我国二级以下的城市,目前公交车报站的情况大多还存在以下问题: ①没有自动报站,实行人工报站;②有自动报站,却停留在单一的语言报站上;③LED站台数字编号(比如002) 显示;④LED 汉字显示屏,但屏幕显示内容单一。这些在乘客对路线不熟悉或在乘车拥挤的情况下,势必会给乘客带来不便。本文设计了公交车报站系统液晶显示汉字的控制电路,并在Proteus 仿真平台上完成了模拟。
2 Proteus 介绍
Protus ISIS 是英国Labcenter 公司开发的电路分析实物仿真软件。该软件可以提供嵌入式系统(单片机应用系统、ARM 应用系统) 软硬件设计仿真平台,支持主流单片机系统的仿真并集SPICE 分析于一身,把用户编写的应用程序下载到微处理器(MCU) 中,结合外界连线及模拟、数字电路对微处理器进行系统逻辑功能的控制。该软件除了大量的元件库外,还有常用的虚拟仪器;在编译调试方面,还支持Keil 和MPLAB 等第三方集成开发工具。
3 报站系统液晶显示的硬件仿真电路设计
液晶显示器(Liquid Crystal Display ,LCD)具有体积小便于携带、功耗低、抗干扰能力强、信息丰富等优点,已被广泛地运用在了仪器仪表和控制系统中。在公交报站系统中,采用LCD 进行站名汉字显示,具有直观性,增强了系统的实用性。
表1 AMPIR 128 ×64 管脚说明
本文液晶模块选用Proteus 中的AMPIRE128 ×64 .其管脚说明见表1 ,显示模式见表2。
根据表1 完成硬件电路的连接,根据表2 完成软件部分液晶驱动程序。
表2 AMPIR 128 ×64 的显示方式控制
报站系统液晶显示的电路连接图如图1 所示。控制电路选用单片机AT89C51 , 本电路接高电平,没有扩展ROM.将液晶的数据输入端DB0~DB7 与单片机的P0 口相连,将P2. 0 ,P2. 1 , P2. 2 分别与液晶的E , RW , RS 端连接,P2. 4 和P2. 3 分别和CS1 和CS2 端连接,用来控制液晶左右屏的显示。为了便于司机操作,采用4 个独立式按键对显示进行控制,分别与单片机的P1. 0~ P1. 3 相连,分别代表4 种功能: 起点站、上一站、下一站和终点站。
图1 公交车报站系统液晶显示仿真电路
4 报站系统液晶显示的软件设计
液晶显示模块中按字节为单位划分,单个屏幕中,共分为8 个页,每页为8 行,而每一行为64个位(即64 列) .同计算机一样,单片机控制液晶点阵显示中的数据也是以'0'和'1'代码来表示的。一般地', 0'代表不显示数据', 1'代表有显示数据,根据编码的不同,最终会显示出不同的字符。显示器上的显示点与驱动控制芯片中的显示缓存RAM 是一一对应的,即字模当中的一个位代表LCD 显示中的一个像素点,取点方式为从左到右,自上到下的顺序。这里采用16 ×16 的点阵输出显示每个汉字,那么就需要屏幕上的256 个点组成的方块来显示。一个字节对应8 个点,所以一个汉字需要32 个字节来存储显示。'汉字字模点阵数据批量生成工具'就是运用这个原理来实现汉字编码的软件。
本文采用PCtoLCD2002 汉字提取软件,打开窗口,如图2 所示,设置好字体、字号等格式参数,在汉字输入区,输入汉字或其他字符,即得到需要的代码。将本设计所涉及的汉字用软件取模批量生成16 ×16 点阵代码,放入ROM 区的TA2BL E 表格中,通过逻辑控制,最终可将代码读出到硬件驱动电路上,显示出不同的汉字。
图2 汉字字模点阵数据批量生成软件
本设计针对康定城第2 路公交车,共有7 站,对单边线路的报站进行了仿真。软件流程图如图3 所示。
图3 程序流程图
系统上电后,对液晶模块进行初始化,并进行清屏。按键部分采用扫描法,当检测到按键按下时,进行键值判断,并进行相应显示程序的跳转,实现公交报站的功能。整个程序的详细流程如下:
Step1 :对LCD 进行初始化,即根据系统的需要对液晶控制器的各项参数进行设置,显示开关、显示起始行、光标位置等设置,再对LCD 所有单元写零清屏后准备显示。
Step2 :扫描P1 端口,等待按键的按下,进行键值判断,不同的按键对应不同的分支:
①K1 按键:表示是起始站,显示欢迎词,在LCD 上固定显示:'欢迎您乘坐康定城第2 路公交车!';②K2、K3 按键:分别表示上一站和下一站,可方便进行站台调节,在LCD 上显示:'1 # 站到了! 下一站2 # '.其中1 # 和2 # 分别是本站和下一站的站台名,如本线路要涉及5 个站台(除去起始站和终点站) .而'站到了!'和'下一站'是公交线路中各站都要显示的,则固定显示,故按键改变的只是模块的左半屏上半部分和右半屏下半部分内容的显示。
③K4 键:表示终点站,显示欢送词,在LCD上固定显示:'终点站到了,请乘客依次从后门下车'.一定延迟后表明本次运行结束。
Step3 :若没有到终点站,返回Step2.
5 仿真结果
对用汇编语言编写的程序。 ASM 进行了编译调试,最终编译成功,生成。 HEX 文件,把。 HEX文件下载到Proteus 软件的单片机中,并在Pro2teus 软件中设置单片机的晶振为12 MHz. 最终实现了如图4 所示的显示效果。
图4 LCD 显示效果
6 结 论
本文设计的公交车报站系统,通过了Proteus仿真平台的验证,实现了在相应站台下液晶模块显示相应文字的功能,对提高公交质量有一定的技术支持,也为其他液晶汉字显示电路系统的设计提供了方法。在本设计基础上对软硬件稍加修改,就可以实现公交车往返路线的汉字液晶显示报站。