资源简介

单片机电子秤演示程序 MCU: AT89S52 晶振:12MHz AD芯片:ADS7825:16位分辨率 转换速度:25US

资源截图

代码片段和文件信息

/*******************************************************************
*                                                                  *
* 单片机电子秤演示程序                                             *
*                                                                  *
* 电子秤                                                           *
*                                                                  *
* MCU: AT89S52   晶振:12MHz                                       *
* AD芯片:ADS7825:16位分辨率  转换速度:25US                      *
* 版本:V1.0 (2010.4.1)                                            *
* 作者:                                                           *

*******************************************************************/

#include

//端口定义
sbit BYTE=P2^0;    //ADS7825高8位数据低8位数据转换
sbit BUSY=P2^1;    //ADS7825忙标志
sbit  CS=P2^2;         //ADS7825片选
sbit  RC=P2^3;    //ADS7825启动转换端口
sbit DIS=P3^2;    //移位输出触发端口
sbit KEY=P1^2;         //显示切换按键


//全局变量定义
bit DISflag;           //显示标识
bit X;                 //按键过滤干扰参数
bit Y;                 //按键过滤干扰参数
bit err=0;             //非法标识
int b=0;
double DATE=0;         //转换数据
unsigned char COUNT;   //计数值
double DISpara;         //显示参数
double yy=0;

//子函数声明
void delay(unsigned int); //延时程序
void KEYFORMAT(void);   //按键处理
void DATEpick(void);      //数据采集
void DATEtrans(void);     //数据转换
void display(float);   //显示程序


unsigned char table(unsigned char x)              //软件查表输出
                   {unsigned char code n[20]={0x03  // 0代码
                              0x9f  // 1代码
  0x25  // 2代码
  0x0d  // 3代码
  0x99  // 4代码
  0x49  // 5代码
  0x41  // 6代码
  0x1f  // 7代码
  0x01  // 8代码
  0x09  // 9代码
  0x02  // 0.代码
  0x9e  // 1.代码
  0x24  // 2.代码
  0x0c  // 3.代码
  0x98  // 4.代码
  0x48  // 5.代码
  0x40  // 6.代码
  0x1e  // 7.代码
  0x00  // 8.代码
  0x08  // 9.代码
  };
                    return(n[x]);
                    }
//**********延时程序**********
void delay(unsigned int t)  //以10毫秒为单位 
{
unsigned int ijk;
  for(i=t;i>0;i--)
for(j=20;j>0;j--)
  for(k=248;k>0;k--);
}


//**********按键处理程序********
void KEYFORMAT(void)   
       { int a=1;
         while(a)
         {
          X=KEY;
              delay(5);             //延时10ms            
      Y=KEY;
              if(X==Y)
         {
  a=0;
          if(KEY==1)    //按键未按下
         {DISflag=1;}  //显示重量    
      if(KEY==0)    //按键已按下
         {DISflag=0;}  //显示计数值   
          }
      else
         {a=1;}         //过滤干扰
     }
    }

//**********数据采集*********
void DATEpick(void)     
       { unsigned long XX=0;
     DATE=0; //参数置0
     CS=1;
     RC=1;
         CS=0; //选中ad
     RC=0;
    

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

     文件       6376  2010-04-21 10:10  程序\STARTUP.A51

     文件        221  2010-04-21 17:13  程序\AA.plg

     文件        759  2010-04-21 10:10  程序\STARTUP.OBJ

     文件      10767  2010-04-21 10:10  程序\STARTUP.LST

    .......      2174  2010-04-02 17:31  程序\AA_Uv2.Bak

     文件     166807  2010-04-21 11:57  程序\ltc2440新.DSN

     文件      13161  2010-04-21 10:10  程序\Text1.LST

     文件         55  2010-04-21 10:10  程序\AA.lnp

     文件      14083  2010-04-21 10:10  程序\AA.M51

     文件       5550  2010-04-21 10:10  程序\Text1.c

     文件       1473  2010-04-21 17:13  程序\AA.Opt

    .......      1473  2010-04-21 10:10  程序\AA_Opt.Bak

     文件       9367  2010-04-21 10:10  程序\Text1.OBJ

     文件       6620  2010-04-21 10:10  程序\AA.hex

     文件     166807  2010-04-21 11:57  程序\Last Loaded ltc2440新.DBK

     文件       9744  2010-04-21 10:10  程序\AA

     文件       2174  2010-04-20 10:22  程序\AA.Uv2

     文件        790  2010-04-21 11:57  程序\ltc2440新.PWI

     目录          0  2010-04-20 09:14  程序

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

               418401                    19


评论

共有 条评论