基于51单片机的程控增益放大器设计报告Word格式.docx
- 文档编号:19370592
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:18
- 大小:526.19KB
基于51单片机的程控增益放大器设计报告Word格式.docx
《基于51单片机的程控增益放大器设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《基于51单片机的程控增益放大器设计报告Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
2.3电路控制模块
本设计电路控制模块仅需采用51单片机最小系统,所谓单片机最小系统是指能够实现单片机工作的基本条件,也就是能使单片机正常工作的最基本的外围配置,最小系统主要包括电源电路、复位电路以及时钟电路。
单片机的最小系统以及键盘控制电路参见图2-7及图2-8。
图2-7由单片机STC89C52构成的最小系统
图2-8程控增益放大器开关键盘
电路控制模块的电气连接中,我们选用11.0592M晶振为系统提供基本时钟信号,串口选择上将使用P2.0与P2.1口分别模拟IIC通信的数据传送线SDA和时钟控制线SCL实现对X9241W数字电位器的控制,P0口连接LCD1602液晶显示屏编程控制增益显示,方便增益调节,电路连接时P0口需添加上拉电阻,采用P2.6、P2.7以及P1口连接开关键盘作为数字0-9,并以P3.2口由中断函数控制作为确认键。
电路实际工作时,当键盘键入对应增益值,通过软件检测P1口及P2.6、P2.7的高低电平变化对增益值做赋值操作。
例如,要想得到15倍的增益,编程设置为先键入数字1,程序上通过转换另其乘以10设为增益的10位,再键入数字5作为增益值的个位,这样就得到了增益值的赋值处理,然后通过确认件,系统通过键盘检测跳入中断完成根据对应增益值数字电位器直接跳转至相应档位从而引用阻值变化实现增益调节。
同理,需要8倍增益时,仅需键入数字0和8,再通过确认键输入即可。
2.4液晶显示模块
程控增益放大器需要对增益信息进行显示,该设计的显示将在LCD1602字符型液晶屏上实现。
图2-9为程控增益放大器液晶显示模块的硬件电路电气连接图。
图2-9液晶显示模块LCD1602硬件电路
硬件电路设计中,通过3管脚上电位器R1的的调节可以实现LCD液晶显示屏对比度的调节。
单片机的P0口接LCD1602的D0~D7,实现单片机对LCD进行命令写入或者数据通信,P0口需添加上拉电阻;
P2.3接入LCD1602的使能端EN,控制液晶显示屏正常显示;
P2.4接入LCD的读写选择端RW,用来选择对LCD进行读操作还是写操作;
P2.5口为数据亮暗选择端RS,用来控制从D0~D7写入的信息是数据还是命令。
2.5程控增益放大器总设计图
为了更好的了解程控增益放大器的设计原理,本节将提供程控增益放大器各个模块原理图及其分析。
图2-10电源模块
图2-11电源电路
图2-12电路控制模块
图2-13按键开关及液晶显示模块
图2-14X9241数字电位器及电压跟随器电路
图2-15增益放大模块
根据程控增益放大器硬件电路总设计图,本设计以电路控制模块以STC89S52单片机作为为控制核心,并采用开关键盘输入实际所需增益值并通过单片机模拟IIC通信控制增益放大模块的数字电位器的方式调整增益值实现增益可调,并选用LCD1602液晶显示屏作为液晶显示模块来实现增益显示的功能。
在硬件电路的设计上,电源模块为单独模块,独立生成+12V、-12V及+5V电压(实物上由插针引出),为后级电路供电。
控制模块单片机最小系统P0口控制LCD1602的显示,P1口及P2.6、P2.7连接开关键盘控制分别代表数字0—9,由编程控制输入表示方式,增益放大模块数字电位器的数据线SDA与时钟线SCL分别连接单片机的P2.0与P2.1口。
另外,其它剩余I/O口由插针引出方便功能拓展,各测试端都设有相应标号并引出插针方便电路调试。
三、程控增益放大器软件设计
基于单片机控制数字电位器进而实现增益可调的方案较好地实现了程控增益放大器。
通常,编程的关键在于对数字电位器输出阻值的选择和控制,即如何确定电路设计所需电位器以及其滑动端计数寄存器(WCR)的值。
本设计系统主程序设计流程图3-1所示:
图3-1系统主程序设计流程
本设计使用的编程语言为C语言,系统通过键盘选择实际应用所需增益值,电路控制模块STC89S52单片机与数字电位器之间模拟IIC通信来控制数字电位器阻值变化进而实现增益可调,编程思路为:
主函数内对键盘扫描完成滑动端档位的赋值,并通过确认键进入软件中断函数更新数字电位器滑动端计数值(WCR)从而引起阻值变化并刷新液晶显示,本设计软件编程中中断函数采用边沿触发方式方便控制单元单片机与数字电位器间模拟IIC通信。
3.2IIC总线驱动程序设计
X9241W采用标准II串行总线接口,控制模块单片机与数字电位器间采用模拟IIC通信进而控制增益放大模块反馈电阻阻值的变化。
SDA和SCL在电气连接上必须加以上拉电阻接正电源,使得总线处于空闲状态时,时钟线和数据线都处于高电平状态。
IIC每一根线路(SDA和SCL)进入器件后,内部都接有输入/输出两部分,输入部分的输入阻抗很高,可以不用理会其对线路的影响,但输出部分则必须是漏极开路的结构,因为漏极开路输出结构有如下特点:
当拉低它时,它的输出为0;
当抬高它时,输出端相当于与芯片“断开”,输出电平由外部的与上拉电阻所连接的高电平决定,而与器件的电源电压无关。
IIC总线驱动程序的软件编程是以X9241读写时序为基础的,也即对数字电位器的编程控制主要体现在IIC总线驱动的程序控制上的,软件编程时主要包含开始条件、发送应答子函数、接收应答子函数、向IIC总线发送单个字节数据、从IIC总线接收单个字节数据、以及连续读取X9241内部数据的函数。
在程序编写时,每更新一次滑动端计数寄存器(WCR)的值都需要调用开始条件子函数、发送器件型号及地址的子函数、写入数据的子函数、发送数字电位器电阻中间值VR0的子函数以及结束条件的子函数,X9241数字电位器内部4个电位器在编程时每个电位器地址以及读写滑动端计数寄存器(WCR)时的语句各不相同,由于X9241数字电位器内部4个电位器全部被用到,这也为程序的编写与实现增加了难度,因此对设备地址的设置是程序编写及硬件电路连接的难点和易错点,另外单片机与数字电位器模拟IIC通信时开始条件、发送数据、返回应答和结束条件间数据位与时钟信号传输的时间间隔问题也是本设计的难点。
故本节主要分析IIC总线驱动程序设计思路,控制单元STC89S52单片机与数字电位器间采用的模拟IIC通信驱动程序设计流程图参见图3-2:
图3-2IIC总线驱动程序流程图
3.3LCD1602显示模块程序设计
根据第二章对液晶显示模块的介绍,液晶显示屏以其小体积、微功耗、显示内容丰富、超薄轻巧的诸多优点而应用广泛。
本设计主要利用STC89S52控制液晶显示屏显示其增益值,从编程难易程度与成本方面综合考虑,我们选取了LCD1602来实现,图4-3为程控增益放大器液晶显示模块程序设计原理框图:
图3-3液晶显示模块程序流程图
本模块对液晶显示部分的程序实现主要是通过对键盘扫描来实现数字电位器的赋值,每经过一次增益值的写入随后将更新一次液晶显示值,要显示字符时需要先输入显示字符地址,LCD1602的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
液晶显示模块的软件编程,主要包含判忙函数、写入命令函数、写入数据函数、写入字符串函数以及液晶显示屏的初始化函数等,这两段代码的分别是写入数据函数和液晶显示增益值的子函数,在编程过程中值得注意的是在对增益值进行数据显示时需要对其进行位数转换逐一显示,在本设计中我们显示了两部分内容,分别为按键提示信息和开关键盘键入的增益值,界面简洁直观,操作便捷。
四、系统测试及结果分析
4.1系统测试数据
本设计对程控增益放大器的设计根据不同模块测试,主要有X9241W数字电位器内部4个电位器每个档位变化的电阻值以及电源模块和增益放大模块信号输出作为测试点,各测试点理论值和实际测量值参见表4-1至表4-3。
表4-1数字电位器各档位对应电阻理论值及实际测量值
各档位对应X9241W电阻值
滑动臂位置
电阻值(欧姆)
理论值
实际值
22
3486
3486.7
44
6952
6943.2
1
158
160.2
23
3634
3636.3
45
7110
7101.2
2
316
317.9
24
3792
3790.1
46
7268
7259.2
3
474
476.4
25
3950
3947.2
47
7426
7418.7
4
632
633.8
26
4108
4108.7
48
7584
7579.8
5
790
791.9
27
4266
4261.5
49
7742
7730.6
6
948
949.7
28
4424
4423.1
50
7900
7989.4
7
1106
1107.8
29
4582
4580.1
51
8058
8049.9
8
1264
1265.3
30
4740
4745.7
52
8216
8208.6
9
1422
1423.5
31
4898
4895.5
53
8374
8367.0
10
1580
1581.1
32
5056
5050.1
54
8532
8525.4
11
1738
1738.5
33
5214
5208.2
55
8690
8680.1
12
1896
1896.5
34
5372
5366.3
56
8848
8836.5
13
2054
2054.3
35
5530
5522.9
57
9006
8993.9
14
2222
2222.7
36
5688
5680.3
58
9164
9158.7
15
2380
2380.5
37
5846
5838.2
59
9322
9312.7
16
2538
2538.7
38
6004
5993.7
60
9480
9471.5
17
2696
2697.1
39
6162
6158.1
61
9638
9630.9
18
2854
2854.6
40
6320
6312.4
62
9796
9786.3
19
3012
3012.7
41
6478
6469.2
63
9954
9936.1
20
3170
3171.8
42
6636
6628.7
21
3328
3328.6
43
6794
6787.4
表4-2程控增益放大器理论输出与实际输出值
输入信号为10mV时理论输出与实际输出
液晶显示增益
增益放大后输出值(mV)
对应放大倍数
10.00
1.000
280
20.01
2.001
290
30.00
3.000
300
40.00
4.00
310
50.00
5.00
320
60.05
6.00
330
329
32.9
70
70.06
7.006
340
339
33.9
80
80.09
8.009
350
349
34.9
90
90.18
9.018
360
359
35.9
100
100.18
10.018
370
369
36.9
110
110.18
11.018
380
379
37.9
120
120.18
12.018
390
389
38.9
130
130.13
13.013
400
140
140.13
14.013
410
150
150.13
15.013
420
419
41.9
160
160.24
16.024
430
429
42.9
170
170.24
17.024
440
439
43.9
180
180.30
18.030
450
190
190.41
19.041
460
459
45.9
200
199.68
19.968
470
469
46.9
210
480
220
490
230
500
各测试点理论值与实际测量值
测试点
+12V测试点
12V
-12V测试点
-12V
+5V测试点
5V
4.99V
表4-3电源模块各测试点理论值及实际测量值
图4-1X9241数字电位器阻值变化规律图
图4-2程控增益放大器增益变化曲线图
结果分析:
由上述结果分析,电源模块主要产生+12V、-12V及+5V电压为程控增益放大器的增益放大模块、电路控制模块和液晶显示模块从而保证其正常工作,根据测量结果,电源部分满足设计要求。
根据各档位对应X9241W电阻值的测量数据,测试数据跟理论值存在一定误差,当然这是由于器件本身局限性造成并且不可能消除的,因为X9241数字电位器内部四个电位器包含63个电阻共64个档位值,因此X9241数字电位器内部每个电位器的分辨力达1/63,X9241W规格数字电位器内部包含4个10千欧阻值的电位器,因此每个电位器里面63个电阻每个阻值约为158.7欧姆(103/63=158.73),每个电位器阻值不是整数倍,这也是引起电路误差的一个重要因素,此外小信号在增益放大倍数小的时候,由于增益放大模块反相端电阻固定仅通过改变反馈电阻来调节增益变化,这就使得增益值在增益变化两端成非线性变化,比如说当放大倍数偏小的时候跟电阻值的偏差联系很大从而造成精度上的偏差。
在实际应用中,我们可以添加外接电路对其进行非线性补偿从而尽可能的使得程控增益放大器的增益值在一定区域能成线性变化,因课题时间安排有限,故仅作参考方案并为实际实施。
根据实际测试数据以及理论值的对比可知,本设计满足课题要求,实现了增益变化范围1-50倍增益步进为1数控可调的功能。
4.2实物图展示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 程控 增益 放大器 设计 报告