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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機+ADC0832雙通道+NTC熱敏電阻測溫度+數碼管顯示仿真程序

[復制鏈接]
跳轉到指定樓層
樓主
單片機NTC熱敏電阻仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


數據采集用的雙通道的ADC0832模數轉換芯片

單片機源程序如下:
  1. /******************************
  2. 20221221 prepare by zousongzhu
  3. ******************************/
  4. #include<reg52.h>  //  包含51單片機寄存器定義的頭文件;
  5. #include <intrins.h>
  6. #include <math.h>


  7. sbit P34=P3^4;
  8. sbit P35=P3^5;
  9. sbit P36=P3^6;
  10. sbit P37=P3^7;



  11. sbit CS   = P1^0;//ADC0832 PIN1
  12. sbit Clk = P1^1;//ADC0832 PIN7
  13. sbit DATI = P1^2;//ADC0832 PIN5
  14. sbit DATO = P1^2;//ADC0832 PIN6
  15. unsigned int  Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//共陰數碼管顯示0~9的段碼表
  16. //unsigned int  Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽數碼管顯示0~9的段碼表
  17. /*******************************共陰LED段碼表*******************************/

  18. unsigned char code temptab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  19. /*******************************定義全局變量********************************/
  20. unsigned char dat = 0x00;      //AD值
  21. unsigned char CH;       //通道變量
  22. unsigned int sum=0;

  23. unsigned char sec_time,sec;        //記錄中斷次數
  24. unsigned char second,min,hour,year,month,day;        //儲存秒


  25. //數組下標就是對應溫度
  26. code unsigned char Temp_adc[]={
  27. 224,222,221,219,218,216,214,213,211,209,207,205,203,201,199,197,195,193,191,188,
  28. 186,184,181,179,177,174,172,169,167,164,162,159,157,154,151,149,146,144,141,138,
  29. 136,133,131,128,126,123,121,118,116,113,111,108,106,104,101, 99, 97, 95, 92, 90,
  30. 88, 86, 84, 82, 80, 78, 76, 74, 73, 71, 69, 67, 66, 64, 62, 61, 59, 58, 56, 55,
  31. 53, 52, 51, 49, 48, 47, 46, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32,};


  32. //查找相近值,并返回下標
  33. unsigned char Find_data(unsigned char *a,unsigned char x,unsigned char len)
  34. {
  35.         unsigned char i,min,r=0;
  36.         
  37.         min=abs(*a-x);
  38.         for(i=0;i<len;i++)
  39.         {
  40.                 if(abs(a[i]-x)<min)
  41.                 {
  42.                         min=abs(a[i]-x);
  43.                         r=i;
  44.                 }
  45.         }
  46.         
  47.         return r;
  48. }
  49. /****************************************************************************
  50. 函數功能:AD轉換子程序
  51. 入口參數:CH
  52. 出口參數:dat
  53. ****************************************************************************/
  54. unsigned char adc0832(unsigned char CH)
  55. {
  56.       unsigned char i,test,adval;
  57.            unsigned char m;  
  58.      adval = 0x00;
  59.      test = 0x00;
  60.      Clk = 0;       //初始化
  61.      DATI = 1;
  62.      _nop_();
  63.      CS = 0;
  64.      _nop_();
  65.      Clk = 1;
  66.      _nop_();


  67.    if ( CH == 0 )      //通道選擇
  68.    {
  69.        Clk = 0;
  70.        DATI = 1;      //通道0的第一位
  71.        _nop_();
  72.        Clk = 1;
  73.         _nop_();
  74.         Clk = 0;
  75.        DATI = 0;      //通道0的第二位
  76.        _nop_();
  77.        Clk = 1;
  78.        _nop_();
  79.     }
  80.     else
  81.     {
  82.        Clk = 0;
  83.       DATI = 1;      //通道1的第一位
  84.       _nop_();
  85.       Clk = 1;
  86.       _nop_();
  87.       Clk = 0;
  88.       DATI = 1;      //通道1的第二位
  89.      _nop_();
  90.       Clk = 1;
  91.       _nop_();
  92.    }

  93.       Clk = 0;
  94.       DATI = 1;
  95.     for( i = 0;i < 8;i++ )      //讀取前8位的值
  96.     {
  97.        _nop_();
  98.        adval <<= 1;
  99.        Clk = 1;
  100.        _nop_();
  101.        Clk = 0;
  102.        if (DATO)
  103.           adval |= 0x01;
  104.       else
  105.           adval |= 0x00;
  106.     }
  107.       for (i = 0; i < 8; i++)      //讀取后8位的值
  108.       {
  109.            test >>= 1;
  110.            if (DATO)
  111.               test |= 0x80;
  112.            else
  113.               test |= 0x00;
  114.           _nop_();
  115.           Clk = 1;
  116.           _nop_();
  117.           Clk = 0;
  118.       }
  119.       if (adval == test)      //比較前8位與后8位的值,如果不相同舍去。若一直出現顯示為零,請將該行去掉
  120.        dat = test;
  121.        nop_();
  122.        CS = 1;        //釋放ADC0832
  123.        DATO = 1;
  124.        Clk = 1;
  125.                         
  126.        return dat;
  127.                
  128. }

  129. /***********************************************************************
  130. ……………………

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

Keil代碼與Proteus仿真下載: 51單片機 ADC0832 NTC 測溫 雙通道.7z (64.39 KB, 下載次數: 127)

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

使用道具 舉報

沙發
ID:432633 發表于 2023-10-26 12:34 | 只看該作者
請問 熱敏電阻型號是哪個呀
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 自拍偷拍第一页 | 91在线观看免费视频 | 亚洲人va欧美va人人爽 | 久久久蜜臀国产一区二区 | 中文字幕免费在线 | 久综合| 欧美久久久久久久 | 亚洲精品欧美 | 国产精品久久久久久久毛片 | 日本久久福利 | 免费一级欧美在线观看视频 | 午夜精品久久久久久 | 欧美日韩在线电影 | 久久久91精品国产一区二区三区 | 精品动漫一区 | 欧美精品一区二区三区在线播放 | 精品成人在线观看 | 看毛片网站 | 三级免费网 | 亚洲一区二区三区四区在线观看 | 岛国av免费在线观看 | 男人天堂久久久 | 精品亚洲二区 | 蜜桃av人人夜夜澡人人爽 | 久热伊人| 久久久精品一区 | 国产日韩欧美一区 | 国产xxxx岁13xxxxhd | 国产精品一级 | 国产综合在线视频 | 亚洲一区不卡 | 9色网站| 欧美日韩精品一区 | 色噜噜亚洲男人的天堂 | 久久久久国产精品一区二区 | 成人综合视频在线观看 | 久久精品福利视频 | 视频一区二区三区中文字幕 | 亚洲一区二区在线 | 亚洲激情综合 | 精品国产乱码久久久久久丨区2区 |