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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

温控检测技术实习报告Word文档下载推荐.docx

1、 单片机,是一种微型计算机,能够通过多种形式的借口使其内部程序对外部工作电路进行有效的控制。四、电气连接图五、系统连线图六、程序设计1 #include 2 #include 3 #include 4 5 #define _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_

2、ES 4 / 串行口可中断 15 #define int_ET2 5 / 8052定时器2中断 16 17 #define uchar unsigned char 18 #define uint unsigned int 19 20 21 sbit TXC=P35; /MAX485 22 23 sbit EOC2543=P32; /ADC2543 24 sbit CLK2543=P10; 25 sbit DIN2543=P11; 26 sbit DOUT2543=P12; 27 sbit CS2543=P13; 28 29 sbit WDOG=P34; /MAX813 30 31 sbit A

3、DD1=P20; 32 sbit ADD2=P21; /ADDRESS 33 34 sbit IN1=P00; 35 sbit IN2=P01; 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=

4、0; 48 unsigned int SetP=0; 49 uchar T0_INTERVAL; 50 uchar bstart=0; 51 unsigned 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 _n

5、op_(); 66 3 _nop_(); 67 3 _nop_(); 68 3 _nop_(); 69 3 _nop_(); 70 3 _nop_(); 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 _

6、nop_(); 88 1 CLK2543=_HI; /时钟上升沿写入CH数据0000 89 1 _nop_(); 90 1 CLK2543=_LOW; 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-) /de

7、lay 10us 111 1 while (EOC2543=0); /在EOC=0时等待! 112 1 CS2543=_LOW; 113 1 _nop_(); 114 1 _nop_(); 115 1 _nop_(); 116 1 _nop_(); 117 1 _nop_(); 118 1 CLK2543=_LOW; 119 1 for (i=0;11; 120 1 if (DOUT2543=_HI) vol|=0x01; 121 2 else vol|=0x00; 122 2 vol=_irol_(vol,1); 123 2 CLK2543=_HI; /时钟下升沿读出数据, 124 2 _n

8、op_(); 125 2 CLK2543=_LOW; 126 1 CS2543=_HI; 127 1 _nop_(); 128 1 _nop_(); 129 1 _nop_(); 130 1 _nop_(); 131 1 return vol; 132 1 133 134 uint pick_ch1(void) /adc CH1 135 uchar i; 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_();

9、143 1 _nop_(); 144 1 _nop_(); 145 1 CLK2543=_HI;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

10、CLK2543=_LOW; 161 1 DIN2543=_LOW; 162 1 for (i=0; 163 1 CLK2543=_HI; 164 2 _nop_(); 165 2 CLK2543=_LOW; ; 166 1 CS2543=_HI; 167 1 for (i=10; 168 1 while (EOC2543=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; 177

11、1 if (DOUT2543=_HI) vol|=0x01; 178 2 else vol|=0x00; 179 2 vol=_irol_(vol,1); 180 2 CLK2543=_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; 193 1 uint vol=0

12、; 194 1 CLK2543=_HI; 195 1 DIN2543=_LOW; 196 1 CS2543=_LOW; 197 1 _nop_(); 198 1 _nop_(); 199 1 _nop_(); 200 1 _nop_(); 201 1 _nop_(); 202 1 CLK2543=_HI;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

13、 1 CLK2543=_HI; 212 1 _nop_(); 213 1 CLK2543=_LOW; 214 1 DIN2543=_LOW; 215 1 _nop_(); 216 1 CLK2543=_HI; 217 1 _nop_(); 218 1 CLK2543=_LOW; 219 1 for (i=0; 220 1 CLK2543=_HI; 221 2 _nop_(); 222 2 CLK2543=_LOW; 223 1 CS2543=_HI; 224 1 for (i=10; 225 1 while (EOC2543=0); 226 1 CS2543=_LOW; 227 1 _nop_

14、(); 228 1 _nop_(); 229 1 _nop_(); 230 1 _nop_(); 231 1 _nop_(); 232 1 CLK2543=_LOW; 233 1 for (i=0; 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_(); 2

15、44 1 _nop_(); 245 1 return vol; 246 1 247 248 void pick_ch0_16s(void) /采16次取平均值(四舍五入) 249 250 1 uint sum_Vco=0; 251 1 uchar i; 252 1 for (i=0;16;i+) 253 1 254 2 sum_Vco+=pick_ch0(); 255 2 ; 256 1 i=sum_Vco % 16; 257 1 if (i10) 258 1 now_Vco0=sum_Vco/16+1; 259 1 else 260 1 now_Vco0=sum_Vco/16; 261 1

16、262 263 void pick_ch1_16s(void) /采16次取平均值(四舍五入) 264 265 1 uint sum_Vco=0; 266 1 uchar i; 267 1 for (i=0; 268 1 269 2 sum_Vco+=pick_ch1(); 270 2 ; 271 1 i=sum_Vco % 16; 272 1 if (i 273 1 now_Vco1=sum_Vco/16+1; 274 1 else 275 1 now_Vco1=sum_Vco/16; 276 1 277 278 void pick_ch2_16s(void) /采16次取平均值(四舍五入)

17、 279 280 1 uint sum_Vco=0; 281 1 uchar i; 282 1 for (i=0; 283 1 284 2 sum_Vco+=pick_ch2(); 285 2 ; 286 1 i=sum_Vco % 16; 287 1 if (i 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,定时器

18、0工作在方式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=

19、_LOW)&(ADD1=_HI) 313 1 Address=0x02; 314 1 else if(ADD2=_HI)& 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 ; 327 1 32

20、8 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; /开定时器0

21、中断 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; 373 1 374

22、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;6; i+) / shif

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

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