小型仓库温湿度监控系统内容摘要:

0000100100110001” =2353 RHlinear =C1 +C2 S()RH+C3 S()RH 2 =4+ 2353+ 106 23532 = %RH(未包含温度补偿 ) 单片机 AT89S51 本设计采用 ATMEI 公司的 AT89S51 芯片作为微控制器。 AT89S51 是一个低功耗,高性能 CMOS 8 位单片机。 主要性能参数: 与 MCS51 产品指令系统完全兼容 4k 字节在系统编程 (ISP)Flash 闪速存储器 1000 次擦写周期 - 的工作电压范围 全静态工作模式: 0Hz - 33MHz 三级程序加密锁 128 8字节内部 RAM 32 个可编程 I /O 口线 2 个 16 位定时 /计数器 17 6 个中断源 全双工 串口 UART 通道 低功耗空闲和掉电模式 中断可从空闲模唤醒系统 看门狗 (WDT) 及双数据指针 掉电标 识和快速编程特性 灵活的在系统编程 (ISP 字节或页写模式 ) 单片机 AT89S51 的 结构及组成 AT89S51 是由 CPU、内部数据存储器 RAM、内部程序存储器 ROM、并行输入 /输出( I/O)口、 串口 口、定时 /计数器、中断系统、时钟电路等部分组成,它们均由单一总线连接并被集成在一块半导体芯片上,即组成了单片微型计算机。 结构图如图 212 图 212 AT89S51 内部结构 单片机 AT89S51 的 引脚 AT89S51 采用 40管脚双列直插 DIP 封装,如图 213。 18 图 213 AT89S51 引脚图 引脚功能说明 : VCC :电源电压 VSS :地 P0 口: P0 口是一组 8 位漏极开路型双向 I/0 口,也即地址 /数据总线复用口。 作为输出口用时,每位能驱动 8 个 TTL 逻辑门电路,对端口写“ l ”可作为高阻抗输入端用。 在访 问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上 拉电阻。 在 F1ash 编程时, P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。 P1 口: Pl 是一个带内部上拉电阻的 8 位双向 I/O 口, Pl 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写 “ l”, 通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL )。 Flash 编程和程序校验期间, Pl 接收低 8 位地址。 、 、 可用于程序固化(下载)使用 ,如 表 26。 19 表 26 P2 口: P2 是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写“ 1 ”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流( IIL )。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX@DPTR 指令) 时, P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行MOVX@Ri 指令)时, P2 口线上的内容(也即特殊功能寄存器( SFR )区中 P2 寄存器的内容),在整个访问期间不改变。 Flash 编程或校验时, P2 亦接收高位地址和其它控制信号。 P3 口: P3 口是一组带有内部上拉电阻的 8 位双向 I/0 口。 P3 口输出缓冲级可驱动 (吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ l ”时,它们被内部上拉电阻拉高并可作为输入端口。 作输入端时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL )。 P3 口除了作为一般的 I/0 口线外,更重要的用途是它的第二功能,如下表 27 所示: P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 20 表 27 RST :复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 WDT 溢出将使 该引 脚输出高电平,设置 SFR AUXR 的 DISRT0 位(地址 8EH )可打开或关闭该功能。 DISRT0 位缺省为 RESET 输出高电平 打开状态。 ALE/PROG :当访问外部程序存储器或数据存储器时 ,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 即使不访问外部存储器, ALE 仍以时钟振荡频率的 1 /6 输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 F1ash 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。 如有必要,可通过对特殊功能寄存器 (SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 M0VX 和 M0VC 指令 ALE 才会被激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN :程序储存允许 (PSEN )输出是外部程序存储器的读选通信号,当 AT89S51 由外部程序存储器取指令 (或数据 )时,每个机器周期两次 PSEN 有效,即输出两个脉冲。 当访问外部数据存储器,没有两次有效的 PSEN 信号。 EA /VPP :外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为 0000H - FFFFH) , EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端), CPU 则执行内部程序存储器中的指令。 F1ash 存储器编程时,该引脚加上 +12V 的编程电压 Vpp。 XTALl :振荡器反相放大器及内部时钟发生器的输入端。 XTAL2 :振荡器反相放大器的输出端。 内置看门狗电路 (WDT) : 由十单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞而陷入死循环,这样会打断程序的正常运行,从而使单片机控制的系统无法继续工作,造成整个系统陷入停滞状态,发生不可预料的后 果。 21 为了避免这种情况发生,本芯片内置了看门狗电路。 所谓看门狗技术是一种程序监视技术,它不断的监视程序循环运行时间,当程序出现跑飞时而陷入死循环时,看门狗电路就会在它和单片机复位引脚相连的引脚上送出一个复位信号,使单片机发生复位,即程序从程序存储器的起始位置开始执行,这样便实现了单片机的自动复位,使单片机可以在无人状态下实现连续工作。 存储器 AT89C51 内核采用程序存储器和数据存储器空间分开的结构,均具有 64KB 外部程序和数据的寻址空间。 程序存储器 用于存放编制好的程 序和表格。 ROM的 0000H002AH 单元预留给上电复位后引导程序地址及 5 个中断服务程序的入口地址,在实际应用系统中,主程序的存放从 002BH 单元开始。 在程序存储器中有六个单元有特定的含义: 0000H~ 0002H:单片机复位后, PC=0000H 即从此处开始执行指令。 0003H~ 000AH:外部中断 0 入口地址 区。 000BH~ 0012H:定时器 0溢出中断入口地址 区。 0013H~ 001AH:外部中断 1 入口地址 区。 001BH~ 0022H:定时器溢出中断入口地址 区。 0023H~ 002AH: 串口 口中断入口 地址 区。 使用时常在这些入口外安放一条绝对跳转指令,使程序跳转到拥护安排的中断处理程序的起始地址,或从 0000H 外执行一跳转指令,跳转到用户设计的初始程序入口。 如果 EA 引脚接地 ,全部程序均执行外部存储器。 若 EA 接 Vcc,程序首先执行地址从 0000H0FFFH (4KB)内部程序存储器,再执行地址为 1000HFFFFH( 60KB) 的外部程序存储器。 数据 存储器 数据存储器用于存放运算中间的结果、数据暂存、缓冲、标志位、待测程序等功能。 片内的 低 128B 的 RAM 地址为 00H~ 7FH,供用户做 RAM 用,但是在这中间的前 32 单元, 00H~ 1FH 即引用地址寻址做用户 RAM 用,常常做工作寄存器区,分做四组,每组由 8个单元组成通用寄存器 R0~ R7,任何时候都由其中一组作为当前工作寄存器,通过 RS0, RS1的内容来决定选择哪一个工作寄存器。 22 片内 RAM 不够用时,须扩展片外数据存储器。 此时单片机通过 P2 口和 P0口选出 6 位地址,使用 ALE 作低 8位的锁存信号,再由 P0口写入或读出数据。 写时用 ,读时用 做外部数据存储器的选通信号。 特殊功能寄存器 SFR 在内部数据存储器的 80H~ FFH 的高 128B 单元中 有 21 个 特殊功能寄存器SFR, 其余单元现无定义,用户不能对这些单元进行读写操作。 它们 用来管理 CPU和 I/O 口以及内部逻辑部件,在指令中专用寄存 器是以存储单元方式被读写的,专用寄存器虽有名称,但寻址时都做专用寄存器用,它们的地址是与片内 RAM的地址相连的。 下面就专用寄存器作以简单的介绍: 累加器 A:在绝大多数情况下它参与运算的一方并存放运算的结果。 寄存器 B:进行乘除运算时,寄存器 B有特定的用途,在乘时存放一个乘数以及积的最高位, A 中存放另一个乘数以及积的低位。 除法时, B中存放除数及余 数,而在 A中存放被除数和商,其他情况可作为普通寄存器用。 堆栈指针 SP:在子程序调用或中断时,用来暂存数据和地址,它按先进后出的原则存储数据,它是一个八位寄存器它指出堆栈顶部在片内 RAM 中的位置,系统复位后, SP变成 07H,使堆栈从 00单元开始。 ; 数据指针 DPTR:由两个字节组成, DPH 字地址由 83H, DPL 由 82H,存放一个 16 位的二进制数做地址用。 程序状态字 PSW: 8位寄存器,存放程序执行过程中的各种信息。 Flash 闪速存储器 的编程 并行编程 AT89s51 单片机内部有 4k 字节的可快速编程的 Flash 存储阵列。 编程方法可通过传统的 EPROM 编程器使用高电压 ( +12V)和协调的控制信号进行编程。 AT89S51 的代码是逐一字节进行编程的。 (一 ) 编程方法: 编程前,须按编程模式表 (表 27) 和图 21 图 215 所示设置好地址、数据及控制信号 , AT89S51 编程方法如下: 1 .在地址线上加上要编程单元的地址信号。 2 .在数据线上加上要写入的数据字节。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。