单片机热敏电阻测温查表程序_第1页
单片机热敏电阻测温查表程序_第2页
单片机热敏电阻测温查表程序_第3页
单片机热敏电阻测温查表程序_第4页
单片机热敏电阻测温查表程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1. #include<reg51.h>    2. #include"LCD.h"    3. #define uchar unsigned char    4. #define uint unsigned int    5. #define N 10    6. uchar bai,ge,shi,n;  

2、; 7. uint temp,tp;temph,templ;   8. uint code ad_date=    9.     1060,1060,1060,1100,1120,1140,1166,1180,1200,1220,   10.     1240,1320,1340,1360,1380,1400,1420,1440,1460,1480,  &#

3、160;11.     1500,1520,1540,1560,1580,1600,1620,1640,1660,1680,   12.     1700,1720,1740,1760,1780,1800,1820,1840,1840,1860,   13.     1880,1900,1920,1940,1960,1980,2000,2020,2040,2060,   14. 

4、0;   2080,2100,2120,2140,2160,2180,2200,2220,2240,2260,   15.     2280,2300,2320,2340,2360,2380,2400,2420,2440,2460,   16.     2480,2500,2520,2540,2560,2580,2600,2620,2640,2660,   17.   

5、0; 2680,2700,2720,2740,2760,2780,2800,2820,2840,2860,   18.     2880,2900,2920,2920,2940,2960,2980,3000,3020,3040,   19.     3060,3080,3100,3120,3140,3160,3180,3200,3220,3240,   20.     3260

6、,3280,3300,3320,3340,3360,3380,3400,3420,3440,   21.     3460,3480,3500,3520,3540,3560,3580,3600,3620,3640,   22.     3660,3680;   23. uint code temperiture=   24.     59

7、4,593,586,580,579,560,564,559,552,545,   25.     541,518,513,508,503,497,491,488,483,480,   26.     473,468,463,458,455,451,447,440,434,433,   27.     430,425,420,416,413,409,404,401,401,396,

8、0;  28.     390,386,382,378,374,372,368,364,361,357,   29.     354,351,347,343,340,336,333,328,326,322,   30.     319,316,313,309,307,303,300,296,294,289,   31.     

9、286,283,280,276,274,271,267,264,260,257,   32.     253,249,246,243,240,237,233,231,228,224,   33.     222,219,214,216,211,209,206,202,198,194,   34.     187,184,181,178,175,171,168,164,161,158,&#

10、160;  35.     154,152,148,146,142,139,136,133,130,126,   36.     124,121,116,114,112,108,102,98,96,94,   37.     89,86;   38. uchar code table="  T:00.0C"&

11、#160;  39. uchar num=0;   40. uchar keynum,max=40,min=0;   41. uchar code Temp_max="  Max:40C",Temp_min="  Min:00C"   42.    43. sbit ad_wr=P36;   44.

12、 sbit ad_rd=P37;   45. sbit ad_cs=P35;   46. sbit ad_int=P32;   47. sbit key1=P05;   48. sbit key2=P06;   49. sbit key3=P07;   50. /sbit Beep=P00;    51.  

13、  52. /*函数表*/   53. void init();                    /初始化    54. void ad_delay(uint t);          

14、;/延时函数    55. void change(uchar tempture);    /分离百位、十位、个位    56. uchar ad_getshuju();                /ad转换    57. char filter(); &

15、#160;                /滤波    58. uint convert();                 /电压转换    59. void tempertur();&

16、#160;              /度温度    60. void keyscan();                 /键盘扫描    61.    62. /主函数  &

17、#160; 63. void main()   64.    65.     init();   66.     while(1)   67.        68.         keyscan();  &#

18、160;  69.           70.    71.    72. void init()   73.    74.     LCD_init();   75.     for(num=0;num<10;num+) 

19、  76.        77.         LCD_Write_add_data(num,0,tablenum);   78.        79.    80.    81. void ad_delay(uint t)  

20、 82.    83.     uchar j;   84.     uint i;   85.     for(i=0;i<t;i+)   86.         for(j=0;j<110;j+);   

21、87.    88.    89. uchar ad_getshuju()   90.    91.     uchar date;   92.     ad_cs=0;ad_wr=0;ad_rd=1;   93.     ad_cs=1;ad_wr=1;ad_rd=1;

22、0;  94.     while(ad_int=1);   95.     ad_cs=0;ad_wr=1;ad_rd=0;   96.     date=P2;   97.     ad_cs=1;ad_wr=1;ad_rd=1;   98.     re

23、turn date;   99.    100.    101. char filter() /滤波函数  中位值滤波法    102.    103.    uint value_bufN,temp_f;   104.    uchar count,i,j;  

24、60;105.    for ( count=0;count<N;count+)   106.       107.       value_bufcount = ad_getshuju();   108.       delay(2);   109.

25、      110.    for (j=0;j<N-1;j+)   111.       112.       for (i=0;i<N-j;i+)   113.          114.  &

26、#160;       if ( value_bufi>value_bufi+1 )   115.             116.             temp_f = value_bufi;

27、60;  117.             value_bufi = value_bufi+1;   118.              value_bufi+1 = temp_f;   119.   

28、0;         120.          121.       122.    return value_buf(N-1)/2;   123.    124.    125. uint convert()

29、0;  126.     127.     uint temph,templ;       /用于存储读出数据的高字节和低字节     128.     uint tmp="0"           

30、/存储最后处理完的结果 注意数据类型     129.     tmp=filter()+tmp;                   /求滤波后ad值     130.     temph=tmp&0xf0;  

31、;               /屏蔽低四位     131.     temph=temph>>4;               /右移四位 取出高四位    

32、60;132.     templ=tmp&0x0f;                 /屏蔽高四位 取出低四位     133.     tmp=templ*20+temph*320;         

33、;/最后的结果是一个四位数,便于显示   电压值    134.     return tmp;                     /返回最后处理结果     135.    136.  

34、60; 137. void change(uchar tempture)   138.    139.     bai=tempture/100;   140.     shi=tempture%100/10;   141.     ge=tempture%10;   142.  

35、0; 143.    144. void tempertur()   145.    146.     for(n=0;temp>=ad_daten;n+);   147.     tp=temperituren-1;   148.     change(tp);   14

36、9.     LCD_Write_add_data(4,0,0x30+bai);   150.     LCD_Write_add_data(5,0,0x30+shi);   151.     LCD_Write_add_data(7,0,0x30+ge);   152.    153.    154.   

37、 155. void keyscan()   156.    157.     if(key1=0)   158.        159.         delay(5);   160.       

38、0; if(key1=0)   161.            162.             while(!key1);   163.             keynum+;

39、   164.             if(keynum=1)   165.                166.             

40、60;   change(max);   167.                 LCD_Write_Com(0x01);   168.                 delay(10)

41、;   169.                 LCD_Write_add_str(0,0,10,Temp_max);   170.                 LCD_Write_add_data(6,0,0x3

42、0+shi);   171.                 LCD_Write_add_data(7,0,0x30+ge);   172.                173.     

43、        if(keynum=2)   174.                175.                 change(min);  &#

44、160;176.                 LCD_Write_Com(0x01);   177.                 min=min>0?min:0;   178.   &#

45、160;             delay(10);   179.                 LCD_Write_add_str(0,0,10,Temp_min);   180.      &

46、#160;          LCD_Write_add_data(6,0,0x30+shi);   181.                 LCD_Write_add_data(7,0,0x30+ge);   182.     

47、0;          183.             if(keynum=3)   184.                185.      &

48、#160;          keynum=0;   186.                 LCD_Write_Com(0x01);   187.           

49、0;     delay(10);   188.                 LCD_Write_add_str(0,0,10,table);   189.               

50、 190.            191.        192.     if(keynum=0)   193.        194.         temp=convert();&#

51、160;  195.         tempertur();   196.         delay(100);   197.        198.     else   199.   

52、0;    200.         if(keynum=1)   201.            202.             if(key2=0)   203.  

53、0;             204.                 delay(5);   205.               

54、60; if(key2=0)   206.                    207.                     while(!key2); 

55、  208.                     max+;   209.                     change(max);

56、60;  210.                     delay(1);   211.                    212.  

57、60;             213.             if(key3=0)   214.                215.   &#

58、160;             delay(5);   216.                 if(key3=0)   217.          

59、60;                                218.                 

60、0;   while(!key3);   219.                     max-;   220.                 

61、    change(max);   221.                     delay(1);   222.                

62、;    223.                224.             /LCD_Write_add_str(0,0,9,Temp_max);    225.        &#

63、160;    LCD_Write_add_data(6,0,0x30+shi);   226.             LCD_Write_add_data(7,0,0x30+ge);   227.            228.    

64、     if(keynum=2)   229.            230.             if(key2=0)   231.           

65、;     232.                 delay(5);   233.                 if(key2=0)   234.  &

66、#160;                 235.                     while(!key2);   236.      &#

67、160;              min+;   237.                     change(min);   238.      

68、;               min=min>0?min:0;   239.                     delay(1);   240.           

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论