毕业论文《基于ds18b20单片机的红外测温仪的设计与制作>(毕业设计:红外温度测温仪的设计)

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 #includeunsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f};unsigned char code displaycode[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, 0x00,0x40};unsigned char code dotcode[32]={0,3,6,9,12,16,19,22,25, 28,31,34,38,41,44,48, 50,53,56,59,63,66,69, 72,75,78,81,84,88,91,94,97};unsigned char displaycount;unsigned char displaybuf[8]={16,16,16,16,16,16,16,16};signed int timecount;unsigned char readdata[8];sbit DQ=P3^7;bit sflag;bit resetpulse(void){ unsigned char i; DQ=0; for(i=255;i>0;i--); DQ=1; for(i=60;i>0;i--); return(DQ); for(i=200;i>0;i--);}void writecommandtods18b20(unsigned char command) { unsigned char i; unsigned char j; for(i=0;i<8;i++) { if((command&0x01)==0) { DQ=0; for(j=35;j>0;j--); DQ=1; } else { DQ=0; for(j=2;j>0;j--); DQ=1; for(j=33;j>0;j--); } command=_cror_(command,1); } } unsigned char readdatafromds18b20(void) { unsigned char i; unsigned char j; unsigned char temp; temp=0; for(i=0;i<8;i++) { temp=_cror_(temp,1); DQ=0; _nop_(); _nop_(); DQ=1; for(j=10;j>0;j--); if(DQ==1) { temp=temp|0x80; } else { temp=temp|0x00; } for(j=200;j>0;j--); } return(temp); } void main(void) { TMOD=0x01; TH0=(65535-4000)/256; TL0=(65535-4000)%256; ET0=1; EA=1; while(resetpulse()); writecommandtods18b20(0xcc); writecommandtods18b20(0x44); TR0=1; while(1) { ; } } void t0 (void) interrupt 1 using 0 { unsigned char x; unsigned int result; TH0=(65535-4000)/256; TL0=(65535-4000)%256; if(displaycount==2) { P0=displaycode[displaybuf[displaycount]]|0x80; } else { P0=displaycode[displaybuf[displaycount]]; } P2=displaybit[displaycount]; displaycount++; if(displaycount==8) { displaycount=0; } timecount++; if(timecount==500) { timecount=0; while(resetpulse()); writecommandtods18b20(0xcc); writecommandtods18b20(0xbe); readdata[0]=readdatafromds18b20(); readdata[1]=readdatafromds18b20(); for(x=0;x<8;x++) { displaybuf[x]=16; } sflag=0; if((readdata[1]&0xf8)!=0x00) { sflag=1; readdata[1]=~readdata[1]; readdata[0]=~readdata[0]; result=readdata[0]+1; readdata[0]=result; if(result>255) { readdata[1]++; } } readdata[1]=readdata[1]<<4; readdata[1]=readdata[1]&0x70; x=readdata[0]; x=x>>4; x=x&0x0f; readdata[1]=readdata[1]|x; x=2; result=readdata[1]; while(result/10) { displaybuf[x]=result%10; result=result/10; x++; } displaybuf[x]=result; if(sflag==1) { displaybuf[x+1]=17; } x=readdata[0]&0x0f; x=x<<1; displaybuf[0]=(dotcode[x])%10; displaybuf[1]=(dotcode[x])/10; while(resetpulse()); writecommandtods18b20(0xcc); writecommandtods18b20(0x44); } }好不好使不知道,也是摘抄的,错了别介意啊,呵呵。

8.基于AT89C51&DS18B20的数字温度计设计:测温范围

1602a显示的#include#define uchar unsigned char#define uint unsigned intuchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x2f}; //定义液晶屏数组uchar temp;sbit lcdrs=P1^0; //定义管脚sbit lcdrw=P1^1;sbit lcden=P1^2;sbit DQ=P3^2;void display(void);void delay(uint z);void writecom(uchar com);void writedate(uchar date);void init();void write_byte(uchar dat);uchar read_byte(void);uchar readtemperature();void delay1(uint z);void delay1(uint z){ while(z--); }void delay(uint z) //延时时间{ uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}void init() //定义初始化{ lcden=0; lcdrw=1; writecom(0x38); writecom(0x0c); //设计开显示,不显示光标 writecom(0x06); writecom(0x01);}void writecom(uchar com) //写命令函数,定义高低位{ lcdrs=0; lcdrw=0; P2=com; //p2的指令码 delay(5); lcden=1; delay(5); lcden=0; lcdrw=1;}void writedate(uchar date) //写数据函数{ lcdrs=1; lcdrw=0; P2=date; //数据码 delay(5); lcden=1; delay(5); lcden=0; lcdrw=1;}void init_ds18b20() //初始化DS18B20{ uchar n; DQ=1; delay1(8); DQ=0; delay1(60); DQ=1; delay1(3); n=DQ; delay1(10);}void write_byte(uchar dat) //写1字节进传感器 { uchar i; for(i=0;i<8;i++) { DQ=0; DQ=dat&0x01; delay1(3); DQ=1; dat>>=1; } }uchar read_byte(void) //读1字节进传感器{ uchar i,value; for(i=0;i<8;i++) { DQ=0; value>>=1; DQ=1; if(DQ) value|=0x80; delay1(3); } return value;}uchar readtemperature() //读温度{ uchar a,b; init_ds18b20(); write_byte(0xcc); //跳过rom write_byte(0x44); //启动温度测量 delay1(109);init_ds18b20(); write_byte(0xcc); write_byte(0xbe); //读温度 delay1(109); a=read_byte(); // 低位 b=read_byte(); // 高位 b<<=4; b+=(a&0xf0)>>4; return b;}void display(void){ writecom(0x80+4); writedate(0x30+temp/10); delay(1); writecom(0x80+5); writedate(0x30+temp%10); delay(1); }void main(){ init(); while(1) { temp=readtemperature(); display(); }}。

毕业论文《基于ds18b20单片机的红外测温仪的设计与制作>

转载请注明出处众文网 » 毕业论文《基于ds18b20单片机的红外测温仪的设计与制作>(毕业设计:红外温度测温仪的设计)

资讯

毕业论文的后记100字(论文后记怎么写)

阅读(80)

本文主要为您介绍毕业论文的后记100字,内容包括论文后记怎么写,本科毕业论文后记怎么写,毕业论文的后记怎么写。后记是针对前言来说的,一般来说,可以写一些你引用的资料从哪来,以及你在写这篇论文中的感受,你的论文中的优点或论文简介(可以写得

资讯

临床检验毕业论文免费(求医学检验毕业论文)

阅读(69)

本文主要为您介绍临床检验毕业论文免费,内容包括求医学检验毕业论文,求医学检验毕业论文,医学检验本科毕业论文格式及范文。医学检验是运用现代物理化2113学方法、手段进行医学诊断的一门学科,主要研究如何通过实验室技术、医疗仪器设备为临

资讯

人力资源管理专业毕业论文(求一篇人力资源管理的论文)

阅读(67)

本文主要为您介绍人力资源管理专业毕业论文,内容包括求一篇人力资源管理的论文,人力资源管理专业的论文5000字,求人力资源专业毕业论文题目,。学习《人力资源管理》给我的启迪-人力资源论文 在现代管理中,人力资源开发与管理日益成为企业的

资讯

3000字毕业论文(我要一篇3000字左右的毕业论文)

阅读(70)

本文主要为您介绍3000字毕业论文,内容包括我要一篇3000字左右的毕业论文,计算机论文范文3000字,有谁能提供一篇3000字左右的毕业论文。经济管理论文:中小企业发展战略目标与发展方向选择摘要:针对中小企业在各国经济发展中的作用和我国中小企

资讯

毕业论文指导知识点(写毕业论文的重点)

阅读(78)

本文主要为您介绍毕业论文指导知识点,内容包括写毕业论文的重点,关于毕业论文的提纲,毕业论文怎么写还有提纲。编写提纲的步骤: (一)确定论文提要,再加进材料,形成全文的概要 论文提要是内容提纲的雏型。一般书、教学参考书都有反映全书内容的提

资讯

毕业后学校还会查论文吗(本科论文毕业后还查吗)

阅读(68)

本文主要为您介绍毕业后学校还会查论文吗,内容包括本科毕业论文会被学校保留吗毕业之后还会被抽查吗,本科论文毕业后还查吗,毕业论文毕业过了几年还会被查吗。不查的。以中南民族大学为例,检测对象为所有2019届本科毕业生毕业论文(设计);学院在

资讯

部队行政管理的毕业论文(有关行政管理的毕业论文范文)

阅读(68)

本文主要为您介绍部队行政管理的毕业论文,内容包括有关行政管理的毕业论文范文,关于行政管理的毕业论文,求一篇行政管理的毕业论文。去百度文库,查看完整内容>内容来自用户:三一文库 高等院校的行政管理制度对于高校的前景发展有着重要影响,只

资讯

把师兄毕业论文摘写(抄师兄的硕士毕业论文发表合适吗)

阅读(74)

本文主要为您介绍把师兄毕业论文摘写,内容包括要写本科论文了,如果借其他学校上好几届师姐师兄的论文来参考,,抄师兄的硕士毕业论文发表合适吗,用师兄大论文改了一篇小论文,征得了师兄的同意,为了毕业,只好把。十分不合适哦,原因有:一般学校

资讯

英国毕业论文补考时间(在英国留学,论文挂科了,我该怎么办)

阅读(72)

本文主要为您介绍英国毕业论文补考时间,内容包括英国毕业论文挂几次才能申请论文延期,英国大学单科不及格可以重修吗,重修时间影响正常拿证吗,重修有没,在英国留学,论文挂科了,我该怎么办。先要跟大家说明一下:英国硕士挂科一般没有劝退说法

资讯

毕业论文的后记100字(论文后记怎么写)

阅读(80)

本文主要为您介绍毕业论文的后记100字,内容包括论文后记怎么写,本科毕业论文后记怎么写,毕业论文的后记怎么写。后记是针对前言来说的,一般来说,可以写一些你引用的资料从哪来,以及你在写这篇论文中的感受,你的论文中的优点或论文简介(可以写得

资讯

临床检验毕业论文免费(求医学检验毕业论文)

阅读(69)

本文主要为您介绍临床检验毕业论文免费,内容包括求医学检验毕业论文,求医学检验毕业论文,医学检验本科毕业论文格式及范文。医学检验是运用现代物理化2113学方法、手段进行医学诊断的一门学科,主要研究如何通过实验室技术、医疗仪器设备为临

资讯

人力资源管理专业毕业论文(求一篇人力资源管理的论文)

阅读(67)

本文主要为您介绍人力资源管理专业毕业论文,内容包括求一篇人力资源管理的论文,人力资源管理专业的论文5000字,求人力资源专业毕业论文题目,。学习《人力资源管理》给我的启迪-人力资源论文 在现代管理中,人力资源开发与管理日益成为企业的

资讯

3000字毕业论文(我要一篇3000字左右的毕业论文)

阅读(70)

本文主要为您介绍3000字毕业论文,内容包括我要一篇3000字左右的毕业论文,计算机论文范文3000字,有谁能提供一篇3000字左右的毕业论文。经济管理论文:中小企业发展战略目标与发展方向选择摘要:针对中小企业在各国经济发展中的作用和我国中小企

资讯

园林技术专业毕业论文选题参考(园林技术毕业论文选题,急求)

阅读(71)

本文主要为您介绍园林技术专业毕业论文选题参考,内容包括园林技术毕业论文选题,急求,园林专业的毕业论文题目主要,园林专业毕业论文怎么写,有什么题目呢求解。论文题目要在导师的指导下选择,除非老师要你先选,要根据自己的兴趣和熟悉选择一个