基于单片机的振动观测仪的设计与制作_毕业论文.doc_第1页
基于单片机的振动观测仪的设计与制作_毕业论文.doc_第2页
基于单片机的振动观测仪的设计与制作_毕业论文.doc_第3页
基于单片机的振动观测仪的设计与制作_毕业论文.doc_第4页
基于单片机的振动观测仪的设计与制作_毕业论文.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

海 南 师 范 大 学本 科 生 毕 业 论 文题目:基于单片机的振动观测仪设计与制作姓 名: 冯双喜 学 号: 200806302204 专 业:电子信息科学与技术年 级: 2008级 系 别:电子信息科学与技术完成日期: 2012年5月 指导教师: 邝雄(教授) i2本科生毕业论文(设计)独创性声明本人声明所呈交的毕业论文(设计)是本人在导师指导下进行的研究工作及取得的研究成果,除了文中特别加以标注和致谢的地方外,本论文中没有抄袭他人研究成果和伪造数据等行为 。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。论文(设计)作者签名: 日期: 本科生毕业论文(设计)使用授权声明海南师范大学有权保留并向国家有关部门或机构送交毕业论文(设计)的复印件和磁盘,允许毕业论文(设计)被查阅和借阅。本人授权海南师范大学可以将本毕业论文(设计)的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复印手段保存、汇编毕业论文(设计)。论文(设计)作者签名: 日期: 指 导 教 师 签 名: 日期: iv目 录前言1一设计要求11.1系统任务11.2 系统参数1二.设计思想22.1 设计思路22.2 系统原理2 2.3系统方案论证. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.4方案设计. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2三.系统的硬件设计与实现33.1 stc89c52单片机的功能介绍33.1.1 stc89c52引脚封装33.1.2 stc89c52主要性能参数53.2微压传感器sc0073模块工作原理53.2.1sc0073模块性能指标63.3模数转换模块(adc0804)63.3.1adc0804基本原理63.3.2 adc0804的规格及引脚图73.4复位电路83.5电源电路部分93.6主控电路系统图10四.系统软件设计104.1系统软件设计流程图114.2串口通信电路部分114.2.1串口通信工作原理114.3串口通信开发平台124.4系统调试13五收获与展望14六谢词 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14参考文献:14附录一:程序15附录二:pcb图19附录三:元器件清单20基于单片机的振动观测仪的设计与制作作者:冯双喜 指导教师:邝雄(海南师范大学物理与电子工程学院,海口,571158)摘 要:传感器测得振动的模拟信号经过模数转换(adc0804)模块转换成数字信号送入单片机,单片机再将数字信号用数码管显示出来;同时将数字信号通过串口在电脑上显示测得振动的波形,并用发光二极管闪烁显示波形的变化情况。关键词:传感器 ;电脑显示波形 ;单片机design and manufacture of vibroscope based on scmauthor: feng shuang xi tutor: kuang xiong (college of physics and electronic engineering, hainan normal university, haikou 571158, china) abstract : sensors that the vibration of the analog signal after modulus conversion (adc0804) module converted into digital signals into a single-chip microcomputer, scm and digital signal with a digital tube will be shown; and at the same time, to digital signal through a serial port on the computer in the vibration of the waveform display, and the flashing light emitting diode shows the change of the waveform.keywords: sensors; computer display waveform; single-chip microcomputer前言当今社会上,有越来越多振动现象产生,这些振动现象究竟哪些对人是有利的哪些对人是有害的呢!为了研究这些振动现象我用单片机进行了振动观测仪的设计与制作。一.设计要求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.1 stc89c52单片机的功能介绍3.1.1 stc89c52引脚封装stc89c52引脚功能介绍(其引脚图如图2所示):图2 52单片机引脚图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所示:表2 p3口的第二功能端口引脚第二功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2int0(外部中断0)p3.3int1(外部中断1)p3.4t0(定时/计数器0)p3.5t1(定时/计数器1)p3.6wr(外部数据存储器写通道)p3.7rd(外部数据存储器读通道)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.2 stc89c52主要性能参数1具有8k字节可擦写flash rom21000次擦写周期3全静态操作:0hz24mhz4三级加密程序存储器5256字节片内ram632个可编程i/o口线73个16位定时器/计数器86个中断源9低功耗空闲和掉电方式10可编程串行uart通道3.2 微压传感器sc0073模块工作原理传感器(sc0073)通过力敏元件采集波形振动的模拟量通过输出端接入模数转换芯片(adc0804)进行转换,其输出端要通过一个10k的上拉电阻接到高电平上,另一端接地。图4 sc0073模块工作原理图3.2.1 sc0073模块性能指标压力范围:1kpa灵敏度:0.2mv/pa非线性度:1%f.s频率响应:11000hz标准工作电压:3v(dc)扩充工作电压:1.5-6v(dc)标准负载电阻:10k扩充电阻:5k-20k3.3 模数转换模块(adc0804)3.3.1 adc0804基本原理adc0804是将模拟信号转换成数字信号(a/d转换器即模拟/数字转换器),信号输入端可以是转换器的输出或传感器。3.3.2 adc0804的规格及引脚图图5 adc0804引脚图时钟信号输入端。:内部时钟发生器的外接电阻端,振荡无条件(r,c)频率范围100khz1460khz,与端配合可由芯片自身产生时钟脉冲,其振荡频率是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或电路参考电压输入端。表3 adc0804转换功能十六进制二进制与满刻度的比率相对电压值vref=2.560伏高四位字节低四位字节高四位电压低四位电压f111115/1615/2564.8000.300e111014/1614/2564.4800.280d110113/1613/2564.1600.260c110012/1612/2563.8400.240.b101111/1611/2563.5200.220.a101010/1610/2563.2000.200910019/169/2562.8800.180810008/168/2562.5600.160701117/167/2562.2400.140.601106/166/2561.9200.120.501015/165/2561.6000.100401004/164/2561.2800.080300113/163/2560.9600.060200102/162/2560.6400.040.100011/161/2560.3200.020.00000003.4复位电路该系统采用外部复位电路采用按键手动复位 牛昱光.单片机原理与接口技术m.电子工业出版社,北京.2009(12)mcs-52单片机的上电加按键手动复位电路如下图7所示。当复位按键按下后,复位端通过的小电阻与+5v电源接通,电容迅速放电,使rst引脚为高电平;当复位按键弹起后,+5v电源通过大电阻电阻对电容重新充电,rst引脚端出现复位正脉冲。其持续时间取决于rc电路的时间常数。 图6 上电自动复位电路 图7 按键手动复位电路3.5电源电路部分稳压电源lm78052 黄智伟. 全国大学生电子设计竞赛训练教程m.电子工业出版社,北京.2006(04)lm7805是三端正电源稳压电路,它的封装形式为to-220.它有一系列固定的电压输出,应用非常广泛。每种类型由于内部电流的限制,以及过热保护,使它基本上不会损坏。如果能够提供足够的散热片,它们就能够提供大于1.5a的输出电流。虽然是按照固定电压值来设计的。但是当接入适当的外部器件后,就能获得各种不同的电压和电流。如下图8所示,、为滤波电容,可以稳压在5v,可以给单片机提供稳定的电源。图8 5v直流稳压电源3.6主控电路系统图本系统是用微压传感器(sc0073)模块采集波形振动的数据通过模数转换芯片(adc0804)进行转换,转换后的数据送入单片机的p2口,在经过单片机的p3口控制发光二极管通过串口在电脑上显示测得的波形,数码管显示测得波形的幅度。根据系统要求及各模块所实现功能,设计出主控电路系统如图3所示:图3 主控电路图四系统软件设计 4.1软件设计流程图 4.2串口通信电路部分4.2.1串口通信工作原理max232是把ttl电平从0v和5v转换到3v15v或-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被拉到低电平,这样便实现的双向转换。图9 rs232电平与ttl电平转换电路4.3串口通信开发平台在系统开发过中充分考虑到人性化的控制,因此基于visual basic 6.0设计了一套振动波形观测平台。vb包含了许多基于不同功能的控件,其中就包括串口通信控件,控件中包含基于串口通信的方法和事件类型。在平台软件设计中初始化串口是其中重要部分,串口的初始化包含串口号选择、接收缓冲区大小、接收数据类型、串口状态和是否清空缓冲区等等,如下是上位机串口初始化函数:private sub form_load()dim i as integer, j as integerkk = 0liu = 0rliu = 0 call init mscomm1.settings = 9600,n,8,1 mscomm1.commport = 3 设定串口,为1为comm1 mscomm1.inbuffersize = 8 mscomm1.outbuffersize = 2 if mscomm1.portopen = true then mscomm1.portopen = false 关串口 mscomm1.rthreshold = 4 mscomm1.sthreshold = 1 mscomm1.inputlen = 0 mscomm1.inputmode = 1 if mscomm1.portopen = false then mscomm1.portopen = true mscomm1.inbuffercount = 0 清空接收缓冲区text1.text = 0end sub在pc机与下位机设备通信过程中波特率设置为9600,串口号为3,缓冲区大小设置为8个字节。当串口有数据传输到pc机时,会引发mscomm1_oncomm()事件,在事件中主要负责将数据存入缓冲区,并且将数据调整为符合显示界面要求的值。然后根据前后值利用line方法划线。如下是事件触发函数:private sub mscomm1_oncomm() dim rec as integer dim n as integer intinputlen = mscomm1.inbuffercount select case mscomm1.commevent case comevreceive bytinput = mscomm1.input for n = 0 to intinputlen - 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 if kk = 10000 then kk = 0 cls call init end if next n mscomm1.inbuffercount = 0 清空接收缓冲区 end selectend sub4.4系统调试调试前首先检查电路连线是否正确,再检查元器件的安装情况,检查元器件引脚之间有无短路和虚焊现象,尤其是电源和地脚,电解电容、发光二极管、电源“+”、“-”极不要接反。把经过准确测量的电源接入电路。观察有无异常现象,包括有无元器件发热、冒烟有异味、电源是否有短路现象等;如有出现上术象发生,应立刻断开电路电源,检查电路故障并根据检查结果对参数进行修正。经多次调试得到了想要达到的效果,在电脑上显示所测得的振动波形,在数码管上显示测得振动的波形的振幅。 图10 系统调试图五收获与展望六.谢词历时将近两个月的时间终于将这篇论文写完,在写论文和制作实物过程中遇到了很多的困难和障碍,都在同学和老师的帮助下度过了。尤其要强烈感谢我的论文指导老师邝雄老师,他对我进行了无私的指导和帮助,不厌其烦的帮助我进行论文的修正和改进。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最诚挚的谢意。感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多你问素材,还在论文的撰写和排版等过程中提供热情的帮助。由于我的学术水平有限,所写论文难免有不足之处,恳请各位老师和学友批评和指正!参考文献:1 牛昱光.单片机原理与接口技术m.北京:电子工业出版社2 郭天祥.51单片机c语言教程入门提高开发拓展全攻略m.北京.电子工业出版社,2009-63 张常年.国外电子元器件.北方工业大学工学院j.北京,2002-2,(2):20-23.4 杨素行.模拟电子技术基础简明教程. 北京.高等教育出版社,2006-55 余孟尝.数字电子技术基础简明教程.北京.高等教育出版社,2006-76 黄智伟.全国大学生电子设计竞赛训练教程.电子工业出版社.2006-6(4)附录一:程序1.开发平台程序dim liu as doubledim rliu as doubledim kk as integerprivate sub command1_click()if mscomm1.portopen = true then mscomm1.portopen = falseendend subprivate sub form_load()dim i as integer, j as integerkk = 0liu = 0rliu = 0 call init mscomm1.settings = 9600,n,8,1 mscomm1.commport = 4 设定串口,为1为comm1 mscomm1.inbuffersize = 8 mscomm1.outbuffersize = 2 if mscomm1.portopen = true then mscomm1.portopen = false 关串口 mscomm1.rthreshold = 4 mscomm1.sthreshold = 1 mscomm1.inputlen = 0 mscomm1.inputmode = 1 if mscomm1.portopen = false then mscomm1.portopen = true mscomm1.inbuffercount = 0 清空接收缓冲区text1.text = 0end subprivate sub mscomm1_oncomm() dim rec as integer dim n as integer intinputlen = mscomm1.inbuffercount select case mscomm1.commevent case comevreceive bytinput = mscomm1.input for n = 0 to intinputlen - 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 if kk = 10000 then kk = 0 cls call init end if next n mscomm1.inbuffercount = 0 清空接收缓冲区 end selectend subprivate function init()form1.scale (0, 6000)-(10000, -1000)form1.drawwidth = 1form1.drawstyle = 3for j = -500 to 5000 step 500form1.line (0, j)-(10000, j), rgb(0, 255, 255)nextcurrentx = 0: currenty = 0: print 0currentx = 0: currenty = 5000: print 振动极限form1.drawwidth = 2form1.drawstyle = 0form1.line (0, 5000)-(10000, 5000), rgb(255, 10, 0)form1.line (0, 0)-(10000, 0), rgb(255, 10, 0)end function数码管显示程序#include#include #define uint unsigned int#define uchar unsigned charsbit ad

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论