事无巨细,lcd1602

上传人:ldj****22 文档编号:37900048 上传时间:2018-04-24 格式:PDF 页数:6 大小:629.34KB
返回 下载 相关 举报
事无巨细,lcd1602_第1页
第1页 / 共6页
事无巨细,lcd1602_第2页
第2页 / 共6页
事无巨细,lcd1602_第3页
第3页 / 共6页
事无巨细,lcd1602_第4页
第4页 / 共6页
事无巨细,lcd1602_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《事无巨细,lcd1602》由会员分享,可在线阅读,更多相关《事无巨细,lcd1602(6页珍藏版)》请在金锄头文库上搜索。

1、事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG LCD 1602 E-mail:L 事无巨细,LCD1602 前面总算走完了对 AVR MEGA16 这块单片机的一些基本的应用方式了,这时候大家对AVR 的一些内部资源比如定时器,ADC,最主要的 IO 口的使用方式应该有了一个虽比较粗浅但是却比较形象的认识了。 这节我们来看使用单片机的另外一大主题, 就是用单片机来实现芯片控制。 在前面的数码管显示一文中, 就已经涉及到了用单片机来控制芯片为我们工作, CEPARK AVR 开发板,为了达到增强驱动能力和节省 IO 口的作用,运用了移位寄存器 74

2、HC595 来驱动两个四位八段数码管,是一个十分有创意的设计。但是前面的内容重心还是集中于对 AVR的 IO 口的控制,所以,我们从这节开始要正式逐渐深入的接触各种芯片了。 先做个引子。单片机是一种微控制器,本身内部集成了数种资源比如 CPU、内存、内部和外部总线系统,目前大部分还会具有外存。他的主要任务是利用各种资源实现电平控制,可以以此控制与它相连的下级系统,广泛用于工业自动控制领域。 我们就从这句话出发,首先单片机用来做控制用的,而且是利用的是本身的内部资源。但是,它的功能再强大,资源再丰富也总有一个上限,总有枯竭的一天。所以我们常常利用单片机外接芯片来弥补或者增强单片机的功能来完成我们

3、所需功能的电路。 比如程序存储器不足,可以外接外部存储器,比如单片机内部中断级不足,可以外接中断控制器等等。大家可以从这个角度来理解芯片控制的意义罢。 今天我们用 AVR 单片机来实现对 LCD1602 液晶显示芯片的控制。 首先从这个名字讲起, LCD: 英文全称为 Liquid Crystal Display, 即为液态晶体显示,也就是我们常说的液晶显示了。(平时老说 LCDLCD, 可能大家也都不怎么注意过这个全称吧,呵呵,当增加词汇量了)1602 则是表示这个液晶一共能显示 2 行数据,每一行显示 16 个字符。这个就是 LCD1602 的全部来由。 液晶显示的使用有多广泛我就不多说了

4、,LCD1602 好像 10 元左右就可以拿到了的,不算贵。我们来看看现在市面都有哪些样子的 1602,下面从网上搜罗了几个(我手上的这个是蓝色背光白色字体的) : Bb s . Cep a r k. co m事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG LCD 1602 E-mail:L 其实显而易,见也就是背光和字体的颜色不一样罢,不过老实说,蓝色背光的 1602 看上去显得确实比较亮,也许是人眼视觉的关系。 接下来进入 LCD1602 使用的重点:操作时序。操作时序永远使用是任何一片 IC 芯片的最主要的内容。 一个芯片的所有使用细节都会在

5、它的官方器件手册上包含。 所以使用一个器件事情,要充分做好的第一件事就是要把它的器件手册上有用的内容提取,掌握。介于中国目前的芯片设计能力有限,所以大部分的器件都是外国几个 IC 巨头比如 TI、AT、MAXIM 这些公司生产的,器件资料自然也是英文的多,所以,英文的基础要在阅读这些数据手册时得到提高哦。即便有中文翻译版本,还是建议看英文原版,看不懂时不妨再参考中文版,这样比较利于提高。 我们首先来看 1602 的引脚定义,1602 的引脚是很整齐的 SIP 单列直插封装,所以器件手册只给出了引脚的功能数据表: 我们只需要关注以下几个管脚: 3 脚:VL,液晶显示偏压信号,用于调整 LCD16

6、02 的显示对比度,一般会外接电位器用以调整偏压信号,注意此脚电压为 0 时可以得到最强的对比度。 4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对 1602 进行数据字节的传输操作,而为电平时,则是进行命令字节的传输操作。命令字节,即是用来对 LCD1602 的一些工作方式作设置的字节;数据字节,即使用以在 1602 上显示的字节。值得一提的是,LCD1602Bb s . Cep a r k. co m事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG LCD 1602 E-mail:L 的数据是 8 位的。 5 脚:R/W,读写选择端。当此

7、脚为高电平可对 LCD1602 进行读数据操作,反之进行写数据操作。 笔者认为, 此脚其实用处不大, 直接接地永久置为低电平也不会影响其正常工作。但是尚未经过复杂系统验证,保留此意见。 6 脚:E,使能信号,其实是 LCD1602 的数据控制时钟信号,利用该信号的上升沿实现对 LCD1602 的数据传输。 714 脚:8 位并行数据口,使得对 LCD1602 的数据读写大为方便。 现在来看 LCD1602 的操作时序: 在此,我们不需要读出它的数据的状态或者数据本身。所以只需要看两个写时序: 当我们要写指令字,设置 LCD1602 的工作方式时:需要把 RS 置为低电平,RW置为低电平,然后将

8、数据送到数据口 D0D7,最后 E 引脚一个高脉冲将数据写入。 当我们要写入数据字,在 1602 上实现显示时:需要把 RS 置为高电平,RW 置为低电平,然后将数据送到数据口 D0D7,最后 E 引脚一个高脉冲将数据写入。 发现了么,写指令和写数据,差别仅仅在于 RS 的电平不一样而已。一下是 LCD1602的时序图: Bb s . Cep a r k. co m事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG LCD 1602 E-mail:L 大家要慢慢学会看时序图,要知道操作一个器件的精华便蕴藏在其中,看懂看准了时序, 你操控这个芯片就是非常

9、容易的事了。 1602 的时序是我见过的一个最简单的时序: 1、注意时间轴,如果没有标明(其实大部分也都是不标明的) ,那么从左往右的方向为时间正向轴,即时间在增长。 2、上图框出并注明了看懂此图的一些常识: (1).时序图最左边一般是某一根引脚的标识,表示此行图线体现该引脚的变化,上图分别标明了 RS、R/W、E、DB0DB7 四类引脚的时序变化。 (2).有线交叉状的部分,表示电平在变化,如上所标注。 (3).应该比较容易理解,如上图右上角所示,两条平行线分别对应高低电平,也正好吻合(2)中电平变化的说法。 (4).上图下,密封的菱形部分,注意要密封,表示数据有效,Valid Data 这

10、个词也显示了这点。 3、 需要十分严重注意的是, 时序图里各个引脚的电平变化, 基于的时间轴是一致的。一定要严格按照时间轴的增长方向来精确地观察时序图。要让器件严格的遵守时序图的变化。在类似于 18B20 这样的单总线器件对此要求尤为严格。 4、以上几点,并不是 LCD1602 的时序图所特有的,绝大部分的时序图都遵循着这样的一般规则,所以大家要慢慢的习惯于这样的规则。 也许你还注意到了上面有许多关于时间的标注, 这也是个十分重要的信息, 这些时间的标注表明了某些状态所要维持的最短或最长时间。 因为器件的工作速度也是有限的, 一般都跟不上主控芯片的速度, 所以它们直接之间要有时序配合。 话说现

11、在各种处理器的主频也是疯狂增长,日后搞不好出现个双核单片机也不一定就是梦话。下面是时序参数表:大家要懂得估计主控芯片的指令时间, 可以在官方数据手册上查到 MCU 的一些级别参数。比如我们现在用 AVR M16 做为主控芯片,外部 12MHz 晶振,指令周期就是一个时钟周Bb s . Cep a r k. co m事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG LCD 1602 E-mail:L 期为(1/12MHz)us,所以至少确定了它执行一条指令的时间是 us 级别的。我们看到,以上给的时间参数全部是 ns 级别的,所以即便我们在程序里不加延

12、时程序,也应该可以很好的配合 LCD1602 的时序要求了。怎么看这个表呢?很简单,我们在时序图里可以找到 TR1,对应时序参数表,可以查到这个是 E 上升沿/下降沿时间,最大值为 25ns,表示 E 引脚上的电平变化,必须在最大为 25ns 之内的时间完成。大家看是不是这个意思? 现在我来解读我对这个时序图的理解: 当要写命令字节的时候,时间由左往右,RS 变为低电平,R/W 变为低电平,注意看是RS 的状态先变化完成。然后这时,DB0DB7 上数据进入有效阶段,接着 E 引脚有一个整脉冲的跳变,接着要维持时间最小值为 tpw=400ns 的 E 脉冲宽度。然后 E 引脚负跳变,RS 电平变

13、化,R/W 电平变化。这样便是一个完整的 LCD1602 写命令的时序。 下面来看看 CEPARK AVR 开发板的 1602 显示部分原理图: 如你所见,KID 画的这个也太能省了,就直接接 1k 电阻了事.只有一点要说,就是这个解法,VL 脚也就是偏压信号脚的电压就是不可调的了,即对比度固定。 下面附上源程序, 里面做了详细注释, 希望第一次接触时序图的朋友可以好好对照一下时序图来分析程序。请点击以下链接下载附件,若无法点击则请复制粘贴: http:/ Bb s . Cep a r k. co m事无巨细,AVR 学习系列 BBS.CEAPRK.COM 发布 作者:LOSINGAMONG

14、LCD 1602 E-mail:L 作几点说明: 1、 LCD1602 对写进去的数据字节呢是以 ASCII 码识别的,所以写进去用以显示的字符数据必须是某一个 ADCII 码,当然如果你不想查 ASCII 表的话,可以用字符来代替,即用单引号包含的字符常量。所以,也由此推出,0和 30H(0 的 ASCII 码)是等价的。 2、 操作 1602,要先对 1602 进行初始化,数据手册里写的比较清楚,并且对各个命令字的写入并没有先后要求。 3、 1602 是有自定义字符的功能的,大家熟悉基本操作之后可以尝试自行拓展 4、 在每次写完数据之后,应该要将 E 引脚置为低电平,为下一次 E 的高脉冲做准备。延伸来说,这叫释放时钟线,要养成释放时钟线的好习惯。对配合时序大有裨益。 5、 可以将所要显示的字符一次定义在一个字符数组里,以调用字符数组的形式调用显示数据,这样程序会变得简洁而高效。 6、 记住时序的要求,往往是对最小时间有要求,在你严格配合时序的情况下仍然的不到理想的结果时,可以尝试插入延时。这个并不违反时序的要求。况且相当多的器件手册并没有详细的讲述最小时间要求。 最后附上运行照片,照的还是蛮清晰的: 果然还是蓝色的看着舒服

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号