基于低功耗单片机温度设计内容摘要:
计数输入),时钟输出 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 中断。基于低功耗单片机温度设计
相关推荐
用户接口 )资源两大部份,两部份最后以 RC 编译程序整合为一个完整的 EXE 文件。 所谓 UI 资源是指功能菜单、对话框、程序图标、光标形状等等东西。 这些 UI 资源的实际内容(二进制代码)系借助各种工具产生,并以各种扩展名存在,如 .ico .bmp .cur 等等。 程序员必须在一个所谓的资源描述档( .rc )中描述它们。 RC 编译器( )读取 RC 文件的描述后将所有 UI
.......................................................................................16 MC13213 活动模式 ................................................................................................
define SENSOR_TYPE_MAGNETIC_FIELD 2 //磁力 define SENSOR_TYPE_ORIENTATION 3 //方向 define SENSOR_TYPE_GYROSCOPE 4 //陀螺仪 define SENSOR_TYPE_LIGHT 5 //光线感应 define SENSOR_TYPE_PRESSURE 6 //压力 define
常现象,最后把判断的结果转换为警告信息。 ( 3)事件数据库 ( Response units ) 事件数据库是存放各种中间和最终数据的地方。 ( 4)响应单元 ( Response units ) 响应单元根据警告信息做出反应,如切断连接、改变文本属性等强烈的反 应,也可能是简单地报警。 它是入侵检测系统中的主动武器。 输出:事件的有关信息 输出:原始或低级事件 响应单元 事件分析器
的名字加 -文本编辑器 ,具体实现的代码如下: = (*.rtf)|*.rtf|All File(*.*)|*.*。 = () + -文本编辑器。 与实际运行的结果(图 )对照,结果正确 17 (图 ) ( 4) 对菜单 Save 的测试 按下菜单 Save 时,如果文件原来不存在,那它就会弹出一个对话框,让你选择保存路径,和填写文件名
键 .《 Windows CE 嵌入式系统》, 北京航空航天出版社 , [6] 相关网页: , 以及百度文库等。 12 2 设计步骤 操作系统的下载: 第一步 : 从 “开始 所有程序 附件 通讯 超级终端”新建一个超级中断链接。 【图 1】超级终端连接描述 第二步 : 选择连接串口,并将串口波特率设为: 38400,数据流控制选择“ 无 ”,按“确定”按钮 【图 2】超级终端设置选项 13