zoukankan      html  css  js  c++  java
  • 关于DS12C887 以外部RAM方式访问

    DS12C887 的引脚排列如图1 所示,各管脚的功能说明如下:
    GND、VCC:直流电源,其中VCC 接+5V 输入,GND 接地,当VCC 输入为+5V 时,用
    户可以访问DS12C887 内RAM 中的数据,并可对其进行读、写操作;当VCC 的输入小于
    +4.25V 时,禁止用户对内部RAM 进行读、写操作,此时用户不能正确获取芯片内的时间信
    息;当VCC 的输入小于+3V 时,DS12C887 会自动将电源发换到内部自带的锂电池上,以保证
    内部的电路能够正常工作。
    MOT:模式选择脚,DA12C887 有两种工作模式,即Motorola 模式和Intel 模式,当MOT
    接VCC 时,选用的工作模式是Motorola 模式,当MOT 接GND 时,选用的是Intel 模式。本
    文主要讨论Intel 模式。
    SQW:方波输出脚,当供电电压VCC 大于4.25V 时,SQW脚可进行方波输出,此时用
    户可以通过对控制寄存器编程来得到13 种方波信号的输出。
    AD0~AD7:复用地址数据总线,该总线采用时分复用技术,在总线周期的前半部分,出
    现在AD0~AD7 上的是地址信息,可用以选通DS12C887 内的RAM,总线周期的后半部分出
    现在AD0~AD7 上的数据信息。
    AS:地址选通输入脚,在进行读写操作时,AS 的上升沿将AD0~AD7 上出现的地址信
    息锁存到DS12C887 上,而下一个下降沿清除AD0~AD7 上的地址信息,不论是否有效,
    DS12C887 都将执行该操作。
    DS/RD:数据选择或读输入脚,该引脚有两种工作模式,当MOT 接VCC 时,选用
    Motorola 工作模式,在这种工作模式中,每个总线周期的后一部分的DS 为高电平,被称为数
    据选通。在读操作中,DS 的上升沿使DS12C887 将内部数据送往总线AD0~AD7 上,以供外
    部读取。在写操作中,DS 的下降沿将使总线AD0~AD7 上的数据锁存在DS12C887 中;当
    MOT 接GND 时,选用Intel 工作模式,在该模式中,该引脚是读允许输入脚,即Read
    Enable。
    R/W:读/写输入端,该管脚也有2 种工作模式,当MOT 接VCC 时,R/W工作在
    Motorola 模式。此时,该引脚的作用是区分进行的是读操作还是写操作,当R/W 为高电平时
    为读操作,R/W为低电平时为写操作;当MOT 接GND 时,该脚工作在Intle 模式,此时该作
    为写允许输入,即Write Enable。
    CS:片选输入,低电平有效。
    IRQ:中断请求输入,低电平有效,该脚有效对DS12C887 内的时钟、日历和RAM 中的
    内容没有任何影响,仅对内部的控制寄存器有影响,在典型的应用中,RESET 可以直接接
    VCC,这样可以保证DS12C887 在掉电时,其内部控制寄存器不受影响。
    在DS12C887 内有11 字节RAM用来存储时间信息,4 字节用来存储控制信息,其具体垢
    地址及取值如表1 所列。
    由表1 可以看出:DS12C887 内部有控制寄存器的A-B 等4 个控制寄存器,用户都可以在
    任何时候对其进行访问以对DS12C887 进行控制操作。
    表1 DS12C887 的存储功能
    取值范围
    地 址 功 能 取值范围十进制数
    二进制 BCD码
    0 秒 0~59 00~3B 00~59
    1 秒闹铃 0~59 00~3B 00~59
    2 分 059 00~3B 00~59
    3 分闹铃 0~59 00~3B 00~59
    12 小时模式 0~12 01~0C AM,
    81~8C PM
    01~12AM,
    4 81~92PM
    24 小时模式 0~23 00~17 00~23
    时闹铃,12 小时制 1~12 01~0C AM,
    81~8C PM
    01~12AM,
    5 81~92PM
    时闹铃,24 小时制 0~23 00~17 00~23
    6 星期几(星期天=1) 1~7 01~07 01~07
    7 日 1~31 01~1F 01~31
    8 月 1~12 01~0C 01~12
    9 年 0~99 00~63 00~99
    10 控制寄存器A
    11 控制寄存器B
    12 控制寄存器C
    13 控制寄存器D
    50 世纪 0~99 NA 19,20
    3 应用
    在各种设备、家电、仪器、工业控制系统中,可以很容易地用DS12C887 来组成时间获取
    单元,以实现各种时间的获取。图2 是用8031 单片机和DS12C887 构成的时间获取电路图,
    其中DS12C887 的基地址为7F00H,相应的程序采用C51 语言编写(以Intel 工作模式为
    例)。 DS12C887中文资料


    由8031 单片机和DS12C887 构
    成的时间获取电路的初始化程序如
    下:
    XBYTE[0x7F00+0x0B]=0x82;
    XBYTE[0x7F00+0x0A]=0xA0;
    XBYTE[0x7F00+0x0A]=0x20;
    XBYTE[0x7F00+0x0B]=0x02;

    以下均获取时间程序:
    unsigned char data t-century;
    unsigned char data t-year;
    unsigned char data t-month;
    unsigned char data t-date;
    unsigned char data t-week;
    unsigned char data t-hour;
    unsigned char data t-minute;
    unsigned char data t-second;
    if((XBYTE[7F00+0x0A]&0x80)!=0){
    t-century=XBYTE[0x7F00+0x32];
    t-year=XBYTE[Ox7F00+0x09];
    t-month=XBYTE[Ox7F00+0x08];
    t-date=XBYTE[Ox7F00+0x07];
    t-week=XBYTE[Ox7F00+0x06];
    t-hour=XBYTE[Ox7F00+0x04];
    t-minute=XBYTE[DS12887+0x02];
    t-second=XBYTE[Ox7F00+0x00];}

  • 相关阅读:
    MRC下多个对象的内存管理
    MacOS安装flutter(MacOS下flutter环境配置)
    swift 简化使用UserDefaults,UserDefaults使用优化
    swift中多继承的实现
    iOS blowfish加密解密
    *** Assertion failure in void UIViewReportBrokenSuperviewChain(UIView *__strong, UIView *__strong, BOOL)()
    iOS建立自己cocoaPods库
    iOS关于UISwitch按钮值的改变无法监听到的问题
    iOS 11 UICollectionView顶部出现白色间隔的问题
    iOS 对UIAlertController内的输入框进行输入监听,实时改变确定、取消按钮颜色
  • 原文地址:https://www.cnblogs.com/wangyuezhuiyi/p/3185791.html
Copyright © 2011-2022 走看看