PCF8591DA模拟小信号Word文档格式.docx
《PCF8591DA模拟小信号Word文档格式.docx》由会员分享,可在线阅读,更多相关《PCF8591DA模拟小信号Word文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
![PCF8591DA模拟小信号Word文档格式.docx](https://file1.bdocx.com/fileroot1/2022-11/15/28f0d0dc-10b8-41c8-b4e4-37ceb387e231/28f0d0dc-10b8-41c8-b4e4-37ceb387e2311.gif)
本文在广泛查阅国内外文献的基础上,对磁场传感器进行了系统总结。
从应用的观点出发,根据磁场感应范围将磁场传感器分为三类:
低强度磁场、中强度磁场及高强度磁场传感器[5]。
低强度磁场传感器通常检测1μG以下的磁场;
中强度磁场传感器通常检测1μG~10G磁场;
高强度磁场传感器检测范围通常在10G以上。
1.3课题研究的目的和意义
磁场强度是工业检测的重要手段,利用检测磁场强度检测转速,利用磁场处理水研究,利用检测磁场降低人类血液黏度等。
磁场已经应用于各行各业中,所以其强度的检测也显得很有市场。
本设计原理可将微弱的磁场变化信号放大,并让显示发生变化,变化的电压对应磁场强度的变化值。
通过制作本课程设计,也让自己更加灵活的运用单片机以及信号处理方面的知识,理论与实际紧密结合,增强对理论的分析能力。
本课题基于单片机的磁场强度检测系统设计,系统维护简单,工作应用简单。
因此,本课题是非常有意义的。
二、系统设计
2.1设计任务
1、用DXP软件画出系统原理图;
2、将原理图导入PCB,制作PCB板
3、编写简单程序,对焊完的板子进行简单调试,检查数码管、蜂鸣器等处是否有问题,以及检查整体电路是否缺失、短接;
4、编写程序,实现模拟信号的产生,信号滤波,信号放大,信号AD转换处理等功能。
5、将程序烧进单片机,对实物进行调试,最后完善功能。
2.2系统设计思路
充分设计利用STC89C52的40个引脚,节省其他硬件的使用,主要实现以下功能:
1.当系统上电时,数码管显示的是模拟信号经放大后的电压值。
2.通过按键可改变(增加或减少)产生模拟信号的大小。
3.长按按键1可显示增加的磁场强度单位个数。
4.长按按键2可让模拟信号产生变化的锯齿波。
5.对模拟信号进行放大,数码管实时显示。
2.3系统设计框图
图1系统设计框图
三、硬件设计
系统硬件分为7个模块:
1、主单片机STC89C52部分,主控制芯片。
2、DA转换部分采用的是PCF8591芯片,输出信号为小信号(单个变化6MV多一点,整体变化60MV)变化。
3、信号放大模块采用LM358运放芯片。
4、AD转换采用ADC0809芯片。
5、按键采用四脚轻触开关。
6、显示模块采用四位共阴数码管。
7、报警模块采用5V有源蜂鸣器。
3.1DA模块
此模块采用的是PCF8591芯片来实现,原理如下图2所示:
图2DA转换模块
PCF8591是具有I2C总线接口的8位A/D及D/A转换器。
有4路A/D转换输入,1路D/A模拟输出。
这就是说,它既可以作A/D转换也可以作D/A转换。
A/D转换为逐次比较型。
引脚图如图2所示。
电源电压典型值为5V。
AIN0~AIN3:
模拟信号输入端。
A0~A3:
引脚地址端。
VDD、VSS:
电源端。
(2.5~6V)
SDA、SCL:
I2C总线的数据线、时钟线。
OSC:
外部时钟输入端,内部时钟输出端。
EXT:
内部、外部时钟选择线,使用内部时钟时EXT接地。
AGND:
模拟信号地。
AOUT:
D/A转换输出端。
VREF:
基准电源端。
此模块需要说明的是在PCF8591的VREF引脚接了一个10K的滑动变阻器,其目的是用来改变其基准电压,从而提高其DA输出的信号的最小分辨率。
其中AOUT引脚输出产生的模拟信号,接一了一个10UF电容用来滤除其中的噪声信号,电容容值的选取根据信号频率的大小,本设计产生连续自动变化的模拟小信号时其频率大约为10HZ,因此,其叠加在上面的噪声会比10HZ要高,根据经验因此选用了10UF电容。
3.2信号放大滤波模块
此模块采用LM358芯片构成二阶低通滤波电路实现,其原理如下图3所示:
图3信号放大滤波模块
此二阶低通滤波电路中的电阻与电容值根据信号频率选取,具体内容此处不详述。
下面三个排针引出的分别为模拟的最初小信号输出,一级放大后的输出,二级放大后的输出。
第一级放大倍数为2.5倍,这是因为考虑到二阶低通滤波器增益在2.5倍效果较好,一般不能超过3倍,第二级放大电路放大41倍,所以总的放大倍数为2.5*41=102倍。
其中OUT2输出端接了一个电阻和发光二极管,当DA输出自动变化的小信号经放大后,其灯将闪烁。
3.3AD模块
此模块采用的是ADC0809芯片实现,具体原理如下图4所示:
图4AD转换模块
3.4主单片机STC89C52部分
单片机晶振:
12MHZ,STC89C52;
电源:
VCC=5V,接地GND及复位电路。
如图5所示:
图5单片机最小系统
RST引脚是复位信号输入端,高电平有效。
采用上电加按钮复位,因为本系统设计考虑到该系统比较重要,所以除了采用上电复位的方式外,应该还有按钮复位备用复位方式以防止系统死机时能。
3.5按键模块
图6按键模块
本模块有两个按键,其中K1表示信号增加,当按下该键时,发出相应控制信号,使信号发生器信号输出增加,增加的一个幅度与VREF的基准电压有关,此处经测量增加大约3.5mv,经放大102倍,显示将增加0.35V。
3.6显示模块
在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。
本系统中前三位显示电压的整数位,最后一位显示转速的小数位。
4-LED显示器引脚如图7所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED的段输出引脚在内部都并联后,引出到器件的外部。
图7四位共阴数码管
在本设计中,数码显示的为小信号经二级放大后的电压值,前三位为有效数值,最后一位显示的是字符“V”。
当然按键切换模式时,显示也会发生相应的变化。
3.7报警模块
该电路中蜂鸣器用的是有源蜂鸣器,如图8蜂鸣器驱动模块:
图8蜂鸣器连接图
3.8整体电路
图9整体电路图
此原理图采用AltiumDesigner软件设计,在保准正确性的前提尽量使布局合理,美观。
其中大部分分连线采用的都网络标号的形式来连接,这样省空间,有时也更一目了然。
四、软件设计
根据上述硬件及框图设计,设计出软件流程图,如图6所示:
图10模式1和模式2软件流程图
其中长按住K2键即可实现模式的切换,在模式2下,自动变化的小信号经放大后到驱动的LED灯会闪烁,因为数值在不断变化,所以数码管显示也是在变化。
再按住K2键软件将又切换回模式1,在模式1下,其信号的增加或者减少只能通过按键来实现。
软件设计中还有一个中断程序,其主要是为了给ADC0809的CLK引脚提供时钟脉冲。
五、系统仿真与调试
5.1Proteus仿真
调试与仿真图如图11、图12所示:
图11整体仿真
图12仿真示波器显示
从仿真上示波器的显示来看,最后经放大后的波形上端有一点被截止了,但实际板子测得的波形没有失真,所以程度调整为适合实际情况。
5.2硬件调试
实物图做的是PCB板,PCB图和实物图如下图所示
图13实物图正面、反面
由于一开始画PCB时有个封装弄错了,导致线路有些地方有点小错误,然后加上ADC0809的引脚本身就很不好连线,所以从实物图的背面可以看到有几根飞线,在设计PCB是我也尽量避免飞线的出现,但板子较小,只有7CM*9CM,所以最终还是有了几根飞线。
在正面图中,下面左边的按键为K1键,右边按键为K2键。
图14PCB设计图
六、设计总结与心得体会
本次设计从选定方案到最终实施花了较长时间,因为涉及到的内容较多。
包括DA模拟,信号放大,信号滤波,AD转换等。
其中在滤波器的设计中花的时间最多,因为以前对这一块接触得较少,但通过这次课程设计后感觉自己收获不少,学会了怎样对模拟电路进行分析,也更加熟悉了仿真软件的作用,其实仿真如果用得好对学电路知识是有很大的帮助的。
比如,在滤波电路中,对电容的选取不太懂,这时可以利用仿真改变电容容值大小,然后观察对波形有什么影响,我觉得这一点对实际分析电路是很有帮助的,因为有时理论计算出电容,电阻值,但有时在实际电路中包含了各种噪声,这时滤波器中的电阻电容可能还得根据实际情况来调整。
本次课设虽然圆满完成,但这之中的过程还是很值得自己去思考,在设计PCB时,有些问题考虑得不周全,以至于后面实际板子做出来后才发现有东西要改,这样就造成了很多的麻烦,因此也就要浪费更多的调试时间。
所以在花原理图时对一些细节就要求考虑全面,要做到先发现错误,先改正错误。
并且做电路板是一件烦琐的事情,对这整个过程不能嫌麻烦,一旦有这种排斥心情是很难将这些事情做好的。
通过这次设计,我对数字电路设计中的逻辑关系等有了一定的认识,对以前学的数字电路又有了一定的新认识,温习了以前学的知识,就像人们常说的温故知新,但在设计的过程中,遇到了很多的问题,有一些知识都已经不太清楚了,但是通过一些资料又重新的温习了一下数字电路部分的内容。
在这次设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法我们更好的理解知识,所以在这里非常感谢帮助我的同学。
七、参考文献
【1】彭伟单片机C语言程序设计实训100例电子工业出版设2009
【2】阎石数字电子技术基础高等教育出版社2006
【3】李朝青单片机原理及接口技术北京航空航天大学出版2006
【4】张国雄测控电路-第4版机械工业出版社2011
附录一源程序
#include<
reg52.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineSCL_SETSCL=1//DA
#defineSCL_CLRSCL=0//DA
#defineSDA_SETSDA=1//DA
#defineSDA_CLRSDA=0//DA
#defineAddWr0x90//写数据地址
sbitK1=P1^4;
//按键增加送入DA的数字量
sbitK2=P1^5;
//按键减少送入DA的数字量
sbitSCL=P1^0;
//DA时钟脉冲
sbitSDA=P1^1;
//DA双向输入输出数据端
sbitST=P1^2;
//ADC0809各引脚
sbitEOC=P1^3;
sbitOE=P1^7;
sbitCLK=P2^0;
sbitbeep=P1^6;
//蜂鸣器
sbitP07=P0^7;
//数码管小数点
bitm