• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 测试测量 > 技术文章 > 8098单片机实现日历时钟的显示方法

8098单片机实现日历时钟的显示方法

录入:edatop.com    点击:

    引言 MC146818是MOTOROLA公司生产的CMOS型实时时钟集成电路,内含MOTOROLA和INTEL总线时序选择,通过总线可以很方便地和各种微处理器直接接口。它具有日历、时钟、计时,可编程定时中断、方波发生器,并能提供50字节低功耗静态RAM。MC146818用在自动化柴油发电机组微机控制系统中主要用来记载市电投入时间、供电时间、机组启动、机组运行时间以及所有系统中出现故障时的时间。

    1 MC146818功能简介

    1.1 内部带时基和振荡电路,振荡频率可选择4.194303MHZ、1.048576MHZ或32.768MHZ。

    1.2 低功耗,电源电压范围为3V~6V。在32.768MHZ频率时,电流小于50μA,在4.194304MHZ频率时,电流小于3mA。

    1.3 可计数每天的秒、分、时和日期、星期几、月份、年份。

    1.4 具有夏时制转换、月份自动递进和闰年自动补偿功能。

    1.5 具有三种可由软件屏蔽、测试的中断。

    1.6 日历、时钟、闹钟数据格式可选择二进制或BCD码表示。

    1.7 通过软件可访问64字节RAM存贮器,其中14字节为时钟和控制寄存器,50字节为用户自定义通用RAM。

    1.8 能输出频率为1或1/4时基频率的时钟。

    1.9 可选择24小时或带AM/PM的12小时计时功能。

    2 MC146818与8098接口设计

    接口设计应实现:①8098能对MC146818进行数据读写。②主电源下降时,主电源和备用电源能自动切换,并能对内部RAM数据进行写保护。③读取的时间值能显示在液晶显示屏上(见图1)。

    图中MC146818引脚OCS1、OCS2时间基准输入线,CKOUT时钟输出端,CKFS时钟输出频率选择,SQW方波输出线,AD0-AD7双向地址/数据总线,AS地址选通信号输入线,R/W读写控制信号输入线,CE片选信号输入线,IRQ中断请求输出线,REST复位信号输入线,Ps电源检测信号输入线。

    MGL(s)10032B引脚V0液晶显示对比度调节电压,A0数据/指令通道选择信号输入线,H:选择数据通道,L:选择指令通道,R/W读写信号,E1、E2片选信号,D0-7数据总线。

    MAX691A微处理监控器完成电源检测,主电源和备用电池自动切换,RAM写保护,系统复位等功能。

    3 MC146818使用方法

    3.1 地址映象(图2)

    由地址映象图可知,10个字节用于寄存时间,日历和闹钟的数据,4个字节用作寄存器A、B、C、D,用来寄存状态信息和控制信息,其中除了寄存器C、D、A中的最高位和秒字节的最高位仅能读不能写以外,其余均可直接由程序直接读写。

    CPU可通过初始化写来实现时间、日历、闹钟的初值,也可通过读将当前的时间、日历、闹钟值显示在液晶显示屏上。字节的代码可以是二进制,也可以是BCD码。

    时间、日历和闹钟单元初值的设置应通过初始化内部寄存器B,将B中的SET位置“1”,从而禁止时间/日历更新发生,使程序按指定的格式对这10个字节进行初始化,然后可清零STE位以重新计时更新。50个通用RAM字节由程序任意读写。

    3.2 中断

    MC146818提供三个独立的中断源:闹时中断、定时中断、更新结束中断,具体选择由CPU对寄存器B中的PIE、AIE、UIE设置来决定,中断的标志由寄存器C中的IRQF提供,其状态由下式决定:

    IRQF=PF·PIE+AF·AIE+UF·UIE

    其中PF、AF、UF是设置在寄存器C中的三个中断源的标志位

    3.3 分频器

    3.3.1 分频器控制

    分频器控制由寄存器A中的DV2、DV1、DV0设置,利用它们可选择三种时基:4.194303MHZ、1.048576MHZ、32.768KHZ。

    3.3.2时钟输出选择

    通过时钟频率选择脚的两种状态和时基频率的组合,能输出8种时钟频率以供其它集成电路之用。

    3.3.3 方波输出选择

    由寄存器A中的RS3-RS0四位决定,其输出的方波可用作外部频率标准等。

    3.4 更新周期

    更新周期的基本功能是时钟日历计数,使秒字节内容加1,若有溢出则分字节内容加1,若分字节有溢出,则时字节内容加1,……,直到年字节。更新周期时间为248us (对4. 19MHZ或1.048576MHZ),或1984μS(对32.768KHZ)。在更新周期,寄存器A中的UIP置位“0”,此时CPU若进行访问时间、日历和闹钟字节,读这些字节得到的数值是不准确的。

    为了能正确地访问时间和日历信息,有三种方法可供选择:

    ①利用更新结束中断。因每次更新周期结束产生中断,利用中断服务程序,CPU读取时间和日历的值,在退出中断服务程序之前,CPU应对寄存器C中的IRQF、PF位清零。

    ②查询法:查询寄存器A中的UIP位判断MC146818是否进入更新周期。UIP位每秒置一次,若读到UIP位为高电平,记时至少在244us时间内不会发生更新,因此CPU可在这段时间内读取要读的信息。

    ③定时中断。利用定时中断来判定MC146818是否进入更新周期。

    4 软件设计

    8098单片机与MC146818实时时钟及液晶显示器的接口软件包括实时时钟初始化,液晶显示器初始化,日历时钟的读取和显示三部分。

    4.1 MC146818实时时钟初始化

    4.2 液晶显示器初始化

    CPU每次对液晶显示器进行访问,都要先读状态寄存器,判断是否处于“准备好状态”,只有处于“准备好状态”才能进行读写操作。

    4.3 日历时钟数据的读取和显示

    本文作者:徐创文

点击浏览:矢量网络分析仪、频谱仪、示波器,使用操作培训教程

上一篇:原子力显微镜的力曲线分析与转化
下一篇:基于光纤的三维电子散斑干涉测量系统设计

微波射频测量操作培训课程详情>>
射频和天线工程师培训课程详情>>

  网站地图