51单片机热敏电阻测温查表程序
更新时间:2023-09-18 13:01:01 阅读量: 幼儿教育 文档下载
1. #include
3. #define uchar unsigned char 4. #define uint unsigned int 5. #define N 10 6. uchar bai,ge,shi,n; 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, 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. 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. 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,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. 594,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, 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. 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, 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[]=\; 39. uchar num=0;
40. uchar keynum,max=40,min=0;
41. uchar code Temp_max[]=\,Temp_min[]=\; 42.
43. sbit ad_wr=P3^6; 44. sbit ad_rd=P3^7;
45. sbit ad_cs=P3^5; 46. sbit ad_int=P3^2; 47. sbit key1=P0^5; 48. sbit key2=P0^6; 49. sbit key3=P0^7; 50. //sbit Beep=P0^0; 51.
52. /*********函数表************/
53. void init(); //初始化 54. void ad_delay(uint t); //延时函数
55. void change(uchar tempture); //分离百位、十位、个位 56. uchar ad_getshuju(); //ad转换 57. char filter(); //滤波 58. uint convert(); //电压转换 59. void tempertur(); //度温度 60. void keyscan(); //键盘扫描 61.
62. //主函数 63. void main() 64. {
65. init(); 66. while(1) 67. {
68. keyscan(); 69. } 70. } 71.
72. void init() 73. {
74. LCD_init();
75. for(num=0;num<10;num++) 76. {
77. LCD_Write_add_data(num,0,table[num]); 78. } 79. } 80.
81. void ad_delay(uint t) 82. {
83. uchar j; 84. uint i;
85. for(i=0;i 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; 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. return date; 99. } 100. 101. char filter() //滤波函数 中位值滤波法 102. { 103. uint value_buf[N],temp_f; 104. uchar count,i,j; 105. for ( count=0;count 107. value_buf[count] = ad_getshuju(); 108. delay(2); 109. } 110. for (j=0;j 112. for (i=0;i 114. if ( value_buf[i]>value_buf[i+1] ) 115. { 116. temp_f = value_buf[i]; 117. value_buf[i] = value_buf[i+1]; 118. value_buf[i+1] = temp_f; 119. } 120. } 121. } 122. return value_buf[(N-1)/2]; 123. } 124. 125. uint convert() 126. { 127. uint temph,templ; //用于存储读出数据的高字节和低字节 128. uint tmp=\; //存储最后处理完的结果 注意数据类型 129. tmp=filter()+tmp; //求滤波后ad值 130. temph=tmp&0xf0; //屏蔽低四位 131. temph=temph>>4; //右移四位 取出高四位 132. templ=tmp&0x0f; //屏蔽高四位 取出低四位 133. tmp=templ*20+temph*320; //最后的结果是一个四位数,便于显示 电压 值 134. return tmp; //返回最后处理结果 135. } 136. 137. void change(uchar tempture) 138. { 139. bai=tempture/100; 140. shi=tempture0/10; 141. ge=tempture; 142. } 143. 144. void tempertur() 145. { 146. for(n=0;temp>=ad_date[n];n++); 147. tp=temperiture[n-1]; 148. change(tp); 149. 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. 155. void keyscan() 156. { 157. if(key1==0) 158. { 159. delay(5); 160. if(key1==0) 161. { 162. while(!key1); 163. keynum++; 164. if(keynum==1) 165. { 166. change(max); 167. LCD_Write_Com(0x01); 168. delay(10); 169. LCD_Write_add_str(0,0,10,Temp_max); 170. LCD_Write_add_data(6,0,0x30+shi); 171. LCD_Write_add_data(7,0,0x30+ge); 172. } 173. if(keynum==2) 174. { 175. change(min); 176. LCD_Write_Com(0x01); 177. min=min>0?min:0; 178. delay(10); 179. LCD_Write_add_str(0,0,10,Temp_min); 180. LCD_Write_add_data(6,0,0x30+shi); 181. LCD_Write_add_data(7,0,0x30+ge); 182. } 183. if(keynum==3) 184. { 185. keynum=0; 186. LCD_Write_Com(0x01); 187. delay(10); 188. LCD_Write_add_str(0,0,10,table); 189. } 190. } 191. } 192. if(keynum==0) 193. { 194. temp=convert(); 195. tempertur(); 196. delay(100); 197. } 198. else 199. { 200. if(keynum==1) 201. { 202. if(key2==0) 203. { 204. delay(5); 205. if(key2==0) 206. { 207. while(!key2); 208. max++; 209. change(max); 210. delay(1); 211. } 212. } 213. if(key3==0) 214. { 215. delay(5); 216. if(key3==0) 217. { 218. while(!key3); 219. max--; 220. change(max); 221. delay(1); 222. } 223. } 224. //LCD_Write_add_str(0,0,9,Temp_max); 225. LCD_Write_add_data(6,0,0x30+shi); 226. LCD_Write_add_data(7,0,0x30+ge); 227. } 228. if(keynum==2) 229. { 230. if(key2==0) 231. { 232. delay(5); 233. if(key2==0) 234. { 235. while(!key2); 236. min++; 237. change(min); 238. min=min>0?min:0; 239. delay(1); 240. } 241. } 242. if(key3==0) 243. { 244. delay(5); 245. if(key3==0) 246. { 247. while(!key3); 248. min--; 249. change(min); 250. delay(1); 251. } 252. } 253. //LCD_Write_add_str(0,0,9,Temp_min); 254. LCD_Write_add_data(6,0,0x30+shi); 255. LCD_Write_add_data(7,0,0x30+ge); 256. } 257. } 258. }
正在阅读:
51单片机热敏电阻测温查表程序09-18
unit 4 welcome_to_our_party03-20
售后服务指南——售后服务管理制度共13页05-09
河北北方学院温病学期末试题10-23
High-excitation CO in a quasar host galaxy at z=6.4208-06
唱响祖国作文450字06-16
LCD 液晶屏面板工作原理介绍04-21
学前教育计算机在线作业答案07-06
- 元旦晚会节目单
- 学案
- 光电显示技术期末复习资料 - 图文
- p2p与供应链结合案例
- 2016--2017学年度第二学期五年级班主任工作计划
- 尔雅2017年西藏的历史和文化期末考试满分答案解析
- 智慧树创新工程实践期末考试答案
- 六年级下美术教案-有趣的纸浮雕广西版
- 设备操作规程汇编
- 通信综合实训系统实验报告
- 南京财经大学金融学期末考试简答题
- 现代服务业发展规划研究 - 图文
- 锚杆支护工知识竞赛题
- 实验五
- 债权法习题集及详细解答
- 上海寺庙大全 - 图文
- 机会成本在企业决策中的应用研究
- 高考总复习语文选择题百题精炼第一季专题01 识记现代汉语字音(教师版)
- A9785-B中文资料
- 56m连续梁主墩冷却管布置技术交底
- 测温
- 热敏电阻
- 单片机
- 程序
- 查表
- 顾家北100句翻译简版 - 图文
- 染色体变异导学案上课教案
- 财务业务一体化练习题 - 图文
- 郑州大学现代远程教育《信息管理学》
- 中北大学2007 - 2008学年第一学期末数值分析考试试题A参考答案与评分标准
- 熊海虹主编《高等学校研究生英语综合教程 上》1-10单元原文+翻译(个人整理方便学习)
- 安徽省潜山中学2009-2010高二数学理第一学期期中考试试卷新课标人教A版必修五
- 学士学位英语翻译句子练习60题
- 2018“两工地”起重机械检测实施细则 - 图文
- 饱和塔流程三段式全低变工艺催化剂升温硫化方案
- 高频复习提纲
- 关于提高宣传思想文化工作科学化水平的几点思考
- 《功能性食品概述》课程标准
- 湖北省武汉市华中师大一附中2017-2018学年高考数学适应性试卷(理科)(10月份) Word版含解析
- 德育论文评比结果(兴宁区) - 图文
- 西方经济学 形成性考核册参考答案
- 台儿庄:人民之战 - 图文
- 日本战国官职一览
- 医学统计学试题集锦 2 - 图文
- 学校风险隐患排查工作总结