久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 14981|回復: 6
收起左側

壓力傳感器stc15w408as單片機程序和電路原理圖

[復制鏈接]
ID:262 發表于 2016-8-12 16:21 | 顯示全部樓層 |閱讀模式
 
1,優化后的程序:
#include"reg51.h"
#define U16 unsigned int
#define U8  unsigned char
U16 temp=550,temp1;
U8 nn;
bit flag;
unsigned char dd0[]=" machine ON";
unsigned char dd1[]="machine OFF";
sbit rs=P1^1;
sbit en=P1^0;    //Use really  P5.4,test P2.4
sbit D0=ACC^0;
sbit D1=ACC^1;
sbit D2=ACC^2;
sbit D3=ACC^3;
sbit D4=ACC^4;
sbit D5=ACC^5;
sbit D6=ACC^6;
sbit D7=ACC^7;
void delay(U16 us)
U8 m;
while(us--)
for(m=0;m<30;m++);
}
void w1602c(U8 dat)
{
rs=0;
  en=0;
ACC=dat;
P30=D0;
P31=D1;
P32=D2;
P33=D3;
P14=D4;
P15=D5;
P36=D6;
P37=D7;
delay(3);
en=1;
delay(3);
en=0;

}
void w1602d(U8 dat)
{  
ACC=dat;
P30=D0;
P31=D1;
P32=D2;
P33=D3;
P14=D4;
P15=D5;
P36=D6;
P37=D7;
rs=1;
en=0;
delay(3);
en=1;
delay(3);
en=0;

}
void init1602()
{
 w1602c(0x38);
 w1602c(0x06);
 w1602c(0x0c);
 w1602c(0x01);
}
void InitADC()
{
  
  P1ASF =0x04;  //P1.2 ADC_IN - +
  ADC_RES=0;
  ADC_RESL=0;
  ADC_CONTR =0xe2;//ON_POWER
  delay(2);                 
}
void disp(U16 dd)
{
  
w1602d(dd/1000+0x30);
w1602d((dd%1000)/100+0x30);
w1602d(((dd%1000)%100)/10+0x30);
w1602d(dd%10+0x30);
}
U16 ADC10()
{  
//  bit r;           //test use
 InitADC();
    ADC_CONTR |=0x0a;
    delay(2);
////*******Use really************//
while(!(ADC_CONTR & 0x10));  //
ADC_CONTR &=~0x10;           //
temp=ADC_RES;                //
temp=temp<<2;                //
temp |=ADC_RESL;             //
////*********end Use really******//
////////**test**************//  
// if(r==0)              //
// {                     //
// temp++;             //
// if(temp>620)r=1;    //
// }                     //
// if(r==1)              //
// {                     //
// temp--;             //
// if(temp<490)r=0;    //
// }                     //
//////*****test end ******//
    
 return temp;
}
void main()
{
  U8 k;
init1602();
  P1M1=0x40;     //P1.2 DAC_in
  P1M0=0x00;
CLK_DIV &=~0x20;
while(1)
{
temp1=ADC10();
if(temp<500)flag=1;
while(flag)
temp1=ADC10();
        if(temp1>602)flag=0;
 P13=1;
w1602c(0x80);
for(k=0;k<11;k++)
w1602d(dd0[k]);
 w1602c(0xc0);
 disp(temp1);
 delay(2000);
}
//////////////////
while(!flag)
temp1=ADC10();
        if(temp1<500)flag=1;
 P13=0;
w1602c(0x80);
for(k=0;k<11;k++)
w1602d(dd1[k]);
 w1602c(0xc0);
 disp(temp1);
 delay(2000);
}
}
}

#include"reg51.h"
#define U16 unsigned int
#define U8  unsigned char
U16 temp=600,temp1;
U8 nn;
bit flag;
unsigned char dd0[]=" SHANXI Dianzi";
unsigned char dd1[]=" VOIT_H:";
sbit rs=P3^7;
sbit en=P5^4;
sbit D0=ACC^0;
sbit D1=ACC^1;
sbit D2=ACC^2;
sbit D3=ACC^3;
sbit D4=ACC^4;
sbit D5=ACC^5;
sbit D6=ACC^6;
sbit D7=ACC^7;
void delay(U16 ms)
U8 m;
while(ms--)
for(m=0;m<30;m++);
}
void w1602c(unsigned char dat)
{
ACC=dat;
P11=D0;
P12=D1;
P13=D2;
P14=D3;
P15=D4;
P32=D5;
P33=D6;
P36=D7;
rs=0;
en=0;
delay(2);
en=1;
delay(2);
en=0;

}
void w1602d(unsigned char dat)
{
  
ACC=dat;
P11=D0;
P12=D1;
P13=D2;
P14=D3;
P15=D4;
P32=D5;
P33=D6;
P36=D7;
rs=1;
en=0;
delay(2);
en=1;
delay(2);
en=0;

}
void init1602()
{
 w1602c(0x38);
 w1602c(0x06);
 w1602c(0x0c);
 w1602c(0x01);
}
void InitADC()
{
  
  P1ASF =0x01;  //P1.2 ADC_IN
  ADC_RES=0;
  ADC_RESL=0;
  ADC_CONTR =0xE2;//ON_POWER
  delay(2);                 
}
void disp(unsigned int dd)
{
  char i;
  for(i=0;i<8;i++)  
w1602d(dd1[i]); 
w1602d(dd/1000+0x30);
w1602d((dd%1000)/100+0x30);
w1602d(((dd%1000)%100)/10+0x30);
w1602d(dd%10+0x30);
}
unsigned int ADC10()
{
    char nn;  
 InitADC();
    ADC_CONTR=0xea;
    nn=10;
while(nn--);
while(!(ADC_CONTR & 0x10));
ADC_CONTR &=~0x10;
temp=ADC_RES;
temp=temp<<2;
temp |=ADC_RESL;      
 return temp;
}
void main()
{
  unsigned char k;
init1602();
P1M1=0x01;
P1M0=0x00;
CLK_DIV &=~0x20;
while(1)
{
temp1=ADC10();
if(temp1<503)  //for water
{
delay(30);
temp1=ADC10();
if(temp1<503) //yes or no
flag=1;   //  yes! start up water
else          // no!
{
flag=0;       
P30=0;     //close water 
}
}
    else         //no water
{
flag=0;
P30=0;     //close water
}
while(flag)  //up water
{
P30=1;      //start machine
delay(30);
      temp1=ADC10();
w1602c(0x80);
for(nn=0;nn<14;nn++)
w1602d(dd0[nn]);
delay(100);
w1602c(0xc0);
disp(temp1);
if(temp1>550)  //full? No go on!
{
        P30=0;       //Yes close machine
flag=0;      //end 
      }
delay(10);
    }
w1602c(0x80);
for(k=0;k<14;k++)
w1602d(dd0[k]);
 delay(20);
w1602c(0xc0);
disp(temp1);
delay(10);
}
}

//////====================================
#include"reg51.h"
#define U16 unsigned int
#define U8  unsigned char
U16 temp=450,temp1,temp2;
U8 nn;
bit flag;
unsigned char dd0[]=" SHANXI Dianzi";
unsigned char dd1[]=" VOIT_H:";
sbit rs=P3^7;
sbit en=P5^4;    //Use really  P5.4,test P2.4
sbit D0=ACC^0;
sbit D1=ACC^1;
sbit D2=ACC^2;
sbit D3=ACC^3;
sbit D4=ACC^4;
sbit D5=ACC^5;
sbit D6=ACC^6;
sbit D7=ACC^7;
void delay(U16 ms)
U8 m;
while(ms--)
for(m=0;m<20;m++);
}
void w1602c(U8 dat)
{
ACC=dat;
P11=D0;
P12=D1;
P13=D2;
P14=D3;
P15=D4;
P32=D5;
P33=D6;
P36=D7;
rs=0;
en=0;
delay(2);
en=1;
delay(2);
en=0;

}
void w1602d(U8 dat)
{
  
ACC=dat;
P11=D0;
P12=D1;
P13=D2;
P14=D3;
P15=D4;
P32=D5;
P33=D6;
P36=D7;
rs=1;
en=0;
delay(2);
en=1;
delay(2);
en=0;

}
void init1602()
{
 w1602c(0x38);
 w1602c(0x06);
 w1602c(0x0c);
 w1602c(0x01);
}
void InitADC()
{
  
  P1ASF =0x01;  //P1.0 ADC_IN - +
  ADC_RES=0;
  ADC_RESL=0;
  ADC_CONTR =0xe0;//ON_POWER
  delay(2);                 
}
void disp(U16 dd)
{
  char i;
  for(i=0;i<8;i++)  
w1602d(dd1[i]); 
w1602d(dd/1000+0x30);
w1602d((dd%1000)/100+0x30);
w1602d(((dd%1000)%100)/10+0x30);
w1602d(dd%10+0x30);
}
unsigned int ADC10()
{  
 //bit r;           //test use
 InitADC();
    ADC_CONTR |=0x08;
    delay(2);
////*******Use really************//
while(!(ADC_CONTR & 0x10));
ADC_CONTR &=~0x10;
temp=ADC_RES;
temp=temp<<2;
temp |=ADC_RESL; 
////*********end Use really********//
////////**test**************//  
//if(r==0)              //
//{                     //
//temp++;             //
//if(temp>551)r=1;    //
//}                     //
//if(r==1)              //
//{                     //
//temp--;             //
//if(temp<500)r=0;    //
//}                     //
////////*****test end ******//
 return temp;
}
void main()
{
  unsigned char k;
init1602();
P1M1=0x01;
P1M0=0x00;
CLK_DIV &=~0x20;
while(1)
{
temp1=ADC10();
if(temp1<503)  //for water
{
delay(30);
temp1=ADC10();
if(temp1<503) //yes or no
flag=1;   //  yes! start up water
else          // no!
{
flag=0;       
P30=0;     //close water 
}
}
    else         //no water
{
flag=0;
P30=0;     //close water
}
while(flag)  //up water
{
P30=1;      //start machine
delay(30);
      temp2=ADC10();
temp1=temp2;
w1602c(0x80);
for(nn=0;nn<14;nn++)
w1602d(dd0[nn]);
delay(100);
w1602c(0xc0);
disp(temp1);
delay(1000);
if(temp1>550)  //full? No go on!
{
        P30=0;       //Yes close machine
flag=0;      //end 
      }
delay(10);
    }
w1602c(0x80);
for(k=0;k<14;k++)
w1602d(dd0[k]);
 delay(20);
w1602c(0xc0);
disp(temp1);
delay(1000);
}
} 
回復

使用道具 舉報

ID:192284 發表于 2017-4-27 16:32 | 顯示全部樓層
學習了,剛好可以參考一下,謝謝
回復

使用道具 舉報

ID:194417 發表于 2017-4-27 23:35 | 顯示全部樓層
謝謝分享,收藏
回復

使用道具 舉報

ID:194417 發表于 2017-4-27 23:35 | 顯示全部樓層
謝謝分享,收藏中!
回復

使用道具 舉報

ID:247667 發表于 2017-12-28 12:36 | 顯示全部樓層
會編程序真好,電腦敲打幾下就讓人羨慕不已!!
回復

使用道具 舉報

ID:344322 發表于 2018-6-5 20:31 | 顯示全部樓層
這個可以直接用嗎
回復

使用道具 舉報

ID:53978 發表于 2018-6-12 21:48 | 顯示全部樓層
慢慢學習
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品69毛片高清亚洲 | 91精品国产自产在线老师啪 | 精品欧美一区二区中文字幕视频 | 久久久精品综合 | 国产精品一区二区三 | 国产精品视频免费播放 | 一级a爱片性色毛片免费 | 午夜在线视频一区二区三区 | 中文字幕一区二区三区四区五区 | 日韩精品一区二区三区在线观看 | 精品久久久久久久久久久久久久 | 999免费视频 | 久草视频观看 | 成人国产免费观看 | 一区二区三区欧美在线 | 7777精品伊人久久精品影视 | 日本三级视频 | 在线天堂免费中文字幕视频 | 日韩久久久久久 | 一区二区三区精品视频 | 一级黄色片美国 | 国产成人高清成人av片在线看 | 新91视频网| 国产精品视频一 | 久久国产日本 | 亚洲日本国产 | 九九久久精品 | 国产美女视频黄 | 日韩精品免费 | 欧美视频xxx | 亚洲视频一区 | 老头搡老女人毛片视频在线看 | 国产传媒 | 一区二区视频免费观看 | 国产精品我不卡 | 亚洲三区在线 | 亚洲色在线视频 | 免费黄色av网站 | 五十女人一级毛片 | 国产精品久久久久久婷婷天堂 | 国产精品久久在线观看 |