| 网站首页 | 技术文章 | 专业论文 | PLC可编程 | 单片机 | 变频器 | 传感器 | 嵌入式系统 | 电源技术 | 运动与伺服 | 
 | 校园招聘 | 留言板 | 
您现在的位置: 自动化学习网 >> 技术文章 >> 单片机 >> 文章正文 用户登录 新用户注册
[组图]实时时钟电路MC146818A与单片机的接口及编程            【字体:
实时时钟电路MC146818A与单片机的接口及编程
作者:佚名    文章来源:不详    点击数:    更新时间:2007-5-11    

  摘要:本文在分析了实时时钟电路MC146818A的结构与性能的基础上,详细讨论了它与89C51单片机的接口电路,并对软件编程进行了描述。
    关键词:实时时钟;单片机;接口;MC146818A

    实时时钟电路是控制系统中常用的功能模块。MC146818A是专用于各类微处理器与单片机系统的时钟集成电路。它带有50字节的低功耗静态RAM,可进行时、分、秒和年、月、日及星期的计数,并有自动的月结束识别和闰年处理功能,具有12/24小时和AM/PM的12小时计时功能,既可与 Motorola系列的单片机接口[1],又可与Intel的微处理器接口。本文详细讨论MC146818A与89C51单片机的接口。

1.MC146818A的结构

  MC146818A有双列直插式DIP和PLCC两种封装,图1为双列直插式封装引脚图。下面详细介绍各引脚功能。
  VDD:电源线,可以为3DC~6V;
  VSS:地线,信号、电源地;
  MOT:单片机类型选择线,当MOT接VDD时,选择Motorola总线时序;当MOT接VSS时,选择Intel类型总线,如8051、8085等;
  OSC1、OSC2:时间基准输入线,可接外部信号源或晶振。在时钟电路中,一般接32.768kHz的晶振;
  CKFS:时钟频率输出选择线,当CKFS接VDD时,CKOUT引脚输出频率为晶振频率;当CKFS接VSS时,CKOUT引脚输出频率为晶振频率的1/4;
  CKOUT:时钟输出线;
  SQW:方波输出线;
  AD0~AD7:双向地址/数据总线;
  AS/ALE:地址锁存线;
  DS/RD:读信号线;
  R/WR:写信号线;
   CS:片选线;
  IRQ:中断请求线INT;
  RESET:复位信号线;
  PS:电源检测信号线,用来控制寄存器D的VRT位;
  STBY:掉电检测线,当此线为低时,禁止访问芯片,这有利于电池供电。由于MC146818A采用高速CMOS工艺,对于32.768kHz晶振频率,当VDD为5V时,消耗电流为50μA,因此可以采用后备电池方式,以确保主电源失电后,时钟仍正常工作。

2. MC146818A与89C51单片机的接口电路

    MC146818A与89C51单片机的接口电路如图2所示。
  上电时,必须保护U2的PS引脚在tPLH时间的低电平,以建立一个过渡状态。上电后,应升高PS引脚电平到VCC,以允许通过读寄存器来把VRT置位。
  将U2的AD0~AD7与单片机P0口数据/地址复用总线相连,并将单片机的ALE、WR、RD、INT1信号线一一对应接到时钟电路U2的引脚,即可完成硬件接口,通过片选CS,选中U2,然后对其进行读/写操作。

3.软件编程

  MC146818A时钟电路的内部地址空间如表1所列。
  对MC146818A的编程,主要是通过它的寄存器A、B、C、D设置工作状态实现的。下面着重分析这四个寄存器。
  (1)寄存器A:用来确定基准频率和分频计数器的输出频率,它的格式为:

  各位定义为:
  D7-U1P,只读位。“1”表示正在更新,“0”表示可读时间、闹钟和日历值。
  D6D5D4-DV2DV1DV0,可读写,不受RESET影响,用于选择基准频率,对于32.768kHz晶振,D6D4应清零,D5置1。
  D3D2D1D0-RS3RS2RS1RS0,可读写,不受RESET影响,通过SQW引脚输出方波及中断周期。选择分频输出频率。
  (2)寄存器B:用来确定更新周期、各种中断的许可、数据格式、计时方式和输出方波的许可。可读写。它的格式为:

  各位定义为:D7-SET为“0”表示允许周期更新,“1”停止周期更新,以便对时间和日历进行初始化;
  D6-P1E:“1”表示允许周期中断,激活IRQ;“0”表示禁止周期中断;
  D5-A1E:“1”表示允许闹钟中断,0”表示禁止。
  D4-U1E,“1”表示允许周期更新“结束位激活IRQ,“0”表示禁止;
  D3-SQWE:“1”表示允许方波由SQW引脚输出,“0”表示禁止,并使SQW始终为低电平;
  D2-DM:数码格式选择。“1”选择二进制码,“0”选择十进制码;
  D1-12/24:小时选择,“1”表示时间单元为24小时计时,“0”表示时间单元为12小时计时,这样,地址单元4与5的最高位“0”为AM,“1”为PM。
  D0-DSE:夏令时允许位,“0”为禁止。
  (3)寄存器C:只读、中断标志位。
  它的格式为:

  各位定义为:D7-IRQF:中断请求标志,为“1”时IRQ引脚输出低电平。
  D6-PF:周期中断标志位;
  D5-AF:闹钟中断标志位;   
  D4-UF:周期更新完成标志位。

  只有当寄存器B的P1E,A1E,U1E为1时,才会触发PF,AF,VF三个位中断,并使IRQF置位。
  (4)寄存器D:只读,表示RAM和时间是否有效,只考虑D7位VRT,其余均不考虑。当引脚PS为高电平时,VRT为“1”,表示RAM与时钟信息为可读,若PS引脚为低电平,则VRT=0,此时信息不可读。
  通过以上对四个控制器的分析,得出MC146818A的编程流程如图3所示。
  硬件连接及软件设计好后,MC146818A就可开始工作,进入计时状态。对于32.768kHz晶振,更新时禁止读写时间为1948μs,其余时间均可对有关单元进行读写。

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      最新热点   最新推荐   相关文章
    基于PIC的无线数据传输发射机…
    基于PSD3XX与ADMC401接口设计…
    基于ST72单片机的快速充电系…
    基于单片机的MicroDrive接口…
    基于单片机的喷墨打印机控制…
    利用ASSP实现成本节约,加速…
    如何仿真单片机的外围设备
    非接触式e5551读写器的开发
    基于80C166单片机PEC服务的P…
    基于8位微控制器控制硬盘进行…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)