单片机学习小组
登录
直播中
陈逸群
7年用户
168经验值
私信
关注
PCF8591和90C51单片机做波形发生器,波形最大值达到218时波形就顶部失真了?
开启该帖子的消息推送
单片机
发生器
新手,目前在用90C51
单片机
和PCF8591做一个波形发生器,PCF8591只用到了DA功能,8591的寄存器是8位的,那么它可以转化的波形峰峰值不应该是256么,我的波形峰峰值为200,为什么波形表中间值为100时没问题,但中间值为128时,即波形最大值达到218时波形就顶部失真了?
附上相关程序:[C]
纯文本查看
复制代码
void get_sindata(){uint i;for(i=0;i<256;i++)sin_tab
=(sin(2*PI*i/256)+1)*100;}void sinwave(){ uint i; for(i=0; i<256; i++) { IICSendByte(sin_tab
);//此处改为IICSendByte(sin_tab
+28)时失真[C]
纯文本查看
复制代码
check_ACK(); //检查应答位[C]
纯文本查看
复制代码
if(flag == 1) { SystemError = 1; return; //置错误标志位SystemError } }}main(){get_sindata();DAC_PCF8591(0x40); while(1) { keyscan();//键盘扫描函数,输出结果为out1~out4,对应四种波形。 while(out1&START) { sinwave(); //输出正弦波 keyscan(); } while(out2&START) { Square(); //输出方波 keyscan(); } while(out3&START) { Triangle(); //输出三角波 keyscan(); } while(out4&START) { Sawtooth(); //输出锯齿波 keyscan(); } }}
回帖
(2)
李平
2019-6-4 09:17:11
帮顶....
帮顶....
举报
阿信509
2019-6-4 11:37:28
先别做波形,先用简单的程序做出来DA输出,看看有么有问题,比如送个0,128,255这些数据
先别做波形,先用简单的程序做出来DA输出,看看有么有问题,比如送个0,128,255这些数据
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
发生器
PCF8591
AD/DA后输出的信号为乱波为什么,有什么解决办法
2019-04-18
1764
求解
51
单片机
如何接
pcf8591
2011-04-20
3713
怎样用
51
单片机
去设计一个
波形
发生器
呢
2021-09-28
1222
单片机
PCF8591
的DAC是怎么使用的?
2021-09-29
897
基于AVR
单片机
建立
PCF8591
操作库的程序
2020-11-10
1956
PCF8591
是什么?怎样去设计
PCF8591
威廉希尔官方网站 ?
2021-07-19
1838
新人求教
pcf8591
的问题
2013-09-04
1893
如何实现基于
51
单片机
的
波形
发生器
的设计?
2021-10-26
1367
PCF8591
的采集速度可以
达到
多少?
2023-10-25
268
如何采用CPLD和
单片机
实现任意
波形
发生器
的设计?
2021-04-22
1022
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分