字符型LCD显示系统的设计与制作

合集下载

温湿度采集

温湿度采集

LCD显示
1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下所示: 编号 符号 引脚说明 编号 符号 引脚说明 1 VSS 电源地 9 D2 数据 2 VDD 电源正极 10 D3 数据 3 VL 液晶显示偏压 11 D4 数据 4 RS 数据/命令选择 12 D5 数据 5 R/W 读/写选择 13 D6 数据 6 E 使能信号 14 D7 数据 7 D0 数据 15 BLA 背光源正极 8 D1 数据 16 BLK 背光源负极 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度 过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为 低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS 为高电平R/W为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15脚:背光源正极。
0 1 显示数据存贮器地址 计数器地址 要写的数据内容 读出的数据内容
字符发生存贮器地址
报警系统
蜂鸣器额定电流IB≤30mA,而对于STC89C52单片 机,P1口的灌电流为 1.6mA,拉电流为60µA, 由此可见,仅靠单片机的P1口电流是不能驱动 蜂鸣器的,必须使用集晶体管放大电路,为了使 单片机消耗的功率更小,所以使用 PNP型晶体 管9012。STC89C52采用的晶振电路采用 11.0592MHz的无源晶振,微调电容大小取 30pF。显示模块选用1602字符型液晶模块,是 目前工控系统中使用最为广泛的液晶屏之一,电 路图如图6所示。1602字符型液晶模块是点阵型 液晶,驱动方便,经编码后显示内容多样化。系 统的输入模块采用中断扫描的4×4矩阵键盘, 相比定时扫描方式,提高了MCU的使用效率。

单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计

单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计
11
在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路仍采用图5-2,制作由上至下再由下至上反复循环点亮显
示的流水灯,3种方法实现。
(1)数组的字节操作实现 建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依
次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f ,
// 读入P1口的状态,送入state // 屏蔽P1口的高6位 // 判P1口低2位开关状态
{
case 0: P2=0x01; break; case 1: P2=0x02; break; case 2: P2=0x04; break; case 3: P2=0x08; break;
// 点亮P2.0脚LED //点亮P2.1脚LED // 点亮P2.2脚LED //点亮P2.3脚LED
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
15
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。

LCD培训课件

LCD培训课件
家居电器:LCD在电视、冰箱、空调等家电中广泛应用 ,为人们提供了清晰、稳定的显示效果。
工业生产:LCD广泛应用于工业生产中的显示和控制, 例如自动化设备、流水线检测和监控等。
医疗设备:LCD可用于医疗设备中的显示部分,例如诊 断仪器、治疗设备等。
办公设备:LCD在打印机、复印机、电脑等办公设备中 充当着重要的角色,提高了工作效率。
选择高质量的元器件,降低故障率 ,提高产品的可靠性。
热设计优化
合理分配功耗,采用散热措施,防 止产品过热。
电磁兼容性设计
隔离敏感电路,滤波电路设计,提 高产品的抗干扰能力。
冗余设计
采用多种措施,如备份电源、备份 控制器等,提高系统的可靠性。
lcd产品的环境适应性测试
温度适应性测试
湿度适应性测试
在不同温度下,测试产品的显示性能、色彩 还原度和响应时间等。
色彩
根据实际需要选择单色、双色或全彩色显 示。
lcd显示模块的接口类型
RGB接口
使用广泛,适用于大多数应用场景 。
SPI接口
具有高速传输和低功耗的特点,适 用于小尺寸液晶屏。
IIC接口
具有高分辨率和多通道数据传输的 特点,适用于大尺寸液晶屏。
LVDS接口
具有低功耗和高稳定性的特点,适 用于高分辨率液晶屏。
GBK格式
扩展的汉字编码格式,支持更多生僻字和 少数民族文字。
GB2312格式
中国国家标准的汉字编码格式,可显示大 部分常用汉字。
Unicode格式
国际标准的多语言编码格式,支持多种语 言文字。
lcd显示内容的传输方式
RS-232串口传输
通过串口连接将显示内容传输到LCD显示屏 。
GPIO接口传输

LCD显示的定时闹钟

LCD显示的定时闹钟

西南科技大学单片机原理及接口技术课程设计报告课题名称LCD显示的定时闹钟姓名刘XX学号2011XXXX学院制造科学与工程学院班级机械11XX指导教师张XX2014年 06 月 12 日目录1.设计要求 (1)2.设计方案 (1)2.1原理 (1)2.2系统总框图 (2)2.3原理及工作过程说明 (2)3.元器件介绍 (2)3.1AT89C51 (2)3.2 1602LCD液晶显示器 (5)3.3 其他重要元件 (6)4.软件设计 (8)4.1系统流程图 (8)4.2 源代码 (10)5.系统仿真 (20)5.1系统总图 (20)5.2设定时间时LCD显示 (20)5.3设定闹钟时LCD显示 (21)5.4显示闹钟时LCD显示 (21)5.5待机时LCD显示 (21)6.实物图 (22)7.实验总结及心得体会 (22)8.参考资料 (24)1.设计要求使用AT89C51单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD 时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使用。

定时闹钟的基本功能如下:⏹显示格式为“时时:分分”。

⏹由LED闪动来做秒计数表示。

⏹一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启和关闭。

⏹程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00:00”,按下操作键K1~K4动作如下:(1) K1—设置现在的时间。

(2) K2—显示闹钟设置的时间。

(3) K3—设置闹铃的时间。

(4) K4—闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声。

设置当前时间或闹铃时间如下。

(1) K1—时调整。

(2) K2—分调整。

(3) K3—设置完成。

(4) K4—闹铃时间到时,发出一阵声响,按下本键可以停止声响。

本项目的难点在于4个按键每个都具有两个功能,以最终实现菜单化的输入功能。

采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。

电子信息工程专业毕业设计--基于51单片机的12864液晶显示器的设计和研究

电子信息工程专业毕业设计--基于51单片机的12864液晶显示器的设计和研究

目录设计总说明 (I)INTRODUCTION (II)1 绪论 (1)1.1课题背景及研究意义 (1)1.2课题研究的主要内容 (1)1.3国内外发展状况与存在问题 (1)2 总体方案设计与论述 (2)2.1 系统需求分析 (2)2.2 系统总体方案设计 (2)2.2.1 设计方案论证 (2)2.2.2总体结构框图 (3)3系统单元模块设计 (3)3.1系统硬件示意图 (3)3.2主控芯片(STC89C52模块)[5] (4)3.3 时钟控制模块[13] (6)3.3.1 DS1302简介 (6)3.3.2引脚及功能表 (7)3.3.3工作原理 (7)3.3.4 DS1302电路设计图[9] (8)3.4 温度控制模块 (8)3.5 12864接口电路模块 (9)3.6 按键电路模块 (9)3.7 电源电路模块 (10)3.8 印制电路板[9] (10)4系统整体调试与结果分析 (11)4.1 系统总体程序流程介绍 (11)4.2 按键程序设计 (13)4.3 12864驱动程序设计[15] (14)4.3.1 ST7920芯片介绍[14] (14)4.3.2 ST7920驱动程序设计 (17)4.4 12864应用程序设计 (20)4.4.1 文字显示程序设计 (20)4.4.2 点、线显示程序设计 (22)4.4.3 图形、图片显示程序设计 (23)4.5 菜单程序设计 (26)5设计调试及进一步研究 (28)5.1 系统测试 (28)5.1.1 软件调试 (28)5.1.2 硬件调试 (29)5.2 进一步研究的工作 (30)6总结 (30)鸣谢................................................................................................................................ 错误!未定义书签。

HD44780液晶控制器显示系统设计

HD44780液晶控制器显示系统设计

第3章HD44780液晶控制器显示系统设计在电子系统设计中,离不开显示,液晶显示器(LCD)的应用更是越来越广泛。

目前主要有两种类型的液晶显示器,一种是“Alphanumaric LCDs”,只能显示字符和数字;另一种是“Graphical LCDs”,既能显示字符和数字,还能显示汉字和图形。

液晶显示器是由液晶点阵及控制器两部分组成的,不同的液晶显示器所对应的控制器不尽相同。

本章详细介绍字符液晶显示器的工作原理和应用实例。

通常,控制器和液晶屏制作在一起,也有的是分开的。

液晶屏是一种物理器件,而我们研究的控制对象是电器件,即液晶显示控制器。

所以,弄清液晶显示控制器的工作原理是应用液晶显示器必须的第一个步骤。

3.1 HD44780的工作原理HD44780是一种点阵液晶显示控制器,用来控制字符液晶显示器,目前应用比较广泛。

它有以下特点:●内置CGROM字符发生器,含192个固定字符,可供用户显示调用。

●内置CGRAM字符发生器,用户通过编程设计最多8个自定义字符,存放其中,供显示调用。

●内置DDRAM显示数据存储器,可以存放最多80个显示字符。

把CGROM 或CGRAM中的显示数据调入DDRAM,便可在显示屏上显示。

DDRAM中的单元和显示屏的位置存在一一对应关系。

●自动复位上电功能。

●双向8位或4位总线接口。

●丰富的控制指令:清显存、光标位置设置、数据输入时光标或数据移位设置、开或关显示屏等。

下面详细介绍HD44780的各项功能。

3.1.1初始化HD44780模块有两个寄存器,一个用来输入指令,另一个用来读写数据。

指令用来告诉模块怎样存放或哪里存放数据。

如果模块上电时,上升沿时间满足图3-1所示的要求,则模块缺省执行内置的上电初始化程序如下:●清显存●功能设置(DL=1,8位接口;N=0,单行显示;F=0,5×7点阵字体)●显示开关控制(D=0,关闭显示;C=0,关闭光标;B=0,字符闪烁关闭)●输入方式设置(I/D=1,设DDRAM计数器为自动加1方式)●DDRAM被选择注:括号中的内容见表3-2。

LCD1602液晶显示屏

在日常生活中,我们对液晶显示器并不陌生。

液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。

在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。

发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。

在单片机系统中应用晶液显示器作为输出器件有以下几个优点:显示质量高由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。

因此,液晶显示器画质高且不会闪烁。

数字式接口液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。

体积小、重量轻液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。

功耗低相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。

10.8.1 液晶显示简介①液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。

液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。

②液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。

除了黑白显示外,液晶显示器还有多灰度有彩色显示等。

如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。

③液晶显示器各种图形的显示原理:线段的显示点阵图形式液晶由M×N个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共16×8=128个点组成,屏上64×16个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。

单片机

1 系统硬件介绍本设计通过单片机实现喇叭播放音乐和LCD液晶显示文字、图片、动画,并通过键盘进行控制操作,实现功能的选择。

单片机使用AT89C55WD芯片,容有20K字节可编程闪烁存储器,能存放做够的程序容量。

LCD使用128*64液晶屏,通过控制驱动器,能显示图片和文字。

另外使用I2C总线扩展,I2C总线是一种用于IC器件之间连接的二线制总线。

它通过SDA(串行数据线)及SCL(串行时钟先)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件,不管是单片机、存储器、LCD驱动器还是键盘接口。

1.1 单片机简介所谓单片机,通俗的来讲,就是把中央处理器CPU(Central Processing Unit),存储器(memory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集成在一块集成电路芯片上的微型计算机。

单片机又称为“微控制器MCU”。

中文“单片机”的称呼是由英文名称“Single Chip Microcomputer”直接翻译而来的。

顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。

因为它体积小,通常都藏在被控机械的“肚子”里。

它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。

现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。

各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产品名称前冠以形容词——“智能微电脑型”,如智能型热水器等。

本设计用到的单片机是AT89C55WD,下面就以AT89C55WD为例,结合本设计所用到的内容,简单介绍一下单片机的基础知识。

1.1.1 AT89C55WD简介AT89C55WD是一个低电压,高性能CMOS 8 位单片机,片内含有20KB 的可重写快速闪存存储器和只读程序和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,引脚兼容工业标准芯片,采用通用编程方式,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微处理器的AT89C55WD可为您提供许多高性价比的解决方案,适用于多数嵌入式应用系统。

字符型液晶和图形点阵式液晶的区别

字符型液晶和图形点阵式液晶的区别?液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件.英文名称叫“LCD Module”,简称“LCM”,中文一般称为“液晶显示模块”。

实际上它是一种商品化的部件.根据我国有关国家标准的规定:只有不可拆分的一体化部件才称为“模块”,可拆分的叫作“组件”。

所以规范的叫法应称为“液晶显示组件”。

但是由于长期以来人们都已习惯称其为“模块”。

从广义上说,凡是由液晶显示器件和集成电路装配在一起的部件都属于“模块”,但实际上我们通常所说的“模块”主要是指点阵液晶显示器件装配的点阵液晶显示模块,特别因为是点阵液晶显示器件产品除某些专用大批量的一些品种(如翻译机、通讯用),生产厂家是直接向用户供应液晶显示器件外,几乎所有通用型点阵液晶显示器件都是加工成模块后才供给用户的,所以很容易形成“液晶模块”就是“点阵液晶模块”的误解。

一、液晶点阵字符模块它是由点阵字符液晶显示器件和专用的行、列驱动器、控制器及必要的连接件,结构件装配而成的,可以显示数字和西文字符。

这种点阵字符模块本身具有字符发生器,显示容量大,功能丰富。

一般该种模块最少也可以显示8位1行或16位l行以上的字符。

这种模块的点阵排列是由5×7、5×8或5×11的一组组像素点阵排列组成的。

每组为1位,每位间有一点的间隔,每行间也有一行的间隔,所以不能显示图形,其规格主要如下表所示:8位1行;2行16位1行;2行;4行20位1行;2行;4行24位1行;2行;4行32位1行;2行;4行40位1行;2行;4行一般在模块控制、驱动器内具有已固化好192个字符字模的字符库CGROM,还具有让用户自定义建立专用字符的随机存储器CGRAM,允许用户建立8个5×8点阵的字符。

二、点阵图形液晶模块这种模块也是点阵模块的一种,其特点是点阵像素连续排列,行和列在排布中均没有空隔。

字符型液晶显示的接口应用



MOV D T 40 H ; P R#o O 写入 命 令 口 .
M0VX @DP TR. A P0P DP H P0P DPL RET
=L 11
图 2 读 时 序
f ur2 r d o r t n i e ea pe ai g o
置显示器为读状态子程序 :
对 DD A 操作 , 液 晶能 够 正 确 显 示 。 R 程 序 软 逐 渐在工业控制 、 仪器仪表等领域 得到广泛应用 。G C 10 2液晶显 T 一64 应 用 液 晶显 示 器 时软 件 流 图见 下 页 图 4: 示 模块是 1 ( 符)× ( ) 6字 4 行 的字符显示模 块 , 其功 能强 , 用方便 , 使 能 在 此 特别 值 得 一 提 的是 软 件 处 理 中 延 时 问 题 , 为 无 论 是 对 显示 因 直接 与 单 片 机 接 口 , 具 有 专 门 的 指令 , 灵 活 地 应 用 。 并 可 模 块 的 读 还 是 写 都 有 一 定 的 时 序 , 以如 果 没 有 一 定 的 延 时 , 不 能 所 则 2GT 一 6 4 . C 1 0 2液 晶 模块 的 结构 正 常 的 显 示 G C 10 2主 要 由液 晶 驱 动 电 路 K 0 6 ( T 一64 S 0 5 3片 ) 、显 示 控 制 器 85 92 LCM K 0 6 U、C S0 6 L D显 示 器 和 背 光 灯 等 4部 分 组 成 。控 制 器 是 整 个 显示 系 统 的 核 心 ,具 有 自 身 的 时 钟 信 号 ,并 有 完 整 的 指 令 系 统 。 内 部 有 DD AM 区 , 于 存 储 显 示 的 字 符 。 C R 用 L D通 过 总 线 与 C U 连 接 , 现对 P 实 P O D丑  ̄ 0 DB 7 外 部 数据 的读 写 操 作 。 R s
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务四:字符型LCD1602显示系统的设计与制作 第 1 页 共 18 页 任务四 字符型LCD显示系统的设计与制作 一、实训目的:

通过字符型LCD实现任意字符的显示和计时器的设计、仿真、制作、调试,让学生从外到内,从直观到抽象,逐渐理解单片机应用技术、掌握指针的使用,C语言多文件的程序编写思路。 二、实训器材: 焊接工具、LCD1602实现计时器元件、带仿真软件的电脑、编程器 三、实验内容: (一)数码管静态显示 1、用PROTEUS软件画硬件电路:

RSRWED0D1D2D3D4D5D6D7D0D1D2D3

D4D5

D6D7

ERWRS

XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R110kC310uX1CRYSTALC130pC230pD714D613D512D411D310D29D18D07E6RW5RS4VSS1VDD2VEE3LCD1LM016L23456789

1RP1

RESPACK-8RV110k

Q1PNPR2

2kLS1

SPEAKER 图1 LCD1602显示原理图 2、元件清单 元器件名称 元器件库名称 数量 元器件名称 元器件库名称 数量 CRYSTAL(12MHz) Miscellaneous 1 按键 BUTTON 1 AT89C51 Microprocessor IC 1 排阻(220) Resistors 1 CAP 33pF(电解电容) Capacitors 2 Optoelectronics LM016L 1 CAP 10µF(瓷片电容) Capacitors 1 可变电阻RES-AVR Resistors 1 Speaker(喇叭) Speaker&sounders 2 PNP(三极管) Modeling primitive 1 电阻(10K) Resistors 1 电阻(2K) Resistors 1

3、参考程序(一) 功能:任意字符显示 任务四:字符型LCD1602显示系统的设计与制作 第 2 页 共 18 页

#include sbit RS = P2^3; //控制端口定义 sbit RW = P2^2; sbit E = P2^1; #define DATAPORT P0 //数据端口 unsigned char code string1[]={"@#$%^_^&*()=+-/*"}; //液晶屏第一行显示字符 unsigned char code string2[]={"!,.;:'?/<>!|[]{}"}; //液晶屏第二行显示字符 /********************************************************************************function:delayMS() **功能:延时程序 ******************************************************************************/ void delayMS( unsigned int b) //延时大约1*b MS { unsigned char a=200; for(;b>0;b--) { while(--a); a=200; } } /********************************************************************************function:LCDSTA() **功能:判断液晶显示器是否忙 *****************************************************************************/ void LCDSTA( ) { unsigned char flag; while(1) { RS=0; // RS RW 01为读Busy Flag(DB7)及地址计数器AC(DB0~DB6) RW=1; delayMS(5); //延时 E=1; //E控制端产生一个脉冲 delayMS(10); flag=DATAPORT; //读数据端口状态 E=0; flag=flag&0X80; //读取液晶忙碌标志位BF,即DB7。 if(flag==0x00) //为真表示液晶忙完,可以对其进行其它操作,否则需等待。 { break; } } } /********************************************************************************function:WRDcomm() **功能:向LCD发送操作命令 ******************************************************************************/ void WRDcomm(unsigned char com) {// LCDSTA(); //判断液晶屏是否忙,如果通不过,采用延时替换 delayMS(20); 任务四:字符型LCD1602显示系统的设计与制作 第 3 页 共 18 页

DATAPORT=com; //送命令 RS=0; //RS RW 00为写入指令寄存器 RW=0; E=1; //E控制端产生一个脉冲 E=0; delayMS(10); //等待执行完 } /********************************************************************************function: lcd_initial() **功能描述:液晶屏初始化子程序 ******************************************************************************/ void lcd_initial() { WRDcomm(0X01); //写入命令,清屏并光标复位 WRDcomm(0X38); //写入命令,设置显示模式:8位2行5X7点阵 WRDcomm(0X0F); //写入命令,开显示,开光标显示,光标所在位置的字符闪烁 WRDcomm(0X06); //写入命令,移动光标 } /********************************************************************************function:WRData() **功能:向LCD发送操作数据 *****************************************************************************/ void WRData() {// LCDSTA(); //判断液晶屏是否忙,如果通不过,采用延时替换 delayMS(20); RS=1; //RS RW 10为写入数据寄存器 RW=0; E=1; //E控制端产生一个脉冲 E=0; delayMS(10); //等待执行完 } /****************************************************************************** mian() *****************************************************************************/ void main() { unsigned char i; lcd_initial(); //调用液晶初始化函数 WRDcomm(0X80); //写入命令,设置第一行显示位置 for(i=0;i<16;i++) //显示第一行 { DATAPORT=string1[i]; WRData(); delayMS(20); } WRDcomm(0Xc0); //写入命令,设置第二行显示位置 for(i=0;i<16;i++) //显示第二行 任务四:字符型LCD1602显示系统的设计与制作 第 4 页 共 18 页

{ DATAPORT=string2[i]; WRData(); delayMS(20); } while(1); } 参考程序(二) 功能:简易电子钟及报警

(1)制作电子钟.c文件 ——————————————————————————————————————— extern void lcd_initial(); //外部函数声明 extern void clock(); /****************************************************************************** mian() *****************************************************************************/ void main() { lcd_initial(); //调用液晶初始化函数 while(1) { clock(); //调用时钟函数 } } ———————————————————————————————————————

(2)LCD1602.c文件 ——————————————————————————————————————— #include sbit RS = P2^3; //控制端口定义 sbit RW = P2^2; sbit E = P2^1; #define DATAPORT P0 //数据端口 unsigned char string1[]={"It's time..."}; //液晶屏第一行显示字符 unsigned char string2[]={"AM 00:00:00"}; //液晶屏第二行显示字符 /********************************************************************************函数名:delayMS() **功 能:延时程序 ****************************************************************************/ void delayMS( unsigned int b) //延时大约为 1*b MS { unsigned char a=200; for(;b>0;b--) { while(--a); a=200;

相关文档
最新文档