• 大小: 10.05MB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: C/C++
  • 标签: 毕业设计  体温计  

资源简介

该资源设计内容包含非接触式数字体温计的原理图,PCD,实物图,以及完整程序; 资料包括完整题目,芯片资料,以及所用到的单片机资料。 简单介绍题目内容: 一、毕业设计(论文)的内容 学习和掌握单片机汇编或C语言程序设计技术以及相应的调试技术,熟悉单片机的开发环境以及编程、编译和下载。以AT89S52或其他单片机和非接触式红外温度传感器为核心,设计制作一个带有数显功能的非接触式体温计。 二、毕业设计(论文)的要求与数据 要求:1. 在单片机开发环境下,编程和在线实时仿真及程序烧写。 2. 要求测温精度达到0.2摄氏度以上。 3. 可设置测温的上下限阀值,超过设定温度值时可发出报警。

资源截图

代码片段和文件信息




#include“at89x52.h“ 
#include“intrins.h“ // 需要用_nop_()函数来延时 
//************************************ 
#define  uint  unsigned int 
#define  uchar unsigned char 
#define  Nack_counter  10 
//**************端口定义************** 
//LCD控制线接口 
uchar flag1;
uchar code tab[] = {“Temp is:“}; // 8 
uchar num;
uint  temph templ;
uint  T;
sbit  s1 = P1^0;
sbit  s2 = P1^1;
sbit  s3 = P1^2;
sbit  RS=P2^5; 
sbit  RW=P2^6; 
sbit  LCDE=P2^7; 
sbit  speak = P1^7;
//mlx90614端口定义 
sbit  SCL=P2^3;//时钟线 
sbit  SDA=P2^4;//数据线 
//************数据定义**************** 
bdata uchar flag;                   //可位寻址数据 
sbit  bit_out=flag^7; 
sbit  bit_in=flag^0; 
uchar DataHDataLPecreg; 
//************函数声明***************************************** 
void   start_bit();                 //MLX90614发起始位子程序 
void   stop_bit();                  //MLX90614发结束位子程序 
uchar  rx_byte(void);               //MLX90614接收字节子程序 
void   send_bit(void);              //MLX90614发送位子程序 
void   tx_byte(uchar dat_byte);     //MLX90614接收字节子程序 
void   receive_bit(void);           //MLX90614接收位子程序 
void   delay(uint N);               //延时程序 
uint   memread(void);               //读温度数据 
void   init1602(void);              //LCD 初始化子程序 
void   chk_busy_flg(void);          //LCD判断忙子程序 
void   dis_cmd_wrt(uchar cmd);      //LCD写命令子程序 
void   dis_dat_wrt(uchar dat);      //LCD写数据子程序 
void   display(uint Tem);           //显示子程序 
void   displaytitle(); //显示标题
void   KeyScan(); //键盘扫描
void   Warn(); //判断是否需要报警
void   Delayms(uint z);      //延时若干ms
//*************主函数******************************************* 
void main() 

 uint Tem; 
 temph = 3700; // 最高温度
 templ = 2000; // 最低温度
 speak = 1; // 蜂鸣器 0叫 1 不叫
 //初始化MLX90614 
 SCL=1;SDA=1;_nop_(); 
 _nop_();_nop_();_nop_(); 
 SCL=0; 
 delay(1000); 
 SCL=1; 
 //初始化液晶 
 init1602(); 
 //显示文字 
 displaytitle(); 
 while(1) 
 { 
Tem=memread(); // 读取温度
display(Tem); // 显示温度
Warn(); // 判断是否需要报警
Delayms(1000);  // 延时1S
// KeyScan();   // 键盘扫描
 } 

//*********输入转换并显示********* 
void display(uint Tem) 
{  
uchar temp[6] i;
T=Tem*2;   
if(T>=27315)  // 显示正温度

/*
由于传感器采用17位AD 
所以可以精确到0.01°C
详见中文资料 P 2
*/
T=T-27315; // 温度转换 开尔文 -> 摄氏度 中文资料 P26 
temp[0] = T / 10000 + 0x30; // 温度百位
if (temp[0] == 0x30) temp[0] = 0x20; // 如果百位为0 不显示百位
temp[1] = T % 10000 / 1000 + 0x30; // 温度十位
temp[2] = T % 10000 % 1000 / 100 + 0x30;// 温度个位
temp[3] = 0x2e; // 小数点
temp[4] = T % 10000 % 1000 % 100 / 10 + 0x30; // 小数点后1位
temp[5] = T % 10000 % 1000 % 100 % 10 + 0x30; // 小数点后2位
dis_cmd_wrt(0xc8); // 在液晶第二行 第9列开始显示温度
for (i = 0; i < 6; i ++)
{
dis_dat_wrt(temp[i]); // 显示温度
}

//=========================== 
else     // 显示负温度

T=27315-T; 
temp[0] = T / 10000 + 0x30;
if (temp[0] == 0x30) temp[0] = 0x20;
temp[1] = T % 10000 / 1000 + 0x30;
temp[2] = T % 10000 % 1000 / 100 + 0x

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      19182  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计

     文件       9827  2012-04-11 20:50  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.c

     文件       4287  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.hex

     文件         80  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.lnp

     文件        785  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.LST

     文件      24577  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.M51

     文件      23340  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.OBJ

     文件        465  2012-06-01 20:29  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.plg

     文件      95230  2012-04-11 20:53  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.uvgui.QYZ

     文件      91917  2012-04-11 20:22  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.uvgui_QYZ.bak

     文件      56150  2012-06-01 20:31  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.uvopt

     文件      13329  2012-06-01 20:31  非接触式数字体温计的设计\Program\非接触式数字体温计的设计.uvproj

     文件       5252  2012-04-11 20:53  非接触式数字体温计的设计\Program\非接触式数字体温计的设计_uvopt.bak

     文件      13359  2012-04-05 20:28  非接触式数字体温计的设计\Program\非接触式数字体温计的设计_uvproj.bak

     文件     361018  2010-12-16 23:09  非接触式数字体温计的设计\相关资料\AT89S52 CN.pdf

     文件     251651  2010-12-16 23:07  非接触式数字体温计的设计\相关资料\AT89S52 EN.pdf

     文件    1332645  2012-04-06 20:41  非接触式数字体温计的设计\相关资料\IMG146.jpg

     文件    1131466  2012-04-06 20:41  非接触式数字体温计的设计\相关资料\IMG147.jpg

     文件    1219362  2012-04-06 20:41  非接触式数字体温计的设计\相关资料\IMG148.jpg

     文件    1025183  2012-04-06 20:41  非接触式数字体温计的设计\相关资料\IMG149.jpg

     文件    1167212  2012-04-06 20:41  非接触式数字体温计的设计\相关资料\IMG150.jpg

     文件     533472  2007-10-15 15:04  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\390119061403P002.pdf

     文件        758  2007-10-15 15:10  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\FWMLX90614PIC.mcp

     文件       1886  2007-10-15 15:19  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\FWMLX90614PIC.mcs

     文件      76288  2007-10-15 15:19  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\FWMLX90614PIC.mcw

     文件        788  2007-10-10 11:05  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\FWMLX90614PIC.mptags

     文件         52  2007-10-10 11:05  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\FWMLX90614PIC.tagsrc

     文件      23040  2007-10-15 15:22  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\project\untitled.mcw

     文件        856  2007-10-11 16:32  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\README.txt

     文件       3584  2007-09-12 14:52  非接触式数字体温计的设计\相关资料\MLX90614\MLX90614 SMBus implementation in PIC MCU\MLX90614 SMBus implementation in PIC MCU\ASM\SMBusFiles\CRC8.asm

............此处省略88个文件信息

评论

共有 条评论