基于51单片机的非接触式无线红外测温

本文详细描述了一种使用51单片机设计的测温系统,包括红外温度传感器测温、LCD1602显示、按键控制、蓝牙数据传输等功能。通过Keil5编程实现,配合AD19原理图设计和仿真。提供了完整的资料包,包括源代码、原理图和设计文档。
摘要由CSDN通过智能技术生成

目录

具体实现功能

设计介绍

51单片机简介

设计思路

设计内容

原理图(AD19)

程序(Keil5)

仿真实现(protues8.7)

全部资料


具体实现功能

(1)采用红外温度传感器测温并用LCD1602显示;

(2)按键为启动按键、保存按键、显示数据按键,可以实现对温度数值的控制;

(3)温度可以通过蓝牙模块发送到手机上实时显示;

(4)温度测量范围0到99.9摄氏度,精度为0.1摄氏度,测温系统稳定,精度高。

设计介绍

51单片机简介

51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

51系列单片机具有以下标准功能:

8k字节Flash,512字节RAM,

32位I/O口线,看门狗定时器,

内置4KB EEPROM,

MAX810复位电路,

三个16位定时器/计数器,

一个6向量2级中断结构,

全双工串行口。

另外, 51系列在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到下一个中断或硬件复位为止。本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

设计思路

文献研究法:搜集整理相关研究资料,阅读文献,为研究做准备;

调查研究法:通过调查、分析、具体实验等方法,发现相关存在问题和解决办法;

比较分析法:比较不同设计的具体原理,以及同一类传感器性能的区别,分析系统的研究现状与发展前景;

软硬件设计法:通过软硬件设计实现硬件,最后测试各项功能是否满足要求。

设计内容

原理图(AD19)

本系统原理图设计采用Altium Designer19,具体如图。

程序(Keil5)

本设计利用KEIL5软件实现程序设计,主函数如下:

void main()
{
    uint count,count1;

//函数部分
    SCL=1;
    SDA=1;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    SCL=0;
    delay(1000);
    SCL=1;
    M_S = byte_read(0x2C01);//读取保存的序号
	  if(M_S > 6)
		{
				M_S = 0;
			  SectorErase(0x2C00);//清除
			  byte_write(0x2C01,M_S);
		}
		LCD_init();                  //lcd初始化
    start_flag = 0;
    LCD_write_str(0,0,"Temp:    .   C  ");
	  LCD_write_str(0,1,"                ");
	  
		uart_init(9600);
    while(1)
    {
			if(Key_1 == 0)//开始键按下
			{
					delay_ms(10);//消抖
					if(Key_1 == 0)
					{
							while(Key_1==0);
							startFlag = !startFlag;
					}
			}
			if(Key_2 == 0)//   存储
			{
					delay_ms(50);
					if(Key_2 == 0)
					{
							while(Key_2==0);
							if(startFlag==1 && M_R == 0)//在正常界面下,是存储数据
							{
									write_eeprom();
							}
					}
			}

			if(Key_3 == 0)//   查看
			{
					delay_ms(50);//消抖
					if(Key_3 == 0)
					{
					while(Key_3==0);

							if(startFlag==1)//在正常界面下,数查看数据 
							{
									LCD_write_str(0,1,"seeT:    .   C  ");
									read_eeprom();
							}
					}
			}
			if(count++>200)
			{
				    if(startFlag==1)
						{
								Tem=memread();//获取初级温度
								if(status == 0 && save_flag == 0)
								{
									display(Tem);//显示温度
									LCD_write_char(12,0,0xdf);// “。“
								}

								if(count1++ > 5)
								{
										count1 = 0;
										uart_send(send_buf,14);
								}
						}
						else 
						{
							 M_R=0;save_flag = 0;
							 LCD_write_str(0,0,"Temp: ---.-- C  ");
							 LCD_write_str(0,1,"                ");
							 LCD_write_char(12,0,0xdf);// “。“
						}
						count=0;
			}
			delay_ms(1);
    }
}

代码运行截图:

全部资料

全部资料包括程序(KEIL5)、AD原理图(AD19)、参考论文(仅供参考)、开题报告、任务书、实物图、软硬件设计框图等,具体如图,全网最全!!

资料获取:
https://docs.qq.com/doc/DSXhxSU95T3R3dUhp

  • 17
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值