资源简介

这是我们课程的一个大作业,基于网络上的气压计设计完成,将网络版的AD转换器替换成了ADC0808,并加入了简单的过压报警功能,调试成功~

资源截图

代码片段和文件信息

#include  
#include “intrins.h“
#define uint unsigned int
#define uchar unsigned char
#define OUTPORT P2
sbit EOC=P3^0;  
sbit START=P3^1;
sbit pd  =P1^7;

unsigned char dispbitcode[8]={0xf70xfb0xfd0xfe0xef0xdf0xbf0x7f};  //位扫描
unsigned char dispcode[11]={0xC00xF90xA40xB00x990x920x820xF80x800x900xff};  //共阳数码管字段码
unsigned char dispbuf[4];
uint temp;
uchar getdata; //获取ADC转换回来的值


void delay_1ms(void)  //12mhz delay 1.01ms
{
   unsigned char xy;   
   x=3;
   while(x--) 
  {
       y=40;
       while(y--);
    }
}

void delayms(int z)
{
   int xy;
   for(x=z;z>0;z--)
{

     for(y=114;y>0;y--);

}
}  

void display(void)  //数码管显示函数
{
  char k;
  for(k=0;k<4;k++)
  {

  P1 = dispbitcode[k];
  P0 = dispcode[dispbuf[k]];
  if(k==1)   //加上数码管的dp小数点
   P0&=0x7f;
  delay_1ms();   
  }
}

unsigned int Adc0808()//unsigned char channel)
{
unsigned int uiResult;
//if(channel==0);

START=1;  //启动AD转换。
START=0;

while(EOC==0);  //等待转换结束。

uiResult=OUTPORT;  //出入转换结果。

//uiResult=(uiResult*200)/51;    //处理运算结果。

return uiResult;
}


void main(void) 
{  
  while(1)
  {   unsigned int temp;
      float  press;       
  getdata=Adc0808();
  if(14   {     
    int vary=getdata; //y=(115-15)/(243-13)*X+15kpa
press=((10.0/23.0)*vary)+9.3; //测试时补偿值为9.3
  
temp=(int)(press*10);                 //放大10倍,便于后面的计算
        
    
dispbuf[3]=temp/1000;       //取压力值百位
dispbuf[2]=(temp%1000)/100;      //取压力值十位
dispbuf[1]=((temp%1000)%100)/10;      //取压力值个位
dispbuf[0]=((temp%1000)%100)%10; //取压力值十分位
display();
       }     
     if(press>100)
        {
pd=0;
     delayms(90);
             display();
     delayms(90);
             display();
     delayms(90);
             display();
     delayms(90);
             display();
     delayms(90);
             display();
     delayms(90);
             display();

pd=1;
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(90);
             display();
             delayms(100);
             display();
             delayms(90);
             display();


    } 
      if(press<=100)
  {
pd=1;
  }  
  }



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       7993  2013-11-03 15:35  气压计设计\000

     文件       4376  2013-11-03 15:35  气压计设计\000.hex

     文件         40  2013-11-03 15:35  气压计设计\000.lnp

     文件      11442  2013-11-03 15:35  气压计设计\000.M51

     文件       1074  2013-11-03 15:35  气压计设计\000.opt.bak

     文件       4129  2013-11-03 15:35  气压计设计\000.plg

     文件       2171  2013-11-03 15:35  气压计设计\000.Uv2.bak

     文件      56359  2013-11-03 15:35  气压计设计\000.uvopt

     文件      13417  2013-11-03 15:35  气压计设计\000.uvproj

     文件       1072  2013-11-03 15:35  气压计设计\000_Opt.Bak

     文件       2171  2013-11-03 15:35  气压计设计\000_Uv2.Bak

     文件      56538  2013-11-03 15:35  气压计设计\000_uvopt.bak

     文件       2635  2013-11-03 15:35  气压计设计\MAIN.c

     文件       6433  2013-11-03 15:35  气压计设计\MAIN.LST

     文件       7047  2013-11-03 15:35  气压计设计\MAIN.OBJ

     文件       6376  2013-11-03 15:35  气压计设计\STARTUP.A51

     文件      14064  2013-11-03 15:35  气压计设计\STARTUP.LST

     文件        758  2013-11-03 15:35  气压计设计\STARTUP.OBJ

     文件     132221  2013-11-03 15:35  气压计设计\气压计\Last Loaded 气压计.DBK

     文件     131472  2013-11-03 15:42  气压计设计\气压计\气压计.DSN

     文件        743  2013-11-13 18:40  气压计设计\气压计\气压计.PWI

     目录          0  2013-11-13 18:40  气压计设计\气压计

     目录          0  2013-11-03 15:35  气压计设计

----------- ---------  ---------- -----  ----

               462531                    23


评论

共有 条评论