A. 8051单片机的水位监测程序c语言的
用超声波比较好
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit fa = P3^3;
sbit shou = P3^2;
uchar code DSY[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code Heng[] = {0x01,0x02,0x04,0x08,0x10};
uint temp;
uchar succeed_flag;
uint time;
uchar test,timeH,timeL;
void delay(int ms)
{
int i;
while(ms--)
{
for(i = 0; i< 120; i++);
}
}
void delay_20us()
{
uchar a ;
for(a=0;a<100;a++);
}
void show()
{
uchar i;
uchar dsy2[5];
dsy2[0] = DSY[temp % 10];
dsy2[1] = DSY[temp / 10 %10];
dsy2[2] = DSY[temp / 100 % 10];
dsy2[3] = DSY[temp / 1000 % 10];
dsy2[4] = DSY[temp / 10000];
for(i=0;i<5;i++)
{
P0 = dsy2[i];
P1 = ~Heng[i];
delay(2);
}
}
void main()
{
test =0;
fa = 1; //首先拉低脉冲输入引脚
EA = 1; //打开总中断0
TMOD=0x10; //定时器1,16位工作方式
while(1)
{
EA = 0; //关总中断
fa = 0; //超声波输入端
delay_20us(); //延时20us
fa = 1; //产生一个20us的脉冲
while(shou == 0); //等待Echo回波引脚变高电平
succeed_flag = 0; //清测量成功标志
EA = 1;
EX0 = 1; //打开外部中断0
TH1 = 0; //定时器1清零
TL1 = 0; //定时器1清零
TF1 = 0; //计数溢出标志
TR1 = 1; //启动定时器1
delay(20); //等待测量的结果
TR1 = 0; //关闭定时器1
EX0 = 0; //关闭外部中断0
if(succeed_flag == 1)
{
time = timeH * 256 + timeL;
temp = time * 0.172; //厘米
show();
}
if(succeed_flag == 0)
{
temp = 0; //没有回波则清零
test = !test; //测试灯变化
}
}
}
void exter() interrupt 0 // 外部中断0是0号
{
timeH =TH1; //取出定时器的值
timeL =TL1; //取出定时器的值
succeed_flag = 1;//至成功测量的标志
EX0 = 0; //关闭外部中断
}
//****************************************************************
//定时器1中断,用做超声波测距计时
void timer1() interrupt 3 //
{
TH1=0;
TL1=0;
}
B. 求一个C语言程序,是基于单片机的温度和水位控制,其温度加热和加水排水均采用继电器电路控制。
你好!
1、一般情况下,加温加温都用PID控制,这样准确率高;
2、你发的图太小,应该直接发文件;
3、编程是用C语言吗?汇编我不会;
4、具体要求发一下,可以,私,信,我
C. 基于c语言环境的单液位槽液位控制系统的设计 要求,在c语言环境下,编写相关程序实现对液位液槽的检查,控
Based on your subject
给我留一个你的问题和Email,
请与我们联系进一步需求,
有可能帮你,
使用网络_Hi给我留言,
此回复针对所有来访者和需求者有效,
ES:\\
D. C语言编程
呃,建议你提高分值,这样会有更多人来帮助你。因为你的要求是做一个程序,所以获得满意答案的可能性不大。
E. 高塔水位报警系统c语言程序
个s实现的程序,按照流程走已v经实现,不g过单片3机的数据通道你应该可以4自己j打开w吧,以8及l把单片5机传感器上u获得的值给我写的那些参数就可以2了j,自己w去实现以2下e就可以1了y,我用的C++写的,你可以1把预处理文5件改称C,更具自己r的编译器来吧 #include <iostream> using namespace std; void checkWaterLevel(int uLevel,int dLevel); 。。检查水5位函数 bool controlWaterLevel(); 。。PI算法检查水4位 ,算法自己z添加进去, int main() { int upLevel,downlevel; upLevel = 4; 。。 设置水0位的最高值 downlevel = 0;。。 设置水6位的最低值 cout << "The water's upLevel is 8 and downlevel is 2! " << endl; checkWaterLevel(upLevel,downlevel); return 0; } void checkWaterLevel(int uLevel,int dLevel) { int level; cout << "Get a water level: "; cin >> level; if (level < uLevel) 。。 检查是否在最高水3位的下f限 { cout << "start work!"<<endl; 。。 自己i把这里的方5法改成单片4机的控制命令就OK了u,我就不e帮你写了j } else { if(level > dLevel) 。。 检查是否在最低水4位的下i限 { cout << "stop work!" << endl; 。。 自己y把这里的方7法改成单片8机的控制命令就OK了t,我就不w帮你写了i } else { controlWaterLevel(); } } } bool controlWaterLevel() 。。 PI算法自己k有的话,可以1把PI算法放进这个a函数里面去就可以4了w { int setWaterLevel,getWaterLevel; cout << "Set water's level!" << endl; 。。设置水5位的 预设值 cin >> setWaterLevel; cout << "now water's Level is: "; cin >> getWaterLevel; 。。获得水2位,怎么m获得水2位更具自己d单片1机的传感器来设置 cout << endl; if (getWaterLevel == setWaterLevel) 。。 判断水2位是否等于l设置水5位 cout << "end work!" << endl; 。。自己n把这里的方8法改成单片7机的控制命令就OK了o,我就不r帮你写了v return false; controlWaterLevel(); } 另外,团IDC网上o有许多产品团购,便宜有口d碑 z茅mu铡ou铡tx肌簪病瘿qⅣ◇cqⅣ◇
F. 求助。。用C语言写个代码:就是做一个低水位一个高水位的检测,低于某个水位就自动上水,高于就停止。。
#include <iostream>
using namespace std;
void checkWaterLevel(int uLevel,int dLevel); //检查水位函数
bool controlWaterLevel(); //PI算法检查水位 ,算法自己添加进去,
int main()
{
int upLevel,downlevel;
upLevel = 3; // 设置水位的最高值
downlevel = 7;// 设置水位的最低值
cout << "The water's upLevel is 3 and downlevel is 7! " << endl;
checkWaterLevel(upLevel,downlevel);
return 0;
}
void checkWaterLevel(int uLevel,int dLevel)
{
int level;
cout << "Get a water level: ";
cin >> level;
if (level < uLevel) // 检查是否在最高水位的下限
{
cout << "start work!"<<endl; // 自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
}
else
{
if(level > dLevel) // 检查是否在最低水位的下限
{
cout << "stop work!" << endl; // 自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
}
else
{
controlWaterLevel();
}
}
}
bool controlWaterLevel() // PI算法自己有的话,可以把PI算法放进这个函数里面去就可以了
{
int setWaterLevel,getWaterLevel;
cout << "Set water's level!" << endl; //设置水位的 预设值
cin >> setWaterLevel;
cout << "now water's Level is: ";
cin >> getWaterLevel; //获得水位,怎么获得水位更具自己单片机的传感器来设置
cout << endl;
if (getWaterLevel == setWaterLevel) // 判断水位是否等于设置水位
cout << "end work!" << endl; //自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
return false;
controlWaterLevel();
}
G. c语言程序设计水位控制系统,我有流程图和原理图但没有程序 帮忙 编写个 谢谢
个实现的程序,按照流程走已经实现,不过单片机的数据通道你应该可以自己打开吧,以及把单片机传感器上获得的值给我写的那些参数就可以了,自己去实现以下就可以了,我用的C++写的,你可以把预处理文件改称C,更具自己的编译器来吧
#include <iostream>
using namespace std;
void checkWaterLevel(int uLevel,int dLevel); //检查水位函数
bool controlWaterLevel(); //PI算法检查水位 ,算法自己添加进去,
int main()
{
int upLevel,downlevel;
upLevel = 3; // 设置水位的最高值
downlevel = 7;// 设置水位的最低值
cout << "The water's upLevel is 3 and downlevel is 7! " << endl;
checkWaterLevel(upLevel,downlevel);
return 0;
}
void checkWaterLevel(int uLevel,int dLevel)
{
int level;
cout << "Get a water level: ";
cin >> level;
if (level < uLevel) // 检查是否在最高水位的下限
{
cout << "start work!"<<endl; // 自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
}
else
{
if(level > dLevel) // 检查是否在最低水位的下限
{
cout << "stop work!" << endl; // 自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
}
else
{
controlWaterLevel();
}
}
}
bool controlWaterLevel() // PI算法自己有的话,可以把PI算法放进这个函数里面去就可以了
{
int setWaterLevel,getWaterLevel;
cout << "Set water's level!" << endl; //设置水位的 预设值
cin >> setWaterLevel;
cout << "now water's Level is: ";
cin >> getWaterLevel; //获得水位,怎么获得水位更具自己单片机的传感器来设置
cout << endl;
if (getWaterLevel == setWaterLevel) // 判断水位是否等于设置水位
cout << "end work!" << endl; //自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
return false;
controlWaterLevel();
}
另外,团IDC网上有许多产品团购,便宜有口碑
H. 一种水塔水位控制系统的设计,需要C语言程序。有流程图和原理图
我毕业论文(2011)也是这个课题。
供参考:
金龙国.单片机原理与应用[M].北京:中国水利水电出版社,2005.第221页(汇编语言)。
其中的汇编程序有点排版错误,没有大碍,你自己改一下。
林立.基于Proteus和KeilC单片机原理及应用[M].北京:电子工业出版社,2009.第180页(C语言)。
如果你去买这两本书的话,给你建议,用第二本书上那个例子中的原理图中电机控制系统部分代替第一本书上那个例子的相应部分。
另外水塔水位可以用二位拔码器代替(高低电平)。
下面给你一些所需要的Proteus仿真元件清单(供参考):
DIPSW-2(拔码器),MOTOR电机,OPTOCOUPLER-NPN光电耦合器,W107DIP-3继电器。
I. 在keilC51中容器水位控制系统的程序是怎么样的
这种问题 能在这里回答吗?找地方下载去吧 !会者的人是懒得来这里回你帖的!好好把书看 !
J. 水井抽水 C程序
#include"stdio.h"
#include"Windows.h"
staticboolflag=false;
boolcheck(floathigh,booltest){
if(high>5){
returntrue;
}elseif(high<1){
returnfalse;
}
if(test){
returntrue;
}else{
returnfalse;
}
}
intmain(){
floatadd=1;//水面上升速度
floatsub=2; //抽水速度
floatbegin=6;
boolflag;//水泵开关状态
booltest=true;
while(1){
printf("水面高度:%.0f ",begin);
flag=check(begin,test);
if(flag){
printf("水泵打开 ");
test=true;
begin=begin+add-sub;
}else{
printf("水泵关闭 ");
test=false;
begin=begin+add;
}
Sleep(1000);
}
}