⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 call111.c

📁 单片机C语言教程
💻 C
字号:
/****************************************************************/
/* 这是调用MAX111汇编程序(MAX111B.ASM)的C51程序。             */
/* 文件名CALL111.C。                                            */
/* 功能:本程序主要是读出MAX111芯片输入通道CH0,CH1的模数        */
/*    转换值,转换值依次放在数组mid1[2]中,转换值的标度变换值放在*/
/*    浮点数组volt[2]中。MAX111芯片的2个通道可编程为单极性/双极 */
/*    性和差动/单端工作,这里采用单端\单极性输入。MAX111有内部时 */
/*    钟和外部时钟两种工作模式,这里采用内部时钟模式。控制字中   */
/*    CONV4、CONV3、CONV2、CONV1取0110B,表示转换分辨率为14位;  */
/*    控制字中DV2,DV4取01B,表示对计数脉冲发生器发出的脉冲作二  */
/*    分频。因采用+1.5V的参考电压,故两个通道的电压输入范围都是  */
/*    0~1.5V。                                                 */
/****************************************************************/
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

void delay1(uint x);
extern  uint chai;         //把全局变量chai声明为外部变量
extern  uint a_func(uint); //把a_func 声明为外部函数

uint idata mid1[2],aaa;
float idata volt[2];
uchar  idata i;

void delay1(uint x)          //延时程序
{
 uchar tw;
 while (x-->0){
 for (tw=0;tw<125;tw++){;}
 }
}

void main()                   //主程序
{
      SP=0xcf;
      delay1(1000);
      EA=0;
     // chai=a_func(0x8d0c);    //零偏校准
     // chai=a_func(0x8d08);    //增益校准
     // chai=a_func(0x8d04);    //通道调零校准
     // delay1(1000);
      chai=a_func(0x8d00);      // 将第一次读芯片输入通道CH0的A/D转换值舍去
      chai=a_func(0x8d10);      // 读出MAX111芯片输入通道CH0的A/D转换值
      mid1[0]=chai;             // 把它放入数组mid1中。
      chai=a_func(0x8d00);      // 读出MAX111芯片输入通道CH1的A/D转换值
      mid1[1]=chai;             // 把它放入数组mid1中。
      aaa=mid1[0]&0x4000;
      if (aaa==0x4000) goto overflow;//若CH0的A/D转换值越限,转越限处理。
      aaa=mid1[0]&0x8000;
      if (aaa==0x8000) goto pol;    //若CH0的A/D转换值是负数,转负数处理。
      aaa=mid1[1]&0x4000;
      if (aaa==0x4000) goto overflow;//若CH1的A/D转换值越限,转越限处理。
      aaa=mid1[1]&0x8000;
      if (aaa==0x8000) goto pol;     //若CH1的A/D转换值是负数,转负数处理。
      for (i=0;i<2;i++){
      volt[i]=(mid1[i]/16384.0)*1.5;  // 标度变换。
      }
      while(1);
      overflow:;  //越限处理。
      pol: ;      //负数处理。
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -