找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4733|回复: 6
收起左侧

51单片机非接触式红外温度计程序

[复制链接]
ID:259935 发表于 2017-12-10 22:35 | 显示全部楼层 |阅读模式
上一周做的课程设计
mcu90615传感器 lcd1602显示数据

单片机源程序如下:
  1. #include <reg52.h>
  2. #include "usart.h"
  3. #include "iic.h"  
  4. #include "1602.h"
  5. /*
  6. Keil:uVision2
  7. MCU:STC90C516RD+
  8. 硬件接法:
  9. GY-MCU90615---STM32
  10. 1、GY-MCU90615_RX---STM32_TX,STM32复位将发送A5 45 EA给模块
  11. 2、STM32_TX---FT232,STM32将数据上传给上位机
  12. 3、GY-MCU90615_TX---STM32_RX,接收模块温度数据
  13. 软件说明:
  14. 该程序采用串口方式获取模块角度数据,波特率9600
  15. 所以得用上位机先将模块串口设置成9600,然后再进行以上操作:
  16. 指令:A5 AE 53,模块需复位生效

  17. 注:中断函数位于stc_it.c

  18. */
  19. void send_com(u8 datas)
  20. {
  21.         u8 bytes[3]={0};
  22.         bytes[0]=0xa5;
  23.         bytes[1]=datas;//功能字节
  24.         USART_Send(bytes,3);//发送帧头、功能字节、校验和
  25. }
  26. int main(void)
  27. {
  28.         float TO=0,TA=0,tem=0;
  29.     u8 sum=0,i=0;
  30.         int datas[2]={0};
  31.         Usart_Int(9600);
  32.         send_com(0x45);//发送读方位角指令
  33.         Init_LCD1602();
  34.         LCD1602_write_com(0x80);
  35.         LCD1602_write_word("Temperature:");


  36.         while(1)
  37.         {
  38.                 if(Receive_ok)//串口接收完毕
  39.                 {
  40.                         for(sum=0,i=0;i<(TEMP_data[3]+4);i++)//TEMP_data[3]=4
  41.                         sum+=TEMP_data[i];
  42.                         if(sum==TEMP_data[i])//校验和判断
  43.                         {
  44.                                 TO=(float)((TEMP_data[4]<<8)|TEMP_data[5])/100;//得到真实温度
  45. //                                datas[0]=(TEMP_data[4]<<8)|TEMP_data[5];//放大100倍的物体温度
  46.                                 TA=(float)((TEMP_data[6]<<8)|TEMP_data[7])/100;//得到真实温度
  47. //                                datas[1]=(TEMP_data[6]<<8)|TEMP_data[7];//放大100倍的环境温度
  48. //                                send_out(datas,2,0x45);//上传给上位机
  49.                                 tem=(float)TO+2.0;
  50.                                 tem=(float)tem*100;
  51.                                 LCD1602_write_com(0x80+0x41);
  52.                                 LCD1602_write_data((int)tem%100000/10000 + 0x30);
  53.                                 LCD1602_write_data((int)tem%10000/1000 + 0x30);
  54.                                 LCD1602_write_data((int)tem%1000/100 + 0x30);
  55.                                 LCD1602_write_word(".");
  56.                                 LCD1602_write_data((int)tem%100/10 + 0x30);
  57.                                 LCD1602_write_data((int)tem%10 + 0x30);
  58.                                 LCD1602_write_word("`C");

  59.                         }
  60.                         Receive_ok=0;//处理数据完毕标志
  61.                 }
  62.         }
  63. }
复制代码

所有资料51hei提供下载:
红外温度计程序.zip (193 KB, 下载次数: 65)

评分

参与人数 1黑币 +5 收起 理由
326564735 + 5 赞一个!

查看全部评分

回复

使用道具 举报

ID:293046 发表于 2018-11-27 18:52 | 显示全部楼层
谢谢       分享                    
回复

使用道具 举报

ID:377075 发表于 2018-11-9 11:53 | 显示全部楼层
楼主,用51单片机能做吗
回复

使用道具 举报

ID:395024 发表于 2018-9-7 15:33 | 显示全部楼层
请问楼主,90614传感器可以用这个程序吗
回复

使用道具 举报

ID:395024 发表于 2018-9-7 15:31 | 显示全部楼层
请问楼主,90614传感器可以用这个代码吗
回复

使用道具 举报

ID:259935 发表于 2018-3-29 13:08 | 显示全部楼层
吴海晨o 发表于 2018-3-16 08:27
请问程序是否可用???帮同学做的想直接帮他焊接好

可以用 我是用模块的 你的硬件部分这个我就不知道合不合适了
回复

使用道具 举报

ID:197152 发表于 2018-3-16 08:27 | 显示全部楼层
请问程序是否可用???帮同学做的想直接帮他焊接好
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表