【浙江理工电赛】多种波形发生器(E题) - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 【浙江理工电赛】多种波形发生器(E题)

简介:基于单片机、74LS74D触发器、LM324 运放等 芯片组成能产生方波、三角波、正弦波等多种波形的最小电子系统,并能完成频率设定和显示。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2020-06-25 16:36:06
更新时间: 2021-02-07 17:38:03
描述
## 本项目获浙江理工大学第五届电子设计竞赛一等奖 #### 队伍编号:ZSTU031 #### 队伍成员:叶忠儒 朱海航 李国志 #### 指导教师:吕军 ## 《校级电子设计竞赛》 设计总结报告 作品    多种波形发生器(E) > 使用 74LS74 触发器,产生输出频率 10-20kHz 可调,输出电压幅度峰峰值 为3V的方波,此时触发器输入信号由信号发生器产生; > 使用 74LS74 触发器,产生输出频率 5-10kHz 可调, 输出电压幅度峰峰值 为3V的三角波; > 产生输出频率 10-30kHz 可调, 输出电压幅度峰峰 值为 3V 的正弦波; > 要求用单片机输出 20-50kHz 的方波,输出电压幅度峰峰值为 3V > 单片机产生的方波频率可由”+”,”-“按键设定 > 单片机设定的方波频率和波形发生器输出正弦波频率可由 LCD 显示 > 系统方案设计: > 方案的论证和分析: 单片机原理图 单片机最小系统有以下三部分组成: (1)电源:5V 直流电源 1 个 (2)晶振电路:典型的晶振取 12MHz(产生精确的 uS 级时歇,方便定时操作)。 (3)复位电路:由电容串联电阻构成,由图并结合“电容电压不能突变”的性 质,可以知道,当系统一上电,RST 脚将会出现高电平,并且,这个高电平持续 的时间由电路的 RC 值来决定。电容一般采用 10~30uF。 这三个部分搭建好,这个单片机就可以运行了。 2、方波输出 2 方案的论证和分析: ![W6ZGXGS~_EP115U1G7.png](//image.lceda.cn/pullimage/TUgl80utrfJkGWW8NGEy9Oe51colUa7pH0XcMYVY.png) 输出二分频方波的仿真图 方案:由于 74LS74D 分频电路的结构简单,所以我们采用了用 74LS74D 芯片和电 阻搭建了电路使之实现四分频功能。 ![SW6_HT3MMK8`4P89_YYYO.png](//image.lceda.cn/pullimage/HPpteVdt6F7QJvMeIMZZXQmaXViTTYd9u5Ig52yP.png) 二分频方波 20khz ![37X6DM`2CIICDI~ZQKCIC.png](//image.lceda.cn/pullimage/cCOSBSA1eASz4zUm5lYb7pNsOm3pVGDEd26o54gS.png) 四分频方波 10khz 3、三角波电路方案的论证与分析: ![H4KK9EUIJP7KDMFZYO.png](//image.lceda.cn/pullimage/IkxvwWazuuHXKcrI8LqdvB3R6VxKYfMC3Y7cwvjG.png) 积分电路产生三角波仿真图 方案分析:首先经过 74LS74D 四分频产生的 10KHZ 的方波信号经过一个 100KΩ 的可调电阻输入到 2 号脚。3 号脚接 10KΩ电阻然后接地。我们用 1.5nf 电容与 100KΩ的可调电阻组成积分电路,经过 Multisim 仿真,波形标准,参数达到要 求。因此,我们最终选取了这个方案。 ![NLL1F`23~LU42_R~VA.png](//image.lceda.cn/pullimage/vyHynpWnzwcfOGrTQMIP6mgxi9bZmKheGvNbHGMq.png) 输入信号频率为 20khz 时输出的三角波 ![`V24URPSW2PY97DF7.png](//image.lceda.cn/pullimage/RTn6EOQz1B4qa3eioOzo4FTYY6UiaAE7fvdzaSlf.png) 输入信号频率为 40khz 时输出的三角波 4、正弦波方案的论证与分析: ![BE2_MGTOD826PUCB`N8N14.png](//image.lceda.cn/pullimage/owQ1l0qr6aq5gtebjVze512KWBaCDKLJL41gcRKK.png) 带通滤波放大器电路仿真图 (1)方案一:我们用 10KΩ的可调电阻和 4.7nF 电容构成了一个带通滤波电路, 能从三角波中滤出符合要求的正弦波,在经过 LM324 运放进行放大。 (2)方案二:我们采用 10KΩ的可调电阻和 4.7nf 的电容组成一个低通滤波电 路,从三角波中滤出符合要求的正弦波。 经过实践后我们发现使用一个低通或者高通电路虽然能三角中滤出来正弦波,但 是波形失真比较严重(杂波较多),参数也不符合要求。而带通滤波电路能很好 解决上述问题,综上所述,我们最终选取了方案一。 5、电路设计: ![7RKE2`AO5JY9Y8WXTB~IK.png](//image.lceda.cn/pullimage/zEqaytYcnNQaaWnhluroDFg35FHlXR3zDF9XRWTt.png) 总体电路仿真图 电容 c6c7 是对输入电压进行一个滤波,防止输入电压对电路产生干扰;电阻 R6 是调节分频后方波的幅值;C1 与 R3 组成一个积分电路;同理 c9c10 也是对输入 电压进行一个滤波;电阻 R5 是对输出的三角波有个调节幅值的作用;电阻 R1, 电容 C8,电阻 R7,电容 C2 分别构成一个低通滤波器,电容 C4 电阻 R12,电容 C5 电阻 R13 分别构成一个高通滤波电路,能从三角波中滤出符合要求的正弦波; 6、 程序设计: 1、单片机实现的功能 i)输出方波 ii)方波频率可通过按键调节 iii)利用 OLED 屏幕显示输出方波的频率和测量正弦波的频率 2、功能实现的方法: i)利用单片机定时器,实现输出的时候一直翻转,就可以得到方波 ii)利用单片机的外部中断 0,1,通过改变定时器的初值改变输出方波的频率 iii)OLED 屏幕的显示通过查询相关数据手册,与单片机相应的管脚相连接,再 利用显示函数,显示输出方波的频率和待测正弦波的频率。 iv)代码贴在附录 方案实现与调试 1、测试方案: 我们确定方案后采取分模块焊接、测量; (1)电源模块测量:把电源模块与+10V 电源相连,在输出端用万用表测出三个 端口的电压是否符合要求; (2)方波模块测量:用已经测试好的电源模块供电,经过单片机的最小系统运 行后产生频率可调的方波,方波的幅值和频率用示波器测量; (3)分频电路模块的测量:在 74LS74 的输出端用示波器测量,判断波形、幅值、 频率是否正确,如果不正确,就要检查电路的连接是否完好,芯片是否能正常工 作,调节幅值可调节电阻 R6; (4)积分电路模块的测量:由于是分模块测量,开始先用函数信号发生器输入 一个频率为 10KHZ,幅值为 3Vpp 的方波,在输出端口用示波器测量,如果幅值 不对可以调节电阻 R6,如果波形出现失真可以调整积分电阻,或者可以替换积分 电容,这里积分电容的选取很关键,如果积分电容取得过大,积分电路的时间常 数越大,得到的波形就越平滑,越稳定。但是跟随性就差了,也就是精度就小了。 所以我们这里选取了 1.5nf 的电容; (5)滤波电路模块的测量:用函数信号发生器输入一个 10kHz,幅值为 5vpp 的 三角波,在输出口用示波器进行测量。 2、 系统调试: 我们采用分模块调试,没问题后又级联起来调试; (1)分频电路模块调试:分频电路只要连接正确,一般不会出现问题,主要调 节一下改变幅值的电阻 R6,使之达到要求就可以了; (2)积分电路模块调试:先调节 R3,使积分电路正常工作,在调节电阻 R5,使 幅值达到要求。 (3)正弦波电路模块的调试:调节电阻 R1,R7,R12,R13 使之形成一个带通滤 波电路,滤出符合要求的正弦波。 3、数据测试与处理: 1、要求:使用 74LS74 触发器,产生输出频率 10-20kHz 可调,输出电压 幅度峰峰值为 3V的方波,此时触发器输入信号由信号发生器产生; ![H2DLFWBSIJG6GTTTK.png](//image.lceda.cn/pullimage/UpvkzvjySLbdWHp9ylaXGlJ8vAfXTJLul4WXW3LL.png) 实际测试:经函数信号发生器产生的频率 40kHz,幅值为 3vpp 的方波,经 过 74LS74 触发器可输出频率 10-20kHz 可调,输出电压幅度峰峰值为 3V的 方波,波形五无明显失真,误差不超过 5%; 2、要求:使用 LM324 触发器,产生输出频率 5-10kHz 可调, 输出电压幅 度峰峰值为3V的三角波; ![9ITF~2C49JVH9V4R.png](//image.lceda.cn/pullimage/nUG42SsZbUihRwgj9LLrG6ReSDpB5WTFCLL0OMCY.png) 实际测试:经过积分电路,可产生输出频率 5-10kHz 可调, 输出电压幅度 峰峰值为3 V的三角波,波形五无明显失真,误差不超过 5%; 3、要求:产生输出频率 10-30kHz 可调, 输出电压幅度峰峰值为 3V 的正 弦波; ![SRZ0R5JEZEL0Z_PWOMF.png](//image.lceda.cn/pullimage/MvZj0YUCVeiI3REGCQkavGkyOChulnqX8UOZIKtb.png) 实际测试:经过滤波电路后可产生输出频率 5-10kHz 可调, 输出电压幅度 峰峰值为 416mv 的三角波,幅值没有达到要求,方案打算用放大器调节幅值大小, 但实测没有成功; 4、要求:用单片机输出 20-50kHz 的方波,输出电压幅度峰峰值为 3V;单片 机产生的方波频率可由”+”,”-“按键设定;单片机设定的方波频率和波形发 生器输出正弦波频率可由 LCD 显示; ![SVP4B31`383BKNI.png](//image.lceda.cn/pullimage/4ntN9Fazs20YuOsoLT8GIdJRZDeTxEZ1ESBtJxjK.png) 图 5 ![1~BH4A9~_LJHMBKBVP.png](//image.lceda.cn/pullimage/LnNVyEfLcijvCNwKcUkBCOVrM6LFvqXKwzhvqpQl.png) 图 6 实际测试:可以用单片机输出 20-50kHz 的方波,输出电压幅度峰峰值为 3V;频率加减可以使用按键来实现。单片机设定的方波频率可由 OLED 显示。 四、总结 我们第一天确定好方案,并用了 Multisim 进行仿真,仿真正确后我们就开始焊接电路了。我们按照原理图来焊接,本来想着可以一帆风顺的进行下去了, 没想到第一个电路就出现了问题,芯片换了很多个都不行,后面静下心来才想到 要把 CLR1,CLR2(直接复位端),PR1,PR2(直接置位端)接上高电平,芯片才能 正常工作。在调试电路的时候也是遇到了很多问题,最后在不断地尝试和改进下, 终于有了点起色,经过这么多的调试后才知道 Multisim 仿真并不是万能的,有 很多的电路在仿真上运行正常,到了实际的电路中就不行了,这也启发我们在之 后的电路中药多实践,不要过分相信仿真软件。还有单片机也是从什么都不懂开 始做起,经过一点点的尝试,一次次的失败,最后还是成功了。在调试电路的过 程中虽然很枯燥,但是一旦自己的板子调好了,还是很高兴的,大概这就是电赛 的魅力吧,在你无奈到奔溃的时候会给你点小惊喜,让你有继续下去的勇气。通 过本次电赛还让我们明白了团队协作的重要性,一个团队中只有做好分工,做好 自己擅长的事,才能使团队的力量达到最大。在电赛期间,我们从彼此不太熟悉 到现在的无话不谈,这应该也是我们在电赛中很大的一个收获,当然期间也有过 争执,但在之后我们的关系不但没有变坏,而是变得更好了,因为我们都朝着一 个目标努力,我们都明白这些都是为了有更好的成果。总的来说,这次电赛真的 收获了很多,不仅学会了很多新的知识,还结交了一群志同道合的朋友,学会了 团队协作的能力。还增强了自己的动手能力和抗压能力,增强了面对困难,挑战 困难的勇气。 参考文献: 基于 51 单片机产生占空比和频率可调的方波 http://www.51hei.com/bbs/dpj-167681-1.html OLED 使用手册 http://shop73023976.taobao.com/?spm=a1z10.1.0.0.byBTLt&v=1 郑忠楷_积分电路产生三角波波形畸变刍议 单片机程序代码: ``` language Main.c 程序 #include #include #include #define uchar unsigned char #define uint unsigned int uint freq[]={20000,20833,21740,22727,23810,25000,26316,27777,29410,31250,33333,35714,384 61,41667,45455,50000,50000,50000,50000,50000};//最多按 20 次,实验得到的频率 sbit out=P2^0; sbit plus=P3^2; //加频率 sbit minus=P3^3; //减频率按键 void init() { IT0=1; //外部中断 0 下降沿触发 IT1=1; EX0=1; //外部中断 0 开启 EX1=1; EA=1; //中断总允许 TR0=1; //开定时器 0 TMOD=0x02; //计数方式 2 TH0=256-25; TL0=256-25;//初值 20000 ET0=1; TR0=1; } int main(void) { uint num=0; init(); OLED_Init();//OLED 屏幕初始化 OLED_ShowString(0,0,"Inf:");//显示字符函数,显示输入信号频率 OLED_ShowString(0,4,"Outf:"); while(1){ OLED_ShowNum(30,0,freq[num],5,15);//显示数字函数,显示输出方波频率 OLED_ShowNum(40,4,freq[num]/4,5,15); if(!plus){ delay_ms(50); if(!plus) //防抖 num++; } if(!minus){ delay_ms(50); //防抖 if(!minus){ num--; } } } } void ex_isr0(void) interrupt 0//外部中断 0,实现频率加 { TH0+=0x01; TL0+=0x01; if(TH0==TL0>=246) TH0=TL0=246; } void ex_isr1(void) interrupt 2//外部中断 1,实现频率减 { TH0-=0x01; TL0-=0x01; if(TH0==TL0 ```
设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
ID Name Designator Footprint Quantity
1 HDR-M-2.54_1x3 VCC,GND,5V,SQOUT,ZXOUT,SQIN,J3 HDR-M-2.54_1X3 7
2 sanout SANOUT HDR-M-2.54_1X3 1
3 vee VEE HDR-M-2.54_1X3 1
4 1k R5,R2,R1 R_AXIAL-0.3 3
5 10k R4,R1 R_AXIAL-0.3 2
6 5k R3 R_AXIAL-0.3 1
7 SN74LS74ADR U1 DIP-14_L20.0-W7.6-P2.54-LS8.0-BL 1
8 10k RP5,RP6,RP7,RP4 RES-ADJ-TH_3296W 4
9 100k RP8,RP3,RP1 RES-ADJ-TH_3296W 3
10 R_3296W_US RP2 RES-ADJ-TH_3296W 1
11 4.7n C7,C4,C5,C6,C3 RAD-0.2 5
12 681pf C1 RAD-0.2 1
13 1.5nF C2 RAD-0.2 1
14 LM324ADR2 U3 DIP-14_L20.0-W7.6-P2.54-LS8.0-BL 1
15 11.0592MHz X1 HC-49S_L11.0-W4.4-P4.88 1
16 K2-1841DP-H4CW-02 KEY2,DOWN,UP KEY-TH_4P-L12.0-W12.0-P5.00-LS13.4 3
17 10k R2,R3 RAD-0.3 2
18 33p C3,C2 RAD-0.3 2
19 10u C1 RAD-0.3 1
20 STC89C52RC-40I U2 DIP-40_L52.0-W13.7-P2.54-LS15.2-BL 1
21 HDR-M-2.54_1x20 J1,J2 HDR-M-2.54_1X20 2

展开

工程视频/附件
序号 文件名称 下载次数
1

E题 一等奖.pdf

40
2

delay.c

8
3

delay.h

6
4

diansai.c

9
5

freq.c

6
6

oled.c

6
7

oled.h

6
8

oledfont.h

6
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP