ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:511.14KB ,
资源ID:7505038      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7505038.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的温度传感器的设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的温度传感器的设计.docx

1、基于单片机的温度传感器的设计 基于单片机的温度传感器的设计目 录第一章 绪论 -21.1 课题简介 21.2 设计目的 31.3 设计任务 3第二章 设计内容与所用器件 4第三章 硬件系统设计 43.1单片机的选择 43.2温度传感器介绍 53.3温度传感器与单片机的连接 83.4单片机与报警电路 93.5电源电路 103.6显示电路 103.7复位电路 11第四章 软件设计 124.1 读取数据流程图 124.2 温度数据处理程序的流程图 134.3程序源代码 14总 结 21 附录-16第一章 绪论1.1 课题简介单片机,更确切的应称作微控制器,是20世纪70年代中期发展起来的一种面向控制

2、的大规模集成电路模块,其特点是功能强大、体积小、可靠性高、价格低廉。它一面世便在工业控制、数据采集、智能化仪表、机电一体化、家用电器等领域得到广泛应用,极大地提高了这些领域的技术水平和自动化程度。因此,单片机的开发、应用已成为高科技和工程领域的一项重大课题。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它给人带来的方便也是无可置疑的,其中数字温度计就是一个典型的例子。随着人们对它的要求越来越高,要为现代人工作和生活提供更好、更方便的设施就需要从数字单片机技术入手,一切向着数字化控制、智能化控制方向发展。温度测量在物理实验、医疗卫生、食品生产等领域,尤其在热学实验(如:物体的比

3、热容、汽化热、热功当量、压强温度系数等教学实验)中,有特别重要的意义。目前温度计的发展很快,从原始的玻璃管温度计发展到了现在的热电阻温度计、热电偶温度计、数字温度计、电子温度计等等。现在所使用的温度计通常都是精度为1和0.1的水银、煤油或酒精温度计,这些温度计的刻度间隔通常都很密,不容易准确分辨,读数困难,而且他们的热容量还比较大,达到热平衡所需的时间较长,因此很难读准,并且使用非常不方便。本文所介绍的数字温度计与传统的温度计相比,具有读数方便、测温范围广、测温准确等优点,其输出温度采用数字显示,主要供测温要求准确的场所和科研实验室使用。该设计控制器使用单片机AT89C51,温度传感器DS18

4、B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。1.2 设计目的熟悉单片机AT89C51和传感器DS18B20的应用,及单片机与外围电路的接法,加深对单片机以及传感器的认识,了解单片机在日常生活中的应用及其重要性。同时,通过查找资料,设计电路,使本次设计的数字温度计具有结构简单、成本低廉、精确度高、反应速度快、数字化显示和不易损坏等特点。在这次设计中,熟悉了制作一个产品的基本流程。通过选认元件,连线,等过程,锻炼自己的学习能力。1.3 设计任务1、以AT89C51单片机为核心器件,组成一个数字式温度计。2、采用数字式温度计传感器为检测器件,进行单点温度检测,检

5、测精度为0.5C。3、温度显示采用4位LED数码管显示,两位整数,一位小数。4、具有键盘输入上、下限功能,超过上、下限温度时,进行声音报警。第二章 设计内容与所用器件基本功能:利用89C51作为主控器组成一个数字温度计。可选器件:AT89C51单片机、DB18B20、7段LED数码管等 系统原理图第三章 硬件系统设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用

6、系统。本设计选用以AT89C51单片机为主控单元,DB18B20为数据采集模块,显示部分采用7段LED动态显示,警报部分采用蜂鸣器。3.1 单片机的选择AT89C51AT89C51单片机的主要特性:1、与MCS-51 兼容,4K字节可编程闪烁存储器;2、灵活的在线系统编程,掉电标识和快速编程特性;3、寿命为1000次写/擦周期,数据保留时间可10年以上;4、全静态工作模式:0Hz-33Hz;5、三级程序存储器锁定;6、128*8位内部RAM,32可编程I/O线;7、两个16位定时器/计数器,6个中断源;8、全双工串行UART通道,低功耗的闲置和掉电模式;9、片内振荡器和时钟电路;芯片共有40个

7、引脚,其中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。3.2 温度传感器介绍DS18B20可以程序设定9-12的分辨率,精度为0.5C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。温度传感器DS18B20引脚如图所示引脚功能说明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范围35.5V。当工作于寄生电源时,此引脚必须接地。 DQ :数据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发

8、的温度报警触发器TH和TL、配置寄存器。64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TH或

9、TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。DS18B20的测温原理是这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器、温度寄存器中,计数器1和温度寄存器被预置在55所

10、对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发RO

11、M功能命令发存储器操作命令处理数据。 源供电方式在外部电源供电方式下,DS18B20工作电源由VCC引脚接入,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85。部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单。本次数字温度计的设计采用的就是外部电源供电方式。3.3 温度传感器与单片机的连接温度传感器的单总线(1-Wire)与单片机的P20连接,P20是单片机的高

12、位地址线A8。P2端口是一个带内部上拉电阻的8位双向IO,其输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对该端口写“1”,可通过内部上拉电阻将其端口拉至高电平,此时可作为输入口使用,这是因为内部存在上拉电阻,某一引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器时。如执行MOVX DPTR指令,则表示P2端口送出高8位的地址数据。在访问8位地址的外部数据存储器时,可执行MOVX RI指令,P2端口内容即为特殊功能寄存器(SFR)区中R2寄存器内容,整个访问期间不改变。在Flash编程和程序校验时,P2端口也接收高位地址和其他控制信号。下图为DSl8

13、B20内部结构。下图为DSl8B20与单片机的接口电路。 3.4 单片机与报警电路 系统中的报警电路是由发光二极管和限流电阻组成,并与单片机的P1.2端口连接。P1端口的作用和接法与P2端口相同,不同的是在Flash编程和程序校验期间,P1接收低8位地址数据。3.5 电源电路由于该系统需要稳定的5 V电源,因此设计时必须采用能满足电压、电流和稳定性要求的电源。该电源采用三端集成稳压器LM7805。它仅有输入端、输出端及公共端3个引脚,其内部设有过流保护、过热保护及调整管安全保护电路由于所需外接元件少,使用方便、可靠,因此可作为稳压电源。下图为电源电路连接图。 3.6 显示电路采用技术成熟的74

14、HCl64实现串并转换。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。下图为显示电路的连接图。 3.7复位电路单片机的P1.6端口是MAX813复位电路中复位信号的输入端,即单片机每执行一次程序就设置一次复位信号,清零复位器件。若程序出现异常,单片机引脚RST将出现两个机器周期以上的高电平,使

15、其复位。该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上。若使用频率为12 MHz的晶体振荡器,则复位信号持续时间应超过2s才完成复位操作。连接图如下图所示。 第四章 软件设计DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠

16、性。读取数据流程图如下:读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0.5的话,向个位进1;小于0.5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为-55,所以可以将整数部分的最高位换成一个“-”,表示为负数。图为温度数据处理程序的流程图如下所示:程序源代码DATA_BUS BIT P3.3 FLAG

17、 BIT 00H ;标志位 TEMP_L EQU 30H ;温度值低字节 TEMP_H EQU 31H ;温度值高字节 TEMP_DP EQU 32H ;温度小数 TEMP_INT EQU 33H ;温度值整数 TEMP_BAI EQU 34H ;温度百位数 TEMP_SHI EQU 35H ;温度十位数 TEMP_GE EQU 36H ;温度个位数 DIS_BAI EQU 37H ;显示百位数 DIS_SHI EQU 38H ;显示十位数 DIS_GE EQU 39H ;显示个位数 DIS_DP EQU 3AH ;显示小数位 DIS_ADD EQU 3BH ;显示地址 ORG 0000H A

18、JMP START ORG 0050H ;初始化 START: MOV SP, #40HMAIN: LCALL READ_TEMP ;调读温度程序 LCALL PROCESS ;调数据处理程序 AJMP MAIN;读温度程序READ_TEMP: LCALL RESET_PULSE ;调用复位脉冲程序 MOV A, #0CCH ;跳过ROM命令 LCALL WRITE MOV A, #44H ;读温度 LCALL WRITE LCALL DISPLAY ;显示温度 LCALL RESET_PULSE ;调用复位脉冲程序 MOV A, #0CCH ;跳过ROM命令 LCALL WRITE MOV

19、A, #0BEH ;读缓存命令 LCALL WRITE LCALL READ RET;复位脉冲程序RESET_PULSE:RESET: SETB DATA_BUS NOP NOP CLR DATA_BUS MOV R7, #255 DJNZ R7, $ SETB DATA_BUS MOV R7, #30 DJNZ R7,$ JNB DATA_BUS, SETB_FLAG CLR FLAG AJMP NEXTSETB_FLAG: SETB FLAGNEXT: MOV R7, #120 DJNZ R7, $ SETB DATA_BUS JNB FLAG, RESET RET;写命令WRITE: S

20、ETB DATA_BUS MOV R6, #8 CLR CWRITING: CLR DATA_BUS MOV R7, #5 DJNZ R7, $ RRC A MOV DATA_BUS, C MOV R7, #30H DJNZ R7, $ SETB DATA_BUS NOP DJNZ R6, WRITING RET;循环显示段位DISPLAY: MOV R4, #200DIS_LOOP: MOV A, DIS_DP MOV P2, #0FFH MOV P0, A CLR P2.7LCALL DELAY2MS MOV A, DIS_GE MOV P2, #0FFH MOV P0, A SETB P

21、0.7 CLR P2.6 LCALL DELAY2MS MOV A, DIS_SHI MOV P2, #0FFH MOV P0, A CLR P2.5 LCALL DELAY2MS MOV A, DIS_BAI MOV P2, #0FFH MOV P0, A MOV A, TEMP_BAI CJNE A, #0,SKIP AJMP NEXTT SKIP: CLR P2.4 LCALL DELAY2MS NEXTT: NOP DJNZ R4, DIS_LOOP RET;读命令READ: SETB DATA_BUS MOV R0, #TEMP_L MOV R6, #8 MOV R5, #2 CLR

22、 CREADING: CLR DATA_BUS NOP NOP SETB DATA_BUS NOP NOP NOP NOP MOV C, DATA_BUS RRC A MOV R7, #30H DJNZ R7, $ SETB DATA_BUS DJNZ R6, READING MOV R0, A INC R0 MOV R6, #8 SETB DATA_BUS DJNZ R5, READING RET;数据处理PROCESS: MOV R7, TEMP_L MOV A, #0FH ANL A, R7 MOV TEMP_DP,A MOV R7, TEMP_L MOV A, #0F0H ANL A,

23、 R7 SWAP A MOV TEMP_L, A MOV R7, TEMP_H MOV A, #0FH ANL A, R7 SWAP A ORL A, TEMP_L MOV B, #64H DIV AB MOV TEMP_BAI,A MOV A, #0AH XCH A, B DIV AB MOV TEMP_SHI,A MOV TEMP_GE,B MOV A, TEMP_DP MOV DPTR, #TABLE_DP MOVC A, A+DPTR MOV DPTR, #TABLE_INTER MOVC A, A+DPTR MOV DIS_DP, A MOV A, TEMP_GE MOV DPTR,

24、 #TABLE_INTER MOVC A, A+DPTR MOV DIS_GE, A MOV A, TEMP_SHI MOV DPTR, #TABLE_INTER MOVC A, A+DPTR MOV DIS_SHI, A MOV A, TEMP_BAI MOV DPTR, #TABLE_INTER MOVC A, A+DPTR MOV DIS_BAI ,A RETDELAY2MS: MOV R6, #3LOOP3: MOV R5, #250 DJNZ R5, $ DJNZ R6, LOOP3 RETTABLE_DP: DB 00H,01H,01H,02H,03H,03H,04H,04H,05

25、H,06H DB 06H,07H,08H,08H,09H,09HTABLE_INTER: DB 03FH,006H,05BH,04FH,066H DB 06DH,07DH,07H,07FH,06FH END总结与体会作为一名电子信息工程的大三学生,我觉得做单片机课程设计是很有意义的,而且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题。在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1