• 大小: 295KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签:

资源简介

设计电磁流量计为流量传感器,单片机为核心流量控制系统。系统主要由水泵、水泵电机、流量传感器、电动阀门、阀门电机、单片机控制系统等组成。

资源截图

代码片段和文件信息

#include 
#include “intrins.h“
#define uchar unsigned char 
#define uint unsigned int 

uchar out0=0x7f ;   //赋初值
uchar buf[3]={000};//全局数组
uchar pr[]={0x570x6E0x5E0x3E0x6D0x5D0x3D0x6B0x5B0x3B};
uchar discode[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
int AD;  //转换结果,十六进制
int uuusc=0;  //带小数部分数据处理结果
int Int_resultfloat_result; //Int_result 整数部分,float_result 小数部分
sbit Dataout=P1^0;  //数据线
sbit cs=P1^1;  //片选
sbit sclk=P1^2;  //io口时钟
sbit dx=P1^3;  //断码显示控制锁存
sbit wx=P1^4;  //位控控制锁存
sbit sw=P1^7;
sbit PWM=P1^5;
sbit direction=P1^6;
void delay1ms(uchar T)  //单位时间1ms延时
{
  uchar time;
  while(T--)
    for(time=0;time<120;time++);
}
/***********显示程序*************/
void display(uint num)   
{
  uchar qianbaishige;
  qian=num/1000;  //千,百,十,个处理
  bai=num/100%10;
  shi=num/10%10;
  ge=num%10;
  
  wx=0;    
  P0=0xf7;
  wx=1;
  dx=0;
  P0=discode[ge];  //显示个位
  dx=1;
  delay1ms(1); 
 if(num>0)
 {
    wx=0;
    P0=0xfb;
    wx=1;
    dx=0;
    P0=discode[shi];//|0x80;   //显示十位
    dx=1;
delay1ms(1);
    wx=0;
    P0=0xfd;
    wx=1;
    dx=0;
    P0=discode[bai];  //显示百位,带小数点
    dx=1;
delay1ms(1);
  }   
}
/*************AD转换程序************/
AD_val()     //TLC549处理
{
  uchar itemp=0;
  cs=1; //初始化,启动
  sclk=0;
  cs=0;
  _nop_();     
  for(i=0;i<8;i++) //读取采集数据,读取的是上一次采集数据
    {
  sclk=1; 
  temp=temp<<1;
  if(Dataout) temp |=0x01; 
  sclk=0;

  cs=1;
  AD=temp;
  for(i=0;i<5;i++)  //延时17us以上,进行复位
    _nop_();
  Int_result=AD*100/256;    //处理整数
  //float_result=AD*5%256*100/256;   //处理小数部分
  uuu=Int_result;//((Int_result*100)+(float_result));//整数部分和小数部分合成
return uuu;} 
/****************键盘扫描程序*************/
void KB_Scan1()
{ uchar  tmplineijflagpress;
line=0x7E;
for(i=1;i<=4;i++)
{
     P3=line;
 tmp=P3; 
     tmp&=0x70;
if(tmp!=0x70)
{  tmp=P3;flag=1;break;}
else   line=(line<<1)|0x01;
}
if(i==5) {tmp=0xFF;flag=0; }
for(j=0;j<10;j++)
{if(tmp==pr[j])
press=j;}
  if(flag==1) 
  {
  //buf[3]=buf[2];
  buf[2]=buf[1];
  delay1ms(100);
  buf[1]=buf[0];
      delay1ms(100);
  buf[0]= press;
      delay1ms(100);
  sc=buf[2]*100+buf[1]*10+buf[0];
  }
}

/***************PID服务程序*************/
void PID()                  
{ double e0e1e2; 
uchar duout1; 
uchar kp=16 kd=0ki=0;// ts=1;
  e0=e1;e1=e2;e2=(sc-uuu);///10;   //设定值-采集量
  if(e2>=0)                       
   { direction=1;
if(e2>=20)              //测得偏差值与设定偏差值进行比较,若不在设定范围内则满功率加热。
     {TR0=0;PWM=1;}
     else
      {  du=10*e2;//(e2-e1)+ki*e2+kd*(e2-2*e1+e0);  // PID算法
         out1=du;//+out0;
         TR0=1;   //若到达设定范围则调用PID程序,进行有效功率加热.
        } 
    }

  else if(e2<0)            //测得值与设定值比较,测得值大于设定值,关闭加热设备,停止加热。  
   { direction=0;
if(e2<-20)              //测得偏差值与设定偏差值进行比较,若不在设定范围内则满功率加热。
     {TR0=0;PWM=1;}
     else
      {  du=10*e2;//(e2-e1)+ki*e2+kd*(e2-2*e1+e0);  // PID算法
 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     184320  2004-07-28 16:02  基于单片机的流量控制系统设计.doc

     文件      10808  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549

     文件       4148  2004-07-06 10:44  课设完整版(所有模块)\ADTLC549.C

     文件       4422  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.hex

     文件         48  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.lnp

     文件       8449  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.LST

     文件      13742  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.M51

     文件      11362  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.OBJ

     文件       1183  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.opt.bak

     文件       7306  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.plg

     文件       2006  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.Uv2.bak

     文件      56087  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.uvopt

     文件      13250  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549.uvproj

     文件       1194  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549_Opt.Bak

     文件       2153  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549_Uv2.Bak

     文件      56087  2004-07-05 20:25  课设完整版(所有模块)\ADTLC549_uvopt.bak

     文件     177179  2004-07-07 19:57  课设完整版(所有模块)\Last Loaded TLC549.DBK

     文件       5115  2002-04-16 15:32  课设完整版(所有模块)\STARTUP.A51

     文件     177054  2004-07-07 20:38  课设完整版(所有模块)\TLC549.DSN

     文件      10896  2004-07-07 20:31  课设完整版(所有模块)\whj-de

     文件       4540  2004-07-07 20:45  课设完整版(所有模块)\whj-de.c

     文件       4629  2004-07-07 20:31  课设完整版(所有模块)\whj-de.hex

     文件         44  2004-07-07 20:30  课设完整版(所有模块)\whj-de.lnp

     文件       8945  2004-07-07 20:30  课设完整版(所有模块)\whj-de.LST

     文件      14053  2004-07-07 20:31  课设完整版(所有模块)\whj-de.M51

     文件      11393  2004-07-07 20:30  课设完整版(所有模块)\whj-de.OBJ

     文件        192  2004-07-09 11:00  课设完整版(所有模块)\whj-de.plg

     文件       1985  2004-07-06 11:38  课设完整版(所有模块)\whj-de.Uv2

     文件          0  2004-07-06 10:45  课设完整版(所有模块)\whj-de_Uv2.Bak

     文件       1016  2004-07-08 17:43  课设完整版(所有模块)\whj-de_Opt.Bak

............此处省略37个文件信息

评论

共有 条评论

相关资源