毕业设计电子日历(4)

2020-03-26 23:04

择INTEL时序。

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

AD0~AD7(双向地址数据复用线):总线接口即MOROROLA微机系列和INTEL微机系列接口。

AS(地址选通输入):用于实现信号分离,在ADALE的下降沿把地址锁入DS12C887。 DS(数据选通或读输入):DSRD客脚有两种操作模式,取决于MOT管脚放的电平,当使用MOTOROLA时序时,DS时一正脉冲,出现在总线周期的后段称为数据选通;在读周期DS指示DS12C887驱动双向总的时刻,在写周期DS的后沿使DS12C887锁存写数据。选择INTEL时序时DS称作(RD),RD与典型存储器的允许信号(OE)的定义相同。

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

CS(片选输入):在访问DS12887的总线周期内,片选信号必须保持为低。 IRQ(中断申请输入):低电平有效,可作微处理的中断输入。没有中断条件满足时,IRQ处于高阻态。IRQ线是漏极开路输入,要求外接上接电阻。

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

DS12C887内部由振荡电路、分频电路、周期中断/方波选择电路,14字节时钟和控制单元,114字节用户非易失RAM,十进制/二进制累加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。Vcc:直流电源+5V电压。当5V电压在正常范围内时,数据可读写,当Vcc低于4。25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。 3.4.3 DS12C887的中寄存器的功能和作用

DS12887内部RAM和专用寄存器地址功能,地址00H~03H单元取值范围是00H~3BH(10进制0~59);04H~05H单元按12小时制取值范围是上午(AM)01H~0CH(1~12),下午(PM)81H~8CH(81~92)按24小时制取值范围使00H~17H(1~23);06H

13

单元取值范围使00H~07H(0~7);07H单元取值范围01H~1FH(1~31);08H单元取值范围是01H~0CH(1~12);09H单元取值范围是00H~63H(0~99)。DS12C887的RAM和各专用寄存器的访问如下实现,若片选地址DS=#0DDXXH,则芯片内部RAM和寄存器和地址为#0DD00H~#ODD7FH。应指出的是,尽管DS12C887的专用时标年寄存器只有一个,但通过软件编程可利用其内部的不掉电的RAM区的一个字节实现年度的高两位显示。

寄存器A

寄存器A各位不受复位的影响,UIP位为只读位,其它各位可读写,寄存器的控制字的格式。

A、UIP位:更新周期标志位。该位为“1”时,表示芯片正处于或将开始更新周期,此时程序不准读写师表寄存器;该位为“0”时,表示至少在244us后开始更新周期,此时程序可读芯片内时标寄存器。该位是只读位。

B、DV0、DV1、DV2:芯片内部震荡器RTC控制位。当芯片接触复位状态,并将010写入DV0、DV1、DV2后,另一个更新周期将在500ms后开始。因此,在程序初始化时可用这三各精确地使芯片在设定的时间开始工作。这与MC146818不同的使DS12C887固定使用32768Hz的内部晶体,所以DV0=“0”、DV1=“1”、DV2=“0”,即可启动RTC。

C、RS3、RS2、RS1、RS0:周期中断可编程方波输出速率选择位。各种不同的组合可以产生不同的输出。程序可以通过设置寄存器B的SQWF和PIE位控制是否允许周期中断方波输出。其寄存器A输出速率选择位。 3.4.4 DS12C887的中断和更新周期

DSC12C887处于正常工作状态时,每秒钟将产生一个更新周期,芯片处于更新周期的标志是寄存器A中的CPU位为1。在更新周期内,芯片内部时标寄存器数据处于更新阶段,故在该周期内,微处理器不能读芯片时标寄存器中的内容,同时秒时标寄存器内容加1,并检查其他时标寄存器内容是否有溢出。如果有溢出则相应进位日、月、年。另外一个功能是检查三个时、分、秒报警时标寄存器的内容是否与对应时标寄存器的内容相符,如果相符则寄存器C中的AF位置1。如果报警时标寄存器的内容为COH到FFH之间的数据,则为不关闭状态。

为了采样时标寄存器中的数据,DS12C887提供了两种避开更新周期内访问时标寄存器的方案:第一种是利用更新周期结束发出的中断。它可以编程允许在每次更新周

14

期结束后发生中断申请,提醒CPU将有998ms左右的时间去获取有效的数据,在中断之后的998ms时间内,程序可先将时标数据读支芯片内部的不掉电静态RAM中。因为芯片内部的静态RAM和状态寄存器是可随时读写的,在离开中断服务子程序前应清除寄存器C中的IRQF位。另一种是:利用寄存器A中的UIP位来指示芯片是否处于更新周期。在UIP位从低变高244us后,芯片将进行更新周期,所以检测到UIP位为低电平时,则利用224us的间隔时间去读取时标信息。如检测到UIP位为1,则可暂缓读数据,等到UIP变成低电平再去读数据。 3.4.5 DS12C887初始化方法

DS12C887采用连续工作制,一般无须每次都初始化,即使是系统复位时也如此。但初始化时,首先应禁止芯片内部的更新周期操作,所以先将DS12C887状态寄存器B中的SET位置1,然后初始化00H~09H时标参数寄存器和状态寄存器A,此后再通过读状态寄存器C、清除寄存器C中的周期中断标志位PE、报警中断标志位AF、更新周期结束中断标志位UF。通过读寄存器D中的VRT位,读状态寄存器后VRT位将自动置1,最后将状态寄存器B中的SET位置0,芯片开始计时工作。

3.5 74LS154芯片介绍及ULN2003A的简介

本设计要用到16个七段数码管,单片机的P0端口只有8根线,根本不够用,所以用74LS154来扩展,74LS154使4——16译码器,只用单片机的四根线就可以接16个数码管的位码端,因为74LS154使一个4入16出的译码器,在本设计中共有16个显示数码管,所以一个74LS154译码器的输出端刚好够用。LED数码管采用共阴极。

在设计中74LS154的输入端有单片机的P1.0~P1.3口提供段码控制信号,输出端接数码管的段码管脚(既图中的0管脚)。

74LS154管脚图如图3.6所示,74LS154真值表如表3.7所示:

15

Y0Y1Y2A3Y3Y4Y5A2Y6Y7Y8A1Y9Y10Y11A0Y12Y13Y14Y1574LS154图3.6 74LS154管脚 表3.7 74LS154真值表

ULN2003A有美国Texas Instruments公司、美国Sprague公司生产,由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双机型大功率高速集成电路。

ULN2003A是一个驱动器,它的输入端接单片机的P0.0~P0.7口,输出接数码管的位码端上,由于此设计中用到的数码管数量多,而单片机的输出不能一下驱动,所以通过ULN2003A进行驱动。

ULN2003A管脚如图3.8所示:

74LS154

16

123456781B2B3B4B5B6B7BE1C2C3C4C5C6C7CCOM161514131211109

图3.8 ULN2003A管脚图

17


毕业设计电子日历(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:桥梁大师软件操作流程与简要说明 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: