《智能温度计数字温度计电子竞技大赛项目申报书.doc》由会员分享,可在线阅读,更多相关《智能温度计数字温度计电子竞技大赛项目申报书.doc(26页珍藏版)》请在三一办公上搜索。
1、西华大学电子设计竞赛项目申报书项目名称: 数字温度计 学院名称: 电气信息学院 学生姓名: 鄢小林、王强、曾易丹 指导教师: 余 建 华 2010 年 01 月28 日一、项目组成员基本情况姓 名学 院专业年级联系电话签 名组 长 鄢小林电气信息学院 08电气15828199754成员1鄢小林电气信息学院08级电气15828199754成员2王强电气信息学院08级电气15884496082成员3曾易丹电气信息学院08级电气13402855712二、指导教师基本情况姓 名学 院职 称联系电话签 名1余建华电气信息学院2三、设计目的、意义和发展概况:1、设计目的: 利用单片机(AT89C52)设计
2、一温度计,具有1602LCD显示数字、字母的功能,带2位小数;温度传感器采用18B20;报警温度可以手工任意设置并显示它的报警温度范围,当温度不在设置范围内时,可以报警。 2、意义: 随着时代的进步和发展,单片机技术已经普及到我们生活,已经成为一种比较成熟的技术,本组将制作一种基于单片机控制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度, 3、发展概况:四、主要设计内容(包括设计方案、参数指标、作品特色等):设计方案: 4.1数字温度计设计方案论证4.1.1方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换
3、后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。4.1.2 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。4.2方案二的总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89C52,温度传感器采用DS18B20,用1602液晶显示器以串口传送数据实现
4、温度显示。图1总体设计方框图4.2.1 主控制器单片机采用AT89C52,具有8051结构的FLASH型和EEPROM型,具有低电压供电和体积小,单片机等特点,单片机内部有8KB的程序存储器。能够比较好的满足本数字温度计程序存储。4.2.2 显示电路4.2.3温度传感器 DS18B20 数字温度传感器(参考:智能温度传感器DS18B20的原理与应用)是DALLAS 公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。DS18B20 产品的特点:(1)、只要求一个I/O 口即可实现通信。(2)、在DS
5、18B20 中的每个器件上都有独一无二的序列号。(3)、实际应用中不需要外部任何元器件即可实现测温。(4)、测量温度范围在55 到125之间; 在-10 +85范围内误差为0.5;(5)、数字温度计的分辨率用户可以从9 位到12 位选择。将12位的温度值转换为数字量所需时间不超过750ms;(6)、内部有温度上、下限告警设置。DS18B20引脚分布图DS18B20 详细引脚功能描述:1、GND 地信号;2、DQ数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下,此引脚可以向器件提供电源;漏极开路, 常太下高电平. 通常要求外接一个约5k的上拉电阻.3、VDD可选择的VDD 引脚。电压范围:
6、35.5V; 当工作于寄生电源时,此引脚必须接地。DS18B20存储器结构图暂存储器的头两个字节为测得温度信息的低位和高位字节; 第3, 4字节是TH和TL的易失性拷贝, 在每次电复位时都会被刷新;第5字节是配置寄存器的易失性拷贝, 同样在电复位时被刷新;第9字节是前面8个字节的CRC检验值.配置寄存器的命令内容如下:0R1R011111MSB LSBR0和R1是温度值分辨率位, 按下表进行配置.默认出厂设置是R1R0 = 11, 即12位.温度值分辨率配置表R1R0分辨率最大转换时间(ms)009bit93.75(tconv/8)0110bit183.50(tconv/4)1011bit37
7、5(tconv/2)1112bit750 (tconv)4种分辨率对应的温度分辨率为0.5, 0.25, 0.125, 0.0625(即最低一位代表的温度值)12位分辨率时的两个温度字节的具体格式如下:低字节: 232221202-12-22-32-4高字节: SSSSS262524其中高字节前5位都是符号位S, 若分辨率低于12位时, 相应地使最低为0, 如: 当分辨率为10位时, 低字节为: 232221202-12-200, 高字节不变.一些温度与转换后输出的数字参照如下:温度数字输出换成16进制+12500000111 1101000007D0H+8500000101 01010000
8、0550H+25.062500000001 100100010191H+10.12500000000 1010001000A2H+0.500000000 000010000008H000000000 000000000000H-0.511111111 11111000FFF8H-10.12511111111 01011110FFE5H-25.062511111110 01101111FF6FH-5511111100 10010000FC90H由上表可看出, 当输出是负温度时, 使用补码表示, 方便计算机运算(若是用C语言, 直接将结果赋值给一个int变量即可).DS18B20 的使用方法:由于
9、DS18B20 采用的是1Wire 总线协议方式,即在一根数据线实现数据的双向传输,而对单片机来说,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序(dsInit()实现)、读时序(readByte()、写时序(writeByte()。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命
10、令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20与单片机连接电路图:利用软件模拟DS18B20的单线协议和命令:主机操作DS18B20必须遵循下面的顺序1. 初始化单线总线上的所有操作都是从初始化开始的. 过程如下: 1)请求: 主机通过拉低单线480us以上, 产生复位脉冲, 然后释放该线, 进入Rx接收模式. 主机释放总线时, 会产生一个上升沿脉冲.DQ : 1 - 0(480us+) - 1 2)响应: DS18B20检测到该上升沿后, 延时1560us, 通过拉低总线60240us来产生应答脉冲. DQ: 1(1560us) - 0(60240us)3)
11、接收响应: 主机接收到从机的应答脉冲后, 说明有单线器件在线. 至此, 初始化完成.DQ: 02. ROM操作命令当主机检测到应答脉冲, 便可发起ROM操作命令. 共有5类ROM操作命令, 如下表命令类型命令字节功能Read Rom 读ROM 33H读取激光ROM中的64位,只能用于总线上单个DS18B20器件情况, 多挂时会发生数据冲突Match Rom匹配ROM55H此命令后跟64位ROM序列号,寻址多挂总线上的对应DS18B20.只有序列号完全匹配的DS18B20才能响应后面的内存操作命令,其他不匹配的将等待复位脉冲.可用于单挂或多挂两种情况.Skip Rom 跳过ROMCCH可无须提供
12、64位ROM序列号即可运行内存操作命令, 只能用于单挂.Search Rom搜索ROMF0H通过一个排除法过程, 识别出总线上所有器件的ROM序列号Alarm Search告警搜索ECH命令流程与Search Rom相同, 但DS18B20只有最近的一次温度测量时满足了告警触发条件的, 才会响应此命令.3. 内存操作命令在成功执行ROM操作命令后, 才可使用内存操作命令. 共有6种内存操作命令:命令类型命令字节功能Write Scratchpad写暂存器4EH写暂存器中地址2地址4的3个字节(TH,TL和配置寄存器)在发起复位脉冲之前,3个字节都必须要写.Read Scratchpad读暂存器
13、BEH读取暂存器内容,从字节0一直到字节8, 共9个字节,主机可随时发起复位脉冲,停止此操作,通常我们只需读前5个字节.Copy Scratchpad复制暂存器48H将暂存器中的内容复制进EERAM, 以便将温度告警触发字节存入非易失内存. 如果此命令后主机产生读时隙, 那么只要器件还在进行复制都会输出0, 复制完成后输出1.Convert T温度转换44H开始温度转换操作. 若在此命令后主机产生时隙, 那么只要器件还在进行温度转换就会输出0, 转换完成后输出1.Recall E2 重调E2暂存器B8H将存储在EERAM中的温度告警触发值和配置寄存器值重新拷贝到暂存器中,此操作在DS18B20
14、加电时自动产生.Read Power Supply读供电方式B4H主机发起此命令后每个读数时隙内,DS18B20会发信号通知它的供电方式:0寄生电源, 1外部供电.4. 数据处理DS18B20要求有严格的时序来保证数据的完整性. 在单线DQ上, 有复位脉冲, 应答脉冲, 写0, 写1, 读0, 读1这6种信号类型. 除了应答脉冲外, 其它都由主机产生. 数据位的读和写是通过读、写时隙实现的.1) 写时隙: 当主机将数据线从高电平拉至低电平时, 产生写时隙.所有写时隙都必须在60us以上, 各写时隙间必须保证1us的恢复时间.写1 : 主机将数据线DQ先拉低, 然后释放15us后, 将数据线DQ
15、拉高;写0 : 主机将DQ拉低并至少保持60us以上.2)读时隙: 当主机将数据线DQ从高电平拉至低电平时, 产生读时隙. 所有读时隙最短必须持续60us, 各读时隙间必须保证1us的恢复时间.读: 主机将DQ拉低至少1us,. 此时主机马上将DQ拉高, 然后就可以延时15us后, 读取DQ即可.4.3 系统整体硬件电路4.3.1 主板电路系统整体硬件电路包括,传感器数据采集电路,温度显示电路,上下限报警调整电路,单片机主板电路等,如图5 所示。图5中有十六个矩阵键盘和一个独立式按键可以分别调整温度计的上下限报警设置和显示报警温度的范围,图中蜂鸣器可以在被测温度不在上下限范围内时,发光二极管亮
16、,发出报警鸣叫声音,同时LCD液晶显示器将显示Temperature error! ,这是可以按确定键停止蜂鸣器鸣叫和二极管发亮,然后按功能键按键这时可以调整报警上下限,从而测出被测的温度值。图5 中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。4.3.2 显示电路显示电路是使用的1602液晶显示器显示,它比数码管的功能齐全,性能好,特别是抗温度能力强,使数字温度计能在比较恶劣的环境下能够比较好的测温。显示清晰,体积小等特点。 图5 数字温度计主板图图6 键盘外形图4.4系统软件算法分析系统程序主要包括主程序,外部中断
17、程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。4.41主程序主程序的主要功能是负责读出设置温度范围,温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每进行一次就刷新一次。,其程序流程见图7所示。 图7 主程序流程图 4.4.2中断程序 中断程序是采用的外部中断0的电平触发方式。用一个独立的按键控制。当按键有效按下时。将进入中断程序来控制温度的高低温度范围的设置。和温度范围的显示。其程序流程图如下。 4.4.3读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如
18、图8示 图8读温度流程图4.4.4温度转换命令子程序发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图9所示 图9 温度转换流程图 参数指标:DS18B20采用12位分辨率,精度可达土0.5摄氏度,最大工作周期为750毫秒,检测温度范围为55C+125C(67F+257F)。显示采用1602LCD液晶显示器,主要参数如下表:作品特色: 本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温
19、准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89C52,测温传感器使用DS18B20,用1602LCD以串口传送数据,实现温度显示,能准确达到以上要求。五、设计计划进度安排:第一周:把数字温度计的程序完成和电路原理图完成第二周:图完成并完成了焊接电路板第三周:完成对系统的调试六、经费预算:液晶显示器 20*2=40元单片机AT89C52 6.5*2=13元MAX232 2.5*4=10元锁存器74HC573 1.5*2=3元串口接头 1.5*2=3元按键 1*1=1元电位器 0.5*6=3元温度传感器18B20 7*2=14元蜂鸣器 2.5*2=5元总计:元 七、指导教师意见: (签名) 年 月 日八、学院意见:(盖章) 年 月 日