>
首 页文章中心单片机论坛电脑援救中心杀毒软件下载电子元件速查集成电路速查客户留言下载中心商品展示频道繁體中文
设为首页
加入收藏
联系我们
您当前的位置:中国单片机网 -> 单片机讲座 -> 文章内容 退出登录 用户管理
栏目导航
· 经典软件 · 单片机讲座
· 电源技术 · 称重技术
· 硬件与电路 · 资料下载
· 淘宝商品 · 轻松一刻
· 金华电大资讯 · 胡老师招生
· l
热门文章
· [图文] 本站承接单片..
· 金华广播电视大学(金..
· 关于金华广播电视大..
· 关于金华广播电视大..
· [组图] 三极管s8050管..
· [组图] 9014三极管管..
· [组图] 三极管9012引..
· [组图] 中央广播电视..
· [组图] 三极管9013管..
· [组图] 万用表的使用..
相关文章
· LCD使用指南
· 如果你想慢性自杀 那..
· 使用光藕合器时应注..
· 干电池的选用与使用..
· 纽扣电池的选用与使..
· 蓄电池的选用与使用..
· 硅光电池的选用与使..
· 使用数字万用表判断..
· 安利皇后牌钢锅知识..
· 常用发射三极管的使..
使用单片机的普通端口驱动 LCD
作者:本站  来源:www.chinadpj.com  发布时间:2008-6-13 23:55:21  发布人:admin

减小字体 增大字体

使用单片机的普通端口驱动 LCD

    在单片机开发和单片机技术应用中,使用字段型液晶显示屏幕时,经常会使用自带驱动 LCD 功能的单片机,造成单片机引脚太多,或者,另外专门配置一个驱动 LCD 的芯片,造成成本高,占地大...,当需要驱动的 LCD 内容不是太多时,往往觉得很不方便,很不经济.

     许多民用小电器,屏幕显示内容往往比较简单,所需要驱动的笔段不会太多,这时候,可以利用单片机的普通 I/O 双向端口,对屏幕进行驱动.经过实际对 2 个 COM, 3 个 COM, 4 个 COM 驱动的屏幕的实践应用,证明此法可行,对民用小产品的压成本,简化电路有极大的好处.但是,当对低功耗指标要求较高时---例如要求打开显示待机几个 uA 的电流,此方法就不能使用了.

   用于驱动 LCD 的端口,当把端口设置为输出模式时,利用端口配合外部的上拉和下拉电阻,可以输出 V+,GND 2 种电平,当把其设置为输入模式时(不要使用端口内部的上拉或者下拉电阻,以免与外部上拉或下拉电阻不匹配),可以输出 V+/2 电平.

   通常,驱动液晶屏幕上的字段都要求交流驱动,分析其驱动波形,得知只有在 COM 与 SEG 的电压相反而且达到足够的驱动电压时,对应的笔段才会显示出来.

   根据以上所述,可以固定让 SEG 仅仅输出 V+ 或者 GND ,利用 COM 输出 V+/2 来关闭显示,利用 COM 输出 GND 或者 V+ 来正常显示驱动,就可以兼顾关闭(不显示)和交流驱动的目的了.--------也可以固定让 COM 仅仅输出 V+ 或者 GND ,利用 SEG 输出 V+/2 来关闭显示,利用 SEG 输出 GND 或者 V+ 来正常显示驱动,道理是一样的.后一种方法需要占用更多的程序指令.

   实际做法:以 4 个 COM 口的 3 个 8 字屏幕为例,假定使用单片机的 P0.0,P0.1,P0.2,P0.3 来担任 COM0~COM3,而使用单片机的 P1.0~P1.5 来担任 SEG .它们的逻辑表格一般如下:

编号

最高位 8

中间位 8

最低位 8

COM0

A0

E0

A1

E1

A2

E2

COM1

B0

F0

B1

F1

B2

F2

COM2

C0

G0

C1

G1

C2

G2

COM3

D0

DP0

D1

DP1

D2

DP2

P00~P03

P15

P14

P13

P12

P11

P10

   实际各个屏幕的引脚逻辑关系会与此表格不同,但是道理一样.它们根据 COM 数量来使用 SEG 的引脚数量,4 个 COM 的需要 2 SEG 引脚(列)来分配一个 8 字的 8 个笔段,3 个 COM 的需要 3 SEG 引脚(列)来分配一个 8 字的 8 个笔段.....

   单片机上电初始化时,把 P00~P03 都设置为输入模式,关闭全部显示.-----这时候,如果把所有笔段都消隐,那么,屏幕应该干干净净没有任何笔段显示.这是判断交流驱动逻辑关系是否正确和成功的一步检查方法.

   按照一个 8 字的笔段, COM0~COM3 对应的 SEG 栏编制笔段显示表格,这与普通驱动 LED 数码管的方法不相同,因为这里每次查表得到的显示数据是全部各位 8 字公共具有的,例如上面的表格,对应全部 COM 栏,就是:AEBFCGDDP,按照 0~9 分析各笔段,就可以根据它们是否需要显示而编写,然后,对需要显示的内容利用 3 次查表,得到 3 位 8 字的显示笔段码,在第一次查表后(假设是最高位的 8 ),就得把显示数据分别移到 4 个显示暂存器的 BIT5, BIT4 去,在第二次查表后(中间位),就得把显示数据分别移到 4 个显示暂存器的 BIT3, BIT2 去,在第三次查表后(最低位 8 ),就得把显示数据分别移到 4 个显示暂存器的 BIT1, BIT0 去---这样,把所有准备显示的内容都一一就位了.

   进行显示:由于液晶屏幕显示交流驱动,可以按照 50/S 或者 60/S 次来决定显示速率,利用单片机的一个定时器产生定时中断,专门管理液晶显示.按照上面的示例,4 个 COM 需要 4 次来显示,又由于显示需要交流驱动,就是把每次显示分割为 2 次反相驱动,4*2=8,这样,中断时间就是:1000mS/8/50=2.5mS,定时器需要的中断间隔时间就是 2.5mS.

   分次显示程序编写顺序:(中断定时间隔2.5mS).(使用中文描述是因为具体到指定型号单片机时,指令与其它单片机不相同).

 

第 1 次:进入中断全部 COM 输出V+/2

笔段显示暂存器0需要显示的位=0→P1


不显示的位=1.然后COM0=1

其余COM=0.

第 2 次:进入中断全部 COM 输出V+/2

笔段显示暂存器0需要显示的位=1→P1

不显示的位=0.然后COM0=0

其余COM=1.

第 3 次:进入中断全部 COM 输出V+/2

笔段显示暂存器1需要显示的位=0→P1

不显示的位=1.然后COM0=1

其余COM=0.

第 4 次:进入中断全部 COM 输出V+/2

笔段显示暂存器1需要显示的位=1→P1

不显示的位=0.然后COM0=0

其余COM=1.

第 5 次:进入中断全部 COM 输出V+/2

笔段显示暂存器2需要显示的位=0→P1

不显示的位=1.然后COM0=1

其余COM=0.

第 6 次:进入中断全部 COM 输出V+/2

笔段显示暂存器2需要显示的位=1→P1

不显示的位=0.然后COM0=0

其余COM=1.

第 7 次:进入中断全部 COM 输出V+/2

笔段显示暂存器3需要显示的位=0→P1

不显示的位=1.然后COM0=1

其余COM=0.

第 8 次:进入中断全部 COM 输出V+/2

笔段显示暂存器3需要显示的位=1→P1

不显示的位=0.然后COM0=0

其余COM=1.

重新开始第 1 次...

......

......

......

     做过 LED 数码管的人员都知道,这里的显示流程多了一步:就是查表后,不能象数码管显示一样直接送端口,而是必须按照液晶屏幕的 COM 数量,把显示笔段数据移到与各 COM 驱动对应的各位 8 字指定位置----即多了几个显示暂存器.

    至于交流驱动,倒是不用花费过多精力,只要定时把 COM 与笔段显示暂存器同时反相就可以了.

   笔者使用这种驱动方法,成功做过许多实例项目,包括 2~4 个 COM 的,不用理会其是 1/2bias 还是 1/3bias,全部一律对待.----有点凑合吧,否则就比较麻烦了.----如果项目开工时就考虑到液晶屏幕使用普通端口驱动,那么,当然做成 1/2bias 要比  1/3bias 好一些.

   至于显示效果,当然,屏幕驱动电压本身的参数最好就是 5V 的,如果是<5V的,可以简单地调整单片机的供电电压来达到显示模糊或者鬼影.现在许多单片机都可以在 2.2V~5.0V 下正常工作,凑合屏幕电压是很方便的.但是,必须同时考虑到实现其它功能时,新的供电电压是否有影响其它功能.做到事前有统一安排.

[本站 www.chinadpj.com(中国单片机网),摘自  http://www.dfmg08.cn/jishujiaoliu-08003.html 作者:江雪山 ]

[] [返回上一页] [打 印] [收 藏]
下一篇文章:561
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论…]
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 管理登录
Copyright © 2002-2009 www.chinadpj.com. All Rights Reserved. 浙ICP备06040125号
Powered by:NewAsp SiteManageSystem Version 2.1 SP1 1030