- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、本人专业从事电子设计,电子产品复制,电子产品功能破解,设计,毕业论文设计,程序编写,扣扣:一六三四一八九二三八
电子产品功能猜测,加密解密更多相关资料请加扣扣:一六三四一八九二三八
基于51单片机红外测温的设计与实现
摘要:随着科技的飞速发展,单片机的应用正在不断地,同时带动传统控制检测日新月异更新。在智能检测、控制系统中,往往使用单片机作为一个核心部件来使用,然后配合具体硬件,以及针对具体应用对象特点的软件结合,加以完善。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。课题是“”。主要考核我们对单片机技术,编程能力等方面的情况。观察独立分析、设计单片机的能力,以及实际编程技能。
4.2.1红外测温模块的引脚介绍红外测温模块的引脚图如图4.5所示, 其中:V为电源电压引脚VCC,VCC
一般为3V到5V之间的电压,一般取VCC为3.3;
D为数据接收引脚,没有数据接收时,D为高电平;
C为2KHz Clock输出引脚;
G为接地引脚;
A为测温启动信号引脚,低电平有效。
4.2.2红外测温模块时序图
红外测温时序图如图4.6所示,为SPI数据格式,在CLOCK的下降沿接收数据,一次温度测量需要接收5个字节的数据,这五个字节中:Item中0x4c表示测量目标温度,0x66表示测量环境温度;MSB为接收温度的高八位数据;LSB为接收温度的第八位数据;SUM为验证码,接收正确时SUM=item+MSB+LSB;;CR为结束标志,当CR为0x0Dh时表示完成一次温度数据的接收。
一帧数据包括五个字节,每个字节代表含义如下:
Item: ”L ”(4CH):代表此阵数据为目标温度
“ f”(66H): 代表此帧数据位环境温度
MSB: 8 bit Data Msb
LSB: 8 bit Data Lsb
Sum: item+MSB+LSB=SUM
CR: 0DH,结束码
4.2.3红外测温模块温度值的计算
无论测量环境温度还是目标温度,只要监测到Item为0x4cH或0x66H同时检测到CR为0x0dH,它们的温度计算方法都相同。计算公式为:
温度=Temp/16-273.15 (4-1)
其中Temp为十进制,而测量结果为16进制,把它直接转换为十进制即可。
5键盘显示电路
5.1键盘显示电路
本设计中采用8位数码管显示,设计中用到的硬件电路如图所示
5.2模块功能及接口说明
LED键盘显示模块基本特性和主要功能如下:
LED键盘模块采用DC5V供电,也可以采用DC3.3V供电;
8个发光二极管,可以作为显示状态信息使用
一个电位器,可以提供0~5V的模拟电压信号或者0~3.3V的模拟电压,与模组输入的VDD有关。
6接线与烧入程序
6.1接线
根据所编的程序接线为:V接电源VCC;D接P1.2;C(时钟)接P3.2;G接地GND;A(片选)接P1.2;蜂鸣器BEEP接P1.3
6.2烧入程序
安装驱动XLISP,将51单片机通过USB接口接到计算机中,通过XLISP软件自动查找串口,使计算机检测到51单片机,从而进行通讯。然后将HEX文件通过XLISP软件烧入51单片机中。
7程序
#includereg51.h//C to p3.2始终为3.2口
sbit D=P1^1; //数据位
sbit A=P1^2; //片选
sbit BEEP=P1^3; //蜂鸣器
unsigned char code show[]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60};//字符
unsigned char code some[]={1,2,4,8,16,32,64,128};//数码管显示的选定
unsigned char buff[5]; //定义一个数组
void delay(unsigned int); //定义延时子程序
unsigned char array=0,b=0,dat=0,flag=0;
unsigned int temp,time=0;
int etemp,otemp;
main()
{
unsigned i,j;
EA=1;EX0=1;I
文档评论(0)