前言:老师太严格了,很不幸只拿了七十多分,但我却付出了巨大的时间去研究这破玩意儿,(还好有大佬相助不然真的会挂)学校年年都做这个课设,题目都nnd不变一下,因此分享供借鉴。看到有同学被网上代做坑了好几百没有用,有的老师一眼看出不是自己做的,尬的一批,真不如学长学姐靠谱!
设计过程中学习参考视频:B站唐老师讲电赛 (放大电路部分的仿真基本是照着该老师画的,个人另加了单片机按键控制部分)
一、任务:设计并制作一个晶体管放大器非线性失真研究装置。
二、要求
外接信号源输出频率10kHz、峰峰值20mV的正弦波作为晶体管放大器输入电压ui,要求输出无明显失真及失真波形uo,且uo的峰峰值不低于2V,电源电压 ≤ 6v。
1、放大器能够输出无明显失真、“顶部失真”、“底部失真”、“双向失真”、“交越失真”的正弦波。
2、采用单个按键控制轮流输出以上五种波形并有相应的指示。
3、信号源输出频率50kHz、峰峰值2mV的正弦波作为晶体管放大器输入电压ui,要求输出无明显失真波形uo,uo的峰峰值不低于2V。
4、按格式要求撰写设计报告。设计报告主要内容:
1)方案论证:系统组成,比较与选择,方案描述。
2)电路设计:系统各部分电路原理图、原理分析,应结合电路设计方案阐述出现各种失真的原因,电路相关参数设计。
3)程序设计:若采用单片机控制,提供系统软件与流程图。
4)电路仿真:仿真电路图及仿真测试结果。
5)测试结果:完整测试结果列表,对测试结果分析。
三、说明
1、每位同学独立完成设计制作任务,独立进行结果测试。不得抄袭!
2、PCB上必须印有学号,清晰可辩,不得手写或进行任何方式的涂改!
PCB可以委托外加工。
3、设计报告摘要、正文结构规范,图表完整、准确,不得手写。测试之前必须提交合乎规范的报告,否则不得参加测试。
4、任务时间安排:2022年11月30日提交电子版设计报告,电路测试的时间、地点另行通知。测试时提交纸质版设计报告,报告中最后一页为实际时记录测试结果表格。
5、报告格式要求另附。
对于有一些同学询问的电子电路设计中,要求3的设置没有问题,要求3只需要输出无明显失真的波形,前两个要求必须完成,第三要求为提升部分,如果还有问题可以线下找张育钊老师询问。
在方案一中共采用了五个三极管设计放大电路,每个分别对应一种波形,为了使用计数器轮流显示五种波形,加入了三个模拟开关来切换接入电路的电阻。最终完成的仿真虽能够完成所有的要求,但工作量较为庞大,考虑到之后制作的PCB工作量,大小及成本,因此完成了该方案的仿真后便舍弃了该方案,这里仅作简单介绍,之后的论证以及电路的分析均以方案二为准。
以下仿真用的紫色Multism仿真软件绘制仿真
(逼格看起来很高,但是做实物怕三极管太多容易出问题,仿真能完美实现要求,硬件大佬可试)
1、通道选择可以用模拟开关或者机械开关。继电器是功率器件,很可能会对模拟电路产生干扰
2、图中AD采集有两种方案,第一,使用采集范围为05V的AD芯片,由单片机控制;第二,先将05V的信号进行衰减至0~3.3V之内,然后由STM32内部自带的ADC采集;交越失真信号很特别,信号存在负值,注意一下。采样频率自己结合采样点考虑。
3、三极管使用NPN的S8050/S9013等等均可,交越失真的PNP随便用一个就行,如S9012/S8550等等均可
仿真中的S1开关拨到上方,R11适当,三极管Q2的集电极输出不失真正弦波
仿真中的S1开关拨到上方,R11变小,三极管Q2的集电极输出逐渐出现顶部失真
仿真中的S1开关拨到上方,R11变大,三极管Q2的集电极输出逐渐出现底部失真
确定好三个阻值对应三种失真,然后可用模拟开关来修改R11的阻值
当想要双向失真时,R11电阻切换到不失真时的阻值,仿真中的S1开关拨到下方,三极管Q3集电极输出双向失真正弦波
当想要交越失真时,R11电阻切换到不失真时的阻值,仿真中的S1开关拨到上方,R13输出交越失真正弦波
结合我给的结构框图看,很容易看的懂!!!
思路超简单,采用单片机和CD4066,51单片机直接GPIO控制CD4066模拟开关切换,方便切换波形。
仿真非常容易,完美符合要求。
5.交越失真电路
注意:相同的电路图在不同的仿真软件上仿真的结果是不同的,需要细微调参完成效果
方案一:不使用单片机的multisim仿真源文件
方案二:使用51单片机仿真proteus仿真文件
学长学姐的代代相传仿真
使顶部失真更明显(截止失真):将截止失真部分的电阻改小
使双向失真更明显(饱和截止失真):将并联的电阻减小
使底部失真更明显(饱和失真):将并联的电阻减小
焊接不出错的话,调调电阻基本能完成(吧)
立创EDA原理图源文件
连连线就搞定的事儿~ 画在10*10以内就不要钱
仅供布局参考,不保证实物效果
立创PCB源文件
源程序真的很简单,注意使用的引脚没有定义错就行
#include "reg52.h" //必用头文件
typedef unsigned int u16;
typedef unsigned char u8;
sbit bo1 = P2^0;
sbit bo2 = P2^1;
sbit bo3 = P2^2;
sbit bo4 = P2^3;
sbit led0 = P1^0;
sbit led1 = P1^1;
sbit led2 = P1^2;
sbit led3 = P1^3;
sbit led4 = P1^4;
sbit key = P3^2; //位定义按键
void delay(u16 t)
{
while(t--);
}
unsigned char flag = 0;
void main(void){
P2 = 0x00; //P1全赋0
bo4 = 1;
while(1){
if(key == 0) //按键消抖
{
delay(1000);
if(key == 0)
{
flag++;
switch(flag%5) //判断切换的是第几个波形
{
case 1: bo1=1;bo2=0;bo3=0;bo4=1;led0=0;led1=1;led2=0;led3=0;led4=0;break; //P1.0
case 2: bo1=0;bo2=1;bo3=0;bo4=1;led0=0;led1=0;led2=1;led3=0;led4=0;break; //P1.1
case 3: bo1=0;bo2=0;bo3=1;bo4=1;led0=0;led1=0;led2=0;led3=1;led4=0;break; //P1.2
case 4: bo1=0;bo2=0;bo3=0;bo4=0;led0=0;led1=0;led2=0;led3=0;led4=1;break; //P1.3
default:bo1=0;bo2=0;bo3=0;bo4=1;led0=1;led1=0;led2=0;led3=0;led4=0;break; //回到无失真波形
}
}while(key == 0);
}
}
}
报告就随便写写啦,老师也不咋看,主要还是看实物
个人课设报告