当前位置:首页 > 基于单片机的水位控制系统
致 谢
在毕业设计完成和论文的完成之际我要感谢很多人。首先要感谢学校给了我一个学习的机会,在这毕业之际做这个毕业设计使我学到了很多实际的东西,感谢学校的各位领导和老师一直以来对我的教导和帮助。其次感谢我的论文指导老师周佐周老师,老师严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇尚风范及平易近人的人格魅力对我影响深远。在这次毕业设计制作过程中是老师您给我进行了很多的辅导,不仅在思路方面给了我很多的启迪,而且在制作技术方面也给了我很大帮助。最后还要感谢我的同学,是你们在我设计过程中给了我不少的建议,受你们的启发有了很多的突破。再次我对大表示最诚挚的谢意,谢谢你们!
24
附 录
附录1 源程序
#include
bit p10=P1^0; //红灯 bit p11=P1^1; //绿灯 bit p12=P1^2; //黄灯 bit p13=P1^3; //水泵 bit s1=P2^4; bit s2=P2^5; bit s3=P2^6; bit s4=P2^7; dint time=0; dint times=0; char error,bum=0,n=0;
char min=50,max=5; // min为最低水位,max为最高水位 char num1=0; char num2=0; unsigned long S=0;
unsigned char code table[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,
0x82,0xF8,0x80,0x90,0xBF/*-*/};
unsigned char code opposite[3]={ 0xfe,0xfd,0xfb}; unsigned char dis buff[4]={ 0,0,0,0,}; char shuzu1[4]={0,0,0,0}; char shuzu2[4]={0,0,0,0};
25
////////////////////////////////////////////////延时 void delay(char z) {
char x,y;
for(x=100;x>0;x--); for(y=z;y>0;y--); }
////////////////////////////////////初值设定max与min的显示赋值 void i nit() {
shuzu1[0]=max/100; shuzu1[1]=max0/10; shuzu1[2]=max; shuzu2[0]=min/100; shuzu2[1]=min0/10; shuzu2[2]=min; }
//***************************************************************** void display1()/////////////////////////////////////显示设定值max {
P2=opposite[num1]; P0=table[shuzu1[num1]]; num1++; if(num1>=3) num1=0; }
//***************************************************************** void display2()//////////////////////////////显示设定值min {
P2=opposite[num2]; P0=table[shuzu2[num2]];
26
num2++; if(num2>=3) num2=0; }
///**************************************************** void Display(void) /////////////////////////水位高度显示 {
if(bum==0) {
P0=(table[dis buff[bum]])&0x7f; } else {
P0=table[dis buff[bum]]; }
P2=opposite[bum]; if(++bum>=3) bum=0; }
//************************************************************* void Co nut(void) //脉宽与高度换算 {
time=TH0*256+TL0; TH0=0; TL0=0;
S=(time*1.7) /100; //算出来是CM if((S>=700)||error==1) //超出测量范围显示 {
error=0;
dis buff[0]=10;
27
共分享92篇相关文档