基于单片机的led显示技术

基于单片机的led显示技术
基于单片机的led显示技术

目录

摘要----------------------------------------------------------------------------------------3

引言----------------------------------------------------------------------------------------4

第一章 VISUAL BASIC 中串口通讯的应用------------------------------------------5 1.1 通讯基础知识-----------------------------------------------------------------------5 1.2 Mscomm通讯控件简介------------------------------------------------------------5 1.2.1 MSComm控件的主要属性和方法--------------------------------------6 1.2.2 CommEvent属性-----------------------------------------------------------6 1.3 Mscomm控制使用示例------------------------------------------------------------8 1.3.1 数据的发送-----------------------------------------------------------------8 1.3.2 数据的接收-----------------------------------------------------------------9 第二章基于PC机控制的LED显示系统设计-----------------------------------------10 2.1 系统设计---------------------------------------------------------------------------10 2.1.1 LED显示屏模块技术指标---------------------------------------------10 2.1.2 系统总体设计思想------------------------------------------------------10 2.2 下位机(单片机)部分的开发------------------------------------------------11 2.2.1 下位机的设计及总体结构---------------------------------------------11 2.2.2 LED显示屏的工作原理------------------------------------------------12 2.2.3 计算机通讯---------------------------------------------------------------12 2.2.4 单片机串口通讯---------------------------------------------------------13 2.2.5 数据存贮------------------------------------------------------------------15 2.2.6 列数据锁存---------------------------------------------------------------15 2.2.7 行扫描输出---------------------------------------------------------------16 2.3 LED显示屏的驱动方案---------------------------------------------------------17 2.3.1 方案比较------------------------------------------------------------------18 2.3.2 达林顿管的原理及应用------------------------------------------------19

第三章软件设计---------------------------------------------------------------------------22 3.1 单片机显示控制的软件设计---------------------------------------------------22 3.1.1 编程思想------------------------------------------------------------------25 3.1.2 字模处理------------------------------------------------------------------26 3.1.3 ‘左移’效果编程------------------------------------------------------26 3.1.4 ‘上升’效果编程------------------------------------------------------28 3.1.5 ‘掉下’效果编程------------------------------------------------------31 3.1.6 ‘上铺’效果编程------------------------------------------------------33

3.1.7 ‘下铺’显示效果编程------------------------------------------------36 3.2 上位机软件设计------------------------------------------------------------------40 3.2.1 设计概述------------------------------------------------------------------40 3.2.2 人性化智能化高级人机接口设计------------------------------------40 3.2.3 上位机串口通讯软件---------------------------------------------------41

第四章系统设计总结---------------------------------------------------------------------47

参考文献---------------------------------------------------------------------------------------48

附录1------------------------------------------------------------------------------------------49

摘要

本文主要介绍了一种基于PC机控制的以单片机AT89S52为核心的LED显示系统。用户可以根据需要把要显示的内容通过本系统所配带的PC机软件,直接重计算机下载到LED显示系统,同时可以设置显示系统显示的颜色、显示内容的移动方式、移动速度等。本系统主要应用于厅堂、车站、广场等公共场所;并详细介绍了在硬件上和软件上的实现过程。

【关键词】 AT89S52 ,单片机,Mscomm控件 74HC273,LED显示屏,达林顿管

Abstract

This artile mainly introduce a kind of LED display system that base on PC control and according to AT89S52 as its core's singlechip .Consumers can foundation their need to hold the content they must display through the PC software that is qualified by this system,download directly from computer to LED display system, at the same time ,It can set the color of the screen、move fashion of the display content、speed and so on.The system mostly apply to hall、station、square etc; and particularly introduce the realization course in hardware and software .

【Keywords】 AT89S52 、 singlechip、 Mscomm control、74HC273、LED display screen、dalindun canal

作者简介: 姚建杰(1981—),男(汉族),中国广东清远市人,韶关学院机电系学生,大专,从事计算机软件及硬件接口开发。

引言

LED显示屏已经广泛应用在信息显示系统中,LED点阵电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。目前大多数的LED点阵显示系统自带字库。其显示和动态效果(主要是显示内容的滚动)的实现主要依靠硬件扫描驱动,该方法虽然比较方便,但显示只能按照预先的设计进行。而实际上经常会遇到一些特殊要求的动态显示,比如电梯运行中指示箭头的上下移动、某些智能仪表幅值的条形显示、广告中厂家的商标显示等。这时一般的显示系统就很难达到要求。另外,由于受到存储器本身的局限,其特殊字符或图案也往往难以显示,同时显示内容也不能随意更改。本文提出一种利用PC机和单片机控制的LED显示系统通讯方法。该方法可以对显示内容(包括汉字和特殊图符)进行实时控制,从而实现诸如左移、掉下、上升、上铺、下铺、打字等多种动态显示效果。该方法同时还可以调节动态显示的速度,同时也可以任意选择显示显示的颜色(红、黄、绿),显示内容亦可以即时修改。另外,通过标准的RS232/485转换模块还可以实现对显示系统的远程控制。LED显示系统上位机软件的编程可以利用目前最流行的开发软件:Visual Basic 6.0 ,VB是由BASIC发展而来的,对于Windows应用程序而言,VB是目前所有开发言语中最简单、最容易使用的言语。LED显示屏由于使用环境和用途的不同,有户内显示屏和户外显示屏之分,按大小的不同,又有小型条屏到大面积视频显示屏之分。小型的条形显示屏,一般采用单片机来控制,它具有结构简单、成本低、编程容易的特点。硬件上一般采用扫描显示的方法,只要扫描场频高于50帧/秒,就可得到稳定的显示图像。在软件设计上,扫描由单片机定时中断来完成,假如扫描中断周期时间为t而输出一行数据的操作时间为t1那么单片机在一个扫描周期里进行数据处理的时间为t2=t-t1为了得到稳定的显示效果.就要保持足够的扫描频率,如果t不变,在显示面积增大的情况下,时间t1也增大,这样,时间t2必然减少,即造成系统处理数据的速度下降。要有效提高系统的性能.就必须提高单片机的速度和设计合理的硬件系统。本文介绍的LED显示屏的列数据传输是采用并行数据串行方式传输,这样可以大大提高数据的传输速度,从而可以降低对单片机速度的要求。

第一章 Visual Basic 中串口通讯的应用

随着科技的发展,现代化的生产对智能化的要求越来越高,如何迅速获取现场数据以便及时对生产过程进行调控,是其关键所在。现在大量的智能仪器或数据采集模块都采用了RS—232或485通讯接口,通过相应的通讯协议,将测试、采集的数据传输给上位机,以满足各种形式的数据处理的要。VisualBasic6.0(以下简VB)是许多工程技术人员熟悉和常用的应用程序开发软件,VB以其简单易学、32位面向对象的程序设计等特点,倍受广大计算机开发者的青睐,已广泛地应用于各个领域;如何用VB编写数据通讯程序,并进行数据处理,意义重大。用VB开发串口通讯一般有两种方法:一是采用VB自身的标准控件Mscomm来实现;另一种是利用windows的通讯API函数。

1.1 通讯基础知识

一般来说,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与PC进行数据传输和通信的通道。这些串口在CPU 和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM. DRV解释并传递给设备驱动程序,作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信API函数的接口即可.换句话说,只需设定和监视通信控件的属性和事件即可。

1.2 Mscomm通讯控件简介

Mscomm控件串口具有完善的串口数据的发送和接收功能。通过此控件,PC 机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。此控件的事件响应有两种处理方式:

1)事件驱动方式:由MSCoM控件的0nCoIm事件捕获并处理通讯错误及事件; 2)查询方式:通过检查CogMd:vent属性的值来判断事件和错误。

1.2.1 MSComm控件的主要属性和方法

1)CommPort:设置或返回串行端口号,其取值范围为1—99,缺省为1。

2)ettin8设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。如:Mscomm1.Setting=“9600, n, 8, 1”。

3)ortopen:打开或关闭串行端口。

4)RThreshold:该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生Mscomm1—OnComm事件。

5)Input:从接收缓冲区移走一串字符。

6)0utput:向发送缓种区传送一字符串。

1.2.2 CommEvent属性

如果在通讯过程中发生错误或事件,就会引发0nCoIm事件并由CoBndBvent 属性代码反映错误类型,可根据该属性值来执行不同的程序操作或数据处理。 1) ommEvent属性为通信事件或错误返回下列值之一:

ComEventBreak:其值为1001,收到了断开信号

ComEventCTSTO:其值为1002,Clear To Send Timeout。在发送字符时,在系统指定的

事件内,CTS(Clear To Send)线是低电平

ComEventDSRTO:其值为1003,Data Set Ready Timeout。在发送字符时,在系统指定的

事件内,DSR(Data Set Ready)线是低电平

ComEventFrame:其值为1004,数据帧错误。硬件检测到一个数据帧错误ComEventOverrun :其值为1006,端口溢出。硬件中的字符尚未读,下一个字符又到达,并且丢失

ComEventCDTO:其值为1007,Carrier Detect Time。在发送字符时,在系统指定的事件

内CD(Carrier Detect)线是低电平。CD也称为RLSD(Receive Line Singal Detect,接线信号检测)

ComEventRxOver:其值为1008,接收缓冲区溢出。在接收缓冲区中没有空间ComEventRxParity:其值为1009,奇偶校验错。硬件检测到奇偶校验错误7 ComEventTxFull:其值为1010,发送缓冲区满。在对发送字符排队时,发送

缓冲区满

ComEventDCB:其值为1011,检取端口DCB(Device Control Blick)时发生了没有预到的错误

2)信事件包含了下面的设置:

ComEvSend:其值为1,发送缓冲区中的字符数比Sthreshold值低

ComEvReceive:其值为2,接收到了Rthreshold个字符。持续产生该事件,直到使用了Input属性删除了接收缓冲区中的数据

ComEvCTS:其值为3,CTS(Clear To Send)线改变

ComEvDSR:其值为4,DSR(Data Set Ready)线改变。当DSR从1到0改变时,该事件发生

ComEvCD:其值为5,CD(Carrier Detect)线改变ComEvRing6检测到响铃信号。一些URAT(Universal AsynchronousReciver--Transmitters,通用异步收发器)不支持该事件

ComEvEOF:其值为7,收到了EOF字符(ASCII字符26)

3) MSComm控件可捕获的错误消息:

常量 值描述ComInvalidPropertyValue 380 无效的属性值ComSetNotSupported 383 属性只读

ComGetNotSupported 394 属性只读

ComPortOpen 8000 端口打开时该存在无效

8001 超时设置必须比0值大ComPortInvalid 8002 无效的端口号

8003 属性只在运行时有效

8004 属性在运行时是只读的ComPortAleadyOpen 8005 端口已经打开

8006 设备标识符无效或不支持

8007 不支持设备的波特率

8008 指定的字节大小无效

8009 缺省参数错误

8010 硬件不可用(被其他设备锁住)

8011 函数不能分配队列ComNoOpen 8012 设备没有打开

8013 设备已经打开

8014 不能使用通信通知ComSetCommStateFailed 8015 不能设置通信状态

8016 不能设置通信事件屏蔽ComPortNotOpen 8018 该存在只在端口打开是有效

8019 该存在只在端口打开是有效ComReadError 8020 通信设备读错误

ComDCBError 8021 检取端口设备控制块时出现内部错误

1.3 Mscomm控制使用示例

1.3.1 数据的发送

VB发送数据有两种:一、发送字符数据;二、发送二进制数据。

1)发送字符数据

在通讯中以单字符方式逐个发送数据时,每一个数据范围是:0—128。如发送58给单片机则可以这样表示:

Mscomm1.Output=Chr(50) ‘发送数据(16进制)在通讯中以多字符方式发送数据时,发送的是Ascii码值。如发送“LED显示屏”则可以这样表示:

String ‘定义发送数据变量

as

data

Dim

data=” LED显示屏” ‘给变量赋值

Mscomm1.Output=data ‘发送数据

2)发送二进制数据

以发送字符方式时,发送的数据范围只能是:0—128,而单片机经常处理的数据范围是0—255,那么怎么样发送大于128的数据呢?方法是采用二进制方式发送数据。首先定义一个二进制类型的数组,然后把要发送的数值赋给二进制数组,再通过Mscomm发送。如发送数值220的具体过程如下:

byte ‘定义发送数据数组

as

data(0)

Dim

‘给数组赋值

Data(0)=220

Mscomm1.output=data(0) ‘发送数据

1.3.2 数据的接收

接收数据有两种方式,一、以文本方式接收(InputMode=0);二、以二进制方式接收(InputMode=1)。

1)以文本方式接收数据

在InputMode=0的模式下,是以文本方式接收数据,在接收数据之前,我们必须先定义一个字符串变量,用以接收数据缓冲区里的数据,具体过程如下:Dim receive As String * 1 ‘定义接收数据变量

Select Case https://www.360docs.net/doc/c315197897.html,mEvent ‘判断事件类型

‘事件类型为接收数据

comEvReceive

Case

MSComm1.Input ‘接收数据

receive

=

End Select

2)以二进制方式接收数据

在InputMode=1的模式下,是以二进制方式接收数据,在接收数据之前,我们必须先义一个二进制类型的数组,用以接收数据缓冲区里的数据,过程如下:

Byte ‘定义接收数据变量

As

receive(n)

Dim

Select Case https://www.360docs.net/doc/c315197897.html,mEvent ‘判断事件类型

comEvReceive

‘事件类型为接收数据Case

‘接收方式为二进制方式Mscomm1.InputMode=1

For k=0 to n

Receive(k) = MSComm1.Input ‘接收数据

Next k

End Select

第二章基于PC机控制的LED显示系统设计

本章针对LED显示屏的应用领域广泛,采用模块化、规范化设计方案,边设计边试验和仿真设计策略,从基本的显示功能入手,逐步完成系统各部分的设计。在设计过程中既保证实施上可行、运行上可靠,又运用专家控制、实时数据库等先进技术提高系统性能,使系统智能化,并充分考虑到应用上的灵活性,系统实现的经济性,使之成为一个实用的、有效益的系统。

2.1 系统设计

2.1.1 LED显示屏模块技术指标

LED显示屏模块技术指标参数一览表:

规格(mm)φ5

显示像素/平米 17300

模块 1R1YG(绿红)

像素点数 64*16=1024 显示屏

尺寸(mm) 480*120

面积(㎡) 0.576 最大功耗(瓦/平方米)100(单)/200(双)

扫描速度大于75Hz

视角水平视觉160℃,垂直视觉160℃

环境要求 -20℃—60℃

供电要求 220V AC±10% 50Hz

驱动方式 1/16扫描

使用寿命 10万小时

2.1.2 系统总体设计思想

为了设计并开发出高性能、高可靠性、可行实用的显示系统,采用以下的设计思想:

1) 在系统总体设计中将贯彻学术性与实用性相结合、先进性与可行性相结合、

功能性与经济性相结合的原则,尽量采用成熟的技术和已有的科研积累,在关键难点问题上尝试采用相关学科的最新成果,使系统既具有稳定可靠的运行性能又有一定的技术含量和创新价值;

2) 在硬件上采用了完全模块化设计思想,选用通用IC芯片,所有电气连线采用

接插方式,并各模块都有独立的电源,以保证系统安装方便、运行可靠、维

护简单;

3) LED显示屏的下位机控制用8位微处理器(MPC)AT89S52做控制器,完成字

模数据的接收和LED显示屏的动态扫描显示,在整个系统中处于下位机的地位;中央控制计算机由通用PC机实现,实现显示内容的输入、显示模设置、显示颜色设置和字模数据的传输;中央控制器与下位机的通讯采用成熟的RS232接口标准;

4) 在软件编制上,采用结构化设计思想,下位机采用适应于MCS-51系列单片

机的C51语言进行编程,中央控制计算机程序的编制采用面向对象的可视化编程言语VB。

2.2 下位机(单片机)部分的开发

2.2.1 下位机的设计及总体结构

LED显示系统框图(图2.1),由单片机构成主控部分,主要负责数据接收、数据处理和扫描显示。总体可以分为四部分:计算机通讯、数据存贮、列数据锁存、行扫描输出。

图2.1 下位机系统框图

2.2.2 LED显示屏的工作原理

图2.2 下位机主控原理图

整个显示系统,由微机和LED点阵显示屏组成,LED显示屏主控部分原理图(图2.2),,微机通过串行口传送显示内容。点阵显示屏接收微机传送的数据,并控制LED点阵显示屏的显示。由于AT89S52片内只有8K的EEPROM,无法存贮大量的汉字点阵字模。因此,本系统采用由微机传送汉字或字符的点阵字模的方式来控制显示屏的显示内容。微机传送的点阵字模经过计算机的处理后以8*16的方式传输给单片机,单片机接收到后再保存到数据存贮器6264中。数据接收正确并处理存入显示缓冲区后,即控制显示屏的显示。显示方式采用逐行扫描方式,单片机首先从显示缓冲区中取出第一行点阵数据,通过数据口(P0)口写入LED显示屏的列锁存器74HC273,由于74HC273是采用了首尾级联的方式连接,所以数据的传输属于并行数据的串行传输。送数据的顺序是,先送该行数据的最后一个,最后送第一个。一行的数据写完后,再启动74LS154(4-16译码器)点亮相应的行。

2.2.3 计算机通讯

LED显示屏和电脑的通讯方式采用了标准RS232接口,电路原理图(图2.3),通讯方式为10位的异步通讯。RS232接口实际上是一种串行通信标准,是由美

国EIA (电子工业联合会)和BELL 公司一起开发的通讯协议,它对信号线的功能、电气特性、连接器等都有明确的规定。由于RS-232接口的EIA 是用正负电平表示逻辑关系的(-3V—-15V 为1、+3V—+15V 为0)。与TTL 以高低电平表示逻辑关系不同,因此,为了能够和计算

机接口通信,必须在EIA 电平和TTL 电平之间进行电平转换。MAX232芯片可完成TTL-EIA 电平转换,且只用单一+5V 电源,因此得到广泛应用。由于采用的是标准RS232接口,所以传输距离不能很远,当传输距离超过15M,就要采用422或485接口,则只要加上一块RS232转422/485

电路模块就可以了。 2.2.4 单片机串口通讯 一、串行口的控制寄存器 1.1串行口的控制寄存器SCON

89C51串行通信的方式选择,接收和发送控制及串行口的标志均由专用寄存器SCON 控制和指示,其格式如下:

SM0 SM1 SM2 REN TB8 RB8 TI RI 方式选择

多机控制

接收允许/禁止

欲发的第九位

收到的第九位

发送中

断有/无 接收中

断有/无

SM0,SM1:串行口工作方式控制位

00方式0,

01方式1,

10方式2,

11方式3

REN :串行接收允许位。

0——禁止接收

1——允许接收

TB8:在串行方式2、3中,TR8是发送机要发送的第九位数据。

RB8:在串行方式2、3中,RB8是接收机接收到的第九位数据,该数据来自发送机的TB8。

TI : 发送中断标志位。发送前必须用软件清零,发送过程中TI 保持低电平,

发送完一帧数据后,由硬件自动置1。如果再发送,必须用软件再清零。

RI:接收中断标志位。接收前必须用软件清零,接收过程中RI保持低电平,接收完一帧数据后,由片内硬件自动置1。如果再接收,必须用软件再清零。SM2:仅用于方式2、方式3的多机通信控制位。当选择方式2或3时,发送机设置SM2=1,以发送第九位TB8为1作为地址寻找从机,以TB8=0作为数据进行通信。从机初始化时设置SM2=1,若接收到的RB8=1,置位RI,引起接收中断,中断程序中判断所接收的地址和本机的地址是否符合,如果不符合,则维持SM2=1,继续监听,如果符合,则清SM2,接收发送方发来的后续信息。综上所述,SM2的作用为:

在方式2或3中发送机SM2=1(程序设置)

接收机SM2=1,如果RB8=1,激活RI,引起接收中断。 RB8=0,不激活RI,不引起接收中断。SM2=0,无论RB8=0还是1都激活RI,引起接收中断。在方式1中,当接收时,SM2=1,则只有收到有效停止位才激活RI。在方式0中,SM2应置为0。

1.2电源控制寄存器PCON

PCON的字节地址为87H,无位地址,PCON的格式如下图所示。串行通信中只用了其中的最高位SMOD,在初始化时,SMOD=0。

SMOD ×××××××

SMOD:波特率加倍位。在串行方式1、2、3的波特率时:0——不加倍;1——加倍。

二、串行口工作方式

2.1方式0

串行数据通过RXD输入或输出,TXD输出频率为f osc /12的时钟脉冲。方式0的数据格式为8位,低位在前,高位在后,波特率固定为f osc /12(f osc 为单片机外接的晶振频率)。发送过程以写SBUF寄存器开始,当八位数据传输完,TI被置为1方可再发送下一数据。接收必须预先置REN=1(允许接收)和RI=0,当八位数据接收完之后,RI被置为1 时,可通过读SBUF指令,将串行数据读入。

2.2 方式1

方式1为10位异步通信方式,即每帧数据由1个起始位‘0’、八个数据位

和1个停止位‘1’构成。其中起始位和停止位在发送时自动插入的。方式1以TXD为发送端,RXD为接收端。由T1提供移位时钟,是波特率可变方式,计算公式为:

波特率=2SMOD×f osc /32×12(256-X) 其中X为T1的初值(T1都设为方式2) 2.2.5 数据存贮

本LED显示系统的一个特点是,不带字库。要显示的内容直接从PC机上下载点阵数据。所以扩展了一块8KByte数据存贮器,用于存点阵数据,和作显示缓冲区。显示缓冲区又要分为两个,每个的大小和屏幕大小一样,屏幕最大是:(48*128)Bit 等于768Byte 一共有两个则为:1.5Kbyte,那么就只剩下6.5Kbyte 的空间用来存贮点阵数据。一个汉字(16*16)的点阵数据为32个字节,则最多可以存208个汉字的字模。

2.2.6 列数据锁存

刷新的状态下,整个屏幕分为16行扫描显示,以屏最大时为例:一屏可以显示24个字,在一行中,每个字占两个字节数据,则扫描一行的时候要传输48个字节的数据,而扫描行与行之间的时间间隔不能大于1.25ms(刷新率50Hz)。为了保证LED的显示亮度,则传完数据后要有时间让LED发亮,所以传输数据的时间最好不能大于行与行之间的扫描间隔时间的一半。因此数据的传输速度直接影响到LED显示屏的面积大小和显示的好坏,同时考虑到主机和显示模块的连接,和显示模块之间的级联,连线越少越好,针对这种情况,本系统的采用了并行数据串行传输的方案(图2.4)。数据锁存器取用74HC273(为了电路板简洁美观,74HC273采用的是贴片封装),真值表(图2.5)。74HC273是采用首尾相连

下一块74HC273的数据输入来源。其中第一块74HC273的输入端是通过一片总线驱动器74HC245直接挂在单片机的数据口(P0口)上,单片机把74HC273作为外部存贮器一样的访问(只写,不读),为了不存储器的地址混淆,由于外部存储器为8Kbyte,所以74HC273的地址不能低于8Kbyte,即要在:0x2000(2000H)以上;访问时都是用语句:MOVX @DPTR,A

,为了区分是写存储器操作还是写74HC273操作,每一块74HC273的时钟(CLK)端相连在一齐连到或门的输出端(图2.6),或门的输入端接单片机的P3.3口和写信号P3.6口,其中P3.3口作为或门的控制信号,当P3.3口为高电平时,或门关闭,此时写存储器时就不会干扰74HC273;当P3.3为低电平时,或门打开,此时CLK 和 P3.6口相通,此时就可以写74HC273,由于写之前已经把它的地址定为8Kbyte 以上,所以也不会影响存储器。经过这样处理后,CPU向74HC273每写一个字节的数据只占用两个机械周期,不用等待,速度可以

上到很高;同时,连接线只用到9根,而且显

示模块之间的级联变得非常简单。

2.2.7 行扫描输出

由于本系统的显示颜色有3种,可以任意选择。而改变显示屏显示颜色的方法有两种:一、列数据分为红、绿两种锁存,只要把数据锁存到红色的锁存器里,那么就显示红色,把数据锁存到绿色的锁存器里,那么就显示绿色,把数据同时锁存到红色和绿色的锁存器里,那么就显示黄色,这样就可以实现颜色的改变。

以这种方案的缺点是:硬件电路复杂、布线困难、电路可靠性差、成本高;二、行扫描分为红色扫描、绿色扫描,当启动红色扫描时就显示红色,当启动绿色扫描时就显示绿色,若同时启动红色、绿色扫描,就显示黄色。由于整个屏幕都是采用16行扫描的方式,所以行扫描电路(图2.7)不会受到显示屏大小的影响,经过比较后,本系统最后采用了第二种方案。

行选通信号,通过两块74LS154(4—16译码器)译码获得,一块选通红色,

另一块选通绿色。通过P3.4、P3.5口控制选择颜色:P3.4控制选择红色(低电平有效),P3.5控制选择绿色(你电平有效)。两块74LS154的数据端口分别相连后挂在单片机的P1口上(只用到低四位,高四位留空)。控制示例,如选通第

三行,颜色为黄色,那么程序为:

line(2,2); //调用子函数(参数1为行号,参数2为颜色)

//------------------------ 行选通子函数

void line(uchar k,uchar color)

{

P1=k; //输出第几行(0为第一行),此时K的值为:2代表第三行。

(color)

Switch

{

: //红色

case 0

P3.4=0;

P3.5=1;

Break;

: //绿色

case 1

P3.4=1;

P3.5=0;

Break;

: //黄色

case 2

P3.4=0;

P3.5=0;

break;

}

}

//--------------------------

2.3 LED显示屏的驱动方案

目前以圆半导体发光器件为显示介质的大型显示屏已广泛地被应用。其控制驱动方式各种各样,也各具特色。在LED发光管的驱动设计上也有许多的方式。由于大型的点阵显示屏是由上万个或几十万个LED发光象元组成,这也就需要大量的驱动电路来支持。那么驱动电路设计的好坏就直接影响系统的生产制造成本和显示的效果及系统的运行性能。设计一个即能满足控制驱动要求,同时使用器件少成本底的单元控制驱动方案是必要的。下面我们就以LED8*8点阵模块(共阳极)为显示器件的显示屏为例,来论述一下几个驱动方案并加以比较。

2.3.1 方案比较

1)串行控制驱动方式

所谓串行控制驱动方式就是显示的数据是通过串行方式送入点(列)驱动电

路。其特点是单元内的线路连接简单,这给印刷电路板的设计带来了方便。同时也减少了印刷电路板的布线密度,从而为生产和调试带来了有利的一面。当然,单元的可靠性也相应的提高了。串行控制驱动方式可选用的芯片有:MC4094、74LS595、74HC595、6B595、9094等等。其中MC4094、74HC595均为CM05芯片,应与功串芯片结合使用;例如使用2803驱动芯片。建议采用6B595或9094(74LS595也可用),因为这几种芯片都具有一定的驱动能力可直接驱动LED 发光管而无须另外添加驱动芯片。同时,串行移位并行功率输出的芯片(6B595、9094)自身具有级联功能,为单元的级联提供了支持。关于行的控制和驱动是相对容易的,因为行的工作方式是分时顺序工作的。由于行的组成是几个模块并联形成的,因此驱动的功率要求是比较大的。行的驱动一般是采用PNP(用于共阳方式)功率三极管,行的逻辑控制可选用三一八译码方式和直接行线控制方式。译码方式是应用三条行控制线控制一个三一八译码器(如74LS138等),八选一顺序控制八条行线。直接行线控制方式是比较简单的,这里就不赘述了。在应用串行控制驱动系统时,尽管串行移位芯片具有级联功能,但设计时要考虑时钟信号、sB信号、行控制信号的级联驱动向题。另外为提高单元的多级级联的数量,设

计时要考感到每个信号的传输延迟,以保证控制时序的正确运行。

2)并行控制方式

并行控制驱动方式就是显示的数据是通过并行(8位)方式送人点(列)驱动电路。每送入一个字节就完成了一个模块的一个行的数据置入,其优点是数据的刷新速度块,这就威轻了上一级控制系统的压力。在同样的数据处理量的前提下,对处理速度要求的降低,就意味着对系统投入的降低。同时处理速度的降低也相应地提高了系统的稳定性。在并行控制驱动方式下,我们可以选用74LS374这样一类锁存芯片,采用首尾相连的方式将控制、驱动一并形成。也可以将这一方式称其为并行移位锁存方式。这一设计方案的特点是设计线路简洁.控制方便抉速:系统的整体投入成本比较低.这一设计方案将大大地提高系统的性能价格比。关于在并行控制驱动方式下的行控制驱动的设计可参照串行控制驱动方式设计。并行控制驱动方式的缺点是:由于数据是并行输入的,这就使得单元内的线路连接复杂。由此增加了单元的印刷线路扳的设计难度。同时提高了印刷线路扳的密度,

对生产加工和调试提出厂较高的要求。但设计难度的加大仅仅是一次性的,而生

产和调试的难度是可以提高生产的手段和使用先进的仪器设备加以克服的。由于并行控制驱动方式的自身特点,使得单元的级联不成问题。只要设计时对控制信号的级联驱动加以注意就可以了。并行控制驱动方案中也可采用总线式结构,即选用的八位锁存器不是首尾级联方式而是共用总线方式。但这种方式将增加控制逻辑的投入,也就是说每个锁存器都要有一个独立的锁存控制时钟;因此,这一

方式一般不采用。

3) 高度集成专用芯片的应用

随着微电子技术的不断发展,以及大型电子显示屏应用的日益广泛,一种高度集成的LED显示屏控制驱动专用芯片出现了,例如;ZQL9701芯片。ZQL9701芯片是集行控制、列控制和一些外围驱动电路于一身的高度集成控制驱动芯片。采用ZQL701芯片将会使单元的控制、驱动更为简单,高度的集成化也使系统的稳定性更为可靠。另外,ZQL9701芯片在单元的级联方面也提供了充分的支持。采用ZQL9701芯片将使系统的显示灰度达到256级。采用ZQL9701芯片设计显示单元时,由于ZQL9701芯片是表面封装器件,这就需要用专用的生产设备进行生产。这对一股的生产单位是要考虑的问题。总之,采用专用芯片设计的显示单元的性能得到极大的提高。但系统的成本也要提高,在应用中要给予重视。

通过以上几种方案的比较,结合本LED显示系统的要求:亮度高、模块化、可靠性高、级联方便、维护简单等特点,我们取用第二种驱动方案,即并行控制方式。同时为了保证有足够的亮度,行、列驱动器方面都采用了具有高放大系数、低压降、驱动容易的达林顿管,行采用PNP型的BD682;列采用NPN型的BD681。2.3.2 达林顿管的原理及应用

1)结构原理

达林顿管采用复合连接方式,将两只或更多只晶体管的集电极连在一起,而将第一只晶体管的发射极直接耦合到第二只晶体管的基极,依次级连而成,最后引出E、B、C三个电极。

图2.8是由两只NPN或PNP型晶体管构成的达林顿管的基本电路。设每只晶体

管的电流放大系数分别为h

FE1、h

FE2

,则总放大系数为:

h

FE≈

h

FE1

*h

FE2

值可达到几千倍,甚至几十万倍。不因此,达林顿管具有很高的放大系数,h

FE

过,这类高放大倍数的管子只能在功率为2W以下才能正常使用,当功率增大时,管子的压降造成温度上升,前级晶体管的漏电流会被逐级放大,导致整体热稳定性差,所以,大功率大林顿管内部都设有均衡电阻,这样,除了大大提高热稳定

耐压。

性外,还能有效地提高末级功率管的V

ce

由于达林顿管具有增益高、开关速度快、能简化设计电路等优点,颇受人们的欢迎。

2)典型应用

① 用于大功率开关电路、电机调速、逆变电路。

② 驱动小型继电器

③ 驱动LED智能显示屏

LED智能显示屏是由微机控制,以LED矩阵板作显示的系统,可用来显示各种文字及图案。该系统中的行驱动器和列驱动器均可采用高β值、高速低压降的达林顿管。图2.9是用BD682(或BD677)型中功率NPN达林顿管作为列驱动器,而用BD682(或BD678)型PNP达林顿管作行驱动器,控制8*8LED矩阵板上相应的行(或列)上的像素发光。

基于单片机的液晶显示

滨江学院 学年论文 题目基于单片机的液晶显示 院系自动控制系 专业电气工程与自动化学生姓名 学号 指导教师 二零一三年十二月二十五号

目录 1.引言 (1) 2.现状 (1) 3.主要目的 (2) 4.实现方案和步骤 (2) 4.1 KS0108 (2) 4.1.1 KS0108特点 (2) 4.1.2 KS0108的引脚功能 (3) 4.1.3 KS0108的指令系统 (4) 4.2 图形点阵式液晶显示控制 (5) 4.3汉字编码原则 (8) 4.4程序实现流程 (9) 5.实验结果及结果讨论 (10) 6.结论 (11) 7.参考文献 (11) 8.附件 (12)

南京信息工程大学滨江学院学年论文 基于单片机的液晶显示 南京信息工程大学滨江学院自动控制系,南京 210044 摘要:本文围绕设计以单片机作为LCD液晶显示系统控制器为主线,基于单片机8051,采用的液晶显示控制器的芯片是SED1520,主要实现中文显示、滚屏以及左右移动功能。同时也对部分芯片和外围电路进行了介绍和设计,并附以系统结构框图加以说明,着重介绍了本系统应用的各硬件接口技术和各个接口模块的功能及工作过程,并详细阐述了程序的各个模块。 关键字:单片机、液晶显示、8051、SED1520 1、引言 单片机液晶显示系统主要是指单片机以及由单片机驱动的点阵式液晶显示屏所组成的一个显示系统[1]。我们在许多地方可以看到LCD显示屏的应用,例如空调,车内广告,冰箱和显示仪表盘等等,它们都是一个小型的单片机控制液晶显示系统。在日常生活中,我们也可以看到一些类似的由单片机控制的显示系统,如火车站售票大厅的候车信息显示屏,在这些屏幕上,可以显示各种不同的图形、汉字等,并且可以实现上下滚屏与左右移动等。这就是在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字,需要能够显示更丰富信息和通用性较强的显示器,便于开发和应用,并要求其体积小、重量轻、功耗小。图形点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕画面滚动等功能,是信息处理、信息输出的重要手段之一,具有广泛的应用前景[2]。我选择的单片机液晶显示系统的开发,是基于KS0108液晶显示控制器,在C8051F020单片机实验系统上实现KS0108是点阵型液晶显示控制器,利用单片机控制液晶显示系统的原理,完成单片机液晶显示系统的设计。 2、现状 液晶显示器具有功耗低、体积小、重量轻、超薄等许多其它显示器无法相比的优点。近年来被广泛用于单片机控制的智能仪器、仪表和低功耗电子产品当中。液晶显示器分为字符型LCD显示模块和点阵型LCD显示模块。字符型LCD是一种用5×7点阵图形来显示字符的

单片机之LCD显示原理

5.自制单片机之五LCD1602的驱动 LCD1602已很普遍了,具体介绍我就不多说了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,定义如下表所示: 字符型LCD的引脚定义 HD44780内置了DDRAM、CGROM和CGRAM。 DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表: 也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下: DDRAM地址与显示位置的对应关系 我们知道文本文件中每一个字符都是用一个字节的代码记录的。一个汉字是用两个字节的代码记录。在PC上我们只要打开文本文件就能在屏幕上看到对应的字符是因为在操作系统里和BIOS里都固化有字符字模。什么是字模?就代表了是在点阵屏幕上点亮和熄灭的信息数据。例如“A” 字的字模: 01110 ○■■■○ 10001 ■○○○■ 10001 ■○○○■ 10001 ■○○○■ 11111 ■■■■■ 10001 ■○○○■

10001 ■○○○■ 上图左边的数据就是字模数据,右边就是将左边数据用“○”代表0,用“■”代表1。看出是个“A”字了吗?在文本文件中“A”字的代码是41H,PC收到41H的代码后就去字模文件中将代表A字的这一组数据送到显卡去点亮屏幕上相应的点,你就看到“A”这个字了。 刚才我说了想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码41H就行了,可41H这一个字节的代码如何才能让LCD模块在屏幕的阵点上显示“A”字呢?同样,在LCD模块上也固化了字模存储器,这就是CGROM和CGRAM。 HD44780内置了192个常用字符的字模,存于字符产生器CGROM(Character Generator ROM)中,另外还有8个允许用户自定义的字符产生RAM,称为CGRAM(Character Generator RAM)。下图说明了CGROM和CGRAM与字符的对应关系。 从上图可以看出,“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。可见它的代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把“A”先转为41H代码了。 字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。后面我会详细说的。 0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。 那么如何对DDRAM的内容和地址进行具体操作呢,下面先说说HD44780的指令集及其设置说明,请浏览该指令集,并找出对DDRAM的内容和地址进行操作的指令。 共11条指令: 1.清屏指令 功能:<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H; <2> 光标归位,即将光标撤回液晶显示屏的左上方; <3> 将地址计数器(AC)的值设为0。 2.光标归位指令 功能:<1> 把光标撤回到显示器的左上方; <2> 把地址计数器(AC)的值设置为0; <3> 保持DDRAM的内容不变。

基于单片机控制的LED汉字显示

分类号 TP 单位代码 11395 密级公开学号 0605230 学生毕业设计(论文) 题目LED汉字显示 作者 院 (系) 能源工程学院 专业电气工程及自动化 指导教师 答辩日期2010年月日

毕业设计(论文)诚信责任书 本人郑重声明:所呈交的毕业设计(论文),是本人在导师的指导下独立进行研究所取得的成果。毕业设计(论文)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。尽我所知,除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 本人毕业设计(论文)与资料若有不实,愿意承担一切相关的法律责任。 论文作者签名: 年月日

LED汉字显示 摘要 目前,作为方便、快捷的信息显示方式,LED汉字显示的应用非常广泛。车站、银行、超市等大型公共场所的即时信息及广告的显示,无不应用LED汉字显示屏。在能源日渐危机以及信息日渐重要的今天,具有低耗能、频更新、易维护的LED汉字显示屏必将受到广泛的应用,其具有非常的发展前景。 本文从LED的发展及单片机的简单原理开始,深入的研究了基于AT89C51单片机16×16 LED汉字滚动显示屏的设计并运用Proteus软件的仿真和实现。主要介绍了LED汉字显示屏的硬件电路设计、汇编程序设计与调试、Proteus 软件仿真和实物制作等方面的内容,本显示屏的设计具有体积小、硬件少、电路结构简单及容易实现等优点。能帮助广大电子爱好者了解汉字的点阵显示原理,认识单片机的基本结构、工作原理及应用方法,并提高单片机知识技术的运用能力。 关键词:单片机 LED 点阵 Proteus仿真

单片机实验lcd显示实验

实验19 LCD显示实验 一、实验目的: 学习液晶显示的编程方法,了解液晶显示模块的工作原理。 掌握液晶显示模块与单片机的接口方法。 二、所需设备 CPU挂箱、8031CPU模块 三、实验内容 编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。四、实验原理说明 五、实验步骤 1、实验连线 8255的PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255接CS0。 2、运行实验程序,观察液晶的显示状态。 六、程序框图 七、程序清单

八、附:点阵式LCD模块 点阵式LCD模块由一大一小两块液晶模块组成。两模块均由并行的数据接口和应答信号接口两部分组成,电源由接口总线提供。 (1)OCMJ2×8液晶模块介绍及使用说明 OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。 OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。提供有位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。 OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。 本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。一改传统的使用大量的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。 1)表—1:OCMJ2X8(128X32)引脚说明 硬件接口 接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内

基于51单片机1602液晶显示简易计算器设计

#include #include #define uint unsigned int #define uchar unsigned char #define PI 3.141592 sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; sbit led=P2^4; sbit speek=P3^7; uchar table0[]={"Welcome to use"}; uchar table1[]={"made by Ms. Li"}; uchar table2[]={"error"}; uchar count; void main(void) { uchar error=0,i,first=0,dot1,dot2,dot1_num,dot2_num,minus1,minus2;//错误标志、第一次清屏标志、小数点标志以及小数点个数负号标志、负号个数 uchar Sin,Cos,Tan,ln; uchar Key_num,last_key_num; //键号 uchar flag=0,equal_flag; //运算符、等于符 double num1=0,num2=0,num=0,result=0,save_result; //第一个数、第二个数、计算结果

uchar first_num=0,Ans=0,second_num=0; InitLcd(); EA=1; ET0=1; TMOD=0X01; TH0=(65536-500)/256; TL0=(65536-500)%256; write_com(0x80+0x40+15); write_Dat('0'); write_com(0x80); while(1) { while(key_scan()==0xff); TR0=1; if(first==0) { first=1; write_com(0x01); } Key_num=key_scan(); switch(key_scan()) { case 1: if(last_key_num!=Key_num) { write_Dat('l'); write_Dat('n'); ln=1; }break; case 2: if(last_key_num!=Key_num) { write_Dat('s'); write_Dat('i'); write_Dat('n'); Sin=1; }break; case 3: if(last_key_num!=Key_num) { write_Dat('c'); write_Dat('o'); write_Dat('s'); Cos=1;

根据C51单片机的键盘及LCD显示

基于C51单片机的键盘及LCD显示 一、实验目的 1.掌握矩阵式键盘的数字键和功能键的编程方法。 2.掌握LCD的接口技术和编程方法。 3.掌握仪器监控程序设计和调试方法。 二、预习与参考 1. 结合ST7920 控制器系列中文图形液晶模块有关资料手册,详细了解ST7920接口设计技术。 2. 参考资料 1)实验板说明书 2)ST7920 控制器系列中文图形液晶模块资料手册 三、设计指标 利用实验板上提供的键盘电路,LCD显示电路,设计一人机界面,能实现以下功能: 1.LCD上显示“重庆科技学院” 2.按键至少包括0-9的数字键 3.LCD显示按键值 4.电子钟显示:时,分,秒(选作) 四、实验要求 1.以单片机为核心,设计4*4非编码键盘及LCD的硬件电路,画出电路原理图。 2.设计4*4非编码键盘及LCD的控制软件,画出流程图,编写控制程序。

五、实验仪器设备和材料清单 单片机实验板、连接导线、ST7920图形液晶模块、PC机; Keil c51软件 六、实验设计及实施的指导 1.实验课前布置实验任务,提出实验要求,预习相关资料,完成硬件草图设计和软件流程图备查。 2.经指导教师检查,预习达到要求者进入实验室实验。 3.按照设计的电路连线,构建键盘及显示系统,经检查无误方可进入下一步。 4.在指导教师指导下调试LCD显示程序。 5.在指导教师指导下调试按键程序。 6.综合调试直到满足设计要求。 七、实验成绩评定方法 实验成绩包括预习、实验完成质量、实验报告质量4部分组成,各部分所占比例分别为30%、30%、40%。 八、实验报告要求 1.实验报告格式: 一.实验名称 二.实验目的 三.实验内容 四.设计思想 五.硬件设计 六.程序代码

单片机LED点阵显示方法与程序代码

单片机LED点阵显示方法与程序代码 点阵的接法有共阴和共阳两种(共阳指的是对每一行LED来讲是共阳)。 由于51单片机驱动能力有限,亮度不够,所以一般需要三极管驱动,下图为一个8X8点阵原理图,仅仅是仿真,如果需要接实物的话,加上三极管才足够亮。 显示的方法有两种: 1、逐列扫描方式。如下图所示,P1口输出列码决定哪一列能亮(相当于位码),P2口输出行码(列数据)决定列上哪些LED亮(相当于段码),能亮的列从左向右扫描完8列(相当于位码循环移位8次)即显示出一帧完整的图像。 2、逐行扫描方式,与逐列扫描调换,即P2口输出位码,P1口输出段码,扫描完8行显示出一帧图像。 以逐行扫描为例,从上图可以很明了的知道点阵的显示原理了(红色表示高电平,绿色表示低电平),当把扫描速度加快,人的视觉停留,看见的就是一幅图或一个字了,如下图所示。

一、行扫描静态显示, 用51单片机实现上图静态显示的程序如下: #include #define uchar unsigned char #define uint unsigned int uchar code TAB[]={0x81,0xFD,0xFD,0xC1,0xBF,0xBF,0xBD,0xC3}; uchar i,t; delay(uchar t) { while (t--) {;} } void main(void) { while(1) { P2=0x01; for(i=0;i<8;i++) { P1=TAB; delay(100); P2=P2<<1|P2>>7; } } } 二、行扫描翻页显示 字码取模方式为逐行 第一次从字码数组中取出第1~8个数据置于列上,行扫描顺序为1~8行,显示一帧,第二次取第9~16个数据,行扫描顺序仍为1~8行,显示第二帧,第三次取第17~24个数据,…… 实现图显示效果的程序如下:

基于51单片机的LCD1602显示程序模块

这个是我自己编写的基于51单片机控制lcd602显示的库函数,请下载我的头文件,在网上本人还分享了很多热门模块的库函数,都是现成的,欢迎下载!!!! /************************************************************************ 1,先初始化1602:lcd_init(); 2,调整显示位置:lcd_pos(hang,lie); 3,送显示:lcd_wdat(uchar dat);显示字符 lcd_show(uchar dis[]);显示字符串 4,清屏为:lcd_wcmd(0x01); //清除lcd内容 delay12_ms(2); 注: 显示的时候必须传送对应的ASK码 显示字符串的时候如果超过本行显示范围不会自动跳到第二行占用了P0和P25,P26,P27 同时包含delay.c文件必须 ************************************************************************/ #include "myconfig.h" #include "delay.h" #define LCD_RS P26 //1602的命令和数据选择端 #define LCD_RW P25 //1602的读写控制端 #define LCD_EP P27 //1602是能信号 #define LCD_DATE P0 //1602的数据传输或命令端口 /****************(外部不操作)测忙程序************************/ uchar lcd_bz() { uchar result; LCD_RS =0; LCD_RW =1; LCD_EP =1; _nop_(); _nop_(); _nop_(); _nop_(); result =(P0 &0x80); LCD_EP =0; return result;//返回结果,1为忙,0位空闲 } /****************(外部不操作)写命令函数************************/ void lcd_wcmd(int cmd) { while(lcd_bz()); LCD_RS =0; LCD_RW =0;

基于单片机的电子时钟设计报告(LCD显示)

单片机原理及应用课程设计任务书 题目:电子时钟(LCD显示) 1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: 使用字符型LCD显示器显示当前时间。显示格式为“时时:分分:秒秒”。用3个功能键操作来设置当前时间。功能键K1~K4功能下。 K1—设置小时。 K2—设置分钟。 K3—设置秒。 程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。 2、工作原理 本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。 3、参考电路 硬件设计电路图如下图所示: 硬件电路原理图 单片机原理及应用课程设计任务书

题目:电子时钟(LCD显示) 1、设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: 使用字符型LCD显示器显示当前时间。显示格式为“时时:分分:秒秒”。用3个功能键操作来设置当前时间。功能键K1~K4功能下。 K1—设置小时。 K2—设置分钟。 K3—设置秒。 程序执行后工作指示灯LED发光,表示程序开始执行,LCD显示“23:59:00”,然后开始计时。 2、工作原理 本课题难点在于键盘的指令输入,由于每个按键都具有相应的一种功能,程序中有较多的循环结构用以判断按键是否按下,以及判断按键是否抬起,以及LCD显示器的初始化。 3、参考电路 硬件设计电路图如下图所示: 硬件电路原理图 基于AT89C51单片机的电子时钟设计报告

一、设计要求与目的 1)设计要求以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间。 2)、使用字符型LCD显示器显示当前时间。显示格式为“时时:分分:秒秒”。3)、用3个功能键操作来设置当前时间。 4)、熟悉掌握proteus编成软件以及keil软件的使用 二、本设计原理 本设计以AT89C51单片机为核心,通过时钟程序的编写,并在LCD显示器上显示出来。该编程的核心在于定时器中断及循环往复判断是否有按键操作,并对每个按键的操作在LCD显示器上作出相应的反应。由于LCD显示器每八位对应一个字符,故把秒、分、时的个位和十位分开表示。 该课题中有三个控制开关KM1、KM2、KM3分别控制时、分、秒的调整,时间按递增的方式调整,每点一次按钮则相应的时间个位加以,且时间调整不干扰其他为调整时间的显示。 三、硬件设计原理(电路) 硬件电路原理图

单片机实验LCD显示实验

实验19L C D显示实验 一、实验目的: 学习液晶显示的编程方法,了解液晶显示模块的工作原理。 掌握液晶显示模块与单片机的接口方法。 二、所需设备 CPU挂箱、8031CPU模块 三、实验内容 编程实现在液晶显示屏上显示中文汉字“北京理工达盛科技有限公司”。 四、实验原理说明 五、实验步骤 1、实验连线 8255的PA0~PA7接DB0~DB7,PC7接BUSY,PC0接REQ,CS8255接 CS0。 2、运行实验程序,观察液晶的显示状态。 六、程序框图 八、附:点阵式LCD 模块 点阵式LCD模块 由一大一小两块液晶 模块组成。两模块均 由并行的数据接口和 应答信号接口两部分 组成,电源由接口总 线提供。 (1)OCMJ2×8液晶 模块介绍及使 用说明 OCMJ中文模块系列液晶显示器内含 GB 2312 16*16点阵国标一级简体汉字和 ASCII8*8(半高)及8*16(全高)点阵英文字库,用户输入区位码或 ASCII 码即可实现文本显示。 OCMJ中文模块系列液晶显示器也可用作一般的点阵图形显示器之用。

提供有位点阵和字节点阵两种图形显示功能,用户可在指定的屏幕位置上以点为单位或以字节为单位进行图形显示。完全兼容一般的点阵模块。 OCMJ中文模块系列液晶显示器可以实现汉字、ASCII 码、点阵图形和变化曲线的同屏显示,并可通过字节点阵图形方式造字。 本系列模块具有上/下/左/右移动当前显示屏幕及清除屏幕的命令。一改传统的使用大量的设置命令进行初始化的方法,OCMJ 中文模块所有的设置初始化工作都是在上电时自动完成的,实现了“即插即用”。同时保留了一条专用的复位线供用户选择使用,可对工作中的模块进行软件或硬件强制复位。规划整齐的10个用户接口命令代码,非常容易记忆。标准用户硬件接口采用REQ/BUSY 握手协议,简单可靠。 硬件接口 接口协议为请求/应答(REQ/BUSY)握手方式。应答BUSY 高电平(BUSY =1)表示 OCMJ 忙于内部处理,不能接收用户命令;BUSY 低电平(BUSY =0)表示 OCMJ 空闲,等待接收用户命令。发送命令到 OCMJ可在BUSY =0 后的任意时刻开始,先把用户命令的当前字节放到数据线上,接着发高电平REQ 信号(REQ =1)通知OCMJ请求处理当前数据线上的命令或数据。OCMJ模块在收到外部的REQ高电平信号后立即读取数据线上的命令或数据,同时将应答线BUSY变为高电平,表明模块已收到数据并正在忙于对此数据的内部处理,此时,用户对模块的写操作已经完成,用户可以撤消数据线上的信号并可作模块显示以外的其他工作,也可不断地查询应答线BUSY是否为低(BUSY =0?),如果BUSY =0,表明模块对用户的写操作已经执行完毕。可以再送下一个数据。如向模块发出一个完整的显示汉字的命令,包括坐标及汉字代码在内共需5个字节,模块在接收到最后一个字节后才开始执行整个命令的内部操作,因此,最后一个字节的应答BUSY 高电平(BUSY =1)持续时间较长,具体的时序图和时间参数说明查阅相关手册。

实验八单片机液晶显示实验

实验八单片机液晶显示实验 一、实验目的 1、了解液晶显示屏的控制原理及方法。 2、了解点阵汉字的显示原理。 二、实验说明 1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。 2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。图形液晶显示模块有两 种连接方式。一种为直接访问方式,一种为间接控制方式。本实验仪采用直接控制方式。 三、实验仪器 计算机 伟福实验箱(lab2000P ) 四、实验内容 1、利用实验上的液晶显示屏电路,编写程序控制显示,输出汉字。 2、本实验仪采用的液晶显示屏内置控制器为SED1520,点阵为122x32,需要两片SED1520组成,由E1、E2分别选通,以控制显示屏的左右两半屏。图形液晶显示模块有两 种连接方式。一种为直接访问方式,一种为间接控制方式。本实验仪采用直接控制方式。 3、直接控制方式就是将液晶显示模块的接口作为存储器或I/O设备直接挂在计算机总线上。计算机通过地址译码控制E1和E2的选通;读/写操作信号R/W由地址线A1控制;命令/数据寄存器选择信号AO由地址线A0控制。实际电路如上图所示。地址映射 如下(地址中的X由LCD CS决定,可参见地址译码部分说明) 五、思考题 1、显示自己的班级和姓名; 2、可以动态显示,上下或者左右移动; 六、源程序修改原理及其仿真结果 CWADD1 EQU 08000H ;写指令代码地址(E1) DWADD1 EQU 08001H ;写显示数据地址(E1) CRADD1 EQU 08002H ;读状态字地址(E1) DRADD1 EQU 08003H ;读显示数据地址(E1) CWADD2 EQU 08004H ;写指令代码地址(E2) DWADD2 EQU 08005H ;写显示数进地址(E2) CRADD2 EQU 08006H ;读状态字地址(E2) DRADD2 EQU 08007H ;读显示数据地址(E2) PD1 EQU 3DH ;122/2 分成左右两半屏122x32 COLUMN EQU 30H PAGE_ EQU 31H ;页地址寄存器D1,DO:页地址 CODE_ EQU 32H ;字符代码寄存器 COUNT EQU 33H ;计数器 DIR equ 34h dtp1 equ 35h

基于51单片机的led点阵显示

项目名称:基于51单片机的LED点阵显示器 目录 一、项目介绍 (2) 1.1 项目背景 1.2 功能介绍 二、电路结构 (3) 三、实现模块 (5) 四、运行程序 (7) 一、项目介绍 1.1项目背景 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工

作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。 1.2功能介绍 2本次设计的用单片机控制的显示电路使用比较简单,操作方便。它主要是通过一个8×8点阵来显示图案,通过不同的按键来选择控制图案的种类及显示方式。在通电以后,显示屏全亮,随后进入逐字显示状态。按下复位键K1,系统自动复位,显示diligent,随后进入待命状态。按键1、2、3、4分别控制不同的图案。另外,我们可以通k5键来控制字符移动速度的快慢。 二、电路结构 单片机最小系统设计 2.2.1 各部分具体电路 1 单片机的时钟电路 AT89C52单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。AT89C52的时钟产生方式有两种:内部时钟电方式和外部时钟方式。由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。 内部时钟方式:利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。最常用的是在 XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图2-1电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为6MHz的石英晶体,电容器一般选择30PF左右。

基于51单片机的液晶显示屏控制系统设计

基于51单片机的液晶显示屏控制系统设计 1 概述 1.1系统背景 液晶显示器件在中国已有二十余年的发展历史。二十余年来,液晶显示器件从实验室走向大规模生产集团,形成了独立的产业部门。现在,液晶显示几乎已经应用于生产,生活的各个领域,人们几乎时时处处都要与这一神奇而又普通的面孔打交道。 液晶显示是集单片机技术、微电子技术、信息处理于一体的新型显示方式。由于液晶显示器具有低压低功耗,显示信息量大易于彩色化,无电磁辐射,长寿命,无污染等特点。LCD是目前显示产业中发展速度最快,市场应用最广的显示器件,成为众多显示媒体中的佼佼者,在越来越多的领域中发挥作用,是目前显示器件中一个理想的选择。 LCD在监控系统中的应用:目前大多数监控系统自带的显示系统为LED数码管显示,这样显示效果比较单一,只能显示监控系统的测量值。而LCD液晶显示器不仅可以显示数值、汉字等,并且可以显示文本和图形。利用LCD和键盘实现人机交互,使监控系统独立工作成为可能。通过监控系统对现场的单回路控制器进行参数设置,对各个单回路控制器的工作进行监控。 LCD在时钟中的应用:在日常生活中我们会经常看到时间的显示,这些显示大都是采用液晶显示器来显示的,而对其中的汉字无法用显示来解决。我们利用LCD液晶模块制成的小屏幕实现了时间的显示,显示格式为“时时:分分:秒秒”。另外,可以增加闹钟功能,时间到了则产生音乐声;还可以增加万年历显示“年月日”等多项功能。 LCD在大屏幕显示中的应用:大屏幕显示的应用范围极广,随着社会发展,公众生活的加强,人们对能够面向广大公众传递信息的显示装置越来越感到必需。使用液晶投影显示大屏幕,不仅有投影仪,指挥用大屏幕,还有液晶投影彩色电视。它可以用一个体积很小的系统装置,实现100英寸以上的非常漂亮的大屏幕电视显示。它与传统的显示媒体相比,具有分辨率极高,透过性好,显示内容丰富,彩色易于控制等优点。 随着计算机技术及电子通信技术的发展,LCD显示屏作为一种新的传媒工具,现已经应用到商业、军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业,大到几十平方米的大屏幕,小到家庭影院用的图文显示屏,以及政府部门应用的电子黑板,证券、银行等部门用的信息数字混合屏。LCD显示屏带来广泛的社会效益和经济效益,具有良好的发展前景。

基于单片机的多功能液晶显示数字时钟设计

基于单片机的多功能液晶显示数字时钟设计 摘要 计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日,单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。 单片计算机即单片微型计算机。是集CPU,RAM,ROM,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。 本文通过对一个基于单片机的能实现定时,秒表,闹钟等功能的多功能电子时钟的设计学习,详细介绍了单片机应用中的数据转换显示,液晶显示原理,键盘扫描原理。从而达到学习、了解单片机相关指令在各方面的应用。系统由AT89C51、温度检测芯片、时钟芯片、液晶显示器等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示和实时温度显示。也具有时钟、日历的校准,定时时间的设定和闹铃等功能。文章后附有电路原理图、PCB板图和程序清单,以供读者参考。因水平有限,难免有疏落不足之处,敬请老师和同学能给与批评指正。 关键字:AT89C51 定时秒表闹钟

Designs of LCD digital clock based on MCS-51 Abstract Computers have accelerated the transformation of the world's human pace, but it is after all bulky. SCM in this case was born. As of today, SCM application rapid development of technology, looking around us now in all spheres of life, from missiles, navigation equipment, to the various instruments on the aircraft control from a computer network communications and data transmission, industrial automation to real-time process control and data processing, and our lives extensive use of the smart card, electronic pets, which is inseparable from the microcontroller. Monolithic single-chip micro-computer or computer. That is the set of CPU, RAM, ROM, the timing, number and variety of interface integrated microcontrollers. Its small size, low cost, high performance, which are widely used in smart industries, and industrial automation. And 51 Series SCM SCM is the most typical and the most representative one. The graduation design Through the study, and thereby achieve the study, design, development hardware and software capabilities. Based on a microcontroller based on the will to achieve timing, stopwatch, alarm clocks, and other functions of a multi-functional electronic clock design study, in detail, the computer application of data conversion, Principle LCD, keyboard scanning principle. Thereby achieve studying and understanding the relevant directives SCM in all aspects of the application. By AT89C51 system, temperature detection chip, the clock chips, liquid crystal displays of components, to achieve clock calendar display function can be carried out, hours seconds of the show and real-time temperature display. Also calculated with the calendar and clock, calendar calibration, regular hours and set the alarm function. The article attached circuit diagram, the PCB plans and procedures checklist for the reference of our readers. Due to limited, and it will inevitably be lighter inadequate, locations will give teachers and students correction and criticism. Key words: AT89C51; timing; stopwatch; alarm clocks

单片机电子时钟LCD显示

单片机电子时钟L C D 显示 Pleasure Group Office【T985AB-B866SYT-B182C-BS682T-STT18】

单片机综合实验报告 题目:电子时钟(LCD)显示 班级: 0310405班 学号: 学生姓名:张金龙 指导老师:高林 2013年 6 月 17 日 一、实验内容: 以AT89C51单片机为核心的时钟,在LCD显示器上显示当前的时间: ●使用字符型LCD显示器显示当前时间。 ●显示格式为“时时:分分:秒秒”。 ●用4个功能键操作来设置当前时间,4个功能键接在~引脚上。 功能键K1~K4功能如下。 ●K1—进入设置现在的时间。 ●K2—设置小时。 ●K3—设置分钟。 ●K4—确认完成设置。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00:00”,然后开始计时。

二、实验电路及功能说明 1)单片机主控制模块 以AT89C51单片机为核心进行一系列控制。 2)时钟显示模块 用1602为LCD显示模块,把对应的引脚和最小系统上的引脚相连,连接后用 初始化程序对其进行简单的功能测试。测试成功后即可为实验所用,如图: 3)时间调整电路 用4个功能键操作来设置当前时间,4个功能键接在~引脚上。功能键K1~ K4功能如下。K1—进入设置现在的时间。K2—设置小时。K3—设置分钟。 K4—确认完成设置。如图: 三、实验程序流程图: 主程序: 时钟主程序流程 子程序:

四、实验结果分析

实验结果及分析:单片机的晶振可以根据要求设定。6MHZ为和现实时间显示相同。实验采用12MHZ晶振采用方式1定时,选取50ms采用20次中断达到一秒,采用查表方式控制LCD显示。当烧入程序后开始运行,根据初始值设定可以观察到显示的时间,这里为了更明显观察显示数据变化把起始值设为 23:59:50 运行后显示 ,K1为进入现在设置时间,当按下K1后显示 ,和实验要求相比较,实现了按下K1进入现在时间设置,按下K4确认完成时间设置的功能;不同之处: 当进入时间设置时在按下K1设置小时,再次按下K1是设置分钟。增加功能:进入时间设置并选择设置位置后K2键位数字增加功能,K3键为数字减小功能。根据仿真结果能够确定编程正确,基本实现了所有功能,而且有所改进。 五、心得体会 每次做单片机实验都会有不同的等收获,而这次的实验让我感觉收获更大。这次的实验让我巩固了以往所学,而且锻炼了自己发现问题解决问题的能力。在编程过程,发现自己对C语言很生疏,很多 技巧和函数运用都不会,通过参考资料和询问同学终于让我完成了程序,并实现了程序的功能。这不仅提高了自己动手能力,也培养了自己的思考能力。 这次在编程过程中学到了很多新东西,特别是LCD的显示,在设定的显示字符后,正确编译后显示各种设定值,LCD显示16位字 符,在最初编程时编译正确但是LCD上的显示字符有缺失,显示不 完整,经过不断调试发现空格同样占据字符,只有所有字符不超过 16位且位置正确时才能完整正确显示。时间的显示需要每一个显示 的位子有定义,而且要给“:”留下特定位子。同时编程时发现还可以显示其他如日期。但本实验不需要且很难完成最终没实现。

相关文档
最新文档