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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5260|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:137190 發(fā)表于 2016-9-3 02:48 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

下面是熱敏電阻的單片機(jī)測溫度的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;        //初始化,關(guān)閉數(shù)據(jù)采集
  56.         CS=0;
  57.         A0=0;
  58.         RC=0;
  59.         CE=1;//CE=1,CS=0,RC=0,A0=0啟動12位溫度轉(zhuǎn)換
  60.         _nop_();
  61.         while(STS==1);         //等待數(shù)據(jù)采集結(jié)束
  62.         CE=0;         //芯片使能關(guān)閉
  63.         RC=1;
  64.         A0=0;
  65.         CE=1;//CE=1,CS=0,RC=1,12/8=1,A0=0 允許高八位數(shù)據(jù)并行輸出
  66.         _nop_();
  67.         temp1=P0; //讀取轉(zhuǎn)換結(jié)果的高八位
  68.         CE=0;  //芯片使能關(guān)閉
  69.         RC=1;
  70.         A0=1;
  71.         CE=1;//CE=1,CS=0,RC=1,12/8=0,A0=1 允許低四位數(shù)據(jù) 并行輸出
  72.         _nop_();
  73.         temp2=P0;         //讀取轉(zhuǎn)換結(jié)果的第四位
  74.         temp=((temp1<<4)|(temp2&0X0F));          //高位和低位合成實(shí)際溫度,temp2為PO口的高四位
  75.         return (temp);           //還回轉(zhuǎn)換結(jié)果,右移四位是因為temp2為P0口的高四位
  76. }
  77. /*** 寫數(shù)據(jù)***/
  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. /*** 發(fā)送字符串到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點(diǎn)陣,8位數(shù)據(jù)接口
  116.         w_cmd(0x0C);  // 顯示器開、光標(biāo)開、光標(biāo)允許閃爍
  117.         w_cmd(0x06);  // 文字不動,光標(biāo)自動右移
  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. }
復(fù)制代碼




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

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

使用道具 舉報

沙發(fā)
ID:310363 發(fā)表于 2018-5-1 00:32 | 只看該作者
好東西,值得學(xué)習(xí)。。。。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产深夜福利 | 欧美另类视频 | 国产福利小视频 | 精品免费在线 | 欧美特黄视频 | 这里只有精品视频在线观看 | 国产欧美精品 | 黄色大片免费在线观看 | 在线一区二区视频 | 欧美日韩免费视频 | 哦┅┅快┅┅用力啊┅aps | 天天爽天天干 | 日韩成人在线免费观看 | 欧美黄色精品 | 丰满少妇在线观看网站 | 一级看片免费视频 | 嫩草嫩草嫩草嫩草 | 老司机免费福利视频 | 一区二区三区成人 | 久久精品一区二区三区四区五区 | 最新av在线 | 四虎在线免费观看视频 | 天天爽天天操 | 中文av字幕 | 免费网站观看www在线观看 | 久久爱影视i | 精品国产欧美一区二区三区成人 | 在线播放av网站 | 久久香蕉国产 | 一区二区三区四区国产 | 成人在线观看网站 | 久久性色| 久久视频在线 | 香蕉网在线 | 国产一级特黄 | 亚洲国产片 | 国产精品手机在线 | 成人动漫在线看 | 日韩免费精品视频 | 久久福利视频导航 | 久久久不卡 |