找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3004|回复: 2
打印 上一主题 下一主题
收起左侧

单片机测漏仪程序+PCB原理图 利用气泵测试漏气的仪器(显示实时气压版)

[复制链接]
跳转到指定楼层
楼主
元件配置及传感器在原理图中
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)


单片机源程序如下:
  1. #include <reg52.h>                  
  2. #include <intrins.H>            
  3. #include "i2c.h"

  4. #define DataPort2_DuanMa P2  //数码管段码数据口
  5. #define DataPort1_WeiMa P1          //数码管位码数据口
  6. #define uchar unsigned char   
  7. #define uint unsigned int

  8. #define AddWr 0x90   //写数据地址
  9. #define AddRd 0x91   //读数据地址
  10. #define Pre_Max 45  //设定气压最大值
  11. #define Pre_Min 10  //设定气压最小值
  12. extern bit ack;
  13. unsigned char ReadADC(unsigned char Chl);
  14. bit WriteDAC(unsigned char dat);

  15. sbit Key_Set=P3^0;                                 //设置
  16. sbit Key_Add=P3^1;                                  //        加
  17. sbit Key_Dec=P3^2;                                  //减
  18. sbit Key_Str=P3^3;                                //启动
  19. sbit Realy_1=P3^6;                                  //继电器1
  20. sbit Realy_2=P3^7;                                          //继电器2
  21. sbit Led=P0^6;                 //系统指示灯
  22. sbit Bee=P0^7;                                                                 //蜂鸣器
  23. sbit Led_Red=P0^4;
  24. sbit Led_Green=P0^5;
  25. /*******************************************新加***********************************************************************/
  26.   
  27. sfr ISP_DATA = 0xe2;     
  28. sfr ISP_ADDRH = 0xe3;      
  29. sfr ISP_ADDRL = 0xe4;     
  30. sfr ISP_CMD = 0xe5;     
  31. sfr ISP_TRIG = 0xe6;        
  32. sfr ISP_CONTR = 0xe7;  

  33. void  cc(uint addr);//擦除
  34. void  xcx(uint addr,uchar dat);//写字节
  35. uchar dcx(uint addr);//读字节
  36. void  Q0();//关闭ISP
  37.                                        

  38. /*擦除一个扇区*/
  39. void cc(uint addr)
  40. {       
  41.                                                   // 0x83(??<5M)   0x82(??<10M)   0x81(??<20M)   0x80(??<40M)
  42.     ISP_CONTR = 0x83;              // ?? IAP ??(ISPEN(ISP_CONTR.7)=1:??????Flash, ?? Flash ???????
  43.     ISP_CMD   = 0x03;                  // ?????"Data Flash/EEPROM?"??????
  44.     ISP_ADDRL = addr;         // ISP/IAP????????????,
  45.     ISP_ADDRH = addr>>8;      // ISP/IAP?????????????
  46.                 EA =0;   
  47.     ISP_TRIG = 0x46;          // ?ISPEN(ISP_CONTR.7)=1?,?ISP_TRIG???46h,
  48.     ISP_TRIG = 0xB9;          // ???B9h,ISP/IAP???????
  49.     _nop_();
  50.     Q0();                                          // ??ISP/IAP
  51. }
  52. /*写一个字节*/
  53. void xcx(uint addr,uchar dat)
  54. {
  55.     ISP_CONTR = 0x83;                  
  56.     ISP_CMD   = 0x02;              // ?????"Data Flash/EEPROM?"??????
  57.     ISP_ADDRL = addr;        
  58.     ISP_ADDRH = addr>>8;      
  59.     ISP_DATA  = dat;          // ???ISP_DATA
  60.     EA = 0;
  61.     ISP_TRIG = 0x46;         
  62.     ISP_TRIG = 0xB9;         
  63.     _nop_();
  64.     Q0();                                          // ??ISP/IAP
  65. }
  66. /*读一个字节*/
  67. uchar dcx(uint addr)
  68. {   
  69.     uchar dat;
  70.        
  71.         ISP_CONTR = 0x83;                  
  72.     ISP_CMD   = 0x01;         // ?????"Data Flash/EEPROM?"?????
  73.     ISP_ADDRL = addr;         
  74.     ISP_ADDRH = addr>>8;      
  75.     EA = 0;
  76.     ISP_TRIG = 0x46;         
  77.     ISP_TRIG = 0xB9;         
  78.     _nop_();
  79.     dat = ISP_DATA;                          // ????
  80.         Q0();                                          // ??ISP/IAP                   
  81.         return dat;
  82. }
  83. /*关闭ISP操作*/
  84. void Q0()
  85. {
  86.     ISP_CONTR = 0;            // ??IAP??
  87.     ISP_CMD   = 0;            // ????,?ISP??
  88.     ISP_TRIG  = 0;            // ??IAP??, ??ISP??????????
  89. }


  90. /***************************************************************************************************************/





  91. unsigned char code DuanMa[10]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};// 显示段码值0~9
  92. unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分别对应相应的数码管点亮,即位码
  93. unsigned char TempData[6]; //存储显示值的全局变量

  94. uchar Pressure_Flag;
  95. uchar Time_Flag;
  96. uchar Flash_Pressure_Flag;
  97. uchar Flash_Time_Flag;


  98. uchar Data_IIC,Pressure,Pressure2,Time,Time_Buffer,key_press_num,Key_Set_Num;
  99. uchar Flag_Str,Flag_Test,Flag_Bee,Flag_Count,Flag_Result,State_Red,State_Green,Flag_GetTime,Flag_Realy_1;

  100. int Time_500ms,Time_CountDown;
  101. void Display(unsigned char FirstBit,unsigned char Num);
  102. void Init_Timer0(void);
  103. void Init_Timer1(void);
  104. void DelayUs2x(unsigned char t);//微秒延时函数声明
  105. void DelayMs(unsigned char t);//毫秒延时函数声明
  106. // void ISR_INT0(void);

  107. /*------------------------------------------------
  108.                     定时器初始化子程序
  109. ------------------------------------------------*/
  110. void Init_Timer1(void)
  111. {
  112. TMOD |= 0x10;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响
  113. TH1=0x00;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
  114. TL1=0x00;
  115. EA=1;            //总中断打开
  116. ET1=1;           //定时器中断打开
  117. TR1=1;           //定时器开关打开
  118. }

  119. /*------------------------------------------------
  120.                 显示数据处理函数1
  121. ------------------------------------------------*/
  122. void Display_Data_Operation1(void)
  123. {
  124.         TempData[0]=DuanMa[(Pressure2)/100];
  125.         TempData[1]=DuanMa[((Pressure2)%100)/10];
  126.         TempData[2]=DuanMa[((Pressure2)%100)%10];
  127.         TempData[3]=DuanMa[Time/100];
  128.         TempData[4]=DuanMa[(Time%100)/10];
  129.         TempData[5]=DuanMa[(Time%100)%10];
  130. }


  131. /*------------------------------------------------
  132.                 显示数据处理函数2
  133. ------------------------------------------------*/
  134. void Display_Data_Operation2(void)
  135. {
  136.         TempData[0]=DuanMa[Pressure/100];
  137.         TempData[1]=DuanMa[(Pressure%100)/10];
  138.         TempData[2]=DuanMa[(Pressure%100)%10];
  139.         TempData[3]=0xff;
  140.         TempData[4]=0xff;
  141.         TempData[5]=0xff;
  142. }


  143. /*------------------------------------------------
  144.                 显示数据处理函数3
  145. ------------------------------------------------*/
  146. void Display_Data_Operation3(void)
  147. {
  148.         TempData[0]=0xff;
  149.         TempData[1]=0xff;
  150.         TempData[2]=0xff;
  151.         TempData[3]=DuanMa[Time/100];
  152.         TempData[4]=DuanMa[(Time%100)/10];
  153.         TempData[5]=DuanMa[(Time%100)%10];
  154. }

  155. /*------------------------------------------------
  156.                 显示数据处理函数4
  157. ------------------------------------------------*/
  158. void Display_Data_Operation4(void)
  159. {
  160.         TempData[0]=DuanMa[Pressure/100];
  161.         TempData[1]=DuanMa[(Pressure%100)/10];
  162.         TempData[2]=DuanMa[(Pressure%100)%10];
  163.         TempData[3]=DuanMa[Time/100];
  164.         TempData[4]=DuanMa[(Time%100)/10];
  165.         TempData[5]=DuanMa[(Time%100)%10];
  166. }

  167. /*------------------------------------------------
  168.                     主函数
  169. ------------------------------------------------*/
  170. void main (void)
  171. {
  172.         Flag_Str=0;
  173.         Flag_Test=0;
  174.         Pressure = dcx(0x2000);       
  175.         Time= dcx(0x2004);       
  176.         EA=1;          //全局中断开
  177. //   EX0=1;         //外部中断0开
  178. //   IT0=1;         //0电平触发  1边沿触发
  179.         Realy_1=1;
  180.         Realy_2=1;
  181.         Init_Timer0();
  182.   Init_Timer1();

  183.         while (1)                       
  184.   {   
  185.                 Data_IIC=ReadADC(0);
  186.                 Pressure2=(Data_IIC-11)*113/255;
  187.                
  188.                 if(!Key_Add && Pressure_Flag==1)  //如果检测到低电平,说明按键按下
  189.                 {
  190.                         DelayMs(10); //延时去抖,一般10-20ms
  191.                         if(!Key_Add&& Pressure_Flag==1)     //再次确认按键是否按下,没有按下则退出
  192.                         {
  193.                                 while(!Key_Add&& Pressure_Flag==1)
  194.                                 {
  195.                                         key_press_num++;
  196.                                         DelayMs(10);           //10x100=1000ms=1s
  197.                                         if(key_press_num==90) //大约1s
  198.                                         {
  199.                                                 key_press_num=0;    //如果达到长按键标准
  200.                                                                  //则进入长按键动作
  201.                                                 while(!Key_Add && Pressure_Flag==1)     //这里用于识别是否按
  202.                                                 //键还在按下,如果按
  203.                                                 //下执行相关动作,否则退出
  204.                                                 {
  205. //                                                         if(Vol<99)    //加操作
  206.                                                         Pressure++;
  207.                                                         if(Pressure>Pre_Max)
  208.                                                                                 {
  209.                                                                                                 Pressure=Pre_Min;
  210.                                                                                 }
  211.                                                         DelayMs(80);//用于调节长按循环操作
  212.                                                         //的速度,可以自行调整此值以便达到最佳效果
  213.                                                 }
  214.                                         }
  215.                                 }
  216.                                 key_press_num=0;//防止累加造成错误识别

  217.                                 Pressure++;
  218.                                 if(Pressure>Pre_Max)
  219.                                                         {
  220.                                                                         Pressure=Pre_Min;
  221.                                                         }
  222.                         }
  223.                 }

  224.                 if(!Key_Dec && Pressure_Flag==1)  //如果检测到低电平,说明按键按下
  225.                 {
  226.                         DelayMs(10); //延时去抖,一般10-20ms
  227.                         if(!Key_Dec && Pressure_Flag==1) //再次确认按键是否按下,没有
  228.                         //按下则退出
  229.                         {
  230.                                 while(!Key_Dec && Pressure_Flag==1)
  231.                                 {
  232.                                         key_press_num++;
  233.                                         DelayMs(10);
  234.                                         if(key_press_num==100) //大约1s
  235.                                         {
  236.                                                 key_press_num=0;
  237.                                                 while(!Key_Dec && Pressure_Flag==1)
  238.                                                 {
  239.                                                         if(Pressure>Pre_Min)  //减操作
  240.                                                         Pressure--;

  241.                                                         DelayMs(80);
  242.                                                         //用于调节长按循环操作的速度
  243.                                                 }
  244.                                         }
  245.                                 }
  246.                                 key_press_num=0;//防止累加造成错误识别
  247.                                 if(Pressure>Pre_Min)  //减操作
  248.                                 Pressure--;

  249.                         }
  250.                 }

  251.         if(!Key_Add && Time_Flag==1)  //如果检测到低电平,说明按键按下
  252.                 {
  253.                         DelayMs(10); //延时去抖,一般10-20ms
  254.                         if(!Key_Add && Time_Flag==1)     //再次确认按键是否按下,没有按下则退出
  255.                         {
  256.                                 while(!Key_Add && Time_Flag==1)
  257.                                 {
  258.                                         key_press_num++;
  259.                                         DelayMs(10);           //10x100=1
  260.                                         if(key_press_num==100) //大约1s
  261.                                         {
  262.                                                 key_press_num=0;    //如果达到长按键标准
  263.                                                                  //则进入长按键动作
  264.                                                 while(!Key_Add && Time_Flag==1)     //这里用于识别是否按
  265.                                                 //键还在按下,如果按
  266.                                                 //下执行相关动作,否则退出
  267.                                                 {

  268.                                                         Time++;
  269.                                                         if(Time>600)
  270.                                                         {
  271.                                                                         Time=0;
  272.                                                         }
  273.                                                         DelayMs(50);//用于调节长按循环操作
  274.                                                         //的速度,可以自行调整此值以便达到最佳效果
  275.                                                 }
  276.                                         }
  277.                                 }
  278.                                 key_press_num=0;//防止累加造成错误识别

  279.                                 Time++;
  280.                                 if(Time>600)
  281.                                                         {
  282.                                                                         Time=0;
  283.                                                         }
  284.                         }
  285.                 }

  286.                 if(!Key_Dec && Time_Flag==1)  //如果检测到低电平,说明按键按下
  287.                 {
  288.                         DelayMs(10); //延时去抖,一般10-20ms
  289.                         if(!Key_Dec && Time_Flag==1) //再次确认按键是否按下,没有
  290.                         //按下则退出
  291.                         {
  292.                                 while(!Key_Dec && Time_Flag==1)
  293.                                 {
  294.                                         key_press_num++;
  295.                                         DelayMs(10);
  296.                                         if(key_press_num==100) //大约1s
  297.                                         {
  298.                                                 key_press_num=0;
  299.                                                 while(!Key_Dec && Time_Flag==1)
  300.                                                 {
  301.                                                         if(Time>0)  //减操作
  302.                                                         Time--;
  303.                                                         DelayMs(50);
  304.                                                         //用于调节长按循环操作的速度
  305.                                                 }
  306.                                         }
  307.                                 }
  308.                                 key_press_num=0;//防止累加造成错误识别
  309.                                 if(Time>0)  //减操作
  310.                                 Time--;
  311.                         }
  312.                 }
  313. /*------------------------------------------------
  314. 按设置键,保存数据,循环设置参数
  315.         ------------------------------------------------*/

  316.                
  317.                 if((!Key_Set) &&(Flag_Count==0) && (Flag_Str==0)&&(Flag_Bee==0)&& (State_Red==0) && (State_Green==0) ) //如果检测到低电平,说明按键按下,并且启动标志为零
  318.     {
  319.                         DelayMs(10); //延时去抖,一般10-20ms
  320.                         if((!Key_Set) &&(Flag_Count==0)&& (Flag_Str==0)&&(Flag_Bee==0)&& (State_Red==0)&& (State_Green==0))    //再次确认按键是否按下,并且启动标志为零,没有按下则退出
  321.                         {
  322.                                 while((!Key_Set)&&(Flag_Count==0)&& (Flag_Str==0)&&(Flag_Bee==0)&& (State_Red==0)&& (State_Green==0));//如果确认按下按键等待按键释放,没有释放则一直等待
  323.                                 {
  324.                                         Key_Set_Num++;                       
  325.                                         if(Key_Set_Num>2)
  326.                                         {
  327.                                                 Key_Set_Num=0;
  328.                                         }                                               
  329. //                         EX0=1;
  330. //                         IT0=1;
  331.                         cc(0x2000);
  332.                         xcx(0x2000,Pressure);          // ?EEPROM?2002h??2
  333.                         xcx(0x2004,Time);         
  334.                         EA = 1;               
  335.                                 }
  336.                         }
  337.                 }
  338. /*------------------------------------------------
  339.                 设置时的三种循环状态
  340.         ------------------------------------------------*/

  341.                 if(Key_Set_Num==0)
  342.                 {
  343.                         Pressure_Flag=0;
  344.                         Time_Flag=0;
  345.                         Flash_Pressure_Flag=0;
  346.                         Flash_Time_Flag=0;               
  347.                 }
  348.                
  349.                 if(Key_Set_Num==1)
  350.                 {
  351.                         Pressure_Flag=1;
  352.                         Time_Flag=0;
  353.                         Flash_Pressure_Flag=1;
  354.                         Flash_Time_Flag=0;
  355.                 }
  356.                                
  357.                 if(Key_Set_Num==2)
  358.                 {
  359.                         Pressure_Flag=0;
  360.                         Time_Flag=1;
  361.                         Flash_Pressure_Flag=0;
  362.                         Flash_Time_Flag=1;
  363.                 }
  364. /*------------------------------------------------
  365.                 按下启动且启动标志置0,不合格状态置0,则启动气泵,并把启动标志置1
  366.         ------------------------------------------------*/               
  367.                 if( (!Key_Str) && (Flag_Str==0) &&(State_Red==0) &&(Flag_Count==0)) //如果检测到低电平,说明按键按下,并且启动标志为零
  368.                 {
  369.                         DelayMs(10); //延时去抖,一般10-20ms
  370.                         if((!Key_Str) && (Flag_Str==0)  &&(State_Red==0) &&(Flag_Count==0) )  //再次确认按键是否按下,并且启动标志为零,没有按下则退出
  371.                         {
  372.                                 while((!Key_Str)&& (Flag_Str==0) &&(State_Red==0)&&(Flag_Count==0) )//如果确认按下按键等待按键释放,没有释放则一直等待
  373.                                 {
  374.                                         Flag_Realy_1=1;
  375.                                         Flag_Str=1;
  376.                                 }
  377.                         }
  378.                 }
  379.                 if((Pressure2<Pressure)&&(Flag_Realy_1==1))
  380.                 {
  381.                         Realy_1=0;
  382.                 }               
  383.        
  384.                
  385. /*------------------------------------------------
  386. 同时按下 加 减 ,清除报警状态
  387.         ------------------------------------------------*/                       
  388.                 if( (!Key_Add) &&(!Key_Dec) ) //如果检测到低电平,说明按键按下,并且启动标志为零
  389.                 {
  390.                         DelayMs(10); //延时去抖,一般10-20ms
  391.                         if( (!Key_Add) &&(!Key_Dec) )  //再次确认按键是否按下,并且启动标志为零,没有按下则退出
  392.                         {
  393.                                 while( (!Key_Add) &&(!Key_Dec) )//如果确认按下按键等待按键释放,没有释放则一直等待
  394.                                 {
  395.                                         Led_Red=1;
  396.                                         Bee=1;
  397.                                         State_Red=0;
  398.                                         Flag_Count=0;
  399.                                         Time=Time_Buffer;
  400.                                         Realy_1=1;
  401.                                 }
  402.                         }
  403.                 }               


  404.                
  405. /*------------------------------------------------
  406. 如果实时压力 > 设定压力 ,且启动标志置1,那么,关闭气泵,把时间放入缓存
  407.         ------------------------------------------------*/       
  408.                 if( (Pressure2>(Pressure))&&(Flag_Str==1)&&(Flag_Realy_1==1) )
  409.                 {
  410.                         Realy_1=1;
  411.                         Flag_Realy_1=0;                       
  412.                         Time_Buffer=Time;       
  413.                         Flag_Bee=1;//充气完成的声音提醒
  414.                         Flag_Test=1;//检测开始的标志
  415.                         Flag_Str=0;        //启动标志置0       
  416.                 }
  417.                
  418.                
  419.                 if(Flag_Bee==1)//声音提醒
  420.                 {
  421.                         Bee=0;        
  422.                         DelayMs(500);
  423.                         DelayMs(500);
  424.                         Bee=1;
  425.                         Flag_Bee=0;
  426.                 }
  427.                
  428.                 if(Flag_Test==1)//开始检测
  429.                 {
  430.                         Time=0;//初始化时间
  431.                         Time_CountDown=0;
  432.                         Flag_GetTime=1;
  433.                         Flag_Test=0;
  434.                         Flag_Count=1;
  435.                 }
  436.                 if(Flag_Count==1)//计数标志置1,时间开始从0计数到设定值
  437.                 {
  438.                         Time=Time_CountDown/2;
  439.                 }
  440.                 if((Time==Time_Buffer)&&(Flag_GetTime==1))//计时完成,结果标志置1
  441.                 {
  442.                         Flag_Count=0;
  443.                         Flag_Result=1;
  444.                         Flag_GetTime=0;
  445.                 }       

  446. /*------------------------------------------------
  447. 经过一段时间后,如果压力小了,说明不合格,亮红灯,蜂鸣器长响,不合格标志置1
  448.         ------------------------------------------------*/       
  449.                
  450.                 if((Flag_Count==1) &&(Pressure2*10 < Pressure*8) )
  451.                 {
  452.                         Flag_Result=0;
  453.                         Led_Red=0;
  454.                         Bee=0;
  455.                         State_Red=1;
  456.                 }       
  457.                
  458.                
  459.                
  460.                
  461.                
  462.                
  463. /*------------------------------------------------
  464. 经过一段时间后,如果压力没减小,说明合格,合格标志置1
  465.         ------------------------------------------------*/                       
  466.                 if((Flag_Result==1) &&(Pressure2*10 > Pressure*9) )
  467.                 {
  468.                         State_Green=1;
  469.                 }
  470. /*------------------------------------------------
  471. 合格标志置1后,且结果标志置1,则发出合格提示
  472.         ------------------------------------------------*/                               
  473.                 if((State_Green==1) && (Flag_Result==1))
  474.                 {
  475.                         Led_Green=0;
  476.                         Realy_2=0;
  477.                         Bee=0;
  478.                         DelayMs(500); //第一响
  479.                         Bee=1;
  480.                         DelayMs(300);
  481.                         Bee=0;        //第二响
  482.                         DelayMs(500); //第二响
  483.                         Bee=1;
  484.                         Led_Green=1;
  485.                         DelayMs(500);
  486.                         Realy_2=1;
  487.                         Flag_Result=0;
  488.                         State_Green=0;
  489.                         Time=Time_Buffer;
  490.                 }
  491.                                
  492.         }       
  493. }



  494. /*------------------------------------------------
  495.              读AD转值程序
  496. 输入参数 Chl 表示需要转换的通道,范围从0-3
  497. 返回值范围0-255
  498. ------------------------------------------------*/
  499. unsigned char ReadADC(unsigned char Chl)
  500. {
  501.    unsigned char Val;
  502.    Start_I2c();               //启动总线
  503.    SendByte(AddWr);             //发送器件地址
  504.      if(ack==0)return(0);
  505.    SendByte(0x40|Chl);            //发送器件子地址
  506.      if(ack==0)return(0);
  507.    Start_I2c();
  508.    SendByte(AddWr+1);
  509.      if(ack==0)return(0);
  510.    Val=RcvByte();
  511.    NoAck_I2c();                 //发送非应位
  512.    Stop_I2c();                  //结束总线
  513.   return(Val);
  514. }




  515. /*------------------------------------------------
  516. us延时函数


  517. 含有输入参数 unsigned char t,无返回值
  518. unsigned char 是定义无符号字符变量,其值的范围是
  519. 0~255 这里使用晶振12M,精确延时请使用汇编,大致延时
  520. 长度如下 T=tx2+5 uS
  521. ------------------------------------------------*/
  522. void DelayUs2x(unsigned char t)
  523. {   
  524. while(--t);
  525. }
  526. /*------------------------------------------------
  527. mS延时函数

  528. 含有输入参数 unsigned char t,无返回值
  529. unsigned char 是定义无符号字符变量,其值的范围是
  530. 0~255 这里使用晶振12M,精确延时请使用汇编
  531. ------------------------------------------------*/
  532. void DelayMs(unsigned char t)
  533. {
  534.      
  535. while(t--)
  536. {
  537.      //大致延时1mS
  538.    DelayUs2x(245);
  539.          DelayUs2x(245);
  540. }
  541. }




  542. /*数码管显示函数*/
  543. void Display(unsigned char FirstBit,unsigned char Lenth)
  544. {
  545.         static unsigned char i=0;
  546.         DataPort2_DuanMa=0;   //清空段码数据,防止重影
  547.         DataPort1_WeiMa=WeiMa[i+FirstBit]; //取位码
  548.         DataPort2_DuanMa=TempData[i]; //取显示数据,段码
  549.         i++;
  550.         if(i==Lenth)
  551.         i=0;
  552. ……………………

  553. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
测漏仪工程.rar (674.25 KB, 下载次数: 52)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:543424 发表于 2022-2-6 19:22 | 只看该作者
请问这个制作完气压需要校准吗?
回复

使用道具 举报

板凳
ID:1045538 发表于 2022-9-25 15:58 来自手机 | 只看该作者
有没有哪位大神知道原理图左上角的p1,p2是啥啊,仿真的话怎么办啊
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表