基于单片机的人体温度计的设计与实现课程设计(编辑修改稿)内容摘要:

8 位通用微处理器,采用工业标准的 C51内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。 功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。 主要管脚有: XTAL1( 19 脚)和 XTAL2( 18 脚)为振荡器输入输出端口,外接 12MHz 晶振。 RST/Vpd( 9 脚)为复位输入端口,外接电阻电容组成的复位电路。 VCC( 40 脚)和 VSS( 20 脚)为供电端口,分别接 +5V 电源的正负端。 P0~P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中, P0 端口( 32~39 脚)被定义为 N1 功能控制端口,分别与 N1的相应功能管脚相连接, 13 脚定义为 IR 输入端, 10 脚和 11脚定义为 I2C 总线控制端口,分别连接 N1的SDAS( 18脚)和 SCLS( 19脚)端口, 12 脚、 27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 P0口 P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址 /数据总线复用口。 作为输出口用时,每位能吸收电流的 方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“ 1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时, P0 口接收指令字节,而在程序校验时,输 出指令字节,校验时,要求外接上拉电阻。 P1口 P1口是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对端口写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。 作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 与 AT89C51 不同之处是, 和 还可分别作为定时 /计数器 2 的外部计数输入( )和输入( ), Flash 编程和程序校验期间, P1 接收低 8 位地址。 P2口 P2口是一个带有内部上拉电阻的 8 位双向 I/O 口, P2 的输出缓冲级可驱动(吸收或输出 基于单片机的人体温度计的设计与实现 20201225 11 电流) 4 个 TTL 逻辑门电路。 对端口 P2 写“ 1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流 (IIL)。 在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时, P2 口送出高 8 位地址数据。 在访问 8 位地址的外部数据存储器(如执行 MOVX @RI 指 令)时, P2 口输出 P2 锁存器的内容 Flash 编程或校验时, P2亦接收高位地址和一些控制信号。 P3口 P3口是一组带有内部上拉电阻的 8 位双向 I/O 口。 P3 口输出缓冲级可驱动(吸收或输出电流) 4 个 TTL 逻辑门电路。 对 P3 口写入“ 1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3 口将用上拉电阻输出电流( IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST 复位输入。 当振荡器工作时, RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG 当访问外部程序存储器或数据存储器时, ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。 一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。 要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲( PROG)。 如有必要,可通过对特殊功能寄存器( SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。 该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。 此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。 PSEN 程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。 在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP 外部访问允许。 欲使 CPU 仅访问外部程序存储器(地址为 0000H— FFFFH), EA 端必须保持低电平(接地)。 需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA端状态。 如 EA端为高电平(接 Vcc 端), CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上 +12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压Vpp。 XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 振荡器反相放大器的输出端。 特殊功能寄存器 在 AT89C52 片内存储器中, 80HFFH 共 128 个单元为特殊功能寄存器( SFE), SFR 的地址空间映象如表 2 所示。 并非所有的地址都被定义,从 80H— FFH 共 128 个字节只有 基于单片机的人体温度计的设计与实现 20201225 12 一部分被定义,还有相当一部分没有定义。 对没有定义的单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。 不应将数据“ 1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新的功能,在这种情况下,复位后这些单元数值总是“ 0”。 AT89C52除了与 AT89C51所有的定时 /计数器 0 和定时 /计数器 1 外,还增加了一个定时/计数器 2。 定时 /计数器 2 的控制和状态位位于 T2CON T2MOD,寄存器 对( RCAO2H、RCAP2L)是定时器 2 在 16 位捕获方式或 16 位自动重装载方式下的捕获 /自动重装载寄存器。 定时 /计数器 2控制寄存器 T2CON TF2:定时器 2溢出标志。 定时器 2溢出时,又由硬件置位,必须由软件 清 0,当 RCLK=1或TCLK=1时,定时器 2溢出,不对 TF2置位。 EXF2: 定时器 2外部标志。 当 EXEN2= 1,且当 T2EX引脚上出现负跳变而出现捕获或重装载时, EXF2置位,申请中断.此时如果允许定时器 2中断, CPU响应中断,执行定时器 2中断服务程序, EXF2必须由软件清除。 当定时器 2工作在向上或向下计数工作方式时( DCEN=1) , ExF2不能激活中断。 RCLK :接收时钟允许。 RCLK=1时.用定时器 2溢出脉冲作为串行口(工作于工作方式 1或 3时)的接收时钟, RCLK=0,用定时器 l的溢出脉冲作为接收时钟。 TCLK :发送时钟允许。 TCLK=1时,用定时器 2溢出脉冲作 为串行口(工作于工作方式 1或3时)的发送时钟, RCLK=0 .用定时器 l的溢出脉冲作为发送脉冲。 EXEN2:定时器 2外部允许标志。 当 EXEN2=1时,如果定时器 2未用于作串行口的波特率发生器,在 T2EX 端出现负跳变脉冲时,激活定时器 2 捕获或重装载. EXEN2=0, T2EX端的外部信号无效. TR2:定时器 2启动 /停止控制位。 TR2=l时,启动定时器 2。 C/T2 :定时器 2定时方式或计数方式控制位。 C/T2= 0,选择定时方式。 C/T2= 1时,选择对外部事件计数方式(下降沿触发)。 CP/RL2 :捕 获 /重装载选择。 CP/RL2=l时,如 EXEN2=l.且 T2EN双端出现负跳变脉冲时发生捕获操作。 CP/RL2=0时,若定时器 2溢出或 EXEN2= l 条件下, T2EN 双端出现负跳变脉冲,都会出现自动重装载操作。 当 RCLK=1或 TCLK=1时,该位无效,在定时器 2溢出时强制其自动重装载。 中断寄存器: AT89C52有 6个中断源, 2个中断优先级, lE 寄存器控制各中断位, lP 寄存器中 6个中断 基于单片机的人体温度计的设计与实现 20201225 13 源的每一个可定为 2个优先级。 数据存储器 : AT89C52有 256个字节的内部 RAM , 80H- FFH 高 128个字节与特殊功能寄存器( SFR)地址是重叠的,也就是高 128字竹的 RAM 和殊功能寄存器的地址是相同的,但物理上它们是分开的。 当一条指令访问 7FH以上的内部地址单元时,指令中使用的寻址方式是不同的,也即寻址方式决定是访问高 128字节 RAM 还是访问特殊功能寄存器。 如果指令是直接寻址方式则为访问特殊功能寄存器。 定时器 O 和定时器 1: AT89C52的定时器 O 和定时器 1的工作方式与 AT89C51相同。 定时器 2 定时器 2是一个 16位定时计数器。 它既可当定时器使用,也可作为外部 事件计数器使用,其工作方式由特殊功能寄存器 T2CON的 C/T2位选择。 定时器 2有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由 T2CON 的控制位来选择。 定时器 2由两个 8位寄存器 TH2和 TL2组成,在定时器工作方式中,每个机器周期 TL2寄存器的值加 1 ,由于一个机器周期由 12个振荡时钟构成,因此,计数速率为振荡频率的1/l2。 在计数工作方式时,当 T2引脚上外部输入信号产生由 1至 O 的下降沿时,寄存器的值加 1,在这种工作方式下,每个机器周期的 5SP2期间,对外部 输入进行采样。 若在第一个机器周期中采到的值为 1,而在下一个机器周期中采到的值为 0 , 则在紧跟着的下一个周期的S3P1期间寄存器加 l。 由于识别 1至 0的跳变需要 2个机器周期( 24个振荡周期),因此,最高计数速率为振荡频率的 1/24 .为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。 时钟振荡器 AT89C52 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作 为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路外接石英晶体(或陶瓷谐振器)及电容 C C2 接在放大器的反馈回路中构成并联振荡电路。 对外接电容 C C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用 30pF177。 10pF,而如使用陶瓷。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。