找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2568|回复: 1
打印 上一主题 下一主题
收起左侧

非接触式红外温度测量单片机程序(有电路图设计文档)5110显示屏

[复制链接]
跳转到指定楼层
楼主
这个是一个基于51单片机的非接触式红外温度测量的设计,做出算是一个半成品吧,还不是特别完善,但能够实现基本功能。我们组决定用STC89C52来做,其他小组大多用STC8A8K64S4A12来做。个人觉得这一题并不是特别难,主要是学会MLX90615的驱动程序以及各种调用,还有老师专门提供的Nokia5110显示屏来做显示。刚开始做的时候脑子里是有大致电路的,在网上找了挺多资料 ,边找边做。我自己负责程序方面的,然而我程序不是特别突出就会一些基本的调用啥的。随便放一下我们的设计,大家感兴趣可以玩玩哦。



单片机源程序如下:
  1. #include "nokia_5110.h"
  2. #include "reg52.h"
  3. #include "MLX90615.h"
  4. #include "delay.h"
  5. #include "stdio.h"

  6. void Int0Init()
  7. {
  8.         //设置INT0
  9.         IT0=1;//跳变沿出发方式(下降沿)
  10.         EX0=1;//打开INT0的中断允许。        
  11.         EA=1;//打开总中断        
  12. }
  13. void Int0()        interrupt 0                //外部中断0的中断函数
  14. {
  15.         unsigned char SlaveAddress;                           // Contains device address
  16.   unsigned char        command,j;                                      // Contains the access command
  17.   unsigned int         tdata,i;                                              // Contains data value                                    
  18.   command=RAM_Access|RAM_To;                 // Form RAM access command + RAM address         
  19.         LCD_clear();        
  20.         while(1)
  21.         {
  22.                   LCD_write_english_string(0,2,"Temperature is ");
  23.             tdata=MemRead(SlaveAddress,command); //Read memory
  24.       tdata=tdata*2-27315;
  25.                    if(tdata>3700)
  26.                                 {
  27.                                         LCD_BL=0xff;
  28.                                        
  29.                                 }
  30.                            else{LCD_BL=0x00;}
  31.                                 for(i=1000;i>1;i=i/10)
  32.                                 {
  33.                                         j=tdata/i;
  34.                                         LCD_write_char(j+'0');
  35.                                         tdata=tdata-i*j;
  36.           if(i<1000&&i>=100)
  37.                                         {LCD_write_char('.');}
  38.                                 }
  39.             LCD_write_char(tdata+'0');
  40.                         delay_ms(100);
  41.                         LCD_clear();     
  42.                         LCD_write_english_string(42,3,"Celsius");
  43.         }
  44. }


  45. void main(void)
  46. {
  47.         
  48.         MLX90615_init();
  49.   LCD_init();
  50.         LCD_clear();
  51.   LCD_write_chinese_string(0,0,12,5,0,5);
  52.         delay_ms(100);
  53.         Int0Init();  //        设置外部中断0        
  54.   while(1);
  55. }
复制代码


全部资料51hei下载地址:
A1非接触式红外温度测量STC89C52 MLX90615 Nokia5110最终.rar (5.83 MB, 下载次数: 42)
此处可以直接提取链接:https://pan.baidu.com/s/1fzILGAPBWwNVc5IYaxql7w 提取码:vfdx

评分

参与人数 2黑币 +58 收起 理由
杨雪飞 + 8 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:584814 发表于 2020-1-15 14:49 | 只看该作者
这个课题,没有什么特殊需要,用STC89C52和STC8A8K64S4A1都一样P口够用无需扩展。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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