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

相关推荐
老k一步步来8 小时前
STM32 HAL库CAN通信核心函数详解,参数以及作用
stm32·单片机·嵌入式硬件
gwf2168 小时前
SSD读写速度深度解析:顺序读写vs随机读写、IOPS、延迟,你的硬盘性能到底怎么看?
git·嵌入式硬件·缓存·github·智能硬件
Freak嵌入式11 小时前
版本混乱 / 依赖缺失?uPyPi:MicroPython 版 PyPI,彻底解决库管理混乱
linux·服务器·数据库·单片机·嵌入式硬件·性能优化·依赖倒置原则
wuyk55512 小时前
77.嵌入式 C 语言中 enum 枚举的工程化实践:告别魔法数字,提升代码可维护性
c语言·开发语言·stm32·单片机·嵌入式硬件
义嘉泰12 小时前
XT25F128F-W Flash芯片全面解析
人工智能·嵌入式硬件·芯片
QH1392923188012 小时前
Keysight N9917B N9918B手持式综合微波分析仪
网络·科技·嵌入式硬件·集成测试·信息与通信
longxingiot13 小时前
轻量化单片机数传终端降低物联网开发门槛
单片机·嵌入式硬件·物联网
亿道电子Emdoor14 小时前
【Arm】MSP和PSP的区别简介
c语言·arm开发·单片机·mcu
国产HT1621B14 小时前
YL1650 LED驱动芯片详解:从原理到实战应用(附51单片机驱动代码)
stm32·单片机·嵌入式硬件·mcu·fpga开发·lcd驱动