基于单片机的LCD显示屏

合集下载

基于单片机的1602液晶显示电路设计

基于单片机的1602液晶显示电路设计

本科毕业论文(设计)题目:基于单片机的1602液晶显示电路设计学生姓名:学号:系别:理工部专业:电气工程及其自动化入学时间:2012年09月导师姓名:职称/学位:基于单片机的1602液晶显示电路设计摘要本文是一篇介绍利用AT89S52单片机和LCD1602液晶显示屏设计一种液晶显示电路并编程实现信息的显示功能。

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K系统可编程Flash存储器。

使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。

1602LCD是指显示的内容为16*2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

从AT89S52单片机与LCD1602液晶显示器性能特点出发,实现两者接口的衔接设计。

经过多次的调试, 使得该设计取得了比较满意的结果, 且系统软硬件设计简单方便、稳定可靠, 可广泛应用于智能化仪器仪表及各种宣传场所, 为嵌入式控制系统提供高灵活、高性价比的解决方案。

关键词:AT89S52单片机;LCD1602液晶显示器;复位电路;时钟电路目录第一章前言 (2)1.1 研究现状 (2)1.2 研究意义 (2)第二章系统硬件电路设计 (3)2.1 AT89S52单片机最小系统 (3)2.1.1 主要性能 (3)2.1.2 功能 (3)2.1.3 引脚说明及实物图 (4)2.2 LCD1602液晶显示器 (7)2.2.1功能 (7)2.2.2 特点 (7)2.2.3 引脚 (7)2.3 复位电路 (9)2.4 时钟电路 (9)第三章软件设计 (10)3.1 软件设计思路 (10)3.1.1 Altium Designer (11)3.1.2 keil (11)3.1.3 AVR_fighter (11)3.2 程序设计 (12)第四章仿真及硬件电路 (15)第五章总结与展望 (17)主要参考文献 (18)致谢 (19)第一章前言本文是一篇研究基于AT89S52单片机的1602液晶显示电路设计,本次设计要求通过对单片机和1602液晶显示模块的学习,设计出完整的电路并焊出电路板,再对单片机写入程序,从而实现在液晶屏上显示出字符。

单片机lcd显示屏原理

单片机lcd显示屏原理

单片机lcd显示屏原理
单片机LCD显示屏原理
LCD(Liquid Crystal Display)即液晶显示屏,是一种常见的平板显示技术。

单片机与LCD显示屏通信,通常使用基于并行接口的方式。

单片机驱动LCD显示屏的原理如下:
1. 数据传输:单片机通过并行接口将数据信号传输到LCD显示屏。

这些数据信号包括显存中像素的颜色和位置信息。

2. 控制信号:单片机还通过并行接口发送控制信号给LCD显示屏,用于控制显示屏的工作模式、刷新频率等。

这些控制信号包括使能信号、读写信号和命令信号。

3. 显示模式:单片机发送命令信号给LCD显示屏来设置显示模式,例如选择文本模式还是图形模式,确定字符大小和显示区域等。

4. 像素显示:单片机通过并行接口将像素颜色信息发送给LCD显示屏的显存,实现具体像素的显示。

显示过程中,单片机需要不断刷新显存数据,以实现图像的动态显示。

5. 电源控制:单片机还需发送电源控制信号给LCD显示屏,用于开关电源或调节LCD显示亮度等。

总的来说,单片机通过并行接口与LCD显示屏进行通信,并通过发送数据信号、控制信号和电源控制信号等完成显示屏的驱动。

同时,单片机需要根据显示需求不断刷新LCD的显存数据,以实现图像的动态显示。

单片机与人机交互设计基于触摸屏和LCD的界面

单片机与人机交互设计基于触摸屏和LCD的界面

单片机与人机交互设计基于触摸屏和LCD的界面现代科技的快速发展使得单片机在各个领域中得到了广泛应用。

而人机交互设计则成为了确保单片机能够高效运行的关键因素之一。

在众多人机交互设计中,基于触摸屏和液晶显示屏(LCD)的界面设计被证明是一种相对简单而有效的设计方案。

本文将重点探讨基于触摸屏和LCD的界面在单片机中的应用。

一、触摸屏和LCD的基本原理触摸屏主要是通过电容或者电阻的方式来感知用户触摸操作,并将触摸信息转化为数字信号传递给单片机进行处理。

而LCD则是通过液晶材料的光学特性来显示图像和文字。

触摸屏和LCD在单片机中的应用可以实现用户与系统的直接交互,使得操作更加简洁、直观。

二、触摸屏和LCD的优势和应用场景1. 优势:- 方便易用:通过触摸屏和LCD,用户可以直接点击、滑动等方式进行操作,避免了繁琐的物理按钮设计和控制。

- 信息展示清晰:LCD的高分辨率和色彩显示能力使得界面展示更加清晰、生动,为用户提供舒适的视觉体验。

- 界面设计灵活:通过软件设计,开发人员可以根据具体需求自由设计界面,实现更多样化的功能和操作方式。

2. 应用场景:- 智能家居控制:通过触摸屏和LCD,用户可以方便地控制家居设备,如调节灯光、温度、音量等。

- 工业控制系统:触摸屏和LCD可以在工业环境中应用,通过图像化的界面进行开关控制、参数调整等操作。

- 汽车导航系统:借助触摸屏和LCD,驾驶员可以方便地控制导航、音响等系统,提高驾驶的安全性和便利性。

三、触摸屏和LCD在单片机开发中的实现方式1. 硬件配置:单片机需要配合相应的触摸屏和LCD模块来完成交互设计。

常见的触摸屏包括电容触摸屏和电阻触摸屏,其中电容触摸屏在精度和响应速度上更有优势。

同时,为了提供图像显示功能,LCD模块通常需要支持合适的分辨率和显示颜色。

2. 软件开发:通过单片机的编程实现触摸屏和LCD的交互功能。

开发人员可以借助相关的开发工具进行代码编写和调试。

基于单片机的LCD显示系统设计与Proteus仿真实现

基于单片机的LCD显示系统设计与Proteus仿真实现
tr , n r tu ot a e i u e i l t ef n t n o e d s lys se e n a d p o e ss f r s s d t smu a et c i f h ip a y tm. w o h u o t K y rs e wo d MCU
Ga Li g o n Yi i in 2 n L q a g
( l w Rie C nevnyTeh i lntue Yeo vr o srac cnc stt l aI i K in ae g f ( n nIstt o i c n eh oo y He a tue f c n e dT c n lg ni Se a Xni g ixa n


tpdf ni e a uhr; yee s n d h r c a u g c
uhr ,; ca i j
, 晶左半屏显示第一行的 ” / 液 黄河 ” 二字
sl t0 ; e c( ) e i tl) ni( ; ia s p sin 13 ) e oio ( ,2 ; t t
45 0 ) 7 0 3 4 30 ) 5 0 3
Ab ta t I i at l ,A 9 5 hp a d AMP RE 1 8X6 C mo ueaec mbn dt e in ads ly ss sr c n t s r ce T8 C c i n h i 1 I 4 L D d l r o ie od sg ipa y - 2
仿真 。 关键 词 单片机 LD C Po u r es t 仿真 文献标识码 B 文章编号 1 2 — 8 5 8 6 5 6 1 0 中图分类号 T 3 85 P6 .
De in a d Si uainwi o e so CD Dipa se Ba e n MCU sg n m lt t Prt u fL s lySy t m s d o o h

单片机LCD显示实验报告

单片机LCD显示实验报告

单片机LCD显示实验报告实验目的:本实验旨在通过使用单片机控制LCD进行显示,掌握单片机与外围设备的交互操作,学习并理解LCD显示原理。

实验器材:1. 单片机开发板2. LCD1602液晶显示屏3. 杜邦线若干4. 电阻若干实验原理:液晶显示原理是在液晶材料施加电场的作用下,通过改变传输光的偏振状态来实现图像显示。

本实验使用的LCD1602是一种16×2的字符型液晶显示模块,其中每个字符由5×8的点阵构成。

实验步骤:1. 连接电路:将LCD1602与单片机开发板通过杜邦线连接。

一般来说,液晶显示屏的引脚布局如下:- VSS: 接地- VDD: 供电(一般为5V)- V0:对比度控制端(通过电位器调节)- RS:数据/指令选择端(通常连接到单片机的I/O口)- RW:读写选择端(连接至地)- E:使能端(通常连接到单片机的I/O口)- D0-D7:数据线(连接到单片机的I/O口)- A:背光灯正极(连接5V)- K:背光灯负极(连接至地)2. 编写程序:根据实验要求,使用相应的单片机编程语言编写程序。

在程序中,需要调用相关的LCD1602命令来实现字符的显示。

3. 烧录程序:使用相应的烧录工具将编写好的程序下载到单片机开发板中。

4. 实验验证:将开发板上电,通过观察LCD1602的显示情况来验证程序的正确性。

实验结果与分析:在本次实验中,我使用单片机控制LCD1602成功实现了字符的显示。

实验结果表明,编写的程序能够正确地将字符显示在液晶屏上,并且显示效果良好。

实验中遇到的问题及解决方法:在实验过程中,我遇到了一些问题,例如LCD1602无显示、乱码或显示异常等情况。

针对这些问题,我采取了以下解决方法:1. 检查接线是否正确:确保LCD1602的引脚与单片机开发板之间的连接准确无误。

2. 检查电源供应:确认LCD1602的电源供应是否正常,电源电压是否稳定。

3. 调整对比度:通过旋转电位器调整LCD1602的对比度,以适应不同环境下的显示效果要求。

基于单片机的温度采集与液晶显示

基于单片机的温度采集与液晶显示

1 绪论1.1 本课题研究的背景和意义温度,一个在日常生活和生产过程甚至科学实验中普遍而且重要的物理参数。

近年来,随着社会的发展和科技的进步,温度控制系统以及测温仪器已经广泛应用于社会生活的各个领域,尤其是在工业自动化控制中占有非常重要的地位。

人们通过温度计来采集温度,经过人工操作进行加热、通风和降温。

从而来控制温度,但是对于这些控制对象惯性大,滞后性严重,而且还存在有许多不定的因素,从而根本难以建立精确的数学模型。

这样不仅控制精度低、实时性差,而且操作人员的劳动强度大,并且有许多工业生产环节是人们不能直接介入的。

因此智能化已然成为现代温度控制系统发展的主流方向。

针对这一种实际情况,设计个温度控制系统,具有非常广泛的应用前景和实际意义[1]。

随着电子信息技术和微型计算机技术的飞速发展。

单片机技术也得到了飞速的发展。

尤其是在高集成度、高速度、低功耗还有高性能方面取得了巨大的进展。

使得单片机在电子产品当中的应用越来越广泛。

使用单片机对温度进行控制的技术也油然而生。

它不仅可以克服温度控制系统中存在的严重的滞后现象,同时还可以在提高采样频率的基础上很大程度的提高控制的效果和控制的精度。

并且随着技术日益发展和完善,相信越来越能显现出它的优越性。

1.2 目前国内外研究现状在国内外温度控制成了一门广泛应用于很多领域的技术。

像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等。

温度控制系统虽然在国内各行各业的应用已十分广泛,但是从温度控制器的生产角度来看,总体的发展水平仍不高。

跟美德日等先进国家相比,仍有着较大的差距。

“点位”控制和常规的PID控制器占领了成熟产品的主体份额。

但它只可以适用于一般的温度系统控制,而难于控制复杂、滞后、时变的温度控制系统。

此外,适于较高控制场合的智能化、自适应控制仪表,目前在国内还没有取得较好的研究成果。

并且,在形成商品化和仪表控制参数的自整定方面,一些先进国家虽已经有一批成熟的产品。

STM32单片机对TFTLCD的驱动设计

STM32单片机对TFTLCD的驱动设计

STM32单片机对TFTLCD的驱动设计STM32单片机对TFTLCD(TFT液晶屏)的驱动设计是一种基于STM32单片机的液晶显示技术。

TFTLCD是一种高分辨率、高色彩鲜艳的显示技术,常用于嵌入式设备的显示界面。

在设计STM32单片机对TFTLCD的驱动时,需要考虑到单片机的硬件资源和软件设计。

一、硬件设计:1.接口设计:根据TFTLCD的规格书,确定TFTLCD的接口类型(如SPI、RGB等),然后根据接口类型选择合适的引脚来连接TFTLCD与STM32单片机。

2.时钟设计:TFTLCD需要一个稳定的时钟信号来提供时序控制,可以使用STM32单片机的定时器来生成时钟信号。

3.电源设计:TFTLCD需要一定的电压供应,可以通过外部的电源模块提供合适的电压给TFTLCD。

二、软件设计:1.初始化:在驱动设计的开始阶段,需要初始化TFTLCD的相关参数,如分辨率、颜色格式等。

2.数据传输:根据TFTLCD的接口类型,使用合适的通信协议进行数据传输。

如果是SPI接口,可以使用STM32的SPI外设来传输数据;如果是RGB接口,可以通过GPIO口来控制数据线的高低电平。

3.显示控制:通过向TFTLCD发送相应的控制指令,来实现对显示内容的控制,如清屏、画点、画线、显示图像等。

4.刷新机制:TFTLCD的驱动需要实现刷新机制,即在TFTLCD的刷新周期内,不断向TFTLCD发送新的数据。

可以使用双缓冲机制,先将数据写入一个缓冲区,再将缓冲区的数据一次性发送给TFTLCD,以提高刷新效率。

在STM32单片机对TFTLCD的驱动设计中,需要根据具体的TFTLCD型号和规格书来进行具体的硬件和软件设计。

每个TFTLCD的驱动设计都是独特的,需要根据具体的需求和要求来进行设计。

同时,也需要根据单片机的性能和资源来进行合理的设计,以确保驱动的效率和稳定性。

总结来说,STM32单片机对TFTLCD的驱动设计需要同时考虑硬件和软件的设计。

基于STM32单片机FSMC接口驱动LCD的配置与分析

基于STM32单片机FSMC接口驱动LCD的配置与分析

基于STM32单片机FSMC接口驱动LCD的配置与分析STM32单片机的FSMC(Flexible Static Memory Controller)接口是一种灵活的静态存储器控制器,可以用于连接外部存储器设备,如LCD显示屏。

本文将对基于STM32单片机FSMC接口驱动LCD的配置与分析进行详细介绍。

首先,我们需要了解FSMC接口的基本原理和功能。

FSMC接口是一种高性能、低功耗的外部总线接口,可以连接到SRAM、PSRAM、NOR Flash、NAND Flash、LCD显示屏等外部存储器设备。

FSMC接口提供了多种数据传输模式(如并行、串行)和多种数据总线宽度选择,以满足不同应用的需求。

要实现FSMC接口驱动LCD,首先需要配置FSMC接口的相关寄存器。

在STM32单片机中,FSMC的配置主要包括以下几个方面:1.时序配置:通过设置FSMC_RCC和FSMC_BTR寄存器来定义访问存储器的时序。

时序配置非常重要,需要根据外部存储器的时序规格进行调整,以确保数据的正确传输。

2.地址配置:通过设置FSMC_BANK1或FSMC_BANK2寄存器来定义存储器的基地址和各种地址范围。

3.数据总线配置:根据外部存储器的数据宽度,设置FSMC_BCR和FSMC_BWTR寄存器来选择数据总线宽度(比特数)。

4.控制信号配置:通过设置FSMC_BCR、FSMC_BTR和FSMC_BWTR寄存器来配置控制信号,如写使能信号、读使能信号、片选信号等。

配置完成后,就可以使用FSMC接口进行数据的读写操作。

读取操作可以通过读取FSMC_BANK1或FSMC_BANK2的数据寄存器来实现。

写入操作可以通过写入FSMC_BANK1或FSMC_BANK2的数据寄存器来实现。

对于LCD显示屏的驱动,可以通过FSMC接口的并行模式来实现。

在并行模式下,数据总线的宽度由FSMC_BCR和FSMC_BWTR寄存器的设置决定,可以通过并行总线同时传输多个像素数据和控制信号,从而提高数据传输速度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于单片机的LCD显示屏一、实验目的1、利用最小系统的液晶显示电路,编写程序控制显示,输出字符。

2、了解液晶显示的控制原理及方法。

二、设计内容及要求1、绘制流程图2、进行软件编程和软模拟3、进行硬件调试三、实验原理1、1602显示屏简介工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)2、管脚功能1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中:引脚符号功能说明1 VSS 一般接地2 VDD 接电源(+5V)3 V0 液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

4 RS RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

5 R/W R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

6 E E(或EN)端为使能(enable)端,下降沿使能。

7 DB0 低4位三态、双向数据总线 0位(最低位)8 DB1 低4位三态、双向数据总线 1位9 DB2 低4位三态、双向数据总线 2位10 DB3 低4位三态、双向数据总线 3位11 DB4 高4位三态、双向数据总线 4位12 DB5 高4位三态、双向数据总线 5位13 DB6 高4位三态、双向数据总线 6位14 DB7 高4位三态、双向数据总线 7位(最高位)(也是busy flag)15 BLA 背光电源正极16 BLK 背光电源负极寄存器选择控制表RS R/W 操作说明0 0 写入指令寄存器(清除屏等)0 1 读busy flag(DB7),以及读取位址计数器(DB0~DB6)值1 0 写入数据寄存器(显示各字型等)1 1 从数据寄存器读取数据注:关于E=H脉冲——开始时初始化E为0,然后置E为1,再清0.busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。

3、字符集1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

以下是1602的16进制ASCII码表:读的时候,先读上面那列,再读左边那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

4、显示地址1 2 3 4 5 6 7 8 9 111121314151600000000000000000 H 1H2H3H4H5H6H7H8H9HAHBHCHDHEHFH4 0 H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH 5、指令集1602通过D0~D7的8位数据端传输数据和指令。

显示模式设置: (初始化)0011 1000 [0x38] 设置16×2显示,5×7点阵,8位数据接口;显示开关及光标设置:(初始化)0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效) 0000 01NS N=1(读或写一个字符后地址指针加1 &光标加1),N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)s=0 当写一个字符后,整屏显示不移动数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)其他设置:01H(显示清屏,数据指针=0,所有显示=0);02H(显示回车,数据指针=0)。

通常推荐的初始化过程:延时15ms写指令38H延时5ms写指令38H延时5ms写指令38H延时5ms(以上都不检测忙信号)(以下都要检测忙信号)写指令38H写指令08H 关闭显示写指令01H 显示清屏写指令06H 光标移动设置写指令0cH 显示开及光标设置完毕6、Proteus仿真使用Proteus仿真1602--即LM016L--依照数据手册说明可能遇到困难,可以尝试采用以下方案解决:1、数据手册中可能介绍1602内部D0~D7已有上拉,可以使用P0口直接驱动。

在Proteus里LM016L内部可能没有,应该人为加上拉电阻。

建议不要使用排阻,使用普通电阻一个一个拉应该可以解决问题;2、可能碰到不能检测忙信号的问题,尝试使用延时把忙信号拖过去。

7、基本的读写时序图读写操作时序如图1和2所示:写操作时序:读操作时序:四、电路的设计、安装及调试1、电路图:2、源程序:/******************************************************************** ** 1602显示********************************************************************* /LCD_RS EQU P2.4LCD_RW EQU P2.3LCD_EN EQU P2.2;******************************************************************* ORG 0000HAJMP MAINORG 0030H;******************************************************************* MAIN:MOV SP,#60HACALL LCD_INIT ;LCD初始化MAIN1:ACALL CLR_LCD ;清LCDMOV A,#90H ;在第一行第17列的位置ACALL LCD_CMDMOV DPTR,#LINE1 ;第一行字符串的起始地址送入DPTR。

ACALL WRITEMOV A,#0D0H ;在第二行第17列的位置ACALL LCD_CMDMOV DPTR,#LINE2 ;第二行字符串的起始地址送入DPTR。

ACALL WRITEMOV R3,#10H ;向左移动16格LOOPA:MOV A,#18H ;字符同时左移一格ACALL LCD_CMDMOV R5,#03H ;延时375MSACALL DELAY125MSDJNZ R3,LOOPAACALL DELAY4 ;延时1.6sACALL DELAY4MOV R4,#02H ;设置闪烁次数ACALL FLASH ;开始闪烁AJMP MAIN1LINE1:DB " WELCOME YOU TO ",00HLINE2:DB "GUIZHOU PROVINCE",00H;***************************************************************;LCD初始化设定子程序;*************************************************************** LCD_INIT:ACALL DELAY5MS ;延时15MSACALL DELAY5MS ;等待LCD电源稳定ACALL DELAY5MSMOV A,#38H ;16*2显示,5*7点阵,8位数据ACALL LCD_CMD_NC ;不进行LCD忙检测ACALL DELAY5MSMOV A,#38H ;16*2显示,5*7点阵,8位数据ACALL LCD_CMD_NC ;不进行LCD忙检测ACALL DELAY5MSMOV A,#38H ;16*2显示,5*7点阵,8位数据ACALL LCD_CMD_NC ;不进行LCD忙检测ACALL DELAY5MSMOV A,#08H ;显示关ACALL LCD_CMD ;进行LCD忙检测MOV A,#01H ;清除屏幕ACALL LCD_CMD ;进行LCD忙检测MOV A,#0CH ;显示开,关光标ACALL LCD_CMD ;进行LCD忙检测RET;*************************************************************** ;清LCD子程序;*************************************************************** CLR_LCD:MOV A,#01H ;清除屏幕ACALL LCD_CMD ;进行LCD忙检测RET;*************************************************************** ;写指令数据到LCD;RS=L,RW=L,D0-D7=指令码,E=高脉冲;*************************************************************** LCD_CMD:CALL CHECKBUSYLCD_CMD_NC:CLR LCD_RSCLR LCD_RWMOV P0,ASETB LCD_ENNOPNOPNOPNOPCLR LCD_ENRET;*************************************************************** ;写显示数据到LCD;RS=H,RW=L,D0-D7=数据,E=高脉冲;*************************************************************** LCD_WDATA:ACALL CHECKBUSYSETB LCD_RSCLR LCD_RWMOV P0,ASETB LCD_ENNOPNOPNOPNOPCLR LCD_ENRET;*************************************************************** ;检测LCD控制器忙状态;读数据;RS=L,RW=H,E=H,输出:D0-D7=数据;P0.7=1,LCD忙,等待。

P0.7=0,LCD闲,可以进行读写操作。

;*************************************************************** CHECKBUSY:PUSH ACCMOV P0,#0FFHCLR LCD_RSSETB LCD_RWSETB LCD_ENBUSYLOOP:NOPJB P0.7,BUSYLOOPCLR LCD_ENPOP ACCRET;*************************************************************** ; 发送字符串子程序;*************************************************************** WRITE:PUSH ACCWRITE1:CLR AMOVC A,@A+DPTRJZ WRITE2INC DPTRACALL LCD_WDATAJMP WRITE1WRITE2:POP ACCRET;*************************************************************** ;闪烁子程序;*************************************************************** FLASH:MOV A,#08H ;关闭显示ACALL LCD_CMDACALL DELAY4MOV A,#0CH ;开显示,关闭光标ACALL LCD_CMDACALL DELAY4DJNZ R4,FLASHRET;*************************************************************** ;延时5MS子程序;LCD初始化使用;*************************************************************** DELAY5MS:MOV R6,#10DL1:MOV R7,#249DL2:DJNZ R7,DL2DJNZ R6,DL1RET;*************************************************************** ;延时125MS子程序;字符串移动时使用;*************************************************************** DELAY125MS:DL3:MOV R6,#250DL4:MOV R7,#249DL5:DJNZ R7,DL5DJNZ R6,DL4DJNZ R5,DL3RET;*************************************************************** ;延时800MS子程序;闪烁时使用;*************************************************************** DELAY4:MOV R5,#40DL6:MOV R6,#100DL7:MOV R7,#100DL8:DJNZ R7,DL8DJNZ R6,DL7DJNZ R5,DL6RET;*************************************************************** END五、实验研究与参考当今是一个信息化的时代,信息的重要性是不言而喻的,获取手段显得尤其重要。

相关文档
最新文档