/*
********************************************************************
********************************************************************
*/
#ifndef _ADC0832_H_
#define _ADC0832_H_
#include
#define uchar unsigned char
#define uint unsigned int
extern void _nop_ (void);
/*
********************************************************************
** 函数名 :ADC0832读数据程序
** 入口 :需转换通道channel [0:1]
** 返回 : 无符号字符型 uchar
** 例子 : Data_adc = ReadAdc0832( 0 ); //读取adc0832芯片的0通道模拟电压
** 说明 : 使用时请在芯片加上精准电压源, 建议彩专用芯片
********************************************************************
*/
uchar ReadAdc0832( uchar channel );
//ADC0832端口定义
#define ADC0832_SCK_H P3_2 = 1
#define ADC0832_SCK_L P3_2 = 0
#define ADC0832_DIDO_H P3_3 = 1
#define ADC0832_DIDO_L P3_3 = 0
#define ADC0832_DIDO P3_3
#define ADC0832_CS_H P3_4 = 1
#define ADC0832_CS_L P3_4 = 0
//工作时序
//当cs由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器。
//在第一个时钟期间,Dl为高,表示启动位,紧接着输入两位配置位。当输入启动位和配置位后,选通输入模拟通道,转换开始。
//转换开始后,经过一个时钟周期延迟,以使选定的通道稳定。ADC0832接着在第4个时钟下降沿输出转换数据。
//数据输出时先输出最高位(D7~DO);输出完转换结果后,又以最低位开始重新输出一遍数据(D7~DO),两次发送的最低位共用。当片选cS
//为高时,内部所有寄存器清0,输出变为高阻态。如果要再进行一次模傲转换,片选cs必须再次从高向低跳变,后面再输入启动位和配置位
//adc0832读数据
uchar ReadAdc0832( uchar channel )
{
uchar i = 0;
uchar outdata = 0;
//初始化: 选通 数据口保持高电平
//当cs由高变低时,选中ADC0832。在时钟的上升沿,DI端的数据移入ADC0832内部的多路地址移位寄存器
ADC0832_CS_L; // 使能
ADC0832_DIDO_H; //
ADC0832_SCK_L; //第一次触发
_nop_();
_nop_();
ADC0832_SCK_H; //
_nop_();
_nop_();
//模拟通道的选择及单端输入和差分输入的选择
ADC0832_DIDO_H;
ADC0832_SCK_L; //第二次触发
_nop_();
_nop_();
ADC0832_SCK_H;
_nop_();
_nop_();
if( channel == 1 )
{
ADC0832_DIDO_H;
}
else
{
ADC0832_DIDO_L;
}
ADC0832_SCK_L; //第三次触发
_nop_();
_nop_();
ADC0832_SCK_H;
_nop_();
_nop_();
ADC0832_SCK_L;
_nop_();
_nop_();
ADC0832_DIDO_H; //置为输入准备读数据
ADC0832_SCK_H;
_nop_();
_nop_();
outdata = 0; //初始化
//读数据D7~D0
for( i = 1; i <= 8; i++ )
{
if( ADC0832_DIDO == 1 )
{
outdata |= 0x01;
}
ADC0832_SCK_H;
ADC0832_SCK_L;
outdata = outdata << 1; //左移一位
}
//此函数不再读数据D0~D7 (注意D0位重叠)
ADC0832_CS_H; //禁止
return outdata;
}
#endif //
上一篇:51的测试程序(主要是用仿真串口进行测试)
下一篇:I2C(24C64)驱动程序
推荐阅读最新更新时间:2024-03-16 15:20