河南理工大学 2011毕业设计说明书
TF1:定时器/计数器1溢出中断请求标志位。当定时器/计数器1计数产生溢出时,由内部硬件置位TF1,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0。 TR1:定时器/计数器1启动/停止位。由软件置位/复位控制定时器/计数器1的启动或停止计数。 TF0:定时器/计数器0溢出中断请求标志位。当定时器/计数器0计数产生溢出时,由内部硬件置位TF0,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0。 TR0:定时器/计数器0启动/停止位。由软件置位/复位控制定时器/计数器0的启动或停止计数。 IE1:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT1=1时,由内部硬件置位IE1标志位(IE1=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将IE1清0。 IE0:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT0=1时,由内部硬件置位IE0标志位(IE0=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将IE0清0。 IT1:用软件置位/复位IT1来选择外部中断INT1是下降沿触发还是电平触发中断请求。当IT1置1时,则外部中断INT1为下降沿触发中断请求,即INT1端口由前一个机器周期的高电平跳变为下一个机器周期的低电平,则触发中断请求;当IT1复位清0,则INT1的低电平触发中断请求。 IT0:由软件置位/复位IT0来选择外部中断INT0是下降沿触发还是低电平触发中断请求,其控制原理同IT1。 ② 中断允许控制寄存器 中断允许控制寄存器IE的格式如下: D7 EA D6 D5 ET2 D4 ES D3 ET1 D2 EX1 D1 ET0 D0 EX0 各控制位定义如下:
EA:中断总控制为。EA=1,CPU开中断,它是CPU是否响应中断的前提,在此前提下,如果某中断源的中断允许位置1,才能响应该中断源的中断请求。如果EA=0,无论哪个中断源有请求,CPU都不予回应。
11
河南理工大学 2011毕业设计说明书
ET2:定时器/计数器T2中断控制位,ET2=1,允许T2计数溢出中断;ET2=0,禁止T2中断。
ES:串行口中断控制位,ES=1,允许串行口发送/接收中断;ES=0禁止串行口中断。 ET1:定时器/计数器T1中断控制位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。
EX1:外部中断1控制位,EX1=1,允许中断;EX1=0,禁止外部中断1中断。 ET0:定时器/计数器T0中断控制位,ET0=1,允许T0计数溢出中断;ET0=0,禁止T0中断。
EX0:外部中断0控制位,EX0=1,允许中断;EX0=0,禁止外部中断0中断[1]。
2.6.2 中断响应过程
CPU中断处理从响应中断、控制程序转向对应的中断矢量地址入口处执行中断服务程序,到执行返回(RETI)指令为止。中断响应可分为以下几个步骤:
① 保护断点,即保存下一个将要执行的指令的地址,把这个地址送入堆栈。 ② 寻找中断入口,根据6个不同的中断源所产生的中断,中断系统必须能够正确地识别中断源,查找6个不同的入口地址。以上工作是由单片机自动完成的,与编程者无关。在6个入口地址处存放有中断处理程序。
③执行中断处理程序。
④中断返回:执行完中断指令后,从中断处返回到主程序,继续执行[2]。
2.7 定时器/计数器
AT89C51单片机内部设有两个16位可编程定时器/计数器,即定时器/计数器0和定时器/计数器1。除此之外还有一个可编程定时器/计数器2。
2.7.1定时器/计数器0和1简介
定时器/计数器0和1内部有一个计数寄存器(THx和TLx),它实际上是一个累加寄存器进行加1计数。定时器和计数器共用这个寄存器,但定时器/计数器同一时刻只能工作在其中一种方式下,不可能既工作在定时器方式,同时又工作在计数器方式。这两个工作方式的根本区别是在于计数脉冲的来源不同。工作在定时器方式时,对振荡源12分频的脉冲计数,即每过一个机器周期(1个机器周期在时间上和12个振荡周期
12
河南理工大学 2011毕业设计说明书
的时间相等),计数寄存器中的值就加1。工作在计数器方式时,计数脉冲不是来自内部的机器周期,而是来自外部输入。对定时器/计数器0、定时器/计数器1,计数脉冲分别来自T0、T1引脚。当这些引脚上输入的信号产生高电平至低电平的负跳变时,计数寄存器的值就加1。单片机每个机器周期都要对对外部输入进行采样,如果在第一个周期采得的外部信号为高电平,在下一个周期采得的信号为低电平,则在再下一个机器周期,即第三个机器周期计数寄存器的值才增加1[1]。
2.7.2 与定时器/计数器0和1相关的特殊功能寄存器
① 计数寄存器TH0、TL0和TH1、TL1
计数寄存器是16位的,再启动定时器时需要对它设定初始值。THx是计数寄存器的高8位,TLx是计数寄存器的低8位。TH0、TL0对应T/C0,TH1、TL1对应T/C1。
② 定时器/计数器控制寄存器TCON
定时器/计数器控制寄存器TCON的格式如下:
TF1 TR1 TF0 TR1 IE1 IT1 IE0 IT0 TF1为T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0。 TR1为T/C1的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。 TF0和TR0的功能和使用方法以TF1、TR1类似,只是它们针对的是T/C0。 ③ 定时器/计数器方式控制寄存器TMOD
定时器/计数器方式控制寄存器TMOD的格式如下所示。它的控制位都是由软件控制的,其中高4位是针对T/C1的,低4位是针对T/C0的,其功能和使用方法相似。
GATE C/T M1 M0 GATE T/C M1 M0 现在以T/C0来说明各控制位的使用方法:GATE是一个选通位,当GATE位置1时,T/C0受到双重控制,只有INT0为高电平且TR0位置1是T/C0才开始工作,当GATE位清0时,T/C0仅受到TR0的控制。C/T用来选择工作在定时器方式还是计数器方式。当 13
河南理工大学 2011毕业设计说明书
该位置1时工作在计数器方式,清0时工作在定时器方式。M1和M0联合起来用于选择操作模式,一共有四种操作模式,如表2-2所示。 表2-2 操作模式 M1 0 1 1 1
M0 0 0 0 1 操作模式 模式0 模式2 模式2 模式3 计数器配置 13位计数器 自动重转载的8位计数器 自动重转载的8位计数器 T0分为两个8位计数器,T1停止计数 14
河南理工大学 2011毕业设计说明书
3、温湿度传感器
传统的模拟式湿度传感器需设计信号调理电路并要经过复杂的校准、标定过程,测量精度难以得到保证,且在线性度、重复性、互换性、一致性等方面往往不尽人意。为解决这些问题,瑞士Sensirion 公司推出了新一代基于CMOSensTM技术的数字式温湿度传感器。它很好地解决了温湿度传感器存在的上述问题,实现了数字式输出、免调试、免标定、免外围电路及全互换功能[3]。
3.1 数字温湿度传感器SHT-11
数字温湿度传感器SHT—11采用COMSens专利传感器技术将温度湿度传感器、A/D 转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内(其内部结构如图3-1所示)[4]。
图3-1 数字温湿度传感器SHT—11的内部结构图
由它的内部结构可看出SHT-11具有不同保护的“微型结构”检测电极系统与聚合物覆盖层组成了传感器芯片的电容,这样除保持了电容式湿敏器件的原有特性外还可抵御来自其它方面的影响。将温度传感器与湿度传感器结合在一起构成了一个单一的个体,这就使得测量精度提高并且可以精确得出露点,而不会产生由于温度与湿度传感器之间随温度梯度变化而引起的误差。而且将传感器元件、信号放大器、模/ 数转换器、OTP 校准数据存储器、IC 工业标准串行总线等,电路功能部件全部采用CMOS 技术与温湿度传感器一起放置在一个芯片内。这不仅使信号强度增加,更重要的是长期稳定性也得到增强,这对传感器系统是极为重要的。同时,模/ 数转换也在一个芯片内同时完成,这可使信号对噪声不敏感,尤其重要的是,在传感器芯片数据存储器内装载的针对每一只传感
2
15