资源简介
设计电磁流量计为流量传感器,单片机为核心流量控制系统。系统主要由水泵、水泵电机、流量传感器、电动阀门、阀门电机、单片机控制系统等组成。
代码片段和文件信息
#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个文件信息
- 上一篇:利用单片机定时器产生的占空比可调的PWM程序
- 下一篇:UML期末考试试题与答案
评论
共有 条评论