ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:216.19KB ,
资源ID:5916726      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5916726.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温控检测技术实习报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

温控检测技术实习报告.docx

1、温控检测技术实习报告一、实验目的1、对工程实际中的测试系统有整体认识,可以自己设计简单的测控系统,提高实践能力;2 从工程应用实际需要出发,能够认识传感器知识、信号处理电路知识、信号采集及单片机程序设计知识、单片机与计算机串口通信知识、简单的上位机监控软件设计知识等知识;3能够实际操作测控系统接线,并深刻明白测控电路的工作原理。二、实验内容1、根据实验目的,了解PT100、温度变送器、单片机MCS51、A/D转换器、固态继电器、光电耦合器等实验器材的结构及原理;2、了解温度测控系统原理,设计并绘制整体方案图;3、了解测控系统中单片机的采集电路原理,并绘制出原理图;4、对温度测控系统的整体电路进

2、行线路连接,并进行检查;5、熟悉简单的人机交互软件界面,了解测控系统单片机程序,并将程序通过软件写入单片机中,检测整个系统的测控性能;6、完成相应的实验报告。三、实验方案设计1、方案图 2、方案分析:该测控系统由温度采集电路、控制电路、加热电路三部分组成。通过热电阻采集水的温度,然后通过温度变送器将采集到的温度信号转换成模拟电流信号,通过电阻进行I/V转换,得到模拟电压信号,再通过A/D转换器将模拟电压信号转换为数字信号,然后输入单片机中,根据单片机中的程序控制,使输出的电信号发生改变,以控制光电耦合器的闭合,光电耦合器的接通与关闭会使固态继电器发生相应的通闭,而固态继电器直接控制加热电路的通

3、闭,从而控制水的加热,继而影响水的温度。 四、元件工作原理 1、热电阻PT100 该电阻为一种接触电阻式敏感元件,属于铂热电阻,随着水的温度变化,其电阻值也会发生相应的变化。 其电阻和温度变化的关系式为: Rt = R0 1 + A T + B T2 + C( t - 100) T3 式中: R0 为0 下的电阻值,R0 = 100 ; T 为摄氏温度。A=3.9X10-3 B=-5.8X10-7 T=0时 C=0;T0时 C=-4.183X10-12电阻与温度呈非线性关系,但当测量精度要求较低时,电阻值与温度的函数关系可以简化为:Rt = R0 (1 + A T) 2、温度变送器 其基本工作

4、原理是将热电阻以三线制方式连接在电桥中,其电阻值的改变会改变测量电压,在通过转换将其变为电流信号再输出。(实验中的温度变送器的输出电流范围为420mA) R1=R2=R3,因此可以求出: Rt=(2U-E)R/(2U+E)3、A/D转换器 实验中采用的是TLC2543转换器,它属于11通道的12位串行A/D转换器,采用的是逐次逼近技术。其内部没有电源,采用的是外部参考电压。由公式(REF+-REF-)/212得到其参考电压取2.048V,计算出量子化因式为2.048/212 =0.5mv。即若输出电压2.5V,则量子化数为5,换成二进制数为101,据此同理类推。4、光电耦合器当输入到发光二极管

5、为低电平时,发光二极管不导通,右侧光敏二极管也因此不通;当输入高电平时,发光二极管导通发亮,光敏二极管因此开通,从而向固态继电器输入电压。该装置实现了光电之间的转换。5、固态继电器SSR是一种全部由固态电子元件组成的新型无触点开关器件,它利用电子元件(如开关三极管、双向可控硅等半导体器件)的开关特性,可达到无触点无火花地接通和断开电路的目的,因此又被称为“无触点开关”。6、单片机 单片机,是一种微型计算机,能够通过多种形式的借口使其内部程序对外部工作电路进行有效的控制。四、电气连接图五、系统连线图六、程序设计1 #include 2 #include 3 #include 4 5 #defin

6、e _HI 1 6 #define _LOW 0 7 #define _on 1 8 #define _off 0 9 10 #define int_EX0 0 / 外部中断0 11 #define int_T0 1 / 定时器0中断 12 #define int_EX1 2 / 外部中断1 13 #define int_T1 3 / 定时器1中断 14 #define int_ES 4 / 串行口可中断 15 #define int_ET2 5 / 8052定时器2中断 16 17 #define uchar unsigned char 18 #define uint unsigned in

7、t 19 20 21 sbit TXC=P35; /MAX485 22 23 sbit EOC2543=P32; /ADC2543 24 sbit CLK2543=P10; /ADC2543 25 sbit DIN2543=P11; /ADC2543 26 sbit DOUT2543=P12; /ADC2543 27 sbit CS2543=P13; /ADC2543 28 29 sbit WDOG=P34; /MAX813 30 31 sbit ADD1=P20; 32 sbit ADD2=P21; /ADDRESS 33 34 sbit IN1=P00; 35 sbit IN2=P01;

8、36 sbit IN3=P02; 37 sbit IN4=P03; 38 39 sbit OUT1=P04; 40 sbit OUT2=P05; 41 sbit OUT3=P06; 42 sbit OUT4=P07; 43 44 unsigned int overflow_count=0; 45 unsigned int now_Vco0=0; 46 unsigned int now_Vco1=0; 47 unsigned int now_Vco2=0; 48 unsigned int SetP=0; 49 uchar T0_INTERVAL; 50 uchar bstart=0; 51 un

9、signed int T0_Init; 52 53 54 uchar idata rxd2326; 55 uchar idata Address; 56 uchar SendBusy; 57 58 void delay(uchar xms) /delay 1-255ms(22.1184M) 59 60 1 uchar i, j; 61 1 for(j=0;jxms;j+) 62 1 63 2 for(i=0;i220;i+) 64 2 65 3 _nop_(); 66 3 _nop_(); 67 3 _nop_(); 68 3 _nop_(); 69 3 _nop_(); 70 3 _nop_

10、(); 71 3 72 3 73 2 74 1 75 76 uint pick_ch0(void) /adc CH0 77 78 1 uchar i; / 12bits/msb/bin 79 1 uint vol=0; 80 1 CLK2543=_HI; 81 1 DIN2543=_LOW; 82 1 CS2543=_LOW; 83 1 _nop_(); 84 1 _nop_(); 85 1 _nop_(); 86 1 _nop_(); 87 1 _nop_(); 88 1 CLK2543=_HI; /时钟上升沿写入CH数据0000 89 1 _nop_(); 90 1 CLK2543=_LO

11、W; 91 1 _nop_(); 92 1 CLK2543=_HI; 93 1 _nop_(); 94 1 CLK2543=_LOW; 95 1 _nop_(); 96 1 CLK2543=_HI; 97 1 _nop_(); 98 1 CLK2543=_LOW; 99 1 _nop_(); 100 1 CLK2543=_HI; 101 1 _nop_(); 102 1 CLK2543=_LOW; 103 1 for (i=0; i0;i-) /delay 10us 111 1 while (EOC2543=0); /在EOC=0时等待! 112 1 CS2543=_LOW; 113 1 _n

12、op_(); 114 1 _nop_(); 115 1 _nop_(); 116 1 _nop_(); 117 1 _nop_(); 118 1 CLK2543=_LOW; 119 1 for (i=0; i11; i+) 120 1 if (DOUT2543=_HI) vol|=0x01; 121 2 else vol|=0x00; 122 2 vol=_irol_(vol,1); 123 2 CLK2543=_HI; /时钟下升沿读出数据, 124 2 _nop_(); 125 2 CLK2543=_LOW; 126 1 CS2543=_HI; 127 1 _nop_(); 128 1 _

13、nop_(); 129 1 _nop_(); 130 1 _nop_(); 131 1 return vol; 132 1 133 134 uint pick_ch1(void) /adc CH1 135 uchar i; / 12bits/msb/bin 136 1 uint vol=0; 137 1 CLK2543=_HI; 138 1 DIN2543=_LOW; 139 1 CS2543=_LOW; 140 1 _nop_(); 141 1 _nop_(); 142 1 _nop_(); 143 1 _nop_(); 144 1 _nop_(); 145 1 CLK2543=_HI; /

14、时钟上升沿写入CH数据0001 146 1 _nop_(); 147 1 CLK2543=_LOW; 148 1 _nop_(); 149 1 CLK2543=_HI; 150 1 _nop_(); 151 1 CLK2543=_LOW; 152 1 _nop_(); 153 1 CLK2543=_HI; 154 1 _nop_(); 155 1 CLK2543=_LOW; 156 1 _nop_(); 157 1 DIN2543=_HI; 158 1 CLK2543=_HI; 159 1 _nop_(); 160 1 CLK2543=_LOW; 161 1 DIN2543=_LOW; 162

15、 1 for (i=0; i0;i-) /delay 10us 168 1 while (EOC2543=0); /在EOC=0时等待! 169 1 CS2543=_LOW; 170 1 _nop_(); 171 1 _nop_(); 172 1 _nop_(); 173 1 _nop_(); 174 1 _nop_(); 175 1 CLK2543=_LOW; 176 1 for (i=0; i11; i+) 177 1 if (DOUT2543=_HI) vol|=0x01; 178 2 else vol|=0x00; 179 2 vol=_irol_(vol,1); 180 2 CLK2

16、543=_HI; /时钟下升沿读出数据, 181 2 _nop_(); 182 2 CLK2543=_LOW; 183 1 CS2543=_HI; 184 1 _nop_(); 185 1 _nop_(); 186 1 _nop_(); 187 1 _nop_(); 188 1 return vol; 189 1 190 191 uint pick_ch2(void) /adc CH2 192 uchar i; / 12bits/msb/bin 193 1 uint vol=0; 194 1 CLK2543=_HI; 195 1 DIN2543=_LOW; 196 1 CS2543=_LOW;

17、 197 1 _nop_(); 198 1 _nop_(); 199 1 _nop_(); 200 1 _nop_(); 201 1 _nop_(); 202 1 CLK2543=_HI; /时钟上升沿写入CH数据0010, 203 1 _nop_(); 204 1 CLK2543=_LOW; 205 1 _nop_(); 206 1 CLK2543=_HI; 207 1 _nop_(); 208 1 CLK2543=_LOW; 209 1 _nop_(); 210 1 DIN2543=_HI; 211 1 CLK2543=_HI; 212 1 _nop_(); 213 1 CLK2543=_

18、LOW; 214 1 DIN2543=_LOW; 215 1 _nop_(); 216 1 CLK2543=_HI; 217 1 _nop_(); 218 1 CLK2543=_LOW; 219 1 for (i=0; i0;i-) /delay 10us 225 1 while (EOC2543=0); /在EOC=0时等待! 226 1 CS2543=_LOW; 227 1 _nop_(); 228 1 _nop_(); 229 1 _nop_(); 230 1 _nop_(); 231 1 _nop_(); 232 1 CLK2543=_LOW; 233 1 for (i=0; i11;

19、 i+) 234 1 if (DOUT2543=_HI) vol|=0x01; 235 2 else vol|=0x00; 236 2 vol=_irol_(vol,1); 237 2 CLK2543=_HI; /时钟下升沿读出数据, 238 2 _nop_(); 239 2 CLK2543=_LOW; 240 1 CS2543=_HI; 241 1 _nop_(); 242 1 _nop_(); 243 1 _nop_(); 244 1 _nop_(); 245 1 return vol; 246 1 247 248 void pick_ch0_16s(void) /采16次取平均值(四舍五

20、入) 249 250 1 uint sum_Vco=0; 251 1 uchar i; 252 1 for (i=0;i10) 258 1 now_Vco0=sum_Vco/16+1; 259 1 else 260 1 now_Vco0=sum_Vco/16; 261 1 262 263 void pick_ch1_16s(void) /采16次取平均值(四舍五入) 264 265 1 uint sum_Vco=0; 266 1 uchar i; 267 1 for (i=0;i10) 273 1 now_Vco1=sum_Vco/16+1; 274 1 else 275 1 now_Vco1

21、=sum_Vco/16; 276 1 277 278 void pick_ch2_16s(void) /采16次取平均值(四舍五入) 279 280 1 uint sum_Vco=0; 281 1 uchar i; 282 1 for (i=0;i10) 288 1 now_Vco2=sum_Vco/16+1; 289 1 else 290 1 now_Vco2=sum_Vco/16; 291 1 292 293 294 void main(void) 295 296 297 E=0x00 ; /初始化时禁止所有中断 298 TMOD=0x11; / 定时器1工作在工作方式2,定时器0工作在方

22、式1,16位定时计数器 299 SCON=0x50; / 串行口工作在方式1,10位数据收发,1位起始位,8位数据位,1位停止位 300 TCON=0x00; / 301 302 P1=0xFF; /先写1到各个I/O端口 303 P2=0xFF; 304 P3=0xFF; 305 P0=0xFF; 306 1 307 1 T0_INTERVAL=10; 308 1 T0_Init=65536-921.6*T0_INTERVAL; 309 1 310 1 if(ADD2=_LOW)&(ADD1=_LOW) 311 1 Address=0x03; 312 1 else if(ADD2=_LOW)

23、&(ADD1=_HI) 313 1 Address=0x02; 314 1 else if(ADD2=_HI)&(ADD1=_LOW) 315 1 Address=0x01; 316 1 else 317 1 Address=0x00; 318 1 319 1 SendBusy=_LOW; 320 1 TXC=_LOW; / 321 1 RCAP2H=0xFF; 322 1 RCAP2L=220; / 11.0592M/9600 Baud 323 1 RCLK=_on; /Timer2作为波特率发生器 324 1 TCLK=_on; 325 1 TR2=_on; 326 1 ES=_on ;

24、327 1 328 1 OUT1=0; 329 1 OUT2=0; 330 1 OUT3=0; 331 1 OUT4=0; 332 1 333 1 delay(100); 334 1 TH0=T0_Init/256 ; /25ms,fosc=11059200Hz,fosc/12=921600Hz, 335 1 例如t=25,X=23040,则应从42496开始计数,t=50,X=46080,则应从19456开始计数 336 1 t=10,X=9216,则应从56320开始计数,t=5,X=4608,则应从60928开始计数 337 1 TL0=T0_Init%256 ; 338 1 ET0=1

25、; /开定时器0中断 339 1 TR0=1; 340 1 EA=1; 341 1 delay(100); 342 1 343 1 do 344 2 345 2 if(TR0=0) 346 2 347 3 pick_ch0_16s(); /采集 348 3 if(bstart=1) 349 3 350 4 if( (int)(now_Vco0*0.5/100.0-4)*18.75*10)=4) 367 1 368 2 overflow_count=0; 369 2 TR0=0; 370 2 371 1 else 372 1 overflow_count=overflow_count+1; 37

26、3 1 374 1 T0_Init=65536-921.6*T0_INTERVAL; 375 1 TH0=T0_Init/256 ; 376 1 TL0=T0_Init%256 ; 377 1 378 1 379 380 381 void _RS232() interrupt int_ES using 3 /RS232接收中断 382 383 1 uchar i; 384 1 uchar temp; 385 1 if (TI=_on) 386 1 387 2 TI=_off; 388 2 goto rx_end; 389 2 390 1 else 391 1 RI=_off; 392 1 for (i=1; i6; i+) / shif

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

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