📄 adc0809.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 + -