水温控制系统设计c程序_第1页
水温控制系统设计c程序_第2页
水温控制系统设计c程序_第3页
水温控制系统设计c程序_第4页
水温控制系统设计c程序_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、程序清单以下是水温控制系统的主程序,由于按键扫描和数码显示电路比较简单故没有单独列出来,可以参考语句后面的注释。#include unsigned char display_code10=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x67; unsigned char display_buffer4; bit set=0; bit pid_allow=0;sbit eoc=p33; sbit oe=p32; sbit st=p34; sbit k1=p24; sbit k2=p25; sbit k3=p26; sbit k4=

2、p27; sbit light=p36; sbit heal=p37;unsigned char i=0; float t,t_now,tout=100,t_diff=0,t_target=60,temp=0; unsigned int k=5000; int ttemp1=0; unsigned char ttemp2=0,ttemp3=1; float kp=28,ki=2.5; void display(void); / 数码管显示void adc0809(void); /ad 转换void pid(void); /pid控制量计算void p_out(void); / 输出控制void

3、 main() tmod=0 x11; tl0=(65536-3000)%256; th0=(65536-3000)/256; tl1=(65536-40000)%256; th1=(65536-40000)/256; ea=1; et0=1; et1=1; tr0=1; tr1=1; light=0; heal=1; while(1) display_buffer0=(unsigned char)t_now/10; / 刷新显示 display_buffer1=(unsigned char)t_now%10; display_buffer2=(unsigned char)t_target/1

4、0; display_buffer3=(unsigned char)t_target%10; if(set=0) /按键扫描 if(k1=0) / 复位 while(k-); if(k1=0)t_target=40; if(k2=0) / 目标温度 +1 while(k-); if(k2=0)if(t_target+)=90)t_target=90; if(k3=0) / 目标温度 -1 while(k-); if(k3=0)if(t_target-)=40)t_target=40; if(k4=0) / 开始工作 while(k-); if(k4=0)pid_allow=1;set=1;li

5、ght=1; else if(set=1) if(k1=0) / 停止,复位 while(k-); if(k1=0)t_target=40;light=0;set=0;heal=1;tout=0;temp=0;tout=100;t_diff=0; /* 函数:定时器0 中断程序功能: 3000us中断一回,对数码管进行显示*/ void time0() interrupt 1 using 0 tl0=(65536-3000)%256; th0=(65536-3000)/256; display(); /* 函数:定时器1 中断程序功能: 40000us中断一回,进行ad 转换,控制输出量*/

6、void time1() interrupt 3 using 0 tl1=(65536-40000)%256; th1=(65536-40000)/256; adc0809(); / if(pid_allow=1) if(pid_allow=1)&(t_target-t_now3) i=0; /* 函数:中断中ad 转换函数*/ void adc0809(void) oe=0; st=0; st=1; st=0; while(!eoc); oe=1; t=p1; t_now=100*t/256; oe=0; /* 函数:中断中控制输出函数*/ void p_out(void) int j; j=(int)tout; if(ttemp3100)ttemp3=1; /* 函数:进行 pid 计算,得出控制量函数*/ void pid() temp

温馨提示

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

评论

0/150

提交评论