迅维网

查看: 3106|回复: 2
打印 上一主题 下一主题

压力传感器水压测试 程序+原理图

[复制链接]
跳转到指定楼层
1#
发表于 2016-8-13 06:16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 中国 来自 中国

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x

                               
登录/注册后看高清大图


                               
登录/注册后看高清大图



                               
登录/注册后看高清大图



                               
登录/注册后看高清大图




  • #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);
  • w1602d(dd/1000+0x30);
  • w1602d((dd%1000)/100+0x30);
  • w1602d(((dd%1000)%100)/10+0x30);
  • w1602d(dd%10+0x30);
  • }
  • unsigned int ADC10()
  • {
  •     InitADC();
  •     ADC_CONTR |=0x08;
  •     delay(2);
  •     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<240)  //for water
  •                 {
  •                     delay(30);
  •                     temp1=ADC10();
  •                     if(temp1<240) //yes or no
  •                         flag=1;   //  yes! start up water
  •                     else          // no!
  •                         {
  •                             flag=0;
  •                             P30=0;     //close water
  •                             P31=1;
  •                          }
  •                 }
  •             else         //no water
  •                 {
  •                     flag=0;
  •                     P30=0;     //close water
  •                     P31=1;
  •                 }
  •             while(flag)  //up water
  •                 {
  •                     P30=1;      //start machine
  •                     P31=0;
  •                     delay(30);
  •                     temp2=ADC10();
  •                     temp1=temp2;
  •                     w1602c(0x80);
  •                     for(nn=0;nn<15;nn++)
  •                     w1602d(dd0[nn]);
  •                     delay(100);
  •                     w1602c(0xc0);
  •                     disp(temp1);
  •                     w1602d(0x20);
  •                     w1602d(0x4f);
  •                     w1602d(0x4e);
  •                     w1602d(0x20);
  •                     delay(20000);
  •                     if(temp1>320)  //full? No go on!
  •                         {
  •                             P30=0;       //Yes close machine
  •                             P31=1;
  •                             flag=0;      //end
  •                          }
  •                     delay(10);
  •                   }
  •             w1602c(0x80);
  •             for(k=0;k<15;k++)
  •             w1602d(dd0[k]);
  •             delay(20);
  •             w1602c(0xc0);
  •             disp(temp1);
  •             w1602d(0x20);
  •             w1602d(0x4f);
  •             w1602d(0x46);
  •             w1602d(0x46);
  •             delay(20000);
  • }
  • }




2#
发表于 2016-8-13 08:33:09 | 只看该作者 来自: 上海浦东新区 来自 上海浦东新区
这是软硬结合啊,维修要上新高度么

点评

单片机说实话我只会一点点,高难度的我也不会啊,会一些很简单的  详情 回复 发表于 2016-8-19 10:43
回复 支持 反对

使用道具 举报

3#
发表于 2016-8-19 10:43:42 | 只看该作者 来自: 山东青岛 来自 山东青岛
muqian 发表于 2016-8-13 08:33
这是软硬结合啊,维修要上新高度么

单片机说实话我只会一点点,高难度的我也不会啊,会一些很简单的

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图 AI维修
助手



芯片搜索

快速回复