51单片机热敏电阻测温查表程序Word版文档格式.docx

上传人:b****6 文档编号:22029291 上传时间:2023-02-02 格式:DOCX 页数:12 大小:52.21KB
下载 相关 举报
51单片机热敏电阻测温查表程序Word版文档格式.docx_第1页
第1页 / 共12页
51单片机热敏电阻测温查表程序Word版文档格式.docx_第2页
第2页 / 共12页
51单片机热敏电阻测温查表程序Word版文档格式.docx_第3页
第3页 / 共12页
51单片机热敏电阻测温查表程序Word版文档格式.docx_第4页
第4页 / 共12页
51单片机热敏电阻测温查表程序Word版文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

51单片机热敏电阻测温查表程序Word版文档格式.docx

《51单片机热敏电阻测温查表程序Word版文档格式.docx》由会员分享,可在线阅读,更多相关《51单片机热敏电阻测温查表程序Word版文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

51单片机热敏电阻测温查表程序Word版文档格式.docx

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 

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 

table[]="

T:

00.0`C"

;

39.uchar 

num=0;

40.uchar 

keynum,max=40,min=0;

41.uchar 

Temp_max[]="

Max:

40`C"

Temp_min[]="

Min:

00`C"

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. 

66. 

while

(1) 

67. 

68. 

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 

t) 

82.{ 

83. 

j;

84. 

i;

85. 

for(i=0;

i<

t;

i++) 

86. 

for(j=0;

j<

110;

j++);

87.} 

88. 

89.uchar 

ad_getshuju() 

90.{ 

91. 

date;

92. 

ad_cs=0;

ad_wr=0;

ad_rd=1;

93. 

ad_cs=1;

ad_wr=1;

94. 

while(ad_int==1);

95. 

ad_rd=0;

96. 

date=P2;

97. 

98. 

return 

99.} 

100. 

101.char 

filter() 

//滤波函数 

中位值滤波法 

102.{ 

103. 

value_buf[N],temp_f;

104. 

count,i,j;

105. 

for 

( 

count=0;

count<

N;

count++) 

106. 

107. 

value_buf[count] 

108. 

delay

(2);

109. 

110. 

(j=0;

N-1;

j++) 

111. 

112. 

(i=0;

N-j;

113. 

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. 

temp_f;

119. 

120. 

121. 

122. 

value_buf[(N-1)/2];

123.} 

124. 

125.uint 

convert() 

126.{ 

127. 

//用于存储读出数据的高字节和低字节 

128. 

tmp="

0"

//存储最后处理完的结果 

注意数据类型 

129. 

tmp=filter()+tmp;

//求滤波后ad值 

130. 

temph=tmp&

0xf0;

//屏蔽低四位 

131. 

temph=temph>

>

4;

//右移四位 

取出高四位 

132. 

templ=tmp&

0x0f;

//屏蔽高四位 

取出低四位 

133. 

tmp=templ*20+temph*320;

//最后的结果是一个四位数,便于显示 

电压值 

134. 

tmp;

//返回最后处理结果 

135.} 

136. 

137.void 

tempture) 

138.{ 

139. 

bai=tempture/100;

140. 

shi=tempture%100/10;

141. 

ge=tempture%10;

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. 

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. 

172. 

173. 

if(keynum==2) 

174. 

175. 

change(min);

176. 

177. 

min=min>

0?

min:

0;

178. 

179. 

LCD_Write_add_str(0,0,10,Temp_min);

180. 

181. 

182. 

183. 

if(keynum==3) 

184. 

185. 

keynum=0;

186. 

187. 

188. 

LCD_Write_add_str(0,0,10,table);

189. 

190. 

191. 

192. 

if(keynum==0) 

193. 

194. 

temp=convert();

195. 

196. 

delay(100);

197. 

198. 

else 

199. 

200. 

201. 

202. 

if(key2==0) 

203. 

204. 

205. 

206. 

207. 

key2);

208. 

max++;

209. 

210. 

delay

(1);

211. 

212. 

213. 

if(key3==0) 

214. 

215. 

216. 

217. 

218. 

key3);

219. 

max--;

220. 

221. 

222. 

223. 

224. 

//LCD_Write_add_str(0,0,9,Temp_max);

225. 

226. 

227. 

228. 

229. 

230. 

231. 

232. 

233. 

234. 

235. 

236. 

min++;

237. 

238. 

239. 

240. 

241. 

242. 

243. 

244. 

245. 

246. 

247. 

248. 

min--;

249. 

250. 

251. 

252. 

253. 

//LCD_Write_add_str(0,0,9,Temp_min);

254. 

255. 

256. 

257. 

258.} 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1