单片机AT89C52(4)

2019-03-11 09:30

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有效复位。 3.DS12887/ DS12C887 内部寄存器的功能

因DS12887 和DS12C887 结构功能上类似,现以DS12887 为例说明如下:CPU通过读DS12887的内部时标寄存器得到当前的时间和日历,也可通过选择二进制码或BCD码初始化芯片的10个时标寄存器。其114bit非易失性静态RAM 可供用户使用,对于没有RAM的单片机应用系统,可在主机掉电时来保存一些重要的数据。DS12887 的4个状态寄存器用来控制和指DS12887模块的当前工作状态,除数据更新周期外,程序可随时读写这4个寄存器,各寄存器的功能和作用如下。

寄存器A各位不受复位的影响,UIP 位为只读位,其它各位均可读写。寄存器的控制字的格式如下表2所列:

表2 DS12887 控制寄存器A 各布尔位定义: IT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0

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

2. DV0 、DV1 、DV2 :芯片内部振荡器RTC 控制位。当芯片解除复位状态,并将010写入DV0、DV1、DV2后,另一个更新周期将在500ms后开始。因此,在程序初始化时 可用这三位精确地使芯片在设定的时间开始工作。这与MC146818 不同的是,DS12887固定使用32 768Hz 的内部晶体,所以,DV0 =“0”,DV1 =“1”,DV2 =“0”,即只有一种010的组合选择即可启动RTC。

3. RS3、RS2、RS1、RS0:周期中断可编程方波输出速率选择位。各种不同的组合可以产生不同的输出。程序可以通过设置寄存器B的SQWF 和PIE 位控制是否允许周期中断和方波输出。其寄存器A输出速率选择位如表3所列。 表3 DS12887 控制寄存器A 输出速率选择位定义 寄存器A 输出速率选择位 32 768Hz 时基 RS3 RS2 RS1 RS0 中断周期 SQWF输出频 0 0 0 0 无 无

第 16 页

0 0 0 1 3.90625ms 256Hz 0 0 1 0 7. 8125ms 128Hz 0 0 1 1 122.0μs 8.192kHz 0 1 0 0 244.141μs 4.096kHz 0 1 0 1 488.281μs 2.048kHz 0 1 1 0 976.5625μs 1.024kHz 0 1 1 1 1.953125ms 512Hz 1 0 0 0 3.90625ms 256Hz 1 0 0 1 7.812ms 128Hz 1 0 1 0 15.625ms 64Hz 1 0 1 1 31.25ms 32Hz 1 1 0 0 62.5ms 16Hz 1 1 0 1 125ms 8Hz 1 1 1 0 250ms 4Hz 1 1 1 1 500ms 2Hz 寄存器B允许读写,主要用于控制芯片的工作状态。寄存器B的控制字的格式如表4所列。

表4 DS12887 控制寄存器B各布尔位定义 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSE

(1) SET 位:当该位为“0”时,芯片处于正常工作状态,每秒产生一个更新周期来更新时标寄存器为“1”时,芯片停止工作,程序在此期间可初始化芯片的各个时标寄存器。

(2)PIE、AIE、UIE 位:分别为周期中断、报警中断、更新周期结束中断允许位。各位为“1”时,允许芯片发相应的中断。

(3)SQWE 位:方波输出允许位。SQWE“1”,按寄存器A 输出速率选择位所确定的频率输出方波;SQWE =“0”,脚SQW保持低电平。

(4) DM 位:时标寄存器用十进制BCD 码表示或用二进制表示格式选择位。DM =“0”时,为十进制BCD码;DM =“1”时,为二进制码。

(5) 24/ 12 位: 24/ 12 小时模式设置位。24/12位=“1”时,为24 小时工作模式;24/ 12 位=“0”时,为12 小时工作模式。

(6)DSE位:夏令时服务位。DSE=“1”,夏时制设置有效,夏时制结束可自动刷新恢复时间;DSE=“0”,无效。

第 17 页

寄存器C的控制字的格式如表4所列。该寄存器的特点是程序访问读该寄存器后,该寄存器的内容将自动清零,从而使IRQF 标志位变为高电平, 否则,芯片将无法向CPU 申请下一次中断。 表5 DS12887 控制寄存器C各布尔位定义 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0

(1) IRQF位:中断申请标志位。该位逻辑表达式为:IRQF = PF·PIE +AF·AIE+UF·UIE。当IRQF位变“1”时,引脚将变低电平引发中断申请。

(2) PF、AF、UF 位:这三位分别为周期中断、报警中断、更新周期结束中断标志位。只要满足各中断的条件,相应的中断标志位将置“1”。

(3) BIT3~BIT0 :未定义的保留位。读出值始终为0 。 寄存器D为只读寄存器。寄存器D的控制字的格式如表6所示。 表6 DS12887 控制寄存器D 各布尔位定义 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 VRT 0 0 0 0 0 0 0

(1) VRT 位:芯片内部RAM 与寄存器内容有效标志位。该位为“1”时,指芯片内部RAM 和寄存器内容有效。读该寄存器后,该位将自动置“1”。

(2) BIT6~BIT0 位:保留位。读出的数值始终为0。 4. DS12887/DS12C887 的中断和更新周期

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

为了采样时标寄存器中的数据,DS12887/DS12C887 提供了两种避开更新周期内访问时标寄存器的方案:第一种是利用更新周期结束发出的中断。它可以编程允许在每次更新周期结束后发生中断申请,提醒CPU将有998ms左右的时间去获取有效的数据,在中断之后的998ms时间内,程序可先将时标数据读到芯片内部的不掉电静态RAM中。因为芯片内部的静态RAM 和状态寄存器是可随时读写的,在离开中断服务子程序前应清除寄存器C中的IRQF 位。另一种是:利用寄存器A中的UIP位来指示芯片是否处于更新

第 18 页

周期。在UIP位从低变高244μs后,芯片将开始其更新周期,所以检测到UIP位为低电平时,则利用244μs 的间隔时间去读取时标信息。如检测到UIP 位为“1”,则可暂缓读数据,等到UIP 变成低电平后再去读数据。

3.2.3 DS18B20的工作原理

① DS18B20数字温度传感器概述

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

DS18B20产品的特点

? 只要求一个端口即可实现通信。

? 在DS18B20中的每个器件上都有独一无二的序列号。 ? 实际应用中不需要外部任何元器件即可实现测温。 ? 测量温度范围在-55.C到+125.C之间。

? 数字温度计的分辨率用户可以从9位到12位选择。 ? 内部有温度上、下限告警设置。

TO-92封装的DS18B20的引脚排列见图4-2,其引脚功能描述见表4-1。

表4-1 DS18B20详细引脚功能描述

序号 1 2 3 名称 GND DQ VDD 引脚功能描述 地信号 数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源 可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地

② DS18B20的内部结构

DS18B20的内部框图如图4-3所示。64位ROM存储器件独一无二的序列号。暂存器包含两字节(0和1字节)的温度寄存器,用于存储温度传感器的数字输出。暂存器还提供一字节的上线警报触发(TH)和下线警报触发(TL)寄存器(2和3字节),和一字节的配置寄存器(4字节),使用者可以通过配置寄存器来设置温度转换的精度。暂存器的5、6和7字节器件内部保留使用。第八字节含有循环冗余码(CRC )。

第 19 页

图3-11 DS18B20的内部框图

DS18B20加电后,处在空闲状态。要启动温度测量和模拟到数字的转换,处理器须向其发出Convert T [44h] 命令;转换完后,DS18B20回到空闲状态。温度数据是以带符号位的16-bit补码存储在温度寄存器中的,如图3-11所示:

图3-12温度寄存器格式

符号位说明温度是正值还是负值,正值时S=0,负值时S=1。表4-2给出了一些数字输出数据与对应的温度值的例子。

第 20 页


单片机AT89C52(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2014-2015学年重庆市巴蜀中学高一上学期期中数学试卷和解析

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

马上注册会员

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