版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要基于DS18B20的温度传感系统设计方案,运用Atmel公司AVR系列具有高性能单片机ATmega16作为温度测量的控制核心,结合双线的温度传感器DS18B20实现温度的采集、显示和串口传输。本温度传感系统的硬件设计主要包括单片机ATmega16外围电路设计,温度传感器DS18B20的外围电路设计以及供电,显示等辅助功能电路设计。所用的开发板上主控芯片是ATmega16单片机,开发板的开发资源丰富,足够满足本温度采集系统的硬件需求。本系统的软件由两大部分组成:1、单片机控制软件单片机控制程序主要包括温度传感器DS18B20的驱动程序、单片机定时器0定时中断程序以及单片机UART串口通信和数
2、据命令解析程序。最终可以实现环境温度的实时采集和显示、定时通过串口发送温度数据以及得到PC端获取温度指令后发送温度数据的功能。2、PC机部分上位机软件上位机软件主要能实现温度数据的串口收发,以及用户通过鼠标点击查询按钮后获取当前环境温度数据的功能。预期结果本系统预期要实现环境温度的实时采集显示和定时串口收发以及按照用户需求串口收发的基本功能,是一项有技术含量有意义的单片机作品。关键词 DS18B20,PC机,AVR单片机,串口,温度测量Content abstractTemperature sensing system based on chip DS18B20 Atmel company d
3、esign, use with high performance microprocessor ATmega16 AVR series as control core of measurement temperature, combining with the temperature sensor DS18B20 double realize the collection of temperature, display and serial transmission. This temperature sensing system hardware design includes microc
4、ontroller ATmega16 peripheral circuit design, the temperature sensor DS18B20 peripheral circuit design and supply, display the auxiliary function circuit design. The development board used ATmega16 microcontroller, master chip is the development of development board rich resources, enough to satisfy
5、 this temperature collection system hardware requirements. The software of this system consists of two main components: 1 and single-chip microcomputer control software SCM control procedure mainly include temperature sensor DS18B20 driver, digital tube real-time display procedures, microcontroller
6、timer 0 timing interruption program and single-chip microcomputer UART serial communication and data commands parsing program. Eventually can realize real-time data acquisition and the environmental temperature display, regularly send temperature data through a serial port and get the PC gain temper
7、ature instructions sent after the function of temperature data. 2, PC parts PC software PC software main can realize temperature data of serial transceiver, and users through the mouse to click inquires the button gets the current environment after the function of temperature data. Expected results
8、This system is expected to achieve environmental temperature collect real-time display and timing serial transceiver and serial port according to user requirements, the basic function of receiving is a skilled meaningful microcontroller works. Keywords :DS18B20, PC, AVR microcontroller, serial ports
9、, temperature measurement 目录摘要-Content abstract-绪 论 -1、设计的目的和意义-3温度传感器-温度传感器的发展-1.3 论文研究的内容-第二章 系统总体的设计-2.1 系统总体结构框图-2.2 系统设计硬件的确定- 2.2.1 单片机的选择- 2.2.2 温度传感器的选型- 2.2.3 串行通信的选择-第三章 系统的硬件设计-3.1 系统开发板-3.2ATmega16 AVR单片机-3.3 DS18B20温度传感-3.4 UART串行通信设备-第四章 系统的编制与实现-4.1 主程序设计-4.2 DS18B20 模块程序设计-4.2.1 DS18
10、B20 工作的过程-4.2.2 DS18B20 工作的时序-4.2.3 DS18B20 温度程序代码-4.2.4温度采集流程图-4.3 显示模块设计-4.3.1 C+4.4串口通信设计-4.4.1单片机端口通信程序设计-4.4.2PC端通信程序设计-4.5 现场实测温度显示-第五章 结论-5.1 总结-5.2系统实物图-5.3展望-参考文献-个人简历-致谢-附录-第一章 绪论伴随着科学技术的进步和经济的不断发展,温度控制已经成为人类生产生活中不可或缺的一部分。诸如自动化工业,环境监测与保护,生产安全监控,都里不来温度测量这个最为重要的环境基础性参数。而如何实现测量的精确性,稳定性,可操作性,低
11、投入并且高效,是新一代温度测量仪的必然要求。1.1设计的目的和意义 作为表征物体冷热程度的物理量,温度是温度测量系统和温度监控系统中最为核心最为基础的衡量指标。对温度这个测量系统中的被控参数来说,准确的监测温度数据一直是一个非常重要的研究对象,测量温度的仪器在生产生活中扮演着举足轻重的角色。 对于我国这样一个人口众多的发展中农业大国来说,粮食安全关乎国家安危,粮食的生产和储备至关重要。粮食在生产过程中,环境温度影响粮食产量,通过对环境温度的实时监控,及时调整温度环境,可以更好的促进作物生长,提高粮食产量。在粮食储存过程中,对环境的要求更为严格,合理的温度和湿度才能保障粮食的储存安全,避免粮食腐
12、烂给国家造成严重的损失。 近年来,全球气候变暖日益加快,西南地区干旱频发,北方雪灾连年,人工气候的运用越来越广泛。通过温度的测量及时采取措施应对复杂的气候变化,通过温度的实时监控预测未来气候的变化情况,已成为人工气候最基础的手段。避免了人类生产生活中不必要的损失。另外,在煤炭开采,发电,炼钢等重工业来说,对于温度的要求更为严格。室内室外温度比对,生产、开采中的温度环境监测,都是在高温高压的环境下进行,因此,处于安全方面的考虑,人工监测难以实现。1.2 温度传感器温度传感器是能够感受温度并通过一定的方式将温度信号转换成可以输入输出信号的传感器。作为测量温度的关键元件,选取何种型号的温度传感器来达
13、到设计要求,对系统性能,复杂程度和设计成本都有一定关系。所以要对温度传感器进行研究。1.2.1温度传感器的发展温度传感器的发展主要经历了三个阶段:第一阶段:温度传感器由比较敏感的元件组成,其结构是温度测量和温度感应相分离。第二阶段:模拟集成温度传感器:改变原来的规模,将温度传感器集成在一个芯片上,实现温度测量和模拟信号的输出,是一种价格低廉,结构简单的温度传感器。第三阶段:智能温度传感器:优点在于在测量温度的同时可以温度数据,以硬件为基础,通过软件来实现温度测量。1.2.3论文研究的内容本系统预期要实现环境温度的实时采集显示和定时串口收发以及按照用户需求串口收发的基本功能。采用DS18B20作
14、为采集温度的传感器,通过计算机控制温度传感器,以微机作为控制温度测量的主控计算机,利用USB转串口电路板将开发板与计算机相连接,用ICCAVR开发环境编写C语言代码,并制作温度传感系统上位机软件,同步上位机软件和开发板,实现环境温度的测量。系统的总体设计2.1系统总体结构框图在PC机上使用温度采集软件发出温度采集信号,采集信号通过RS232串口,将温度采集信号传输到开发板的DS18B20温度采集系统上,温度采集系统接收采集信号并进行温度采集,并将采集的温度传输给到数码显示管上,并将温度显示在数码管的液晶显示屏上。同时,DS18B20温度采集系统将温度采集结果通过RS232串口传输到PC机上,通
15、过温度传感系统上位机软件显示采集信息。此时,温度传感系统上位机软件显示数据与数码管显示器显示的温度一致。2.2 系统设计硬件的确定2.2.1 单片机的选择ATmega16 AVR单片机ATmega16 AVR 内核拥有丰富的指令集。32 个通用工作寄存器直接与运算逻辑单元(ALU)连接,其优点在于一个时钟周期内,一条指令可以同时访问两个相互独立的寄存器,这种结构使得代码效率显著提高。 ATmega16 的数据吞吐率高达1 MIPS/MHz,其数据吞吐量比普通的CISC 微控制器多出10 倍。传统的单片机中,功耗越高,处理速度就越快,而ATmega16 AVR解决了功耗和处理速度之间的矛盾,实现
16、了在低功耗条件下,处理速度也能很快。2.2.2 温度传感器的选型DS18B20温度传感器共有9位温度读数。测量范围从-55+125,增加值为0.5。在1秒的时间内可以把温度变为数字。信息通过单线接口进行输入和输出,只需一个引脚就可以实现从中央处理器到DS18B20的数据传输。由于其耗电低,无需另外提供外部电源,直接可由数据线提供,无需备份电源,更为方便快捷的实现温度采集和数据传输。2.2.3 串行通信的选择本设计采用UART作为串行通信设备。UART:Universal Asynchronous Receiver/Transmitter,是一个并行输入成为串行输出的芯片,通常可以集成在用户所需
17、的开发板上。其功能主要是实现计算机与串行设备的数据传输。UART 以RS-232C作为数据终端设备接口,从而是实现计算机与使用RS-232C接口的串行设备的信息传输。UART是最常用的接口,其功能如下:把PC机传送过来的并行数据通过UART转化为输出的串行数据流。将PC机外部来的串行数据转换为可供计算机识别使用的字节。处理键盘或鼠标等串行设备发出的中断信号。还可以实现PC机与外部串行设备之间的同步。系统的硬件设计3.1开发板开发板是用于嵌入式系统开发的电路板。通过一定技术将CPU、存储器、输入、输出设备、数据通路/总线等研究设计所需要的一系列外部资源接口等硬件烧制在一块电路板上,省去了设备之间
18、相互连接的复杂环节,节约了空间和资源。嵌入式系统开发者可以根据自己对研究设计的需求订制或自制开发板。此开发板包含了设计的所需的全部元件,包括DS18B20温度传感器,Atmega16单片机,数码管,USB通信接口,串行通信接口等。3.2 ATmega16单片机图所示为ATmega16单片机逻辑结构图。 AVR具有独立的数据总线和程序总线,因此它具有较高的性能和并行性。程序存储器里的指令通过一级流水线运行。CPU 在执行前条指令的同时读取后一条指令。在ALU 操作中,当两个位于寄存器中的文件操作同时被访问并执行运算,其结果被送回寄存器文件当中。整个过程仅需一个时钟周期。因此大大提高了本系统测量温
19、度的效率。ALU支持寄存器与寄存器之间、寄存器和常数之间的算术运算和逻辑运算。状态寄存器的内容得在运算完成之后得到更新并且反应出反映操作结果。状态寄存器最近执行的算术指令结果信息保存在状态寄存器当中,这些信息的作用是改变程序流程从而实现条件操作。所有ALU 运算会使状态寄存器的内容受到影响。因此,在一般情况下,无需设置专门的比较指令,进而使系统运行速度更快,代码效率更高。但是当中断服务程序进入寄存器时,不能自动进行保存,需要软件来实现。UART串行通信设备UART串行通信设备存在于该ATmega16单片机内,其结构如图所示:3.3 DS18B20温度传感引脚说明GND 地DQ 数字输入输出VD
20、D 可选的VDDNC 空引脚DNC 不连接DS18B20的内部结构DS18B20内部主要构成:64位ROM、温度传感器,输入输出端;GND接地;外接供电电源输入端VDD ROM中的64位序列号是厂商刻好的,作为每个DS18B20的地址序列码,因此每个DS18B20的64位序列号都不会相同。ROM使得任何一个DS18B20都不相同,进而实现一根总线上可以挂接多个DS18B20。温度数据的的转换与读取。温度传感器将温度数据传送给高速缓冲存储器,读取温度寄存器,如图所示共有9 个寄存器,前边两个寄存器为所需测量的温度数值,先读的8位是低字节,最后读的8 位是高字节。符号位。前面5 位,表示温度的正负
21、值,若前五位的5 位为0,说明所测温度大于0,实际温度=测得数值X 0.0625;同理,若前五位5都为1,说明所测温度小于0,实际温度=(测得数据取反+1) x 0.062.DS18B20温度之间的数值转化如下图所示3.4 串口仿真器工作步骤1.将串口仿真器与PC机相连串口仿真器与USB转串口电路板相连接,使用USB数据线将转串口电路板和PC机上的闲置USB口相连。将串口仿真器与开发板相连使用DB9接口与本设计所使用的开发板相连接。供电串口仿真器供电十分灵活,开发板可以向串口仿真器供电,串口仿真器也可以向开发板供电。集成仿真器开发环境串口仿真器与PC机相连,通过AVR studio实现编程。U
22、SB转串口电路板USB转串口电路板采用双层电路板制作,稳定性好,速率可以根据用户需求进行设置,驱动简单,使用方便,在本次设计中作为连接PC机和串口仿真器的重要器件,从而稳定的实现高速通信。第四章 系统的编制与实现4.1 SMG.Cvoid One_smg_display(uchar data,uchar number) PORTB|=0x3F; /输出位选 PORTA|=BIT(BITLK); /更新位选 Delayus(50); /调整时序 PORTA&=BIT(BITLK); /锁存位选 PORTB=SEGMENTdata; /输出段选 PORTA|=BIT(SEGLK); /更新段选 D
23、elayus(50); /调整时序 PORTA&=BIT(SEGLK); /锁存段选 number=BIT(number-1); /调整位选 PORTB=number; /输出位选 PORTA|=BIT(BITLK); /更新位选 Delayus(50); /调整时序 PORTA&=BIT(BITLK); /锁存位选/*/*/void All_smg_display(uchar *pdata) uchar i; for(i=0;i6;i+) One_smg_display(pdatai,i+1); Delayms(1);/*/*/void Cycle_smg_display(uchar *pd
24、ata) uchar i,j; for(i=0;i240;i+) /共滚动6次,每次内容显示40个循环 for(j=0;j6;j+) /扫描6个数码管 One_smg_display(pdata(i/40+j)%6,j+1);/显示 Delayus(2000); /调整显示时间和亮度(时间越长亮度越高) UART.Cvoid Uart_init(uint baud) baud=MCLK/16/baud-1; /波特率最大为65K UCSRB=0x00; UCSRA=0x00; /控制寄存器消零 UCSRC=(1URSEL)|(0UPM0)|(38; /设置波特率 UCSRB=(1TXEN)|(
25、1RXEN)|(1RXCIE); /接收。发送使能 /全局中断开放 DDRD|=0X02; /配置YX为输出/*/*/void Uart_sendB(uchar sendB) while(!(UCSRA&(1UDRE); /等待发送缓冲区为空 UDR=sendB; /发送数据 while(!(UCSRA&(1TXC); /等待发送完毕 UCSRA|=1TXC; /消除发送完毕状态/*/*/void Uart_sentstr(uchar *sendpt) while(*sendpt)/字符串未结束 继续发送 Uart_sendB(*sendpt+);/*/*/void Uart_RX(void)
26、 UCSRB&=BIT(RXCIE);/关闭接收中断 RDATANUM+=UDR;/将接收到的数据存入全局数组 RFLAG=TRUE;/接收到新数据标志位置 UCSRB|=BIT(RXCIE);/使能接收中断TINEROINT,Cvoid Timer0_init(void) TCCR0|=0x05; /普通计时模式,普通端口操作, TCNT0=0; /32.768ms 一次中断 SREG|=BIT(7); /开放全局中断 TIMSK|=BIT(TOIE0);/开放TIMER0溢出中断 DDRA|=BIT(PA0); /配置PA0引脚为输出 /*/*/unsigned int Timercoun
27、ter=0;void Timer0(void) TCNT0=0; /重新赋初值 Timercounter+; DS18B20void Delayus(uint US) uint i; US=US*5/4; /5/4是在8MHZ晶振下,通过软件仿真反复实验得到的数值 for( i=0;iUS;i+); /*/*/void Delayms(uint MS) uint i,j; for( i=0;iMS;i+) for(j=0;j1141;j+);/1141是在8MHZ晶振下通过软件仿真反复实验得到的 /*/void B20_init(void) DDRA|=BIT(DS18B20);/配置为输出
28、PORTA&=BIT(DS18B20);/拉低 Delayus(600);/等待600微秒 PORTA|=BIT(DS18B20);/释放总线 Delayus(60);/等待60微秒 DDRA&=BIT(DS18B20);/配置为输入 while(PINA&(BIT(DS18B20);/等待DS18B20拉低 while(!(PINA&(BIT(DS18B20); /等待DS18B20释放总线/*/*/uchar B20_readB(void) uchar i,retd=0; for(i=0;i=1;/右移等待接受新的数据位 DDRA|=BIT(DS18B20);/配置为输出 PORTA&=B
29、IT(DS18B20);/拉低,启动读数据位 PORTA|=BIT(DS18B20);/释放总线 Delayus(5);/等待5微秒 DDRA&=BIT(DS18B20);/配置为输入,开始读取数据位 if(PINA&BIT(DS18B20)/该位是否为高 retd|=0x80;/是就将此位置高 Delayus(50);/等待50微秒 return retd;/将读到的一个字节返回/*/*/void B20_writeB(uchar wrd) uchar i; for(i=0;i=1;/右移新数据的写入做准备 Delayus(50);/等待50微秒/*/*/uint Read_temp(voi
30、d) uchar templ,temph; uint temp; B20_init(); /初始化 B20_writeB(0xcc); /跳过ROM B20_writeB(0x44); /启动温度转换 B20_init(); /初始化, B20_writeB(0xcc); /跳过ROM B20_writeB(0xbe); /读寄存器 templ=B20_readB(); /读温度低字节 temph=B20_readB(); /读温度高字节 temp=templ+temph*256;/将温度整理成16位变量 return temp; /返回16位变量/*/*/uchar* Num_BCD(uin
31、t num) uchar i,chr3; uchar *rept; rept=&(chr0); /返回指针指向BCD码数组 for(i=0;i3;i+) chr2-i=num%10; /对10取余数 num/=10; /除以10,为取下一位做准备 return rept; /返回指针/*/*/ void Dis_Temp(void) uint t; uchar *temppt; uchar i,temp3; t=Read_temp(); /读取温度值 t*=0.625; /转换成实际温度的10倍 temppt=Num_BCD(t);/将实际温度的10倍转换成BCD码 for(i=0;i3;i+)/转化后的BCD码存入显示数组 tempi=*(temppt+i); for(i=0;i8); Delayms(10); Uart_s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (正式版)DB4117∕T 220-2019 《冬季黄瓜嫁接育苗技术规程》
- 2026辽渔集团有限公司社会招聘37人备考题库含答案详解(黄金题型)
- 2026福建莆田城厢区灵川镇中心卫生院招聘编外合同工1人备考题库附答案详解(夺分金卷)
- 2026福建三明市妇女联合会直属事业单位选聘1人备考题库有答案详解
- 2026重庆长途汽车运输集团合瑞运输有限公司招聘18人备考题库及一套参考答案详解
- 2026安徽皖信招聘铁塔阜阳市分公司技术人员2人备考题库附答案详解(综合题)
- 2026辽渔集团有限公司社会招聘37人备考题库及参考答案详解一套
- 2026江西南通市教育局部分直属学校春季招聘教师145人备考题库带答案详解(完整版)
- 2026云南昭通永善黄华镇中心卫生院招聘6人备考题库附答案详解(能力提升)
- 2026江西景德镇乐平市招聘公立医院编外卫生专业技术人员104人备考题库及答案详解(名校卷)
- 2025-2030中国数字多用表行业发展分析及竞争格局与发展趋势预测研究报告
- 2026届东北三省三校高三第二次联合模拟考试物理试题(含答案解析)
- 初中物理八年级下册《功与机械能》单元教学设计:探究“功”的内涵、计算与意义
- 医疗器械质量安全风险会商管理制度
- 2026年青少年国防教育专题竞赛题库
- 交银金科校招笔试题库
- 2026年长春中考艺术常识测试题及答案
- 铁路防胀知识培训
- Q-SY 08839-2021 专职消防队建设管理规范
- GB/T 1800.3-1998极限与配合基础第3部分:标准公差和基本偏差数值表
- GB/T 12706.2-2020额定电压1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)挤包绝缘电力电缆及附件第2部分:额定电压6 kV(Um=7.2 kV)到30 kV(Um=36 kV)电缆
评论
0/150
提交评论