电子电路课程设计数控正弦函数发生器•题目二实用信号源的设计和制作•一、任务•在给定±5V电源电压条件下,设计并制作一个正弦波和脉冲波信号源。•二、要求•1.基本要求•(1)正弦波信号源•①信号频率:10Hz~1.25kHz步进调整,步长为5Hz•②频率稳定度:优于10-4•③非线性失真系数≤3%•(2)脉冲波信号源•①信号频率:10Hz~1.25kHz步进调整,步长为5Hz•②脉冲占空比:2%~98%步进可调,步长为2%•••(3)三角波及锯齿波•①信号频率:10Hz~1.25kHz步进调整,步长为5Hz•2.发挥部分•(1)正弦波和脉冲波频率步长改为1Hz。•(2)正弦波和脉冲波幅度可步进调整,调整范围为100mV~3V,步长为100mV。•(3)正弦波和脉冲波频率可自动步进,步长为1Hz。•(4)降低正弦波非线性失真系数。一、课程概况简介二、课题介绍三、课题技术指标四、设计提示五、电路调测提示主要授课内容:一、课程概况简介课程名称:电子电路课程设计(32学时,两周)课程性质:必修(2学分)教材:《电子电路课程设计》教学目的:1.提高模拟电路、数字电路理论和实验的综合能力。2.掌握综合型电子电路的设计、装配和调测方法。3.掌握电子元器件资料和电路资料的检索方法。4.提高设计报告的撰写能力。5.全面培养学生科技工作素质。教学进程:1.设计要求和提示(在实验室教师授课,半天)查阅资料、设计电路(同学独立完成,1天半)。2.讲述装配方法和调测要求(2学时)。3.调测(第一周星期三至第二周星期三)。4.验收(第一周星期三至第二周星期四)。5.撰写报告(第二周星期五)、讲评、收尾。2014/2015学年第一学期2012级电子电路课程设计进度表(第四批)班级内容教学进度(2014年10、11月)星期一27日星期二28日星期三29日星期四30日星期五31日星期一3日星期二4日星期三5日星期四6日星期五7日B120301~B120306(6个班)布置任务、讲解查资料、设计讲解装配和调测方法领取元件装配调测调测/验收讲评/报告写作方法还料/打扫卫生写报告①实验时间为8:00~11:30,下午13:~16:55;②教师每天点名;③27日下午和28日全天为查资料时间,可不在实验室,其他正课时间必须在实验室,未经请假不到实验室者,按旷课论处,旷课超过3天,将取消课程设计资格.;④课程设计期间学生请假离宁,需由辅导员批准,任课教师无权批准;⑤课程设计结束后3天内由各班学习委员将课程设计报告收齐,交指导教师。教学方法:1.教法:①在实验室集中,分3次讲解。*电路设计提示。*装配要求、调测方法。*实验报告撰写要求。②辅导实验、最后逐一验收。2.学习方法:*认真自学《电子电路课程设计》相关章节。*独立完成设计。*独立装配、调测、撰写设计报告。课程纪律:1.缺少实验达三分之一以上无成绩,必须重修。2.设计报告必须手写,不得用打印机打印。3.预习报告和设计报告抄袭他人者,报告成绩按0分论处。4.迟到、早退3次成绩降档。成绩评定:1.评分项目:预习报告、装配水平、调测水平、完成指标、报告。2.成绩分档:优秀、良好、中等、及格、不及格、不及格必须重修,没有补考。二、课题介绍2.1设计课题名称数控正弦函数发生器2.2课题简介数字信号源是目前发展较快的领域,用途很广。利用存储器EPROM里的正弦函数发生器。这种由数字合成的信号源较传统的振荡器有很多优点。首先,它的输出频率可以方便的进行控制,通过改变读取信号的速度,也可以通过改变样点的读取,实现调频,扫频和数字控制。再者,这种信号源可以由计算机控制,组合成多种波形的函数信号发生器,另外较传统的模拟型便于集成化,可靠性可以更高,频率变化范围更宽。3.1技术指标1、整体功能要求数控函数发生器的功能是用数字电路产生正弦波、方波、三角波和锯齿波信号,输出信号的频率和电压的幅度均由数字式开关控制,并用一个自复开关进行选择4个发光二极管,指示波形种类。事先对一个波形进行取样,把各个样点的取样值存入存储器构成函数表(可以存入一个周期的完整信号,也可以存入半个周期或1/4个周期)。通过数字频率控制电路对函数表的读取,再把读取的取样值取出还原成原始的波形信号,这就构成了信号发生器的基本设计原理。三、课题技术指标2、系统结构要求数控信号发生器的结构如图1所示,其中波形发生器采用数字电路产生正弦波、方波、三角波和锯齿波信号,频率选择开关用于选择输出信号的频率,幅度选择开关用于选择输出信号电压幅度,频率选择开关和幅度选择开关均应采用数字电路。通过频率控制开关改变频率控制电路的输出频率,由此改变计数器(地址发生器)的循环计数速度,进而改变从存储器取出的速度,经D/A变换后输出正弦波信号,再由幅度控制开关控制输出信号的电压幅度。3、电气指标①输出信号波形:正弦波、锯齿波、三角波和方波。②输出信号频率范围:10Hz~1.25KHz③输出信号最大电压:5V(峰峰值)。④输出频率最小步长:5Hz。⑤幅度选择档位:64档。÷4、设计条件电源条件:±5V。5、元件清单其他阻、容元件自选。1DAC083228位D/A2MC40461锁相电路328C46B1EEPROM存储器4CD4040112位二进制计数器5CD4060114位二进制分频/振荡器6TL0841运算放大器7CD402924位二进制8CD45181双BCD同步加计数器98路开关2双制直插式微型开关10RT电阻710KΩ电阻11CL电容210pF涤纶电容123.2768M晶振113CL电容2100pF涤纶电容四、系统设计1、工作原理基准频率:时基电路以3.2768MHz的晶振分频产生12.8Khz频率,由12.8Khz十分频产生1.28Khz频率,再经过256个地址计数器的分频得到5Hz频率。是否有其他方法,请同学们自己在设计时可以考虑下。地址计数器产生256个地址依次从存储器中取出正弦信号的样值。该样值经D/A(Ⅱ)变换,输出一正弦波。幅度开关控制衰减电路使幅度变化。放大电路可满足输出信号的幅度及输出阻抗的要求。基准电路D/AII256分频锁相环电路正弦函数表D/AI输出幅度开关可变256分频2、频率控制电路频率控制电路含时基电路,频率开关和PLL压控振荡器,如图3所示。若输出正弦信号频率要求为10Hz~1.25KHz,则模256计数器输入时钟信号的频率范围为2.56KHz~320KHz,即:第一部分电路产生的方波频率范围的下限应小于2.56KHz,上限应为320KHz。就是PLL锁相环要输出上述频率。2.1时基电路的设计•首先选择4060振荡及分频芯片加上3.2768MHz晶体经过8位分频产生12.8KHz方波信号,再10分频产生1.28KHz给PLL(锁相环)作为基准时钟。利用PLL倍频功能产生2.56KHz至320KHz频率方波。(N=2-255)时基电路CD4060是14位二进制计数器,3.2768M/2^8=12.8K4518是BCD码计数器,12.8K/10=1.28K2.2锁相环CD40461,2.3PLL(锁相环CD4046)倍频电路3、地址计数器的设计M=256计数器,可由CD4040实现.(12位二进制计数器)这样,就有八路输出来作为EPROM的地址。4、存储器及正弦函数表(1)28C64芯片的管脚图(2)正弦函数表的算法设计:用C语言进行如下编程:#includestdio.h#includemath.h#definepi3.1415926voidmain(){intn,I;floatm;for(n=0;n256;n++){m=(255+255*sin(2*pi/255*n))*0.5i=int(m);if(m-1=0.5)print(“﹪5x”,i+1);elseprint(“﹪5x”,i);}}(3)输出数据作为EEPROM里面输入的正弦函数表:(3)三角波函数表的算法设计:用C语言进行如下编程:#includestdio.hvoidmain(){inti;introm_triangle[256];inthex[256][2];for(i=0;i128;i++){rom_triangle[i]=2*i;hex[i+128][1]=rom_triangle[i]/16;hex[i+128][0]=rom_triangle[i]-16*hex[i][1];}for(i=0;i128;i++){rom_triangle[i+128]=254-2*i;hex[i+128][1]=rom_triangle[i+128]/16;hex[i+128][0]=rom_triangle[i+128]-16*hex[i+128][1];}for(i=0;i256;i++){swithch(hex[i][1]){case0:printf(“0”);break;case1:printf(“1”);break;case2:printf(“2”);break;case3:printf(“3”);break;case4:printf(“4”);break;case5:printf(“5”);break;case6:printf(“6”);break;case7:printf(“7”);break;case8:printf(“8”);break;case9:printf(“9”);break;case10:printf(“A”);break;case11:printf(“B”);break;case12:printf(“C”);break;case13:printf(“D”);break;case14:printf(“E”);break;case15:printf(“F”);break;}switch(hex[i][0]){case0:printf(“0”);break;case1:printf(“1”);break;case2:printf(“2”);break;case3:printf(“3”);break;case4:printf(“4”);break;case5:printf(“5”);break;case6:printf(“6”);break;case7:printf(“7”);break;case8:printf(“8”);break;case9:printf(“9”);break;case10:printf(“A”);break;case11:printf(“B”);break;case12:printf(“C”);break;case13:printf(“D”);break;case14:printf(“E”);break;case15:printf(“F”);break;}printf(“”);if((i+1)﹪16==0){printf(“\n”);}}}(4)锯齿波函数表的算法设计:用C语言进行如下编程:#includestdio.hvoidmain(){inti;introm_sawtooth[256],i;inthex[256][2];for(i=0;i256;i++){rom_sawtooth[i]=i;hex[i][1]=rom_sawtooth[i]/16;hex[i][0]=rom_sawtooth[i]-16*hex[i][1];}for(i=0;i256;i++){swith(hex[i][1]){case0:printf(“0”);break;case1:printf(“1”);break;case2:printf(“2”);break;case3:printf(“3”);break;case4:printf(“4”);break;case5:printf(“5”);break;case6:printf(“6”);break;case7:printf(“7”);break;case8:printf(“8”);break;case9:printf(“9”);break;case10:printf(“A”);break