一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
楼主: 无锡风
收起左侧

[其他综合] 【12864LCD(中文来电显示器)】的测试和利用

  [复制链接]
发表于 2010-1-28 19:16 | 显示全部楼层
时钟IC建议用DS12C887,淘宝上有售,5元一片,精度高,内在电池,连2032电池都省了
发表于 2010-1-28 19:43 | 显示全部楼层
谢谢冯老师,就是四个电解,五个瓷片,您一定试验了很多次才能确认的,辛苦了
发表于 2010-1-28 20:26 | 显示全部楼层
DS12887是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日将从19递增到20。

    采用DS12887芯片设计的时钟电路无需任何外围电路和器件,并具有良好的微机接口。DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统中。

    DS12887主要功能简介

(1)内含一个锂电池,断电后运行十年以上不丢失数据。

(2)计秒,分,时,天,星期,日,月,年,并有闰年补尝功能。

(3)二进制数码或BCD码表示时间,日历和定闹。

(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能。

(5)Motorola和Intel总线时序选择。

(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。

(7)可编程方波信号输出。

(8)中断信号输出(IRQ)和总线兼容,定闹中断,周期性中断、时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。

    原理及引脚说明

    DS12887内部由振荡电路,分频电路,周期中断/方波选择电路,14字节时钟和控制单元,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。DS12887引脚分配如图1:

    Vcc:直流电源+5V电压。当5V电压在正常范围内时,数据可读写;当Vcc低于4.25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。

    MOT(模式选择):MOT引脚接到Vcc时,选择MOTOROLA时序,当接到GND时,选择Intel时序。

    SQW(方波信号输出):SQW引脚能从实时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。

    AD0-AD7(双向地址/数据复用线):总线接口,可与Motorola微机系列和Intel微机系列接口。

    AS(地址选通输入):用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12887。

    DS(数据选通或读输入):DS/RD引脚有两种操作模式,取决于MOT引脚的电平,当使用Motorola时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指示DS12887驱动双向总线的时刻;在写周期,DS的后沿使DS12887锁存写数据。选择Intel时序时,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。

    R/W(读/写输入):R/W引脚也有两种操作模式。选Motorola时序时,R/W是低电平信号时,指示当前周期是读或写周期,DS为高电平时,R/W高电平指示读周期,R/W信号一低电平信号,称为WR。在此模式下,R/W引脚与通用RAM的写允许信号(WE)的含义相同。

    CS(片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。

    IRQ(中断申请输入):低电平有效,可作微处理的中断输入。没有中断的条件满足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上接电阻。

    RESET(复位输出):当该脚保持低电平时间大于200ms,保证DS12887有效复位。

    内部功能

    地址分配

    DS12887的地址由114字节的用户RAM存放。10字节的存放实时时钟时间,日历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接读写。

    时间,日历和定闹单元

    时间和日历信息通过读相应的内存字节来获取,时间,日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或BCD形式。时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高门为逻辑“1”代表PM。时间,日历和定闹字节是双缓冲的,总是可访问的。每秒钟这10个字节走时1秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。第一种,当定闹时间写入相应时,分,秒,定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。第二种,在三个定闹字节中插入一个或多个不关心码。不关心码是任意从O0到FF的16进制数。当小时字节的不关心码位置位时,定闹为小时发生一次;同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。

非易失RAM

在DS1288中,114字节通用非易失RAM不专用一任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问。

中断

RTC实时时钟加RAM向处理器提供三个独立的,自动的中断源。定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122s选择。更新结束中断用于向程序指示一个更新周期完成。中断控制和状态位在寄存器B和C中,本文的其它部分将详细描述每个中断发生条件。

晶振控制位

DS12887出厂时,其内部晶振被关掉,以防止钽电池在芯片装入系统前被消耗。寄存器A的BIT4-BIT6的其它组合都是使晶振关闭。

方波输出选择

15级分频抽头中的13个可用于15选1选择器,选择分频器抽头的目的是在SQW引脚产生一个方波信号,其频率由寄存器A的RS0-RS3位设置。SQW频率选择器与周期中断发生器共有15选1选择器,一旦频率选择好,通过用程序控制方波输出允许位SQWE来控制SQW引脚输出的开关。

周期中断选择

周期中断可在IRQ脚产生500ms一次到每122μs一次的中断,中断步率同样由寄存A确定,它的控制位为寄存器B中的PIE位。

更新周期

DS12887每一秒执行一次更新周期,保证时间、日历的准确。更新周期还比较每一定闹字节与相应的时间字节,如果匹配或三个字节都是不关心码,则产生一次定闹中断。

    状态控制寄存器

DS12887有4个控制寄存器,它们在任何时间都可访问,即使更新周期也不例外。

寄存器A

UIP:更新周期正在进行位。当UIP为1,更新转换将很快发生,当UIP为0,更新转换至少在244s内不会发生。DV0、DV1、DV2:用于开关晶振和复位分频链。这些位的010唯一组合将打开晶振并充许RTC计时。

RS3、RS2、RS1、RS0:频率选择位,从15级频率器13个抽头中选一个,或禁止分频器输入。选择好的抽头用于产生方波(SQW引脚)输出和周期中断,用户可以:

(1)用PIE位允许中断。

(2)用SQWE位允许并用相同的频率。

寄存器B、C、D的介绍从略
 楼主| 发表于 2010-1-29 07:28 | 显示全部楼层
时钟IC建议用DS12C887,淘宝上有售,5元一片,精度高,内在电池,连2032电池都省了
yleee 发表于 2010-1-28 19:16 https://www.yleee.com.cn/images/common/back.gif


DS12C887 的确是好东西。
不过,使用在这里有些“麻烦”——DS12C887芯片比较大(印象中有51的3/4)、需要的端口多;
放在现在的单面板上面,由于需要和外壳配合,安排和走线有些难?
发表于 2010-1-29 09:50 | 显示全部楼层
本帖最后由 cosine 于 2010-1-29 12:16 编辑
时钟IC建议用DS12C887,淘宝上有售,5元一片,精度高,内在电池,连2032电池都省了
yleee 发表于 2010-1-28 19:16 https://www.yleee.com.cn/images/common/back.gif



    个人觉得12887不太适合这个案例。12887的驱动很简单,就是一个128B的片外RAM。但这东东如果想编程简单就得用P0口,此外还需要P3.6/P3.7作读写信号线,一共就需要10个I/O,不知道是否能应付得了。此外这东东确实比较大,不光是无老师说的面积问题,还有高度问题,这玩艺儿和LED数码管的高度差不多。

最近熊作实验用的就是这个,感觉是编程很简单(直接用Ri 作间址MOVX就成),但也有资料说因为读写时序比较简单易受干扰(就是片外RAM读写时序),串行的虽然编程复杂,但因为时序复杂抗干扰能力也强。不过这东东内带晶振,稳定性应该不错,因为1302都是自配钟振,一个在片外受温度等影响会有偏差,二是自己配的质量不一定好,所以1302不准的说法常见于网上。

另外这东东当心不用的时间太长电池失效,用的时候先读0d单元的值,如果最高位为1(读出值为80H)则可用。详细实验见CT我的实验贴:

http://ctwxdc.512j.com/viewthread.php?tid=38431
发表于 2010-1-29 09:54 | 显示全部楼层
DS12887是美国达接斯半导体公司(Dallas)最新推出的串行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBM AT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日将从19递增到20。...
yleee 发表于 2010-1-28 20:26 https://www.yleee.com.cn/images/common/back.gif


补充一下,只有12C887才用32H单元存世纪,12887是没有的。另外觉得这个功能没什么鸟用,一来现在已经是21世纪了,自己在前面写个20就行,另外经测试发现星期单元数值和年月日没有关系,所以这个单元实属鸡肋。
发表于 2010-1-29 10:01 | 显示全部楼层
多认识了一些知识,谢谢各位解答
发表于 2010-1-29 17:47 | 显示全部楼层
个人觉得12887不太适合这个案例。12887的驱动很简单,就是一个128B的片外RAM。但这东东如果想编程 ...
cosine 发表于 2010-1-29 09:50 https://www.yleee.com.cn/images/common/back.gif


用你找到的那个pic18f6520芯片可解决占用io口多的问题。
发表于 2010-1-29 17:54 | 显示全部楼层
用你找到的那个pic18f6520芯片可解决占用io口多的问题。
phone 发表于 2010-1-29 17:47 https://www.yleee.com.cn/images/common/back.gif



    那东东倒是I/O多,好象是52条,呵呵,赛蜈蚣了。不过18F6520没有外扩的能力,不象标准51,所以如果要用12887需要用软件模拟片外RAM的读写时序,编程就又变得复杂了,那样我感觉还不如用1302呢,还省地方,最省事的应该是用PCF8583,标准I2C的片子,PIC的片子一般都带同步口,比用软件模拟读写简单。1302嘛咋都得模拟,嘻嘻。
发表于 2010-1-31 18:05 | 显示全部楼层
本帖最后由 litchiate 于 2010-1-31 19:25 编辑

花了一个下午,用来飞线,固定.
插上M32 ,显示 曹香鹏 的程序,
不过左边有几列杂点,显示有点偏移,不知什么问题. 回头再看.

感觉还是另外做块板方便.

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-18 11:20 , Processed in 0.054213 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表