导航:首页 > 操作系统 > 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相关的资料

热点内容
安卓手机mp3压缩工具 浏览:214
程序员和交易员 浏览:422
怎么变字体样式app 浏览:173
名字叫汤什么的视频app 浏览:207
金属加密键盘联系电话 浏览:333
自制解压牛奶盒子教程 浏览:62
编译高手的图片 浏览:922
单片机数码管显示时分秒 浏览:780
手指解压最简单的方法 浏览:343
韩国邮箱服务器地址 浏览:967
android版本介绍 浏览:410
pdf文件加密软件 浏览:410
长沙住房app怎么看备案 浏览:603
安装加密软件的电脑会被监控么 浏览:221
java微博源码 浏览:569
堆排序简单实现python 浏览:461
单片机引脚与键盘的关系 浏览:132
压缩火柴盒制作 浏览:38
谷歌地图android偏移 浏览:214
bitlocker硬盘加密空间 浏览:238