完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#define uchar unsigned char #define uint unsigned int ***it SQU_K =P3^4; ***it SQU_L =P1^0; //延时函数 //方波发生函数 void square() { uchar a,b; for(a=0;a<255;a++) { P0=0xff; P2=0xff; b=P2; b=~b; while(b--); //调节相位,b的变化越大,相位变化越小 } for(a=255;a>0;a--) { P0=0x00; P2=0xff; b=P2; b=~b; while(b--); } } //主函数 void main() { P1=0xff; P2=0xff; P3=0xff; while(1) { P0 = 0; if(SQU_K==0) { SQU_L=0; square(); } SQU_L=1; } } 这个是我测试的程序,想做一个波形发生器。产生方波时,相位调到最大,会出现图片的情况,调小一点就不会,请问:我的这个问题是放大电路没有设计好,还是程序没有编辑正确?应该如何修改?
|
|
相关推荐
6个回答
|
|
输入频率过高会导致运放失真,没看出是哪个引脚输出波形的,没看出怎么调节相位的,波形里也没看出当前波形的频率,波形的频率怎么调节也没看出来,你确定是在调节相位,而不是调节频率,信息太少
最佳答案
|
|
|
|
有没有大神给一点提示呢,我现在在写毕业论文设计,请大家帮帮忙
|
|
|
|
人中狼 发表于 2017-3-29 12:54 感谢你的回复, P0口与DA转换器相连,DA转换器输出口与运放相连; P3口是波形按键切换,P1口是波形LED指示灯; 下面是现在的代码:
若是输入频率过高,我应该如何修改程序?是不是要减小 a 的值?其他应如何改进?
|
|
|
|
你先试试P2到多少数值时波形开始失真,这个值可以做为上限值,同时可以算算频率是多少,我总觉得你的相位调节实际是频率不调节,你用示波器看看频率范围是多少,如果你的相位调节真的是频率调节的话,会有最高和最低两个值,最高值会超过开始失真的值,多试验几次,找找规律
评分
|
||
|
||
人中狼 发表于 2017-3-29 16:05 感谢你的再次回复, 下面是我截取的图片, 图1是P2口都为高电平,b=0xff;整个周期是8ms; 图2是P2口都为低电平,b=0x00;整个周期是0.8s; 两种极限情况都失真,整个过程都是失真的; 晶振的频率一开始选的是24,后来改为12后,情况并没有改善; 放大器我选的是AD817运放,是否对这个问题有影响? 另外,我输出的波形有方波,锯齿波,三角波,正谐波,但只有方波出现失真情况最为严重,其他的并不明显。 |
|
|
|
把运放输出端的电容去掉试试
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2024年上海海思MCU开发者体验官招募,手机/MatePad大奖等你拿!
1248 浏览 0 评论
【xG24 Matter开发套件试用体验】蓝牙控制板载LED
930 浏览 0 评论
1136 浏览 0 评论
电赛:mspm0l1306的开发板可以烧录程序,但是程序运行不了,怎么解决这个问题?
1179 浏览 1 评论
【xG24 Matter开发套件试用体验】Silicon Labs 基于 EFR32MG24 Explorer Kit 开发板 开箱试用体验
914 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
10547 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-8 06:22 , Processed in 0.725371 second(s), Total 90, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191