基于低功耗单片机温度设计内容摘要:

计数输入),时钟输出 T2EX(定时器 /计数器 T2 的捕捉 /重载触发信号和方向控制) MOSI(在 系统 编程用) MISO(在 系统 编程用) SCK(在 系统 编程用) P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P2 端口写 “1” 时,内部上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉 低的引脚由于内部电阻的原因,将输出电流( IIL)。 在访问外部程序存储器或用 16 位地址读取外部数据存储器(例如执行 MOVX @DPTR)时, P2 口送出高八位地址。 在这种应用中, P2 口使用很强的内部上拉发送 1。 在使用 8位地址(如 MOVX @RI)访问外部数据存储器时, P2口输出 P2 锁存器的内容。 在 flash 编程和校验时,P2口也接收高 8位地址字节和一些控制信号。 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。 对 P3 端口写 “1” 时,内部 上拉电阻把端口拉高,此时可以作为输入口使用。 作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流( IIL)。 P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下表所示。 在 flash 编程和校验时, 基于低功耗单片机温度计设计 (电路图 +原理图 +流程图 ) P3口也接收一些控制信号。 表 24 P3 口第二功能 引角号 第二功能 RXD(串行输入) TXD(串行输出) INT0(外部中断 0) INT0(外部中断 0) T0(定时器 0外部输入) T1(定时器 1外部输入) WR(外部数据存储器写选通 ) RD(外部数据存储器写选通 ) RST: 复位输入。 晶振工作时, RST 脚持续 2 个机器周期高电平将使单片机复位。 看门狗计时完成后, RST 脚输出 96 个晶振周期的高电平。 特殊寄存器AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。 DISRTO 默认状态下,复位高电平有效。 ALE/PROG:地址锁存控制信号( ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。 在 flash 编程时, 此引脚( PROG)也用作编程输入脉冲。 在一般情况下, ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。 然而,特别强调,在每次访问外部数据存储器时, ALE脉冲将会跳过。 如果需要,通过将地址为 8EH 的 SFR 的第 0 位置 “1” , ALE操作将无效。 这一位置 “1” , ALE 仅在执行 MOVX 或 MOVC 指令时有效。 否则,ALE 将被微弱拉高。 这个 ALE 使能标志位(地址为 8EH 的 SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。 PSEN:外部程序存储器选通信号( PSEN)是外 部程序存储器选通信号。 AT89S52 从外部程序存储器执行外部代码时, PSEN 在每个机器周期被激活两次,而在访问外部数据存储器时, PSEN 将不被激活。 EA/VPP:访问外部程序存储器控制信号。 为使能从 0000H 到 FFFFH 的外部程序存储器读取指令, EA 必须接 GND。 为了执行内部程序指令, EA 应该接VCC。 在 flash 编程期间, EA 也接收 12伏 VPP 电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 图 25 AT89S52 引角 图 图 26 AT89S52 内部结构框图 三、 AT89S52 特殊功能寄存器 特殊功能寄存器 (SFR)的地址空间映象如表 25 所示。 并不是所有的地址都被定义了。 片上没有定义的地址是不能用的。 读这些地址,一般将得到一个随机数据;写入的数据将会无效。 用户不应该给这些未定义的地址写入数据“1”。 由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。 定时器 2 寄存器:寄存器 T2CON 和 T2MOD 包含定时器 2 的控制位和状态位,寄存器对 RCAP2H 和 RCAP2L 是定时器 2的捕捉 /自动重载寄存器。 中断寄存器:各中断允许位在 IE 寄存器中,六个中断源的两个优先级也可在IE中设置。 表 25 AT89S52 特殊寄存器映象及复位值 双数据指针寄存器:为了更有利于访问内部和外部数据存储器, 系统 提供了两路 16 位数据指针寄存器:位于 SFR中 82H~83H 的 DP0 和位于 84H~ 85。 特殊寄存器 AUXR1 中 DPS= 0 选择 DP0; DPS=1 选择 DP1。 用户应该在访问数据指针寄存器前先初始化 DPS 至合理的值。 表 26 T2CON:定时器 /计数器 2 控制寄存器 TF2 EXF2 RLCLK TCLK EXEN2 TR2 C/T2 CP/RL2 7 6 5 4 3 2 1 0 符号 功能 TF2 定时器 2 溢出标志位。 必须 软件 清 “0”。 RCLK=1 或 TCLK=1 时, TF2 不用置位。 EXF2 定时器 2 外 部标志位。 EXEN2=1 时, T2EX 上的负跳变而出现捕捉或重载时, EXF2 会被硬件置位。 定时器 2 打开, EXF2=1 时,将引导 CPU 执行定时器 2 中断程序。 EXF2 必须如见清 “0”。 在向下 /向上技术模式( DCEN=1)下 EXF2 不能引起中断。 RCLK 串行口接收数据时钟标志位。 若 RCLK=1,串行口将使用定时器 2 溢出 脉冲作为串行口工作模式 1 和 3 的串口接收时钟; RCLK= 0,将使用定时器 1计数溢出作为串口接收时钟。 TCLK 串行口发送数据时钟标志位。 若 TCLK=1,串行口将使用定时器 2 溢出 脉冲作为串行口工作模式 1 和 3 的串口发送时钟; TCLK= 0,将使用定 时器 1计数溢出作为串口发送时钟。 EXEN2 定时器 2外部允许标志位。 当 EXEN2=1 时,如果定时器 2 没有用作串行 时钟, T2EX( )的负跳变见引起定时器 2 捕捉和重载。 若 EXEN2 = 0,定时器 2将视 T2EX 端的信号无效 TR2 开始 /停止控制定时器 2。 TR2=1,定时器 2开始工作 C/T2 定时器 2 定时 /计数选择标志位。 C/T2= 0,定时; C/T2= 1,外部事件计数(下降沿触发) CP/RL2 捕捉 /重载选择标 志位。 当 EXEN2=1 时, CP/RL2= 1, T2EX 出现负脉冲, 会引起捕捉操作;当定时器 2溢出或 EXEN2=1 时 T2EX 出现负跳变,都 会出现自动重载操作。 CP/RL2= 0 将引起 T2EX 的负脉冲。 当 RCKL=1 或 TCKL= 1时,此标志位无效,定时器 2 溢出时,强制做自动重载操作。 掉电标志位:掉电标志位( POF)位于特殊寄存器 PCON 的第四位( )。 上电期间 POF 置 “1”。 POF 可以 软件 控制使用与否,但不受复位影响。 四、存储器结构 MCS51 器件有单独的程序存储器和数据存储器。 外部程序存储器和数据存储器都可以 64K 寻址。 程序存储器:如果 EA引脚接地,程序读取只从外部存储器开始。 对于89S52,如果 EA 接 VCC,程序读写先从内部存储器(地址为 0000H~ 1FFFH)开始,接着从外部寻址,寻址地址为: 2020H~FFFFH。 数据存储器: AT89S52 有 256 字节片内数据存储器。 高 128 字节与特殊功能寄存器重叠。 也就是说高 128 字节与特殊功能寄存器有相同的地址,而物理上是分开的。 当一条指令访问高于 7FH 的地址时,寻址方式决定 CPU 访问高 128 字节 RAM 还是特殊功能寄存器空间。 直接寻址方式访问特殊功能寄存器( SFR)。 例如,下面的直接寻址指令访问 0A0H( P2 口)存储单元 基于低功耗单片机温度计设计 (电路图 +原理图 +流程图 ) MOV 0A0H , data 使用间接寻址方式访问高 128 字节 RAM。 例如,下面的间接寻址方式中, R0 内容为 0A0H,访问的是地址 0A0H 的 寄存器,而不是 P2口(它的地址也是0A0H)。 MOV @R0 , data 堆栈操作也是简介寻址方式。 因此,高 128 字节数据 RAM 也可用于堆栈空间。 五、 看门狗定时器 WDT 是一种需要 软件 控制的复位方式。 WDT 由 13 位计数器和特殊功能寄存器中的看门狗定时器复位存储器( WDTRST)构成。 WDT 在默认情况下无法工作;为了激活 WDT,户用必 须往 WDTRST 寄存器(地址: 0A6H)中依次写入01EH 和 0E1H。 当 WDT 激活后,晶振工作, WDT 在每个机器周期都会增加。 WDT计时周期依赖于外部时钟频率。 除了复位(硬件复位或 WDT 溢出复位),没有办法停止 WDT 工作。 当 WDT 溢出,它将驱动 RSR 引脚一个高个电平输出。 WDT 的使用:为了激活 WDT,用户必须向 WDTRST 寄存器(地址为 0A6H的 SFR)依次写入 0E1H 和 0E1H。 当 WDT激活后,用户必须向 WDTRST 写入 01EH和 0E1H 喂狗来避免 WDT 溢出。 当计数达到 8191(1FFFH)时, 13 位计数器将会溢出,这将会复位器件。 晶振正常工作、 WDT 激活后,每一个机器周期 WDT 都会增加。 为了复位 WDT,用户必须向 WDTRST 写入 01EH 和 0E1H( WDTRST 是只读寄存器)。 WDT 计数器不能读或写。 当 WDT 计数器溢出时,将给 RST 引脚产生一个复位脉冲输出,这个复位脉冲持续 96个晶振周期( TOSC),其TOSC=1/FOSC。 为了很好地使用 WDT,应该在一定时间内周期性写入那部分代码,以避免 WDT 复位。 掉电和空闲方式下的 WDT:在掉电模式下,晶振停止工作,这意味这WDT 也停止了工作。 在这种方式下,用户不必喂狗。 有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。 通过硬件复位退出掉电模式后,用户就应该给 WDT 喂狗,就如同通常 AT89S52 复位一样。 通过中断退出掉电模式的情形有很大的不同。 中断应持续拉低很长一段时间,使得晶振稳定。 当中断拉高后,执行中断服务程序。 为了防止 WDT 在中断保持低电平的时候复位器件, WDT 直到中断拉低后才开始工作。 这就意味着 WDT 应该在中断服务程序中复位。 为了确保在离开掉电模式最初的几个状态 WDT 不被溢出,最好在进入掉电模式前就复位 WDT。 在进入待机模式前,特殊寄存器 AUXR 的 WDIDLE 位用来决定 WDT 是否继续计数。 默认状态下,在待机模式下, WDIDLE= 0, WDT 继续计数。 为了防止 WDT 在待机模式下复位 AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。 六、 定时器 AT89S52 中一共有三个定时器,即定时器 0定时器 1和定时器 2。 在 AT89S52 中,定时器 0 和定时器 1 的操作与 AT89C51 和 AT89C52 一样。 定时器 2 是一个 16 位定时 /计数器,它既可以做定时器,又可以做事件计数 器。 其工作方式由特殊寄存器 T2CON 中的 C/T2 位选择(如表 27所示)。 定时器 2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。 如表 3 所示,工作模式由 T2CON 中的相关位选择。 定时器 2 有 2 个 8位寄存器: TH2 和 TL2。 在定时工作方式中,每个机器周期, TL2 寄存器都会加 1。 由于一个机器周期由 12 个晶振周期构成,因此,计数频率就是晶振频率的 1/12。 表 27 定时器 2工作模式 RCLK+TCLK CP/RL2 TR2 MODE 0 0 1 16 位自动重载 0 1 1 16 位 捕捉 1 1 波特率发生器 0 (不用) 在计数工作方式下,寄存器在相关外部输入角 T2 发生 1 至 0 的下降沿时增加1。 在这种方式下,每个机器周期的 S5P2 期间采样外部输入。 一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加 1。 在检测到跳变的这个周期的 S3P1 期间,新的计数值出现在寄存器中。 因为识别 1- 0的跳变需要2个机器周期( 24 个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。 为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。 28 T2MOD定时器 2控制寄存器 - - - - - - T2OE DCEN 7 6 5 4 3 2 1 0 符号 功能 - 无定义,预留扩展 T2OE 定时器 2输出允许位 DCEN 置 1后,定时器 2可配置成向上 /向下计数 七、 AT89S52 中断。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。