1.毕业设计:红外温度测温仪的设计
温度传感器DS18B20测量环境温度_红外数据传输的过程098
引言
随着“信息时代”的到来,作为获取信息的手段——传感器技术得到了显著的进步,其应用领域越来越广泛,对其要求越来越高,需求越来越迫切。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握传感器的基本结构、工作原理及特性是非常重要的。
为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合传感器技术而开发设计了红外抄表系统。文中把传感器理论与单片机实际应用有机结合,详细地讲述了利用温度传感器DS18B20测量环境温度,以及实现红外数据传输的过程。 (void) { TMOD = 0x20; PCON = 0x00; SCON = 0x50; TH1 = 0xFd; TL1 = 0xFd; TR1 = 1; } void comm(char *parr) { do { SBUF = *parr++; //发送数据 while(!TI); //等待发送完成标志为1 TI =0; //标志清零 }while(*parr); //保持循环直到字符为'\0' } void main() { uchar buff[4],i; dula=0; wela=0; init_com(); while(1) { tempchange(); for(i=10;i>0;i--) { dis_temp(get_temp());} deal(temp); sprintf(buff,"%f",f_temp); for(i=10;i>0;i--) { dis_temp(get_temp());} comm(buff); for(i=10;i>0;i--) { dis_temp(get_temp());} } }。
6.基于DS18B20温度传感器的温度计设计c程序
#include "REG51.H"#include "INTRINS.H"typedef unsigned char BYTE;sbit DQ = P3^3; //DS18B20的数据口位P3.3BYTE TPH; //存放温度值的高字节BYTE TPL; //存放温度值的低字节void DelayXus(BYTE n);void DS18B20_Reset();void DS18B20_WriteByte(BYTE dat);BYTE DS18B20_ReadByte();void main(){ DS18B20_Reset(); //设备复位 DS18B20_WriteByte(0xCC); //跳过ROM命令 DS18B20_WriteByte(0x44); //开始转换命令 while (!DQ); //等待转换完成 DS18B20_Reset(); //设备复位 DS18B20_WriteByte(0xCC); //跳过ROM命令 DS18B20_WriteByte(0xBE); //读暂存存储器命令 TPL = DS18B20_ReadByte(); //读温度低字节 TPH = DS18B20_ReadByte(); //读温度高字节 while (1);}/**************************************延时X*10微秒不同的工作环境,需要调整此函数**************************************/void DelayX0us(BYTE n){ while (n--) { _nop_(); _nop_(); }}/**************************************复位DS18B20,并检测设备是否存在**************************************/void DS18B20_Reset(){ CY = 1; while (CY) { DQ = 0; //送出低电平复位信号 DelayX0us(48); //延时至少480us DQ = 1; //释放数据线 DelayX0us(6); //等待60us CY = DQ; //检测存在脉冲 DelayX0us(42); //等待设备释放数据线 }}/**************************************从DS18B20读1字节数据**************************************/BYTE DS18B20_ReadByte(){ BYTE i; BYTE dat = 0; for (i=0; i<8; i++) //8位计数器 { dat >>= 1; DQ = 0; //开始时间片 _nop_(); //延时等待 _nop_(); DQ = 1; //准备接收 _nop_(); //接收延时 _nop_(); if (DQ) dat |= 0x80; //读取数据 DelayX0us(6); //等待时间片结束 } return dat;}/**************************************向DS18B20写1字节数据**************************************/void DS18B20_WriteByte(BYTE dat){ char i; for (i=0; i<8; i++) //8位计数器 { DQ = 0; //开始时间片 _nop_(); //延时等待 _nop_(); dat >>= 1; //送出数据 DQ = CY; DelayX0us(6); //等待时间片结束 DQ = 1; //恢复数据线 }}。
7.基于AT89S52和DS18B20的数字温度计的设计报告
#include #include
8.基于AT89C51&DS18B20的数字温度计设计:测温范围
1602a显示的#include
转载请注明出处众文网 » 毕业论文《基于ds18b20单片机的红外测温仪的设计与制作>(毕业设计:红外温度测温仪的设计)