51单片机非接触红外测温(蓝牙传输)

目录

具体实现功能

设计介绍

51单片机简介

资料内容

原理图和PCB(AD19)

仿真实现(protues8.7)

程序(Keil5)

全部资料

资料获取


具体实现功能

具体功能:

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

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

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

设计介绍

51单片机简介

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

本设计所使用的芯片可兼容以下所有的51系列单片机(包括AT系列和STC系列)。

资料内容

原理图和PCB(AD19)

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

注1:请使用Altium Designer19直接打开资料中的工程文件(资料中已说明打开方式)!

注2:此设计需按照原理图制作实物,不可直接烧录到任何开发板中运行(需要修改程序)!

程序(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);
    }
}

程序运行结果如图:

注:请使用KEIL C51直接打开资料中的工程文件(资料中已说明打开方式)!

全部资料

全部资料包括原理图和PCB源文件(AD19)、程序(Keil5)、protues仿真(protues8.7)、设计报告(仅供参考)、仿真视频、开发资料、仿真视频、单片机最小系统介绍等,全网最全!资料内容如下图所示!!

资料获取

https://docs.qq.com/doc/DT0V6V1dhSXRRWVBx

相关推荐
周洲08309 小时前
STM32 串口底层深度解析|USART 中断标志、硬件 FIFO,乱码根源底层定位
stm32·单片机·嵌入式硬件
女神下凡14 小时前
芯参谋(29):UFS UMCP 软件设计规范
arm开发·单片机·嵌入式硬件
RISCV_Explorer15 小时前
RISC-V电源管理与低功耗实战——WFI指令、电源域划分与唤醒路径设计
单片机·嵌入式硬件·risc-v
zd84510150015 小时前
支持双向输入信号的开关量电路
单片机·嵌入式硬件
齐落山大勇15 小时前
【裸机程序】IMX 6ULL的中断机制的理解
单片机·嵌入式硬件
cu14316 小时前
细谈GM8229的具体功能与其应用
c语言·c++·人工智能·单片机
HRTOS17 小时前
HRTOS 任务优先级与调度模式说明
单片机·嵌入式硬件·系统架构·51单片机
cu14317 小时前
细谈GM7123C的具体功能与其应用
c语言·c++·人工智能·嵌入式硬件
嵌入式分享18 小时前
驱动之路#44:硬件 I2C 和软件 I2C 谁更坑?
linux·嵌入式硬件
嵌入式分享19 小时前
嵌入式分享#19:《嵌入式外设调试思路》--I2C设备篇
单片机·嵌入式硬件