da输出正弦波多少点,51单片机C语言怎样编写用DA可以出现正弦波
来源:整理 编辑:亚灵电子网 2023-01-04 14:16:35
1,51单片机C语言怎样编写用DA可以出现正弦波
将一个周期的正弦波的幅值量化为0-255,将这256个值 存在程序空间里面,单片机定时依次循环取出这些值送到DA转换器,DA输出后进行低通滤波即能得到正弦波了。如果要节省空间可以利用正弦波形的对称性只需存入1/4周期的数据再经一个简单算法也可以得到正弦波。
2,单片机控制dac输出正弦最少多少个点5个点可以吗
5点肯定是不行的,点数越多波形越平滑,在DAC速度和单片机速度允许的情况下点越多越好,如果单片机处理浮点型数据比较慢,可以用查表法,用空间换时间。

3,单片机控制dac输出正弦最少多少个点5个点可以吗
5点肯定是不行的,点数越多波形越平滑,在DAC速度和单片机速度允许的情况下点越多越好,如果单片机处理浮点型数据比较慢,可以用查表法,用空间换时间。最少,理论上是2个点以上就可以,不过那是理论。实际上最少20个点,5个点,有点少了。
4,通过DA转换过后想要输出频率为20kHz的正弦波一个周期可以采样多少
12MHz/12/20KHz=1M/20K=50就是说在极限状态下,如果用普通的51单片机,N最多就是50,一个周期用50点数据表示。但实际上普通的51单片机是不可能做到如此速度的,因为传递数据需要时间,所以最好用1T的单片机,比如STC12才行。
5,接12MHz晶振的51单片机通过DA转换过后想要输出频率为20kHz
12MHz/12/20KHz=1M/20K=50就是说在极限状态下,如果用普通的51单片机,N最多就是50,一个周期用50点数据表示。但实际上普通的51单片机是不可能做到如此速度的,因为传递数据需要时间,所以最好用1T的单片机,比如STC12才行。300hz方波周期是3333us,晶振为11.0592mhz的话,机器周期=3333*11.0592/12=3072;用定时器来产生的话,那么初值为65536-3072/2=65536-1536.同样50hz的话,周期为20000us,机器周期数=20000*11.0592/12=18432,定时器初值=65536-9216
6,单片机产生12位DA256点正弦波程序
256点正弦波,用8位即可,用不着12位数。非得用 12 位数,就把最低四位(或最高四位),都置为零,即可。程序,可以参考:http://hi.baidu.com/do_sermon/item/a4ad641a9b8102ffddeeca30用 C 语言写函数,就更简单了。
7,DAC0832产生正弦波频率范围是多少怎么通过定时器控制
DAC0832转换时间为1uS,一个正弦周期输出32个点的话,最高输出信号频率可达31.25kHz。如果采用单片机产生,具体还与单片机的速度有关。采用RISC指令集的单片机,指令周期与晶振周期相同,采用16MHZ晶振的话,可以达到上述要求。先确定每个周期输出的点数,假设是32个点。DAC0832输出分辨率为8位,DAC0832输出以半电压上下对称的正弦波,峰值对应±128,那么,分别计算出32个点的正弦值,制作一个表格存储在单片机的程序空间或EEPROM空间。根据信号频率设置定时器的溢出周期,定时器溢出周期为信号周期的1/32,定时器溢出时,依次输出32个点的正弦值至DAC0832的数字量输入端口。最后,DAC0832的输出经运放电路转变为正负对称的正弦波,再经一个积分器或低通滤波器可输出平滑的正弦波。
8,DA输出的正弦波不光滑呈阶梯形应该如何才能使波形变得光滑
R=10k,C=1nF,截止频率FfH=15923.6Hz,所以参数选的不合适,你将电容增大,令截止频率在6,7k左右试试吧。各种参数我都试过,基本都是这样,有很多毛刺。奈珪斯特定理也满足的。是不是除了采用加RC滤波这种方法之外没有别的办法了?另外,如果可以的话,上传一个DA直接输出的图片吧,你的采样点数满足奈奎斯特定律吧输入的是5KHZ的正弦波,输出加RC低通,参数R=1K,C=1NF,出现很多毛刺,引入了高频噪声,如图,换过其他参数R=10K,C=1NF,也同样有很多毛刺。如何消除毛刺?一步步来,先只有DA输出,使输出平滑,再考虑AD部分
文章TAG:
da输出正弦波多少点输出 正弦波 多少