久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 32508|回復: 35
打印 上一主題 下一主題
收起左側

基于51單片機的MLX90614紅外測溫源程序

  [復制鏈接]
跳轉到指定樓層
樓主
      (分享文件)
想在51hei論壇上找,但一直都沒有找到,在其他網站上找來了,順便分享過來吧,之后想用msp430把這個紅外測溫儀做出來,盡可能的加上藍牙傳輸。歡迎大家交流探討。

一.實驗目的
1.通過本實驗掌握 MLX90614 的原理。
2.通過實驗掌握數碼管基本原理
3. 通過實驗掌握矩陣鍵盤的使用
4.通過實驗掌握1602 的使用
二.實驗內容
通過 MLX90614 非接觸式測得物體溫度

2.運行 Keil uVision軟件,新建一個工程,新建一個工程文件。將文件添加到工程中并編譯,如有錯,請更改直到編譯成功,如有錯,請更改直到編譯成功
4.用編程器將生成的 HEX 文件燒寫到單片機中,或用 STC 單片機專用的串口燒寫軟件,通過MAX232 串口燒寫到單片機中(只能用于 STC單片機)。或用仿真器來執行程序,將程序下載到仿真器中,具體方法請參考仿真器的使用一節。用編程器將生成的 HEX 文件燒寫到單片機中。
5. 程序下完后可以看到液晶屏有溫度顯示,用手掌覆蓋紅外傳感器上方2cm 處,看到此時液晶屏溫度即為手掌的表面溫度。
6.按下1鍵可以看到數碼管顯示,用手掌覆蓋紅外傳感器上方 2cm 處,看到此時數碼管溫度即為手掌的表面溫度。此時液晶屏溫度保持不變。
7.按下除1鍵其他鍵,此時液晶屏又重新顯示溫度。

單片機源程序如下:
  1. //-------------------------------------------------------------------------
  2. //說明:顯示分為2 部分:數碼管顯示,液晶屏顯示
  3. //按1 鍵數碼管顯示,此時液晶屏保持靜止
  4. //復位時或按除1 鍵外其他鍵時,液晶屏顯示,數碼管熄滅
  5. //-------------------------------------------------------------------------
  6. #include<reg52.h>
  7. #include<intrins.h>
  8. #define uint unsigned int
  9. #define uchar unsigned char
  10. #define Nack_number 10
  11. //**************端口定義**************************************************
  12. uchar flag;                                //LCD 控制線接口
  13. sbit RS=P0^6;                              //RS 端
  14. sbit RW=P0^7;                              //讀寫端
  15. sbit LCDE=P3^5;                        //使能端
  16.                                            //mlx90614 端口定義
  17. ----------------------- Page 3-----------------------
  18. sbit SCK=P3^7;                                        //時鐘線
  19. sbit SDA=P3^6;                                        //數據線
  20. sbit DPY1 = P3^2;                               //溫度顯示第1 個數碼管段選
  21. sbit DPY2 = P3^3;                               //溫度顯示第2 個數碼管段選
  22. sbit DPY3 = P3^4;                               //溫度顯示第3 個數碼管段選
  23. sbit row1 = P0^3;                                //矩陣鍵盤第1 列
  24. sbit row2 = P0^4;                                //矩陣鍵盤第2 列
  25. sbit row3 = P0^5;                                //矩陣鍵盤第3 列
  26. sbit cow1 = P0^0;                                 //矩陣鍵盤第1 行
  27. sbit cow2 = P0^1;                                 //矩陣鍵盤第2 行
  28. sbit cow3 = P0^2;                                 //矩陣鍵盤第3 行
  29. //************數據定義****************************************************
  30. bdata uchar flag1;                               //可位尋址數據
  31. sbit bit_out=flag1^7;
  32. sbit bit_in=flag1^0;
  33. uchar tempH,tempL,err;
  34. void CALTEMP(uint TEMP);
  35. void ReadKey(void);
  36. void initInt();
  37. void delay1(uint z);
  38. void show();
  39. ----------------------- Page 4-----------------------
  40. uchar key_num;
  41. uchar mah[5];
  42. /********數碼管碼值定義*******************************************************/
  43. uchar code LED01[]={                        //LED 顯示代碼,0-9  共陽 不帶小數點的
  44. 0xC0,0xF9,0xA4,0xB0,
  45. 0x99,0x92,0x82,0xF8,
  46. 0x80,0x90};
  47. uchar code LED02[]={                        //LED 顯示代碼,0-9  共陽 帶小數點的
  48. 0x40,0x79,0x24,0x30,
  49. 0x19,0x12,0x02,0x78,
  50. 0x00,0x10};
  51. /**********全局變量定義******************************************************/
  52. bit b20ms,b100ms;      //定時標志位
  53. uchar c20ms,c100ms;         //定時毫秒數
  54. //************************** LCD1602   ***********************************
  55. //向LCD 寫入命令或數據*****************************************************
  56. #define LCD_COMMAND               0                   //命令
  57. #define LCD_DATA             1                   //  數據
  58. #define LCD_CLEAR_SCREEN           0x01               //  清屏
  59. #define LCD_HOMING                0x02                //  光標返回原點
  60. //設置顯示模式******* 0x08+            *********************************************
  61. #define LCD_SHOW                  0x04           //顯示開
  62. #define LCD_HIDE              0x00           //顯示關
  63. #define LCD_CURSOR                 0x02                //顯示光標
  64. #define LCD_NO_CURSOR              0x00           //無光標
  65. #define LCD_FLASH                  0x01           //光標閃動
  66. #define LCD_NO_FLASH               0x00           //光標不閃動
  67. //設置輸入模式********** 0x04+ ********************************************
  68. #define LCD_AC_UP                  0x02                //光標右移 AC+
  69. #define LCD_AC_DOWN                0x00                //默認光標左移 AC-
  70. #define LCD_MOVE                   0x01                //畫面可平移
  71. #define LCD_NO_MOVE                0x00                //默認 畫面不移動
  72. //************************** mlx90614   ***********************************
  73. //command mode        命令模式
  74. #define RamAccess         0x00                    //對RAM 操作
  75. #define EepomAccess       0x20                    //對EEPRAM 操作
  76. #define    Mode          0x60                     //進入命令模式
  77. #define ExitMode     0x61                    //退出命令模式
  78. #define    ReadFlag 0xf0                     //讀標志
  79. #define EnterSleep        0xff                    //進入睡眠模式
  80. //ram address        read only RAM 地址(只讀)
  81. #define AbmientTempAddr            0x03           //周圍溫度
  82. #define    IR1Addr                 0x04
  83. #define    IR2Addr                 0x05
  84. #define LineAbmientTempAddr         0x06               //環境溫度
  85. /*0x0000 0x4074      16500    0.01/單元
  86.       -40    125*/
  87. #define LineObj1TempAddr 0x07               // 目標溫度,紅外溫度
  88. /*0x27ad-0x7fff      0x3559 22610       0.02/單元
  89.     -70.01-382.19  0.01    452.2*/
  90. #define    LineObj2TempAddr        0x08
  91. //eepom address     EEPROM 地址
  92. #define TObjMaxAddr          0x00                //測量范圍上限設定
  93. #define TObjMinAddr          0x01                //測量范圍下限設定
  94. #define PWMCtrlAddr          0x02                //PWM 設定
  95. #define TaRangeAddr          0x03                //環境溫度設定
  96. #define KeAddr               0x04                //頻率修正系數
  97. #define ConfigAddr           0x05                //配置寄存器
  98. #define SMbusAddr            0x0e                //器件地址設定
  99. #define Reserverd1Addr        0x0f               //保留
  100. #define Reserverd2Addr        0x19               //保留
  101. #define ID1Addr              0x1c                //ID 地址1
  102. #define ID2Addr              0x1d                    //ID 地址2
  103. #define ID3Addr              0x1e                //ID 地址3
  104. #define ID4Addr              0x1f                //ID 地址4
  105. //************函數聲明*****************************************************
  106. void start();                                    //MLX90614 發起始位子程序
  107. void stop();                                     //MLX90614 發結束位子程序
  108. uchar ReadByte(void);                            //MLX90614 接收字節子程序
  109. void send_bit(void);                             //MLX90614 發送位子程序
  110. ----------------------- Page 7-----------------------
  111. void SendByte(uchar number);                           //MLX90614 接收字節子程序
  112. void read_bit(void);                                   //MLX90614 接收位子程序
  113. void delay(uint N);                                    //延時程序
  114. uint readtemp(void);                                   //讀溫度數據
  115. void init1602(void);                                   //LCD 初始化子程序
  116. void busy(void);                                       //LCD 判斷忙子程序
  117. void cmd_wrt(uchar cmd);                               //LCD 寫命令子程序
  118. void dat_wrt(uchar dat);                               //LCD 寫數據子程序
  119. void display(uint Tem);                                //顯示子程序
  120. void Print(uchar *str);                          //字符串顯示程序
  121. //*************主函數*******************************************
  122. void main()
  123. {
  124.       uint Tem;                                             //溫度變量
  125.      initInt();
  126.       SCK=1;
  127.       SDA=1;
  128.       delay(4);
  129.       SCK=0;
  130.       delay(1000);
  131.       SCK=1;
  132.       init1602();                                           //初始化LCD
  133.       while(1)
  134.       {
  135.           while(b100ms)                          //每100ms 掃描一次鍵盤
  136.           {
  137.             b100ms=0;
  138.             ReadKey();
  139.           }
  140.           if(key_num==1)                       //按下1 鍵時,進行數碼管顯示
  141.           {
  142.             Tem=readtemp();
  143.             CALTEMP(Tem);
  144.             show();
  145.           }
  146.           if(key_num!=1)            //液晶屏顯示
  147.           {
  148.            Tem=readtemp();                                  //讀取溫度
  149.            cmd_wrt(0x01);                                   //清屏
  150.            Print("   Temperature:         ");          //顯示字符串 Temperature:  且換行
  151.            display(Tem);                               //顯示溫度
  152.            Print(" ^C");                         //顯示攝氏度
  153.            delay(100000);                                   //延時再讀取溫度顯示
  154.           }
  155.       }
  156. }
  157. //------------------字符串顯示程序--------------------------
  158. void Print(uchar *str)                                       //字符串顯示程序
  159. {
  160.        while(*str!='\0')                                     //直到字符串結束
  161.        {
  162.             dat_wrt(*str);                                   //轉成ASCII 碼
  163.             str++;                                                 //指向下一個字符
  164.        }
  165. }
  166. //--------------輸入轉換并顯示(用于LCD1602)--------------------
  167. void display(uint Tem)
  168. {
  169.        uint T,a,b;
  170.        T=Tem*2;
  171.        if(T>=27315)                                          //溫度為正
  172.        {
  173.             T=T-27315;                                             //
  174.             a=T/100;                                         //溫度整數
  175.             b=T-a*100;                                             //溫度小數
  176.             if(a>=100)                                             //溫度超過100 度
  177.             {
  178.                   dat_wrt(0x30+a/100);                       //顯示溫度百位
  179.                   dat_wrt(0x30+a%100/10);                          //顯示溫度十位
  180.                   dat_wrt(0x30+a%10);                              //顯示溫度個位
  181.             }
  182.       else if(a>=10)                              //溫度超過10 度
  183.       {
  184.            dat_wrt(0x30+a%100/10);                      //顯示溫度十位
  185.            dat_wrt(0x30+a%10);                          //顯示溫度個位
  186.       }
  187.       else                                        //溫度不超過10 度
  188.       {
  189.            dat_wrt(0x30+a);                       //顯示溫度個位
  190.       }
  191.       dat_wrt(0x2e);                                    //顯示小數點
  192.       if(b>=10)                                   //溫度小數點后第1 位數不等于0
  193.       {
  194.       dat_wrt(0x30+b/10);                               //顯示溫度小數點后第1 位數
  195.       dat_wrt(0x30+b%10);                               //顯示溫度小數點后第2 位數
  196.       }
  197.       else                                        //溫度小數點后第1 位數等于0
  198.       {
  199.            dat_wrt(0x30);                               //顯示溫度小數點后第1 位數0
  200.            dat_wrt(0x30+b);                       //顯示溫度小數點后第2 位數
  201.       }
  202. }
  203. else                                             //溫度為負
  204. {
  205.       T=27315-T;
  206.       a=T/100;
  207.            b=T-a*100;
  208.            dat_wrt(0x2d);                                  //顯示負號
  209.            if(a>=10)                                  //溫度低于負10 度
  210.            {
  211.                 dat_wrt(0x30+a/10);                        //顯示溫度十位
  212.                 dat_wrt(0x30+a%10);                        //顯示溫度個位
  213.            }
  214.            else                                       //溫度高于負10 度
  215.            {
  216.                 dat_wrt(0x30+a);                      //顯示溫度個位
  217.            }
  218.            dat_wrt(0x2e);                                  //顯示小數點
  219.            if(b>=10)                                  //溫度小數點后第1 位數不等于0
  220.            {
  221.                 dat_wrt(0x30+b/10);                        //顯示溫度小數點后第1 位數
  222.                 dat_wrt(0x30+b%10);                        //顯示溫度小數點后第2 位數
  223.            }
  224.            else                                       //溫度小數點后第1 位數等于0
  225.            {
  226.                 dat_wrt(0x30);                             //顯示溫度小數點后第1 位數0
  227.                 dat_wrt(0x30+b);                      //顯示溫度小數點后第2 位數
  228.            }
  229.       }
  230. }
  231. //--------------------根據十六進制計算溫度------------------------------
  232. void CALTEMP(uint TEMP)
  233. {
  234.                uint T;
  235.                uint a,b;
  236.                uchar A4,A5,A6,A7,A8;
  237.                T=TEMP*2;
  238.                if(T>=27315)
  239.                               {
  240.                                      T=T-27315;
  241.                                      a=T/100;
  242.                                      b=T-a*100;
  243.                                      if(a>=100)
  244.                                                {
  245.                                                        A4=a/100;
  246.                                                        a=a%100;
  247.                                                        A5=a/10;
  248.                                                        a=a%10;
  249.                                                        A6=a;
  250.                                                   }
  251.                                      else if(a>=10)
  252.                                                   {
  253.                                                        A4=0;
  254.                                                        A5=a/10;
  255.                                                        a=a%10;
  256.                                                        A6=a;
  257.                                         }
  258.                       else
  259.                                         {
  260.                                                 A4=0;
  261.                                                 A5=0;
  262.                                                 A6=a;
  263.                                         }
  264.                       if(b>=10)
  265.                                         {
  266.                                                 A7=b/10;
  267.                                                 b=b%10;
  268.                                                 A8=b;
  269.                                         }
  270.                           else
  271.                                         {
  272.                                                 A7=0;
  273.                                                 A8=b;
  274.                                         }
  275.                }
  276. else
  277.                       {
  278.                                  T=27315-T;
  279.                                  a=T/100;
  280.                                  b=T-a*100;
  281.                                  A4=9;
  282.          if(a>=10)
  283.                            {
  284.                                          A5=a/10;
  285.                                          a=a%10;
  286.                                          A6=a;
  287.                            }
  288.          else
  289.                            {
  290.                                          A5=0;
  291.                                          A6=a;
  292.                            }
  293.          if(b>=10)
  294.                            {
  295.                                          A7=b/10;
  296.                                          b=b%10;
  297.                                          A8=b;
  298.                            }
  299.          else
  300.                            {
  301.                                          A7=0;
  302.                                          A8=b;
  303.                            }
  304. }
  305. mah[4]=A4;
  306. mah[3]=A5;
  307.                       mah[2]=A6;
  308.                       mah[1]=A7;
  309.                       mah[0]=A8;
  310. }
  311. //------------------------------
  312. void start(void)                                         //停止條件是 SCK=1 時,SDA 由1 到0
  313. {
  314.        SDA=1;
  315.        delay(4);
  316.        SCK=1;
  317.        delay(4);
  318.        SDA=0;
  319.        delay(4);
  320.        SCK=0;
  321.        delay(4);
  322. }
  323. //------------------------------
  324. void stop(void)                                               //停止條件是 SCK=1 時,SDA 由0 到1
  325. {
  326.        SCK=0;
  327.        delay(4);
  328.        SDA=0;
  329.        delay(4);
  330.        SCK=1;
  331.        delay(4);
  332.        SDA=1;
  333. }
  334. //---------發送一個字節---------
  335. void SendByte(uchar number)
  336. {
  337.        uchar i,n,dat;
  338.        n=Nack_number;                                                //可以重發次數
  339.       Send_again:
  340.        dat=number;
  341.        for(i=0;i<8;i++)                                        //8 位依次發送
  342.        {
  343.              if(dat&0x80)                                            //取最高位
  344.              {
  345.                    bit_out=1;                                        //發1
  346.              }
  347.              else
  348.              {
  349.                    bit_out=0;                                        //發0
  350.              }
  351.              send_bit();                                             //發送一個位
  352.              dat=dat<<1;                                             //左移一位
  353.        }
  354.        read_bit();                                                   //接收1 位應答信號
  355.        if(bit_in==1)                                           //無應答時重發
  356.        {
  357.               stop();
  358.               if(n!=0)
  359.               {
  360.                      n--;                                             //可以重發Nack_number=10 次
  361.                      goto Repeat;                                     //重發
  362.               }
  363.               else
  364.               {
  365.                      goto exit;                                              //退出
  366.               }
  367.         }
  368.         else
  369.         {
  370.               goto exit;
  371.         }
  372. Repeat:
  373.         start();                                                      //重新開始
  374.         goto Send_again;                                              //重發
  375.         exit: ;                                                              //退出
  376. }
  377. //-----------發送一個位---------
  378. void send_bit(void)
  379. {
  380.         if(bit_out==1)
  381.         {
  382.              SDA=1;                                                       //發1
  383.         }
  384.         else
  385.         {
  386.              SDA=0;                                                       //發0
  387.         }
  388.         _nop_();
  389.         SCK=1;                                                            //上升沿
  390.         delay(4);delay(4);
  391.         SCK=0;
  392.         delay(4);delay(4);
  393. }
  394. //----------接收一個字節--------
  395. uchar ReadByte(void)
  396. {
  397.         uchar i,dat;
  398.         dat=0;                                                            //初值為0
  399.         for(i=0;i<8;i++)
  400.         {
  401.              dat=dat<<1;                                                  //左移
  402.              read_bit();                                                  //接收一位
  403.              if(bit_in==1)
  404.              {
  405.                     dat=dat+1;                                            //為1 時對應位加1
  406.              }
  407.        }
  408.        SDA=0;                                                   //發送應答信號0
  409.        send_bit();
  410.        return dat;                                              //帶回接收數據
  411. }
  412. //----------接收一個位----------
  413. void read_bit(void)
  414. {
  415.        SDA=1;                                                   //數據端先置1
  416.        bit_in=1;
  417.        SCK=1;                                                   //上升沿
  418.        delay(4);delay(4);
  419.        bit_in=SDA;                                              //讀數據
  420.        _nop_();
  421.        SCK=0;
  422.        delay(4);delay(4);
  423. }
  424. //------------------------------
  425. uint readtemp(void)
  426. {
  427.        SCK=0;
  428.        start();                                           //開始條件
  429.        SendByte(0x00);                                    //發送從地址00
  430.       SendByte(0x07);                           //發送命令
  431.       start();                                  //開始條件
  432.       SendByte(0x01);                           //讀從地址00
  433.       bit_out=0;
  434.       tempL=ReadByte();                              //讀數據低字節
  435.       bit_out=0;
  436.       tempH=ReadByte();                              //讀數據高字節
  437.       bit_out=1;
  438.       err=ReadByte();                                //讀錯誤信息碼
  439.       stop();                                        //停止條件
  440.       return(tempH*256+tempL);
  441. }
  442. //******************LCD 顯示子函數***********************
  443. void init1602(void)                             //初始化LCD
  444. {
  445.       cmd_wrt(0x01);                                 //清屏
  446.       cmd_wrt(0x0c);                                 //開顯示,不顯示光標,不閃爍
  447.       cmd_wrt(0x06);                                 //完成一個字符碼傳送后,光標左移,顯
  448. 示不發生移位
  449.       cmd_wrt(0x38);                                 //16 ×2 顯示,5×7 點陣,8 位數據接口
  450. }
  451. void busy(void)                                 //LCD 忙標志判斷
  452. {
  453.       flag=0x80;                                     //賦初值 高位為1 禁止
  454.       while(flag&0x80)                          //讀寫操作使能位禁止時等待 繼續檢測
  455.        {
  456.             P1=0xff;
  457.             RS=0;                                               //指向地址計數器
  458.             RW=1;                                               //讀
  459.             LCDE=1;                                        //信號下降沿有效
  460.             flag=P1;                                       //讀狀態位 高位為狀態
  461.             LCDE=0;
  462.        }
  463. }
  464. void cmd_wrt(uchar cmd)                                    //寫命令子函數
  465. {
  466.        LCDE=0;
  467.        busy();                                                  //檢測讀寫操作使能嗎
  468.        P1=cmd;                                                  //命令
  469.        RS=0;                                                    //指向命令計數器
  470.        RW=0;                                                    //寫
  471.        LCDE=1;                                                  //高電平有效
  472.        LCDE=0;
  473. }
  474. void dat_wrt(uchar dat)                                    //寫數據子函數
  475. {
  476.        busy();                                                  //檢測讀寫操作使能嗎
  477.        LCDE=0;
  478.        if(flag==16)
  479.        {
  480.             RS=0;                                                   //指向指令寄存器
  481.             RW=0;                                                   //寫
  482.             P1=0XC0;                                          //指向第二行
  483.             LCDE=1;                                                 //高電平有效
  484.             LCDE=0;
  485.        }
  486.        RS=1;                                                        //指向數據寄存器
  487.        RW=0;                                                        //寫
  488.        P1=dat;                                                //寫數據
  489.        LCDE=1;                                                      //高電平有效
  490.        LCDE=0;
  491. }
  492. //------------延時--------------
  493. void delay(uint n)
  494. {
  495.        uint j;
  496.        for(j=0;j<n;j++)
  497.        {
  498.             _nop_();
  499.        }
  500. }
  501. //------------定時器初始化函數----------------
  502. void initInt()
  503. {
  504.       TMOD = 0x10;                              //定時器1 方式1
  505.       TH1=(65536-1000)/256;                           //定時器1 設置1ms 定時
  506.       TL1=(65536-1000)%256;
  507.      EA=1;                                          //開總中斷
  508.       ET1 = 1;                                 //開定時器T1 中斷
  509.       TR1 = 1;                                     //啟動定時器T1
  510. }
  511. //------------定時器中斷處理函數-------------------
  512. void timer1handle() interrupt 3           //定時器3 1ms  中斷
  513. {
  514.       TH1=(65536-1000)/256;
  515.       TL1=(65536-1000)%256;
  516.       c20ms++;
  517.       c100ms++;
  518.       if(c20ms >= 20)        //20ms 計時器
  519.      {
  520.           c20ms = 0;
  521.           b20ms = 1;
  522.      }
  523.       if(c100ms >= 50)       //100ms 計時器
  524.      {
  525.           c100ms = 0;
  526.           b100ms = 1;
  527.      }
  528. }
  529. //--------------------------溫度顯示函數------------------------
  530. void show()
  531. {
  532.       DPY1=0;
  533.       P2=LED01[mah[3]];                  //轉換8 位數顯示,不帶小數點的
  534.       delay1(2);
  535.       P2=0xFF;
  536.      DPY1=1;
  537.       DPY2=0;
  538.       P2=LED02[mah[2]];                   //轉換8 位數顯示,帶小數點的
  539.       delay1(2);
  540.       P2=0xFF;
  541.      DPY2=1;
  542.       DPY3=0;
  543.       P2=LED01[mah[1]];                   //轉換8 位數顯示,不帶小數點的
  544.       delay1(2);
  545.      P2=0xFF;
  546.      DPY3=1;
  547. }
  548. ……………………

  549. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
MLX90614紅外測溫儀實驗指導書含源碼.pdf (155.79 KB, 下載次數: 691)

MLX90614的中英文資料下載:
http://www.zg4o1577.cn/bbs/dpj-107480-1.html


評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏12 分享淘帖 頂5 踩
回復

使用道具 舉報

沙發
ID:205887 發表于 2018-2-8 09:06 | 只看該作者
很好,學習中謝謝
回復

使用道具 舉報

板凳
ID:286266 發表于 2018-2-28 13:58 | 只看該作者
請問一下仿真里面我沒有找到MLX90614怎么辦
回復

使用道具 舉報

地板
ID:298843 發表于 2018-3-29 13:21 | 只看該作者
謝謝樓主,好棒哦
回復

使用道具 舉報

5#
ID:264727 發表于 2018-5-11 12:08 | 只看該作者
3123113123 發表于 2018-2-28 13:58
請問一下仿真里面我沒有找到MLX90614怎么辦

這種傳感器一般的仿真軟件里不會有它的,MLX90614的硬件連接并不復雜,建議連上單片機開發板后再調試
回復

使用道具 舉報

6#
ID:20324 發表于 2018-5-12 08:30 | 只看該作者
灰常好,正用到,學習下。。。。
回復

使用道具 舉報

7#
ID:310972 發表于 2018-5-23 15:31 | 只看該作者
T=Tem*2;    樓主求教為什么要*2的?
回復

使用道具 舉報

8#
ID:432836 發表于 2018-11-27 22:59 | 只看該作者
很棒的東西 很有幫助
回復

使用道具 舉報

9#
ID:419628 發表于 2018-12-14 12:06 | 只看該作者
樓主大神,我用普中的開發版做了測試,發現LCD一直顯示的是382.19℃,請問是什么原因,程序的時序有問題嗎。
回復

使用道具 舉報

10#
ID:304366 發表于 2018-12-20 19:12 | 只看該作者
好厲害的樣子
回復

使用道具 舉報

11#
ID:451036 發表于 2018-12-20 20:01 | 只看該作者
單片機匯編語言還有人學?
回復

使用道具 舉報

12#
ID:240164 發表于 2019-1-12 15:26 | 只看該作者
感謝分享!
回復

使用道具 舉報

13#
ID:496726 發表于 2019-3-23 15:36 | 只看該作者
請問樓主這個是SMBUS協議的嗎
回復

使用道具 舉報

14#
ID:442731 發表于 2019-3-23 17:13 | 只看該作者
非常好!
回復

使用道具 舉報

15#
ID:511210 發表于 2019-4-13 22:29 | 只看該作者
請問下樓主  這個有辦法仿真出來嗎
回復

使用道具 舉報

16#
ID:509882 發表于 2019-4-14 15:05 | 只看該作者
謝謝樓主
回復

使用道具 舉報

17#
ID:521578 發表于 2019-4-25 17:47 | 只看該作者
紅外 發表于 2019-4-13 22:29
請問下樓主  這個有辦法仿真出來嗎

我也想問
回復

使用道具 舉報

18#
ID:412391 發表于 2019-5-10 09:09 | 只看該作者
謝謝樓主,好棒哦
回復

使用道具 舉報

19#
ID:525434 發表于 2019-5-11 02:48 | 只看該作者
MOMO1234 發表于 2018-12-14 12:06
樓主大神,我用普中的開發版做了測試,發現LCD一直顯示的是382.19℃,請問是什么原因,程序的時序有問題嗎 ...

請問找到原因了么?
回復

使用道具 舉報

20#
ID:382507 發表于 2019-7-12 19:59 | 只看該作者
我用銳志的51開發板做實驗,也一直顯示382.1.好像是沒有數據返回。請問有人知道具體原因嗎
回復

使用道具 舉報

21#
ID:583286 發表于 2019-7-22 08:27 | 只看該作者
初學者10086 發表于 2019-7-12 19:59
我用銳志的51開發板做實驗,也一直顯示382.1.好像是沒有數據返回。請問有人知道具體原因嗎

我也是,我感覺這個傳感器根本就不工作,不傳遞數據。
回復

使用道具 舉報

22#
ID:276433 發表于 2019-12-16 09:36 | 只看該作者
ejn521 發表于 2019-7-22 08:27
我也是,我感覺這個傳感器根本就不工作,不傳遞數據。

我測試了,如果傳感器連接正常的話,可以正常顯示的。
回復

使用道具 舉報

23#
ID:666819 發表于 2019-12-17 23:01 | 只看該作者
我用器件測試沒有問題,非常感謝樓主!
回復

使用道具 舉報

24#
ID:679966 發表于 2020-1-3 22:10 | 只看該作者
MOMO1234 發表于 2018-12-14 12:06
樓主大神,我用普中的開發版做了測試,發現LCD一直顯示的是382.19℃,請問是什么原因,程序的時序有問題嗎 ...

我也是這樣,請問找到問題了嗎?
回復

使用道具 舉報

25#
ID:679966 發表于 2020-1-3 22:11 | 只看該作者
ejn521 發表于 2019-7-22 08:27
我也是,我感覺這個傳感器根本就不工作,不傳遞數據。

請問找到原因了嗎
回復

使用道具 舉報

26#
ID:348548 發表于 2020-3-3 16:49 | 只看該作者
很好,學習中謝謝
回復

使用道具 舉報

27#
ID:14667 發表于 2020-3-6 14:03 | 只看該作者
感謝分享,看看。
回復

使用道具 舉報

28#
ID:705916 發表于 2020-3-10 17:09 | 只看該作者
感謝分享,看看。
回復

使用道具 舉報

29#
ID:602289 發表于 2020-3-28 09:25 | 只看該作者
準備嘗試一下,謝謝樓主提供資料。
回復

使用道具 舉報

30#
ID:736927 發表于 2020-4-24 13:38 | 只看該作者
你好,有原理圖嗎,有麻煩發一下
回復

使用道具 舉報

31#
ID:737405 發表于 2020-4-25 00:04 來自手機 | 只看該作者
請問上拉電阻是測溫模塊自帶的嘛。還是要自己自己加上
回復

使用道具 舉報

32#
ID:740741 發表于 2020-4-29 11:15 | 只看該作者
最近準備學用這個,多謝樓主提供的資料
回復

使用道具 舉報

33#
ID:757291 發表于 2020-6-11 16:56 | 只看該作者
感謝樓主 學習中
回復

使用道具 舉報

34#
ID:782564 發表于 2020-6-20 12:42 | 只看該作者
對后期的學習非常有用
回復

使用道具 舉報

35#
ID:843473 發表于 2020-11-14 14:19 | 只看該作者
剛剛注冊,前來觀摩學習!
回復

使用道具 舉報

36#
ID:730069 發表于 2022-3-5 16:30 | 只看該作者
請問有完整的原理圖嘛
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费在线性爱视频 | 亚洲va欧美va天堂v国产综合 | 一级网站| 91看片在线| www国产成人免费观看视频,深夜成人网 | 亚洲欧美一区二区三区在线 | av片毛片| 亚洲 欧美 日韩在线 | 国产欧美一区二区三区在线看蜜臀 | 97日日碰人人模人人澡分享吧 | 久久国产高清视频 | 久久青草av | 在线观看国产 | 国产亚洲精品久久久优势 | 日韩成人在线视频 | 中文字幕 在线观看 | 国产a级黄色录像 | 日韩在线资源 | 日韩三级电影在线看 | 99热首页| 国产一区二区三区四区 | 亚洲精品日韩一区二区电影 | 欧美啪啪| 日韩图区| 日韩最新网址 | 久久久久国产精品免费免费搜索 | 亚洲欧美中文日韩在线v日本 | 欧美黄视频 | 亚洲午夜精品久久久久久app | 成人精品在线视频 | 中文字幕在线免费视频 | 精品久久精品 | 青青久草 | 午夜影院毛片 | 国产在线精品一区二区三区 | 午夜精品久久久久99蜜 | 美日韩精品 | 亚洲第一中文字幕 | 亚洲激情一区二区三区 | 日本一二三区在线观看 | 性高朝久久久久久久3小时 av一区二区三区四区 |