四川师范大学成都学院课程设计报告
DS18B20具有以下特性:
? 独特的单线接口方式。DS18B20与微处理器连接时仅需要一条口线即可实现微
处理器与DS18B20的双向通讯。 ? 在使用中不需要任何外围元件。
? 可用数据线供电,电压范围:3.0V--5.5 V。
? 测温范围:-55 ℃--125 ℃,固有测温分辨率为0.1 ℃。 ? 通过编程可实现9--12位的数字读数方式。 ? 用户可自设定非易失性的报警上下限值。
? 负压特性,电源极性接反时,不会因发热而烧毁,但不能正常工作。
3.2.4 DS18B20注意事项
主机控制DS18B20完成温度转换时,在每一次读写之前,都要对DS18B20进行复位,而且该复位要求主CPU要将数据线下拉500μs,然后释放。DS18B20收到信号后将等待16~60μs左右,之后再发出60~240μs的低脉冲。主CPU收到此信号即表示复位成功。实际上,较小的硬件开销需要相对复杂的软件进行补偿。由于DS18B20与微处理器间采用串行数据传送方式,因此,在对DS18B20进行读写编程时,必须严格地保证读写时序,否则,将无法正确读取测温结果。 对于在单总线上所挂DS18B20的数量问题,一般人们会误认为可以挂任意多个DS18B20,而在实际应用中并非如此。若单总线上所挂DS18B20超过8个时,则需要解决微处理器的总线驱动问题,因此,在进行蓄电池单体多点测温系统设计时该问题要加以注意。
连接DS18B20的总线电缆是有长度限制的。试验中,当采用普通信号电缆且其传输长度超过50 m时,读取的测温数据将发生错误。而将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150 m,如采用带屏蔽层且每米绞合次数更多的双绞线电缆,则正常通信距离还可以进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的,因此,在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 3.3 单片机芯片的选择
单片机是烟感报警器系统最重要的部分,可以说是它的心脏。它用来接收信号并根据判断结果驱动报警装置。51系列单片机的优点是价钱便宜,程序空间大,I/O口多,它是检测系统中比较理想的选择。本设计使用的控制芯片是ATMEL公司
8
四川师范大学成都学院课程设计报告
生产的AT89C51,高性能CMOS8位微处理器。AT89C51是一个低功耗高性能单片机,片内置通用8位中央处理器(CPU)和Flash存储单元,可灵活应用于各种控制领域。40个引脚, 2个全双工串行通信口。芯片可以按照常规方法进行编程,也可以在线编程,其将通用的微处理器和Flash存储器结合在一起,能反复擦写有效地降低开发成本。
本设计主要采用AT89C51芯片。AT89C51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
3.3.1 AT89C51简介
硬件设计中最核心的器件是单片机AT89C51。AT89C51 是美国 ATMEL 公司生产的带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,其实物图如图3.3.1-1。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
图3.3.1-1 AT89C51实物图
9
四川师范大学成都学院课程设计报告
3.3.2 AT89C51管脚功能说明
AT89C51共有40个管脚,其管脚分布如图3.1.2-1所示,下面介绍各管脚的功能。
图3.3.2-1 AT89C51管脚分布图
VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,
10
四川师范大学成都学院课程设计报告
P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如图3.3.2-1所示: 表3.3.2-1 P3口管脚功能 口管脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 功能 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(计时器0外部输入) T1(计时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) 51系列单片机的优点是价钱便宜,程序空间大,I/O口多,它是检测系统中比较理想的选择。它一方面控制A/D转换器实现模拟信号到数字信号的转换,另一方面,将采集到的数字电压值经计算机处理得到相应的二进制代码,与设定的值作比较。AT89C51是一个低功耗高性能单片机整个系统的软件编程就是通过汇编语言对单片机80C51实现其控制功能。 4 火灾报警器软件实现与调试 4.1 信号处理电路
为了便于系统维护和功能扩充,采用了模块化程序设计方法,系统各个模块的具体功能都是通过子程序调用实现的。本系统主要包括数据采集子程序、火灾判断与报警子程序等,系统程序流程图如图4.1-1所示。
11
四川师范大学成都学院课程设计报告
图4.1-1 系统程序流程图
AT89C51单片机好比一个桥梁,联系着传感器和报警电路设备。当周围的环境达到我们设定的数值时,声光传感器把被测的物理量作为输入参数,转换为电量(电流、电压、电阻等等)输出。物理量和测量范围的不同,传感器的工作机理和结构就不同。通常传感器输出的电信号是模拟信号(已有许多新型传感器采用数字量输出)。当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。而我们选择前者,不需要用放大器,选择数值符合A/D转换器的输入等级,这样就可以简化整个系统的设置。传感器将物理信号经过A/D转换器转化为可以利用识别的电信号给单片机,这里我们选择单片机的P1.0为输入方式,接收到信号的单片机经过程序的设定会由P2.0作为单片机的输出直接启动报警电路。图4.1-2为系统总电路图。
4.2 声光报警电路 4.2.1 声报警电路
声光报警电路在AT89C51的控制下,可根据温度和烟雾反馈在异常情况下发出声光信号报警。声音报警电路如图4.2.1-1所示。蜂鸣器工作电流一般比较大,以致于单片机的I/O 口是无法直接驱动的,要利用放大电路来驱动,一般使用三极管来放大电流就即可。声报警电路由单片机的P10引脚进行控制,当P10输出的电平为高电平时,三极管导通,蜂鸣器的电流形成回路,发出声音报警。
12