//测试STC12C4052的AD
//P1.7接可变电阻。P3.5 清位即开始转换
#include "STC12C4052AD.h"
void delay()
{
unsigned char l2;
unsigned char l3 = 10;
while(--l3)
{
l2 = 20;
while( --l2);
}
}
main()
{
P3_7 = 0;
ADC_CONTER = 0x80; //开启ad比较电压
while(1)
{
P3_5 = 1;
if ( P3_5 == 0 )
{
P1M0 = 0x80; //P1.7为开漏输入
P1M1 = 0x80; //P1.7为高阻输入
ADC_CONTER = 0xE7; //P1_7为ad
delay();
ADC_DATA = 0;
ADC_CONTER |= 0x08;
while ((ADC_CONTER & 0x10) != 0x10 )P1 = ADC_CONTER;
ADC_CONTER &= 0xe7;
P1 = ADC_DATA;
P3_7 = 1;
P1M0 = 0;
while(1);
}
}
}
//-------------------第二种方法 --------------------
#define uchar unsigned char
#define uint unsigned int
#include "stc12c5410ad.h"
void InitAd(void)
{
P1M0=0xff;
P1M1=0xff;
}
void InitUart(void)
{
SCON|=0X50;
TH1=TL1=0XFB;
TMOD|=0X20;
ES=1;
TR1=1;
}
void delay(void)
{
uint i;
for(i=0;i<0xfff0;i++);
}
void ReadAd(void)
{
uchar temp[16],i;
for(i=0;i<8;i++)
{
ADC_CONTR=i;
ADC_CONTR|=0x88;
while(!(ADC_CONTR&0x10));
ADC_CONTR=ADC_CONTR&0xef;
temp[2*i]=ADC_DATA;
temp[2*i+1]=ADC_LOW2;
}
SBUF=0xa0;
while(!TI);
TI=0;
for(i=0;i<16;i++)
{
SBUF=temp[i];
while(!TI);
TI=0;
}
SBUF=0xf6;
while(!TI);
TI=0;
}
main()
{
InitAd();
InitUart();
while(1)
{
ReadAd();
delay();
}
}
关键字:STC12C4052
引用地址:
测试STC12C4052的AD
推荐阅读最新更新时间:2024-03-16 15:21
10位温度传感器AD7416驱动程序
#include reg51.h #include intrins.h sbit AD7416_SCL= P1^6; sbit AD7416_SDA= P1^7; unsigned char AD7416_SystemError; unsigned int Temperature; //温度 unsigned char ZorF; //正还是负 //#define SomeNOP(); { _nop_(); _nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_(); _nop_();_nop_(
[单片机]
atmega8 例程: 查询方式AD采集
/*********************************************************** * 函数库说明:ATMEGE8 AD模数转换 * 版本: v1.0 * * 说明: 查询方式AD采集 * * 版本更新: 详见readme.txt ****************************************
[单片机]
嵌入式MCU的8通道12位AD转换器ADuC812及其应用
1 引 言 A/D转换器的种类很多,不同的应用场合对其要求不同,有的要求高转换速率,有的要求有高精度,还有的用于便携式仪表中,需要低功耗等等。用于数据采集板的A/D转换器,一般是和计算机或微处理器结合在一起使用。随着单片机在各种智能仪器仪表中的广泛应用,出现了一些将A/D转换器和单片机内核集成在一块芯片上的数据采集芯片,ADuC812就是这样一种芯片。 ADuC812是8通道12位逐次逼近式A/D转换器,它具有如下特点(见Analog Devices公司的资料:MicroConverter,Multichannel 12-Bit ADC withEmbedded Flash MCU ADuC812,2002): 内含8通
[单片机]
51单片机AD转换之PCF8591
PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。 AD转换即(模拟量)Analog 转换成 (数字量)Digital 1.引脚分析 PCF8591具有4个模拟输入(AIN0~AIN3)、1个模拟输出(AOUT)和1个串行I²C总线接口(SDA、SCL)。 PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。 OSC:外部时钟输入端,内部时钟 EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。 VD
[单片机]
高效率小体积AD-DC电源的设计
即使是对经验最丰富的电源设计人员来说,要在一个小体积内实现电源效率最大化也不是一件容易的事。需要小型电源设计的设备有很多,比如平板显示器、机架式电脑设备和电信及航空底盘安装设备。在给定时间内,这类设备可能需要为负载提供数百瓦的功率。例如,1U机架式应用中采用的典型12V、300W电源有尺寸限制,最大高度不超过1.75 英寸 (44.45 mm),并包含1个或多个风扇以进行强制空气冷却。但对于高度限制小于1U的系统,强制空气冷却也许不可行,这意味着必须采用成本高昂的大表面积薄型散热器来实现散热管理。因此,最大效率设计至关重要,因为其对减小散热器的尺寸与成本、提高设计的整体可靠性有直接的影响。 在大多数情况下,工作在这些
[电源管理]
PIC16F877A PICC AD转换程序
//软件思路:选择RAO做为模拟输入通道; // 连续转换4次再求平均值做为转换结果 // 最后结构只取低8位 // 结果送数码管的低3位显示 #include pic.h //包含内部资源预定义 __CONFIG(0x1832); //芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡 const char TABLE ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0X82,0XF8,0X80,0X90}; //定义常数0-9的数据表格 void DELAY(); //delay函数申明
[单片机]
atmega16与ad530
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int void delay() { uchar i; for(i=0;i 100;i++); } void init() { DDRB|=0XA0; DDRA|=BIT(PA1); SPCR=0X57; } void ad5300(uchar x) { uchar temp1=0,temp2=0,status; temp1|=x 4; temp2|=x 4; PORTA&=~BIT(PA1); SPSR=0
[单片机]
高精度AD转换器LTC1606及其应用
摘要:介绍了一种高精度单通道16位并行输出A/D转换器LTC1606的功能特点和工作过程,给出了LTC1606与DSP芯片TMS320LF2406A的硬件接口方法以及和数据采集相关的主要汇编源程序。
关键词:LTC1606 DSP 数据采集
1 LTC1606的主要特点
LTC1606是LINEAR公司生产的具有采样保持功能的16位高速ADC。该ADC分辨率高,采样速率高、功耗小,可在高精度的数据采集系统中广泛应用。其主要特点如下:
●含有16位采样保持功能的模数转换器;
●250kHz采样速率,信噪比达90dB;
●信号输入范围为%26;#177;10V;
●采用单5V电源供电,典型功耗为75mW;
●片内自带基
[模拟电子]