❶ 单片机AD怎么样采集交流电压值,比如正弦波三角波等等
1)根据你的采样率(确切说是设计的分辨率,例如16),把一个周期的平分16份,算出正弦值;
2)每隔1/16周期,送算出的了16个数值
3)da的值都是一个方向的,通过电路,把电压偏执到零度以下
4)混编,就是,__asm()
在刮号里输入汇编语句就可以,具体看编译器手册
❷ 用单片机的ADC测四个正玄波的峰值,
本作品以单片机STC12C5A60S2为主控芯片并以此为基础,通过二极管1N5819实现半波整流,使用单片机内部自带10位AD对整流后的输入信号进行采样,从而实现对峰值的检测;同时通过运放LM837对输入信号进行放大,之后通过施密特触发器,将原始信号整形成可被单片机识别的标准脉冲波形,之后配合内部计数器(定时器)达到测量其频率的目的;这样,整流和AD采样实现对输入信号峰值的检测;通过放大、整形实现对输入信号频率的检测。
二.基本功能与技术指标要求
(1)输入交流电压:1mV~50V,分五档:
① 1mV~20mV,② 20mV~200mV,③ 200mV~2V,④ 2V~20V,⑤ 20v~50V。
(2)正弦频率;1Hz~100kHz;
(3)检测误差:≤2%;
(4)具有检测启动按钮和停止按钮,按下启动按钮开始检测,按下停止按钮停止检测;
(5)显示方式:数字显示当前检测的有效是,在停止检测状态下,显示最后一次检测到的有效值;
(6)显示:LCD,显示分辨率:每档满量程的0.1%;
❸ 用51单片机控制AD采集正弦波信号,并把其频率计算出来的程序。
51好久没弄过了,给你个思路吧,因为51对浮点型运算较慢,不适合使用傅里叶变换,可以这样
定义一个数组v[3]={0};
每次采集一个电压放到数组的最后一位;然后判断当v[0]<v[1]<v[2]时启动计时器进行
计时,否则{v[0]=v[1];v[1]=v[2];}
重复这个过程。
当又一次v[0]<v[1]<v[2]时停止计时器,读取时间差,这个时间就是周期T,频率就是1/T。
可以多读几个周期T取平均值。
❹ 51单片机控制DAC0832产生正弦波,如何用定时器改变频率,求代码!
可以用一个定时器中断,在中断服务程序里面,直接把对应的正弦采样数据置入P1口,通过修改定时器的中断间隔,达到调整输出频率的目的;
假设你的采样数据的原始采样率为1KHz, 被采样正弦波频率为100Hz,当Timer中断间隔为1ms时,DAC那里输出处理后输出即为100Hz, 如果中断间隔为500us,输出就是200Hz
static unsigned char byIndex=0;
中断函数里面包含如下两句
P1 = Sin[byIndex++];
byIndex &= 0x7f;
❺ 请教高手!如何用ADC采集正弦波信号
一、采集方法:
1、连续采样,逐个比较只要后面值小于前面值,取前面值。
2、然后再采,同样处理,可以几个在平均,去掉毛刺。
3、当然也可以取有效值,在X1.414。
4、还可以精密整流滤波,直接取峰值。
二、正弦波的概念:
正弦波是频率成分最为单一的一种信号,因这种信号的波形是数学上的正弦曲线而得名。任何复杂信号——例如音乐信号,都可以看成由许许多多频率不同、大小不等的正弦波复合而成。
三、正弦波的图示:
❻ 求用MSP430F149单片机的ADC对正弦波进信号行采样的程序,并且求出输入的电压值在数码管上进行显示,谢谢啊
有什么问题呢?
你要在数码管上显示的是正弦波的有效值吧?
按照有效值的定义,是指一个周期内所有采样点的方均根值。
因此,程序的关键是以下三点:
第一、采样频率必须满足采样定理的要求。
如果正弦波失真较小,建议采样频率取正弦波基波频率的10倍。
第二、获取正弦波的周期,由此得出参与方均根运算的点数。
对于固定频率的信号测量,如果精度要求不是很高,这个值可以是常数。否者需要通过频率测量电路测量获取。
另外还有一种简单的方法,就是不管频率,按照固定点数进行运算。这种方法需要运算至少10个以上的周期才能弥补非整周期运算带来的误差,而且精度要求越高,需要的运算点数也越多。
第三、有了上述两部,剩下的就是运算了。
先平方,再求和,再开方。主要就是算法的问题了,如果采用高级语言,这一点非常简单,如果采用汇编语言,可以找一找相关的运算子程序库。很多年前原先我就在网上下载过开方的汇编子程序。
❼ 用430单片机如何用AD显示正弦波的峰值,或者有效值万分感谢!也可以提供一个上限频率为10MHz的检波电路。
我现在也在做类似的。你可以把正弦波通过运算放大器,平移到0~2.5之内的正选波。然后每个周期才大约20个点的数据,就能比较准确的恢复正弦波。
然后用有效值的最原始的那个积分的公式(这里我打不出来那个公式)。其实到数字信号里面,是用累加的方式。求出正弦波的有效值。这个是比较精确的。
❽ 单片机pcf8591AD转换方式采集正弦波,数码管显示幅值频率程序怎么写,开发板怎么接!急急急!
让AD口反复扫描取最大值与最小值的差 作为幅值。在一秒内出现相对0电位的次数-1再÷2 作为频率。 开发板不知道啥啥样的开发板