导航:首页 > 操作系统 > 51单片机adc

51单片机adc

发布时间:2023-01-24 15:36:04

1. 51单片机AD转换不稳定

单片机一般的ADC是没有问题的,
我觉得很有可能是下述原因之一:
1.是不是电平有跳动的不稳定,比如输入电平抖动(干扰导致),你只是肉眼没看出来而已,所以认为它是稳定的。这个解决方法如果输入是稳定电压(直流),那就在电压之间加上个电容就完事了。
2.是不是输入电压的范围超了?如果是范围超了,加个分压电路,然后在单片机程序里面再按比例的增加就行了。

2. 51单片机c语言,ADC模数转换的问题

对于这个,要这么看:
假设中断A是优先级高的中断,中断B是优先级低的中断
如果在正常执行的过程中,发生中断A,那么,中断A执行完成后,会返回正常程序;
如果在正常执行过程中,发生中断B,又在中断B处理过程中发生中断A,那么,中断A执行完成后,一定要返回的是中断B,这是由硬件决定的,不是软件决定的,所以,软件没有任何指令可以让中断A执行完成后直接跳过还没有执行完的中断B而直接回到主程序,因为这是硬件决定的,软件做不到,即便你在高级中断A中关闭了中断B,但是因为你原来的中断B还没有执行完,所以,仍然要把没执行完的部分执行下去,才能返回到正常程序.
对于ARM系列的可以,对于51来说,是不行的,因为51软件指令不允许修改PC寄存器的值

3. 51单片机adc模块的功能是

ADC模块当然是实现模数转换。

4. 怎样用51单片机的四个带ADC的I/O口来检测四个电容触摸按键的触摸

怎样用51单片机的四个带ADC的I/O口来检测四个电容触摸按键的触摸10分

相关说明: 只用I/O口,不要再额外加振荡电路电路。现在使用的是STC12c2052ad单片机

at的51本身就不带ad

是无需外加电路,需要用到其pwm,还有电容
触摸处理看一下杜洋的触摸电子琴就差不多了,网站上面有开源

5. 为什么51单片机中的ADC转换。没有输入电压。他也一直变动

只要启动转换了就会有AD转换的结果,你没加AD电压,那么输出有值,说明电源电压的地不太干净,或者你的AD电路有写问题。

6. 51单片机连电位器一定要adc吗

一定。51单片机连电位器需要adc的,因为作AD用必须一个接电源一个接地,两个电阻中间即VREF接单片机引脚或接一个1K的电阻再接单片机引脚。

7. 51单片机 C语言ADC程序怎么写

typedef unsigned char BYTE;
typedef unsigned int WORD;
#include "reg51.h"
#include "intrins.h"

/*Declare SFR associated with the ADC */
sfr ADC_CONTR = 0xBC;
sfr ADC_RES = 0xBD;
sfr ADC_LOW2 = 0xBE;
sfr P1ASF = 0x9D;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;

/*Define ADC operation const for ADC_CONTR*/
#define ADC_POWER 0x80
#define ADC_FLAG 0x10
#define ADC_START 0x08
#define ADC_SPEEDLL 0x00
#define ADC_SPEEDL 0x20
#define ADC_SPEEDH 0x40
#define ADC_SPEEDHH 0x60

//延时
void Delay(WORD n)
{
WORD x;

while (n--)
{
x = 5000;
while (x--);
}
}

//初始AD寄存器
void InitADC()
{
P1ASF = 0xff;
ADC_RES = 0;
ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
Delay(2);
}

//AD转换
BYTE GetADCResult(BYTE ch)
{
ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
_nop_();
_nop_();
_nop_();
_nop_();
while (!(ADC_CONTR & ADC_FLAG));
ADC_CONTR &= ~ADC_FLAG;

return ADC_RES;
}

void main()
{ BYTE temp;
P2M1=0; P2M0=0x03; //P2.0和P2.1强推挽
InitADC();
while (1)
{
temp=GetADCResult(0);//转换P1.0
if(temp>1)
P2|=0x03; //P1.0有电压 P2.0和P2.1输出高
else
P2&=0xFC; //P1.0无电压 P2.0和P2.1输出低
}
}

8. 51单片机的adc接口在哪

端口引脚P3.4至P3.7处。
51单片机的P1是输入端口,P0是输出端口。ADC的控制信号(INTR、WR、RD和CS)分别在端口引脚P3.4至P3.7处可用。
51单片机是对兼容英特尔8051指令系统的单片机的统称。

9. 51单片机ad采样可以采集什么

51单片机有很多型号,普通的51单片机是没有ADC的,需要外接ADC芯片,一般是ADC0832等等,网上很多,利用51单片机驱动AD芯片进行采样就可以实现AD采集,利用定时器设置好采样率就OK了,为了得到较高精度,你将除数乘以100,再除被除数。所以最好定义为int型。内存中肯定以十六进制形式(二进制)存储的。

10. 用51单片机的ADC采集信号,定义通道#define Channel0 0x02后,Channel0的值在函数调用时发生改变为什么

什么芯片?是不是有扩展rom ram ,有扩展的话,你要在keil里选上使用扩展的rom ram

阅读全文

与51单片机adc相关的资料

热点内容
linux查看所有用户权限 浏览:293
利用单片机生成二维码 浏览:170
html加载php页面 浏览:212
android程序员怎么提高 浏览:740
采购岗位须要程序员吗 浏览:637
线性判别分析算法 浏览:426
解压折纸教程书 浏览:489
应广单片机代理 浏览:511
女白领吃甜食解压视频 浏览:819
md5加密系统中的应用 浏览:905
空调压缩机线路原理图 浏览:417
双钥加密技术有哪些 浏览:269
免费的pdf虚拟打印机 浏览:800
weblogic命令发布 浏览:912
编程入门基本功训练视频 浏览:989
单片机北邮 浏览:216
安卓平板如何用蓝牙传照片 浏览:429
ios8pdf下载 浏览:417
怀旧服大脚冷却计时命令 浏览:25
java求数组的最大值 浏览:843