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

📄 adc0809.c

📁 ADC0809模数转换IC,并行数据传输和8通道选择.
💻 C
字号:
/*==============================================
       ADC0809芯片驱动程序

	   文件名:ADC0809.C
	   作者:方畅
       时间:2007-12-19
=============================================*/
#include "HardwareInterface.h"
#include "SED1335.h"
#include "DelayTime.h"

#define Vref 5		//ADC的基准电压

/*=============ADC0809初始化===============*/
void InitADC()
{
  ADC_ST=0;		
  ADC_OE=0;	   //使ADC0809的数据总为高阻
  ADC_EOC=1;
 }

/*=============ADC0809数据转换===============
入口参数:SWT为转换的数据个数,CHSW为通道的选择
出口参数:返回转换得到的数据
============================================*/
unsigned char ADC_SWITCH(void)
{
  unsigned char ADCDATA;

    Dataport=0xff;	  //(注:没有初始化IO口不能读DATA)
    ADC_EOC=1;
    ADC_ALE=0;
	ADC_ST=0;
	ADC_C=0;	  //通道选择
    ADC_B=1;
    ADC_A=1;	
	ADC_ALE=1;
	ADC_ST=1;				   
    ADC_ALE=0;
	ADC_ST=0;
	Delay_1us(5);
	while(!ADC_EOC);
	ADC_OE=1;
	ADCDATA=Dataport;
	ADC_OE=0;
  return ADCDATA;
 }

/*====================电压计算==================

入口参数:Vol为电压选择范围(0是100mV量程,1是10mV量程)
         DACData为DAC采集来的数据
出口参数:b为X轴的高度
===============================================*/
unsigned int VoltageConut(bit Vol,unsigned char DACData)
{
  unsigned int Vo=0;   //DAC的输出电压
 	            
  Vo=(unsigned int)(DACData*Vref)*100/255;	    //输出的电放大100倍
  if(Vol)Vo*=10;   	  //如果Vo的电压大于2V或小于-2V,把电压放大倍数降低为10
  Vo=SCREEN_HIGHT-40-Vo;	//正电压处理
  return Vo;
 }



⌨️ 快捷键说明

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