基于单片机的GSM防盗防火报警器设计
① XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。
图4-1 AT89S52的引脚
② XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。
(3) 输入/输出引脚 P0.0~P0.7、P1.0~P1.7、P2.0~ P2.7 和P3.0~P3.7。
① P0端口P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。
在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。
② P1端口P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
③ P2端口P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX @DPTR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX @Ri , A指令)
16
基于单片机的GSM防盗防火报警器设计
时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。
④ P3端口P3 是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。
在AT89S52中,P3端口还用于一些专门功能,这些兼用功能如下: (1) P3.0 RXD(串行输入口) (2) P3.1 TXD(串行输出口) (3) P3.2 /INT0(外部中断0) (4) P3.3 /INT1(外部中断1) (5) P3.4 T0(记时器0外部输入) (6) P3.5 T1(记时器1外部输入) (7) P3.6 /WR(外部数据存储器写选通) (8) P3.7 /RD(外部数据存储器读选通)
(9) P3口同时为闪烁编程和编程校验接收一些控制信号
4.1.3 振荡器特性
XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。由于输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.1.4芯片擦除
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合, ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
4.1.5定时器/计数器
4.1.5.1主要特性
AT89S52单片机有两个可编程的定时器/计数器——定时器/计数器0与定时器/计数器1,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。每一个定时器/计数器具有4种工作方式,可用程序选择任一定时器/计数器在定时时间到或
17
基于单片机的GSM防盗防火报警器设计
记数值到时,可有程序安排产生中断请求信号或不产生中断请求信号。 4.1.5.2定时/计数器0和1的控制和状态寄存器
特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。
1.模式控制寄存器TMOD
TMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。
GATE位:门控位。
当GATE=1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1非的电平是高还是低。
C/T非位:计数/定时功能选择位。
C/T非=0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。 C/T非=1,设置为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。
M1、M0位:工作模式选择位。2位可形成4中编码,对应4种工作模式。 2.控制寄存器TCON
TCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断
TF1:定时器1溢出标志。
当定时器1溢出时,由硬件置1。使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志,进入中断服务后被硬件自动清零。
TR1位:定时器1运行控制位。
该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。 TF0位:定时器溢出标志位,其功能和操作情况类同于TF1。 TR0位:定时器0运行控制位,其功能和操作类同于TR1。 IE位:外部中断请求标志位。
18
基于单片机的GSM防盗防火报警器设计
当CPU采样到INT0非(或INT1非)端出现有效中断请求时,IE0(或IE1)由硬件置1,中断响应完成后转向中断服务时,再由硬件自动清零。
IT位:外部中断请求出发方式位。
IT0(IT1)=1为脉冲触发方式,后负跳有效。 IT0(IT1)=0为电平触发方式,低电平有效。 3.定时/计数器的初始化
AT89S52单片机的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。初始化一般应包括以下几个步骤:
对TMOD寄存器赋值,以确定定时器的工作模式;
置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,TL1; 根据需要,对寄存器IE置初值,开放定时器中断;
对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以后,计数器即按规定的工作模式和初值进行计数或开始定时[11]。
在初始化过程中,要置入定时/计数器的初值,这时要做一些计算。由于计数器是加法计数,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数最大值倒退回去一个计数值才是应置入的初值。设计数器的最大值为M(在不同的工作模式中,M可以为8192,65536,256),则置入的初值可以这样来计算。
计数方式时
X=M—记数值 定时方式时 (M—X)T=定时值 所以
X=M—定时值/T
式中,T为计数周期,是单片机的机器周期。 4.1.5.3T0和T1的4种工作方式
方式
0:13位定时/计数器,TL1(或TL0)的低5位和TH1(或TH0)的8位构成,TL中
19
基于单片机的GSM防盗防火报警器设计
的高3位弃之未用。当TL的低5位记数溢出时,向TH进位,而全部13位计数器溢出时使计数器回零,并使溢出标志TF置1,向CPU发出中断请求。
方式1:16位定时/计数器,其逻辑电路和工作情况与方式0几乎完全相同,唯一的差别就是方式1中TL的高3位也参与了计数。
方式2:把TL配置成一个可以自动重装载的8位定时/计数器
方式3:仅对T0有意义,将16位定时/计数器分成两个互相独立的8位定时/计数器TL和TH。
4.2烟雾传感器
本设计选用MQ-2气体传感器,传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。
MQ-2气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传感器。
20