找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3126|回復: 1
收起左側

非接觸式紅外溫度測量單片機程序(有電路圖設計文檔)5110顯示屏

[復制鏈接]
ID:404674 發(fā)表于 2020-1-13 17:50 | 顯示全部樓層 |閱讀模式
這個是一個基于51單片機的非接觸式紅外溫度測量的設計,做出算是一個半成品吧,還不是特別完善,但能夠?qū)崿F(xiàn)基本功能。我們組決定用STC89C52來做,其他小組大多用STC8A8K64S4A12來做。個人覺得這一題并不是特別難,主要是學會MLX90615的驅(qū)動程序以及各種調(diào)用,還有老師專門提供的Nokia5110顯示屏來做顯示。剛開始做的時候腦子里是有大致電路的,在網(wǎng)上找了挺多資料 ,邊找邊做。我自己負責程序方面的,然而我程序不是特別突出就會一些基本的調(diào)用啥的。隨便放一下我們的設計,大家感興趣可以玩玩哦。

51hei.png 51hei.png 51hei.png

單片機源程序如下:
  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;//跳變沿出發(fā)方式(下降沿)
  10.         EX0=1;//打開INT0的中斷允許。        
  11.         EA=1;//打開總中斷        
  12. }
  13. void Int0()        interrupt 0                //外部中斷0的中斷函數(shù)
  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截圖20200113174612.png

全部資料51hei下載地址:
A1非接觸式紅外溫度測量STC89C52 MLX90615 Nokia5110最終.rar (5.83 MB, 下載次數(shù): 44)
此處可以直接提取鏈接:https://pan.baidu.com/s/1fzILGAPBWwNVc5IYaxql7w 提取碼:vfdx

評分

參與人數(shù) 2黑幣 +58 收起 理由
楊雪飛 + 8 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:584814 發(fā)表于 2020-1-15 14:49 | 顯示全部樓層
這個課題,沒有什么特殊需要,用STC89C52和STC8A8K64S4A1都一樣P口夠用無需擴展。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表