基于单片机的振动观测仪的设计与制作学士学位论文.docx
《基于单片机的振动观测仪的设计与制作学士学位论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的振动观测仪的设计与制作学士学位论文.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机的振动观测仪的设计与制作学士学位论文
海南师范大学
本科生毕业论文
题目:
基于单片机的振动观测仪设计与制作
姓名:
冯双喜
学号:
200806302204
专业:
电子信息科学与技术
年级:
2008级
系别:
电子信息科学与技术
完成日期:
2012年5月
指导教师:
邝雄(教授)
本科生毕业论文(设计)独创性声明
本人声明所呈交的毕业论文(设计)是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为。
与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。
论文(设计)作者签名:
日期:
本科生毕业论文(设计)使用授权声明
海南师范大学有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。
本人授权海南师范大学可以将本毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文(设计)。
论文(设计)作者签名:
日期:
指导教师签名:
日期:
目录
前言1
一.设计要求1
1.1系统任务1
1.2系统参数1
二.设计思想2
2.1设计思路2
2.2系统原理2
2.3系统方案论证...................................2
2.4方案设计.......................................2
三.系统的硬件设计与实现3
3.1STC89C52单片机的功能介绍3
3.1.1STC89C52引脚封装3
3.1.2STC89C52主要性能参数5
3.2微压传感器SC0073模块工作原理5
3.2.1SC0073模块性能指标6
3.3模数转换模块(ADC0804)6
3.3.1ADC0804基本原理6
3.3.2ADC0804的规格及引脚图7
3.4复位电路8
3.5电源电路部分9
3.6主控电路系统图10
四.系统软件设计10
4.1系统软件设计流程图11
4.2串口通信电路部分11
4.2.1串口通信工作原理11
4.3串口通信开发平台12
4.4系统调试13
五.收获与展望14
六.谢词............................................14
参考文献:
14
附录一:
程序15
附录二:
PCB图19
附录三:
元器件清单20
基于单片机的振动观测仪的设计与制作
作者:
冯双喜指导教师:
邝雄
(海南师范大学物理与电子工程学院,海口,571158)
摘要:
传感器测得振动的模拟信号经过模数转换(ADC0804)模块转换成数字信号送入单片机,单片机再将数字信号用数码管显示出来;同时将数字信号通过串口在电脑上显示测得振动的波形,并用发光二极管闪烁显示波形的变化情况。
关键词:
传感器;电脑显示波形;单片机
DesignandManufactureofvibroscopeBasedonSCM
Author:
FengShuangXiTutor:
KuangXiong
(CollegeofPhysicsandElectronicEngineering,HainanNormalUniversity,Haikou571158,China)
Abstract:
sensorsthatthevibrationoftheanalogsignalaftermodulusconversion(ADC0804)moduleconvertedintodigitalsignalsintoasingle-chipmicrocomputer,SCManddigitalsignalwithadigitaltubewillbeshown;Andatthesametime,todigitalsignalthroughaserialportonthecomputerinthevibrationofthewaveformdisplay,andtheflashinglightemittingdiodeshowsthechangeofthewaveform.
Keywords:
sensors;Computerdisplaywaveform;Single-chipmicrocomputer
前言
当今社会上,有越来越多振动现象产生,这些振动现象究竟哪些对人是有利的哪些对人是有害的呢!
为了研究这些振动现象我用单片机进行了振动观测仪的设计与制作。
一.设计要求
1.1任务:
观测振动的波形,通过振动的波形观测和分析波形的变化趋势和振动强度,同时将数据进行保存,便于以后的分析和对比观测。
1.2参数:
主要包含振动的频率和振幅,振幅主要反映的是波动的强度,频率
主要是反映振动的速率。
二.设计思想
2.1设计思路
本电路分三条显示测得的波形,一是测得的波形用发光二极管的闪烁显示波形的变化,二是测得的波形变化通过数码管显示波形的变化情况,三是将测得的波形通过串口接入电脑上在电脑上显示测得的波形图。
2.2系统原理
本系统是用STC89C52单片机来控制的模块化的设计,通过传感器模块SC0073采集测得的波形振动数据的模拟量经过ADC0804模数转换将模拟量转换成数字量,将数字量送入单片机,在单片机的控制下通过发光二极管、数码管、电脑同时通过不同的形式显示测得的振动波形。
2.3系统方案论证
方案一:
本系统是利用STC89C52为控制核心的波形振动观测仪,通过采用HKG-07A传感器主要用来检测脉搏跳动引起指尖内微血容积发生的变化,预处理时间长,受温度、湿度的影响导致稳定性差。
方案二:
本系统是利用STC89C52为控制核心的波形振动观测仪,通过采用SC0073动态微压传感器检测振动的幅度,该传感器对具有灵敏度高,抗过载及冲击波能力强,抗干扰性好、操作简便、体积小、重量轻、成本低等特点,广泛应用于医疗、工业控制、交通、安全防卫等领域。
所以采用方案二。
2.4系统方案设计
本系统振动观测仪是一种新型的自动观测振动现象的产生,并用数码管显示振动的幅度。
系统总体构成包括SC0073传感器模块、AD转换模块、复位电路、电源电路、显示模块等五大模块。
总体框图如图1所示。
图1系统总体框图
三.系统的硬件设计与实现
3.1STC89C52单片机的功能介绍
3.1.1STC89C52引脚封装
STC89C52引脚功能介绍(其引脚图如图2所示):
图252单片机引脚图
Vcc(40):
电源电压GND(20):
接地
P0口(32-39):
P0口是一个8位双向I/O接口,也即地址/数据总线复用口。
作为输出口用时,每位吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。
在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用。
P1口(1-8):
P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口P0写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。
作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口(21-28):
P2是一个带有内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口P2写“1”通过内部的上拉电阻把端口拉到高电平时,此时可作输入口。
作为输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。
P3口(10-17):
P3是一组带有内部上拉电阻的8位双向I/O口,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口P3写“1”时,它们被内部上拉电阻拉高并可作为输入端口,此时,被外部拉低的P3口将用上拉电阻输出电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表2所示:
表2P3口的第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0)
P3.3
INT1(外部中断1)
P3.4
T0(定时/计数器0)
P3.5
T1(定时/计数器1)
P3.6
WR(外部数据存储器写通道)
P3.7
RD(外部数据存储器读通道)
RESET(9):
复位信号输入端。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
ALE/PROG(30):
地址锁存有效信号输出端。
当访问片外程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的,要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
PSEN(29):
程序存储允许输出端。
是片外程序存储器的读选通信号,当STC89C52由外部程序存储器取指令(或数据)时,每个周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
EA/VPP(31):
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),需注意的是:
如果加密位LB1被编程,复位时内部会锁EA端状态。
如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。
Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
XTAL1(19):
振荡器反相放大器的内部时钟发生器的输入端。
XTAL2(18):
振荡器反相放大器的输出端。
通过XTAL1、XTAL2外接晶振后,即可构成自激振荡器,驱动内部时钟发生器向主机提供时钟信号。
3.1.2STC89C52主要性能参数
1.具有8k字节可擦写FlashROM
2.1000次擦写周期
3.全静态操作:
0Hz—24MHz
4.三级加密程序存储器
5.256字节片内RAM
6.32个可编程I/O口线
7.3个16位定时器/计数器
8.6个中断源
9.低功耗空闲和掉电方式
10.可编程串行UART通道
3.2微压传感器SC0073模块工作原理
传感器(SC0073)通过力敏元件采集波形振动的模拟量通过输出端接入模数转换芯片(ADC0804)进行转换,其输出端要通过一个10K的上拉电阻接到高电平上,另一端接地。
图4SC0073模块工作原理图
3.2.1SC0073模块性能指标
压力范围:
≤1Kpa
灵敏度:
≥0.2mv/pa
非线性度:
≤1%F.S
频率响应:
1—1000HZ
标准工作电压:
3V(DC)
扩充工作电压:
1.5-6V(DC)
标准负载电阻:
10K
扩充电阻:
5K-20K
3.3模数转换模块(ADC0804)
3.3.1ADC0804基本原理
ADC0804是将模拟信号转换成数字信号(A/D转换器即模拟/数字转换器),信号输入端可以是转换器的输出或传感器。
3.3.2ADC0804的规格及引脚图
图5ADC0804引脚图
时钟信号输入端。
:
内部时钟发生器的外接电阻端,振荡无条件(R,C)频率范围100KHZ—1460KHZ,与
端配合可由芯片自身产生时钟脉冲,其振荡频率是1/(1.1RC)。
片选信号输入端,低电平有效,一旦
有效,表明A/D转换器被选中,可启动工作。
A/D转换结束信号,低电平表示本次转换已完成。
外部读取转换转换后的结果控制信号的输出端。
当
为L0时,转换后的数据才会输出,当
为HI时,DB0-DB7处于高阻抗状态。
启动转换器的控制输入端,既是ADC的转换开始(
=0时),当
由HI变为L0时,转换器被清除;当
回到HI时,开始转换。
DB0-DB7:
具有三态特性的8位数字信号输出端。
VIN(+)VIN(-):
差动模拟电压输入端,输入单端正电压时,VIN(-)应接地;当为差动输入时,直接加入VIN(+)与VIN(-)。
AGND模拟信号接地端。
DGND数字信号接地端。
VREF:
参考电压输入端,决定量化单位。
VCC:
电源电压5V或电路参考电压输入端。
表3ADC0804转换功能
十六进制
二进制
与满刻度的比率
相对电压值VREF=2.560伏
高四位字节
低四位字节
高四位电压
低四位电压
F
1111
15/16
15/256
4.800
0.300
E
1110
14/16
14/256
4.480
0.280
D
1101
13/16
13/256
4.160
0.260
C
1100
12/16
12/256
3.840
0.240.
B
1011
11/16
11/256
3.520
0.220.
A
1010
10/16
10/256
3.200
0.200
9
1001
9/16
9/256
2.880
0.180
8
1000
8/16
8/256
2.560
0.160
7
0111
7/16
7/256
2.240
0.140.
6
0110
6/16
6/256
1.920
0.120.
5
0101
5/16
5/256
1.600
0.100
4
0100
4/16
4/256
1.280
0.080
3
0011
3/16
3/256
0.960
0.060
2
0010
2/16
2/256
0.640
0.040.
1
0001
1/16
1/256
0.320
0.020.
0
0000
0
0
3.4复位电路
该系统采用外部复位电路采用按键手动复位[]
MCS-52单片机的上电加按键手动复位电路如下图7所示。
当复位按键按下后,复位端通过
的小电阻与+5v电源接通,电容迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过大电阻
电阻对
电容重新充电,RST引脚端出现复位正脉冲。
其持续时间取决于RC电路的时间常数。
图6上电自动复位电路图7按键手动复位电路
3.5电源电路部分
稳压电源LM7805[]
LM7805是三端正电源稳压电路,它的封装形式为To-220.它有一系列固定的电压输出,应用非常广泛。
每种类型由于内部电流的限制,以及过热保护,使它基本上不会损坏。
如果能够提供足够的散热片,它们就能够提供大于1.5A的输出电流。
虽然是按照固定电压值来设计的。
但是当接入适当的外部器件后,就能获得各种不同的电压和电流。
如下图8所示,
、
为滤波电容,
可以稳压在5V,可以给单片机提供稳定的电源。
图85V直流稳压电源
3.6主控电路系统图
本系统是用微压传感器(SC0073)模块采集波形振动的数据通过模数转换芯片(ADC0804)进行转换,转换后的数据送入单片机的P2口,在经过单片机的P3口控制发光二极管通过串口在电脑上显示测得的波形,数码管显示测得波形的幅度。
根据系统要求及各模块所实现功能,设计出主控电路系统如图3所示:
图3主控电路图
四.系统软件设计
4.1软件设计流程图
4.2串口通信电路部分
4.2.1串口通信工作原理
MAX232是把TTL电平从0V和5V转换到3V~15V或-3V~-15V之间。
原理图如下图9所示,首先TTL电平TXD发送数据时,若发送低电平0,这时
导通,PCRXD由空闲时的低电平变高电平(如PC用中断接收的话会产生中断),满足条件。
发送高电平1时,TXD为高电平,
截止,由于PCRXD平时是-3V~-15V,通过
和
将其拉低PCRXD至-3~-15V,此时计算机接收到的就是1。
下面再反过来,PC发送信号,由单片机来接收信号。
当PCTXD为低电平-3V~-15V时,单片机RXD被
拉到5V高电平;当PCTXD变高时,
导通,RXD被
拉到低电平,这样便实现的双向转换。
图9RS232电平与TTL电平转换电路
4.3串口通信开发平台
在系统开发过中充分考虑到人性化的控制,因此基于VisualBasic6.0设计了一套振动波形观测平台。
VB包含了许多基于不同功能的控件,其中就包括串口通信控件,控件中包含基于串口通信的方法和事件类型。
在平台软件设计中初始化串口是其中重要部分,串口的初始化包含串口号选择、接收缓冲区大小、接收数据类型、串口状态和是否清空缓冲区等等,
如下是上位机串口初始化函数:
PrivateSubForm_Load()
DimiAsInteger,jAsInteger
kk=0
liu=0
rliu=0
Callinit
MSComm1.Settings="9600,N,8,1"
MSComm1.CommPort=3'设定串口,为1为comm1
MSComm1.InBufferSize=8
MSComm1.OutBufferSize=2
IfMSComm1.PortOpen=TrueThenMSComm1.PortOpen=False'关串口
MSComm1.RThreshold=4
MSComm1.SThreshold=1'
MSComm1.InputLen=0
MSComm1.InputMode=1
IfMSComm1.PortOpen=FalseThenMSComm1.PortOpen=True
MSComm1.InBufferCount=0'清空接收缓冲区
'Text1.Text=0
EndSub
在PC机与下位机设备通信过程中波特率设置为9600,串口号为3,缓冲区大小设置为8个字节。
当串口有数据传输到PC机时,会引发MSComm1_OnComm()事件,在事件中主要负责将数据存入缓冲区,并且将数据调整为符合显示界面要求的值。
然后根据前后值利用Line方法划线。
如下是事件触发函数:
PrivateSubMSComm1_OnComm()
DimrecAsInteger
DimnAsInteger
intInputLen=MSComm1.InBufferCount
SelectCaseMSComm1.CommEvent
CasecomEvReceive
bytInput=MSComm1.Input
Forn=0TointInputLen-1
'Text1.Text=bytInput(n)
rec=bytInput(n)
liu=rec*19.6
Form1.Line(kk-20,rliu)-(kk,liu),RGB(255,255,255)
rliu=liu
kk=kk+20
Ifkk>=10000Then
kk=0
Cls
Callinit
EndIf
Nextn
MSComm1.InBufferCount=0'清空接收缓冲区
EndSelect
EndSub
4.4系统调试
调试前首先检查电路连线是否正确,再检查元器件的安装情况,检查元器件引脚之间有无短路和虚焊现象,尤其是电源和地脚,电解电容、发光二极管、电源“+”、“-”极不要接反。
把经过准确测量的电源接入电路。
观察有无异常现象,包括有无元器件发热、冒烟有异味、电源是否有短路现象等;如有出现上术象发生,应立刻断开电路电源,检查电路故障并根据检查结果对参数进行修正。
经多次调试得到了想要达到的效果,在电脑上显示所测得的振动波形,在数码管上显示测得振动的波形的振幅。
图10系统调试图
五.收获与展望
六.谢词
历时将近两个月的时间终于将这篇论文写完,在写论文和制作实物过程中遇到了很多的困难和障碍,都在同学和老师的帮助下度过了。
尤其要强烈感谢我的论文指导老师邝雄老师,他对我进行了无私的指导和帮助,不厌其烦的帮助我进行论文的修正和改进。
另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。
在此向帮助和指导过我的各位老师表示最诚挚的谢意。
感谢这篇论文所涉及到的各位学者。
本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。
感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版等过程中提供热情的帮助。
由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!
参考文献:
[1]牛昱光.单片机原理与接口技术[M].北京:
电子工业出版社
[2]郭天祥.51单片机C语言教程入门提高开发拓展全攻略[M].北京.电子工业出版社,2009-6
[3]张常年.国外电子元器件.北方工业大学工学院[J].北京,2002-2,
(2):
20-23.
[4]杨素行.模拟电子技术基础简明教程.北京.高等教育出版社,2006-5
[5]余孟尝.数字电子技术基础简明教程.北京.高等教育出版社,2006-7
[6]黄智伟.全国大学生电子设计竞赛训练教程.电子工业出版社.2006-6(4)
附录一:
程序
1.开发平台程序
DimliuAsDouble
DimrliuAsDouble
DimkkAsInteger
PrivateSubCommand1_Click()
IfMSComm1.PortOpen=TrueThenMSComm1.PortOpen=False
End
EndSub
PrivateSubForm_Load()
DimiAsInteger,jAsInteger
kk=0
liu=0
rliu=0
Callinit
MSComm1.Settings="9600,N,8,1"
MSComm1.CommPort=4'设定串口,为1为comm1
MSComm1.InBufferSize=8
MSComm1.OutBufferSize=2
IfMSComm1.PortOpen=TrueThenM