导航:首页 > 操作系统 > stc单片机带ad

stc单片机带ad

发布时间:2024-01-21 11:25:57

A. STC单片机自带AD代码问题

同学,你的问题有问题
你是想问STC系列单片机的AD问题还是串口问题

你上面这段程序是51单片机串口初始化程序而不是AD程序。

51单片机串口初始化为
void COM_Init(void)
{
SCON = 0x50;
TMOD &= 0x0F;
TMOD |= 0x20;
PCON |= 0x80;
TH1 = 0xFD;
ES=1;EA=1;
TR1 = 1;
TI = 1;
}

AD转换程序
//定义与ADC有关的特殊功能寄存器
sfr ADC_CONTR =0xC5;
sfr ADC_DATA =0xC6;
sfr ADC_LOW2 =0xBE;
sfr P1M0 =0x91;
sfr P1M1 =0x92;
sbit p20 =P2^0;

void STC90CxxAD_delay(int timer) //延时函数
{
while(timer--);
}

int Ad_Change(char channel) //AD转换
{
int AD_Result_Temp = 0 ;
P1 = 0xff; //将P1口置高,为A/D转换作准备
ADC_CONTR = ADC_CONTR|0x80; //1000,0000打开A/D转换电源
P1M0 = 0x03; //0000,0011用于A/D转换的P1.x口,先设为开漏
P1M1 = 0x03; //0000,0011P1.0--P1.1先设为开漏。断开内部上拉电阻
STC90CxxAD_delay(20); //20

ADC_CONTR = ADC_CONTR&0xE0; //1110,0000 清ADC_FLAG,ADC_START位和低3位
ADC_CONTR = ADC_CONTR|(channel); //设置当前通道号

STC90CxxAD_delay(1); //延时使输入电压达到稳定
ADC_DATA = 0; //清A/D转换结果寄存器
ADC_LOW2 = 0;
ADC_CONTR = ADC_CONTR|0x08; //0000,1000ADCS = 1,启动转换
do { ; }
while((ADC_CONTR & 0x10)==0); //0001,0000等待A/D转换结束

ADC_CONTR = ADC_CONTR&0xE7; //1110,0111清ADC_FLAG位,停止A/D转换
AD_Result_Temp = ((AD_Result_Temp|ADC_DATA)<<2)|(ADC_LOW2&0x03);
//保存返回AD转换的 结果
STC90CxxAD_delay(1); //
return AD_Result_Temp;
}

已调试通过,望对你有用

B. STC有没有自带AD/DA功能单片机我要处理来自传感器的模拟信号(电压)

STC系列单片机 多数型号 都 带有 AD 转换功能,及 PWM ( 即加电容滤波后为 DA ) 功能,
上 STC 官网看看。

C. STC的51单片机自带有AD转换,和PCF8591T AD芯片相比的话,哪个更好一些

用STC的51单片机自带有AD转换肯定更方便,因为是单片机内部集成,没有外围器件,只需要一根信号线,而且AD转换是10位的,精度更高,缺点就是占用单片机资源较多
用PCF8591T
AD芯片,还需要搭建外围检测电路,而且IIC两条线与单片机相连,因为有IIC协议,占用单片机资源也不少,AD转换是8位,精度较低
综合对比,用STC的51单片机自带有AD转换更好一些,PCF8591T
AD芯片是针对像AT89C51这样内部没有AD转换的单片机使用的

D. STC的单片机内部集成AD 但是没有参考基准,参考基准是VDD ,如何确保AD的精度呢

没有参考基准的情况下,要确保AD精度,最重要的是确保VDD的精度!最好能给VDD进行稳压,然后进CPU。
计算公式:Vad = ADC_RES * VCC / 256;你的应该是VDD=VCC。
另外,注意以下几点:
1、启动A/D 转换后,在A/D 转换结束之前,不改变任何I/O 口的状态,有利于高精度A/D 转换!
2、启动A/D转换时,最好关闭板上其他高耗电、高频率设备,减少干扰。
3、Vdd进入CPU前,一定要经过滤波,并且距离芯片越近越好!

E. 如何用stc单片机内部ad采集多路交流信号

用stc单片机内部ad采集多路交流信号,有两种办法:
一、用两个AD转换芯片,两路模拟量分别接一个。用单片机控制两个AD芯片同时启动转换,这样基本可以实现采集到同一时刻的两路模拟量值。
二、用两个采样保持器(LF398),来暂时保存模拟量的瞬时值。两个保持器后面接模拟多路转换器,模拟多路转换器后面接一个AD转换器。过程是这样的:要采集之前先给两个采样保持器一个保持信号,紧接着选择多路开关通道,紧接着启动AD转换器。分别选择多路开关的两个通道,来取得两路模拟量的值。因为有采样保持器的存在,可以保证采集到的模拟量是同一时刻的。
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。

阅读全文

与stc单片机带ad相关的资料

热点内容
加密的视频不小心删除怎么恢复 浏览:464
安卓游戏充钱充错帐号怎么办 浏览:203
有什么是绑定手机号的app 浏览:496
phpredis事务 浏览:935
阴阳师pad怎么登录安卓账号 浏览:734
bitlocker加密后读取不了 浏览:176
算法设计是指流程图吗 浏览:168
javaboot如何防止反编译 浏览:118
python复合数据结构视频 浏览:146
培训学校需要用什么云服务器 浏览:721
卫星锅加密卡那里收购 浏览:58
小米工具文件夹选项在哪里 浏览:55
md5磁盘加密 浏览:642
单片机x地址 浏览:208
回车键失灵运行命令如何使用 浏览:984
电脑一键解压缩的软件 浏览:171
怎么关闭手机通讯录对外app 浏览:370
我的世界如何强行进入一个满人的服务器 浏览:653
什么app可以查询会考成绩 浏览:389
程序员能创造的价值 浏览:261