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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

熱敏電阻測溫仿真及AD1674單片機程序和pdf中文資料

[復制鏈接]
跳轉到指定樓層
樓主

下面是熱敏電阻的單片機測溫度的AD1674程序:(完整代碼和仿真工程文件及AD1674pdf中文資料請下載本帖最后的附件)
  1. #include <reg52.h>          
  2. #include <intrins.h>
  3. #include <math.h>

  4. typedef unsigned char uchar;
  5. typedef unsigned int  uint;
  6. code        uint VOL[]={                343,        339,        339,        335,        332,        332,        328,        324,        320,        320,       
  7.                                                         316,        312,        312,        308,        304,        300,        300,        296,        292,        292,
  8.                                                         289,        285,        285,        281,        277,        273,        273,        269,        265,        265,       
  9.                                                         261,        257,        257,        253,        250,        250,        246,        242,        242,        238,
  10.                                                         234,        234,        230,        230,        226,        222,        222,        218,        218,        214,       
  11.                                                         210,        210,        207,        207,        203,        199,        199,        195,        195,        191,
  12.                                                         191,        187,        187,        183,        179,        179,        175,        175,        171,        171,       
  13.                                                         167,        167,        164,        164,        160,        160,        160,        156,        156,        152,
  14.                                                         152,        148,        148,        144,        144,        140,        140,        140,        136,        136,       
  15.                                                         132,        132,        132,        128,        128,        125,        125,        125,        121,        121,
  16.                                                         121,        117,        113,        109,        109,        105,        101,        101,        97,                97,
  17.                                                         93,                89,                89,                85,                85,                82,                82,                78,                78,                74,       
  18.                                                         74,                70,                70,                66,                66,                66,                62,                62,                58,                58,       
  19.                                                         58,                54,                54,                54,                50,                50,                50,                46,                46,                46,       
  20.                                                         42,                42,                42,                42,                39,                39,                39,                39,                35,                35};

  21. code        uint Temper[]={                100,        150,        200,        250,        300,        350,        400,        450,        500,        550,       
  22.                                                         600,        650,        700,        750,        800,        850,        900,        950,        1000,        1050,
  23.                                                         1100,        1150,        1200,        1250,        1300,        1350,        1400,        1450,        1500,        1550       
  24.                                                         1600,        1650,        1700,        1750,        1800,        1850,        1900,        1950,        2000,        2050,
  25.                                                         2100,        2150,        2200,        2250,        2300,        2350,        2400,        2450,        2500,        2550,       
  26.                                                         2600,        2650,        2700,        2750,        2800,        2850,        2900,        2950,        3000,        3050,
  27.                                                         3100,        3150,        3200,        3250,        3300,        3350,        3400,        3450,        3500,        3550,       
  28.                                                         3600,        3650,        3700,        3750,        3800,        3850,        3900,        3950,        4000,        4050,
  29.                                                         4100,        4150,        4200,        4250,        4300,        4350,        4400,        4450,        4500,        4550,       
  30.                                                         4600,        4650,        4700,        4750,        4800,        4850,        4900,        4950,        5000,        5050,
  31.                                                         5100,        5200,        5300,        5400,        5500,        5600,        5700,        5800,        5900,        6000,
  32.                                                         6100,        6200,        6300,        6400,        6500,        6600,        6700,        6800,        6900,        7000,       
  33.                                                         7100,        7200,        7300,        7400,        7500,        7600,        7700,        7800,        7900,        8000,       
  34.                                                         8100,        8200,        8300,        8400,        8500,        8600,        8700,        8800,        8900,        9000,       
  35.                                                         9100,        9200,        9300,        9400,        9500,        9600,        9700,        9800,        9900,        10000};
  36. sbit STS=P1^0;                          
  37. sbit CE = P1^1;
  38. sbit CS=P1^2;
  39. sbit A0=P1^3;
  40. sbit RC=P1^4;

  41. sbit RS=P1^5 ;
  42. sbit RW=P1^6 ;
  43. sbit EN=P1^7 ;           

  44. void delay_ms(uint z)
  45. {
  46.         uint x,y;
  47.         for(x=z;x>0;x--)
  48.                 for(y=110;y>0;y--);
  49. }
  50. uint AD1674_Read(void)
  51. {
  52.         uint temp;
  53.         uchar temp1,temp2;
  54.         CS=1;        //片選信號
  55.         CE=0;        //初始化,關閉數據采集
  56.         CS=0;
  57.         A0=0;
  58.         RC=0;
  59.         CE=1;//CE=1,CS=0,RC=0,A0=0啟動12位溫度轉換
  60.         _nop_();
  61.         while(STS==1);         //等待數據采集結束
  62.         CE=0;         //芯片使能關閉
  63.         RC=1;
  64.         A0=0;
  65.         CE=1;//CE=1,CS=0,RC=1,12/8=1,A0=0 允許高八位數據并行輸出
  66.         _nop_();
  67.         temp1=P0; //讀取轉換結果的高八位
  68.         CE=0;  //芯片使能關閉
  69.         RC=1;
  70.         A0=1;
  71.         CE=1;//CE=1,CS=0,RC=1,12/8=0,A0=1 允許低四位數據 并行輸出
  72.         _nop_();
  73.         temp2=P0;         //讀取轉換結果的第四位
  74.         temp=((temp1<<4)|(temp2&0X0F));          //高位和低位合成實際溫度,temp2為PO口的高四位
  75.         return (temp);           //還回轉換結果,右移四位是因為temp2為P0口的高四位
  76. }
  77. /*** 寫數據***/
  78. void w_dat(unsigned char dat)
  79. {
  80.         RS = 1;
  81.         //EN = 0;
  82.         P2 = dat;
  83.         delay_ms(5);
  84.         RW = 0;
  85.         EN = 1;
  86.         EN = 0;
  87. }
  88. /*** 寫命令***/
  89. void w_cmd(unsigned char cmd)
  90. {
  91.         RS = 0;
  92. //        EN = 0;
  93.         P2 = cmd;
  94.         delay_ms(5);
  95.         RW = 0;
  96.         EN = 1;
  97.         EN = 0;
  98. }                       
  99. /*** 發送字符串到LCD***/
  100. void w_string(unsigned char addr_start, unsigned char *p)
  101. {
  102.         unsigned char *pp;
  103.        
  104.         pp = p;
  105.         w_cmd(addr_start);
  106.         while (*pp != '\0')
  107.         {
  108.                 w_dat(*pp++);
  109.         }
  110. }          

  111. /*** 初始化1602****/
  112. void Init_LCD1602(void)
  113. {
  114.         EN = 0;
  115.         w_cmd(0x38);  // 16*2顯示,5*7點陣,8位數據接口
  116.         w_cmd(0x0C);  // 顯示器開、光標開、光標允許閃爍
  117.         w_cmd(0x06);  // 文字不動,光標自動右移
  118.         w_cmd(0x01);  // 清屏
  119. }
  120. void process(uint date,uchar add)
  121. {
  122.         uchar A[7];
  123.         A[0]=date/1000%10+'0';
  124.         A[1]=date/100%10+'0';
  125.         A[2]='.';       
  126.         A[3]=date/10%10+'0';
  127.         A[4]=date%10+'0';
  128.         A[5]='C';                        
  129.         w_string(add,A);
  130. }          
  131. void main()
  132. {

  133.         uchar i,flag=0;
  134.         uint result,temp1,temp2;
  135.         float        res;

  136.         Init_LCD1602();
  137.          
  138.         w_string(0x80,"Temper:");
  139.        
  140.         while (1)
  141.         {
  142.                  res=(float)(AD1674_Read());
  143.                  result=(uint)((res/2048.0-1.0)*500.0);
  144.                  
  145.                  temp1=abs(result-VOL[0]);
  146.                  for(i=1;i<150;i++)
  147.                  {
  148.                          temp2=abs(result-VOL[i]);
  149.                         if(temp1>=temp2)
  150.                         {
  151.                                 temp1=temp2;
  152.                                 flag=i;
  153.                         }
  154.                                
  155.                  }
  156.        
  157.                  process(Temper[flag],0x80+7);
  158.         }
  159. }
復制代碼




熱敏電路的仿真工程文件及AD1674的pdf中文資料等資料下載:
熱敏電阻測溫.zip (259.77 KB, 下載次數: 46)

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

使用道具 舉報

沙發
ID:310363 發表于 2018-5-1 00:32 | 只看該作者
好東西,值得學習。。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女亚洲一区 | 国产精品毛片一区二区三区 | 亚洲国产精品一区二区第一页 | 精品福利在线视频 | 日韩伦理一区二区三区 | 欧美日韩国产一区 | 国产精品久久久久久久久久久免费看 | 欧美精品一区二区在线观看 | www日韩欧美 | 欧美mv日韩mv国产网站91进入 | 久久久av | 国产激情一区二区三区 | 天天射天天操天天干 | 国产伦精品一区二区三区四区视频 | 色精品 | 精品av | 中文字幕一区二区三区不卡 | 国产欧美一区二区三区在线看 | 亚洲欧美日韩系列 | 亚洲性在线 | 亚洲一区二区在线视频 | 国产精品乱码一区二区三区 | 成人一区在线观看 | 影音av| 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 日韩在线一区二区三区 | 欧美一级二级三级视频 | 免费av在线网站 | 美女天天干 | 国产乱码精品一区二区三区中文 | 久久久久久国产精品 | 国产高清精品在线 | 在线观看成年视频 | 中文字幕精品一区久久久久 | 日本色综合 | 在线观看亚洲专区 | 在线中文一区 | 91视频一区二区 | 国产成人精品久久二区二区91 | 亚洲va欧美va天堂v国产综合 | 欧美综合国产精品久久丁香 |