资源简介
本项目采用主要芯片:STC12C5A60S2、LCD1602、MLX90614;
本资料是我今年做的项目,已经完美交货,现在把全部设计资料共享给大家
压缩包里包含该项目的完整原理图、PCB图、程序、实物图等。
硬件设计部分使用Protel99 SE或Altium Designer Release 10完成,软件设计部分采用Keil 4完成。
可供需要的人参考。
一、毕业设计(论文)的内容
运用所学的数字逻辑电路、模拟电子电路、单片机、测控电路等的基本知识,设计并制作一个非接触式红外线测温仪。该系统以单片机为核心,外接其他外围电路组成。
二、毕业设计(论文)的要求与数据(与上述文字空1~行)
要求所设计的系统具有下面功能:
1. 非接触式温度测量,温度测量范围至少包括-20℃---150℃
2. 温度显示,分辨率0.1℃
3. 可干电池供电,电量低时可显示或报警提示
4.可扩展(如精确测量目标距离等)。
代码片段和文件信息
#include“12C5A60S2.h“
#include“intrins.h“ // 需要用_nop_()函数来延时
#include “global.h“
#include “U.h“
//************************************
#define uint unsigned int
#define uchar unsigned char
#define Nack_counter 10
#define BYTE unsigned char //宏定义
#define WORD unsigned int
//**************端口定义**************
//LCD控制线接口
uchar flag1;
uchar code tab1[] = {“Temp is: “}; // 11
uchar code tab2[] = {“Low battery “}; // 11
uchar num;
uint temph templ;
uint T;
sbit BUSY = ACC^7; // 忙标志位(非管脚)
sbit LCDRS=P1^1;
sbit LCDRW=P1^2;
sbit LCDE=P1^3;
sbit speak = P2^2;
//mlx90614端口定义
sbit SCL=P2^0;//时钟线
sbit SDA=P2^1;//数据线
//************数据定义****************
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 LCMInit(void); //LCD 初始化子程序
BYTE Wait(); //LCD判断忙子程序
void WriteLCD(BYTE BYTE); //LCD写命令子程序
void dis_dat_wrt(uchar dat); //LCD写数据子程序
void display(uint Tem); //显示子程序
void displaytitle(); //显示标题
void displaylow();
void Warn(); //判断是否需要报警
void Delayms(uint z); //延时若干ms
//*************主函数*******************************************
void main()
{
uint Tem;
temph = 3700; // 最高温度
speak = 1; // 蜂鸣器 0叫 1 不叫
//初始化MLX90614
SCL=1;SDA=1;_nop_();
_nop_();_nop_();_nop_();
SCL=1;
delay(1000);
SCL=1;
//初始化液晶
LCMInit();
//显示文字
U_Init();
while(1)
{
U(); // 测10000次AD 取平均值
// WriteLCD(0 0xc5);
// WriteLCD(1 adc_cita % 10000 / 1000 + 0x30);
// WriteLCD(1 adc_cita % 1000 / 100 + 0x30);
// WriteLCD(1 adc_cita % 100 / 10 + 0x30);
// WriteLCD(1 adc_cita % 10 + 0x30);
if (adc_cita < 550)
{
displaytitle();
Tem=memread(); // 读取温度
display(Tem); // 显示温度
Warn(); // 判断是否需要报警
}
else if (adc_cita < 580)
{
displaylow();
}
Delayms(200); // 延时200mS
}
}
//*********输入转换并显示*********
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
T+=50;
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 /
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3050222 2013-05-22 16:10 非接触式数字体温计的设计\IMG_0526.JPG
文件 2037337 2013-05-22 16:11 非接触式数字体温计的设计\IMG_0527.JPG
文件 2592986 2013-05-22 16:11 非接触式数字体温计的设计\IMG_0528.JPG
文件 2433434 2013-05-22 16:11 非接触式数字体温计的设计\IMG_0529.JPG
文件 376832 2013-05-21 10:13 非接触式数字体温计的设计\PCB\非接触式数字体温计.Ddb
文件 17439 2011-04-21 07:56 非接触式数字体温计的设计\Program\12C5A60S2.H
文件 1602 2013-05-22 12:39 非接触式数字体温计的设计\Program\ADC.H
文件 940 2012-03-15 20:30 非接触式数字体温计的设计\Program\global.h
文件 702 2013-05-22 12:53 非接触式数字体温计的设计\Program\U.h
文件 20694 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计
文件 8244 2013-06-01 10:06 非接触式数字体温计的设计\Program\非接触式数字体温计.c
文件 5090 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.hex
文件 68 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.lnp
文件 16983 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.LST
文件 25829 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.M51
文件 24279 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.OBJ
文件 664 2013-06-01 10:07 非接触式数字体温计的设计\Program\非接触式数字体温计.plg
文件 57954 2013-05-28 11:28 非接触式数字体温计的设计\Program\非接触式数字体温计.uvopt
文件 13306 2013-05-22 16:38 非接触式数字体温计的设计\Program\非接触式数字体温计.uvproj
文件 57021 2013-05-22 16:38 非接触式数字体温计的设计\Program\非接触式数字体温计_uvopt.bak
文件 0 2013-05-22 15:37 非接触式数字体温计的设计\Program\非接触式数字体温计_uvproj.bak
文件 51712 2013-08-18 21:49 非接触式数字体温计的设计\非接触式红外线测温仪.doc
目录 0 2013-08-18 21:44 非接触式数字体温计的设计\PCB
目录 0 2013-08-18 21:44 非接触式数字体温计的设计\Program
目录 0 2013-05-21 10:27 非接触式数字体温计的设计\相关资料
目录 0 2013-08-18 22:04 非接触式数字体温计的设计
----------- --------- ---------- ----- ----
10793338 26
- 上一篇:易语言六种远控源码
- 下一篇:东北大学操作系统复习题
相关资源
- 33个最新的毕业设计
- 51单片机开发板PCB 原理图
- 飞思卡尔MC9S12X128单片机的认识与实践
- 单片机原理及其接口技术(第二版)
- 51单片机和modbus中文资料软件源代码全
- D1开发板学习资料例程.rar
- PIC系列单片机开发精解
- STM32的无线图像采集传输系统的硬件设
- 蓝桥杯 单片机设计 历年决赛真题及答
- 单片机课件赵志衡主讲
- 基于SSH的CRM系统的研究和设计
- 各种毕业论文答辩设计和答辩话术p
- 毕业设计_网上商城(比较简单,使用
- 蓝牙模块详细资料 51单片机控制蓝牙
- STM32单片机最小原理图+PCB
- 匿名上位机V7.rar
- 单片机开发环境Keil6.12安装程序有注册
- 毕业设计连锁酒店管理系统
- 51单片机驱动TFT真彩屏
- 51单片机波形发生器设计,正弦波、三
- 伺服电机相关电动机的单片机控制
- AVR单片机原理及应用
- 51单片机Modbus_RTU
- AVR单片机嵌入式系统原理与应用实践
- 胎压监测单片机
- 个人理财系统,可用于毕业设计,功
- 12864液晶带字库+不带字库+51单片机贪
- 单片微型机原理、应用与实验学习指
- STM32平衡小车程序
- GY-82 GY-302资料
评论
共有 条评论