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

📄 ad16744.c

📁 本系统的控制部分是以89C51为核心
💻 C
字号:
#include <at89x55.h>
#include<absacc.h>
#include <intrins.h>
#define ADCOM XBYTE[0x9fff]     /* 使A0=0, R/C=0, CS=0 */
#define ADLO  XBYTE[0xbfff]     /* 使R/C=1, A0=1, CS=0 */
#define ADHI  XBYTE[0x9fff]     /* 使R/C=1, A0=0, CS=0 */
#define uint  unsigned int
sbit adbusy=P1^5;               /* STS */
sbit LF398=P1^4;

uint AD574(void)
{              /* AD574转换函数 */
  uint hi,low,ad57;
  uint temp1,temp2;
//  rd=1;
  ADCOM=0;                     /* 启动A/D转换 */
  while(adbusy==1);            /* 等待转换结束 */
 // rd=0;
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  _nop_();
  temp1= ADHI  ;
  temp2 = ADLO;
  hi= ADHI<<4;
  low=ADLO>>4;
  ad57=low+hi;
  return (ad57);
}

void main(void)
  {
   float result[20];
   unsigned char i;
   LF398=1;
   for(i=0;i<=20;i++)
   {result[i]=AD574();
    result[i]=(((float)result[i]-0x800)*10)/0x7ff;
    } /* 启动AD574进行一次转换, 获得12位转换结果 */
   }

⌨️ 快捷键说明

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