邵文文的毕业论文_第1页
邵文文的毕业论文_第2页
邵文文的毕业论文_第3页
邵文文的毕业论文_第4页
邵文文的毕业论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

论文题目:单摆实验自动计时器的设计制作 专 业:电子科学与技术0602班学 生:邵 文 文 签名: 指导老师:李 旭 虹 签名: 摘 要本文介绍了一种新颖的智能单摆试验仪的设计方法,它是基于STC89C52为核心,利用液晶显示技术输出显示摆长,周期和重力加速度。加1,减1和输入按键可以自动控制单摆经平衡位置的次数。单摆小球摆至最低点挡住激光,光敏电阻的阻值显著差异使得由NE555连接的施密特触发器输出的电平发生变化,并以此脉冲信号的上升沿控制单片机工作,利用20ms定时中断计数可以算出单摆摆动的总时间,从而可以求出周期T和重力加速度g。该方法具有测量快,精度高,成本低,体积小,使用方便等优点,提高了单摆实验质量。【关键词】单摆实验;单片机;液晶显示【论文类型】应用型Title:The design of automatic timer in pendulum experimentMajor:Electronic science and technology Name:Shao wenwen Signature: Supervisor:Li Xuhong Signature: ABSTRACTThis paper introduces a novel designing method of intelligent simple pendulum experimental apparatus, which is based STC89C52 as the core, outputs and displays pendulum length, period and acceleration of gravity by using LCD display technology. Plus 1, minus 1 and enter buttons can control the number of simple pendulum when passing the Equilibrium position. The small simple pendulum ball swings to the lowest point and blocks the laser, a significant difference of Photosensitive resistors resistance makes the voltage level which is outputted from the Schmitt trigger linked by NE555 changes, and use the rising edge of pulse signal to control MCU, counting 20ms timer interrupt can be calculated the total time of the pendulum swing, So they can find the period T and the acceleration of gravity g. this method has many advantages of fast measuring, high precision, low cost, small volume, convenient use, etc. It can improve the quality of the pendulum experiment.【Key words】Simple pendulum experiment;MCU;LCD display【Type of Thesis】Application type前 言单摆实验仪已广泛应用于工业测量,中大学的实验教学等领域。作为一种精密的测量仪器,单摆试验仪随着电子技术的发展也在不断的完善,现今市场上有各种各样设计方法制成的单摆试验仪,与传统的单摆试验仪相比,新型的实验单摆具有非常突出的优点。传统的实验单摆在精度和操作上都存在诸多问题,由于采用人工计时计数的方法测周期,这显然会有很大的误差,而且操作很不方便,不能满足现代测量和教学要求。由于现行的实验单摆仪实现了自动化控制,所以在测量误差上有了很明显的改善,而且现代显示技术非常的成熟,特别是液晶显示技术,使得实验结果更直观,功能也更多。该课题的设计要求是:1) 最多可记录9个摆动周期;2) 最大计时99.9秒;3) 分辨率为0.1秒。由于市场上电子元器件的品种多样,利用电子技术设计实验单摆仪的方法多种多样,但要实现自动化控制,其基本思路是不变的,首先要采集单摆摆动到某一固定位置的电平信号,经过多次往复可以计算出平均周期,所以必须要有一个采集信号电路。另外的一个主要模块就是对信号的处理并输出显示,本课题也是紧扣这两条主线而提出的一种设计方法。本文介绍的设计方法是基于STC89C52单片机的控制为核心,利用液晶显示技术输出显示,其显示输出包括摆长,周期,重力加速度。在信号采集方面,也用了非常巧妙而且电路搭接简单的方法,它是利用了光敏电阻接收激光信号的方法,因为光敏电阻的反应灵敏,使得最后经脉冲整形电路输出的脉冲信号有非常好的效果。相比于其他的利用单片机设计的实验单摆仪,还有一点也是非常新颖的,市场上流行的基于单片机控制的实验单摆仪采用的基本上是外部中断控制,而本文应用了单片机采集输入至P3.0口的脉冲上升沿来实现计时计数的。在程序设计方面,电路更简洁,结构更简单,而且精度也得到了提高。本课题属于应用型,所以不仅需要一定的理论基础,而且在实践过程中也需要一些应用经验,本文涉及到的理论基础课程包括模拟数字电路,单片机原理与接口技术,C语言程序设计,仿真采用proteus软件,这些课程都是电子技术专业的基础课,也是作为一名电子技术专业学生必须懂得的基础课程。通过这次的毕业设计,加深了这些课程的理解,而且也将枯燥的理论真正融入到自己的大脑。在焊接电路过程中,也遇到了很多的小问题,但最后能通过理论的推敲一一化解,体会最深的就是完成一项工程,需要条理清晰,而且对整个系统也要有一定的把握。目 录1 单摆仪测量原理及设计方案11.1 测量原理11.2设计方案11.2.1信号产生电路模块设计21.2.2 信号输入单片机方式31.2.3显示输出41.3总设计框图和电路图62 硬件设计及工作原理72.15V直流电源的组成72.2信号产生92.2.1 激光产生及参数分析92.2.2 光接收及信号波形整形102.3 STC89C52单片机组成及外部扩展112.3.1 STC89C52单片机的结构112.3.2STC89C52单片机最小系统组成112.3.3 时钟电路和复位电路122.3.4 液晶显示扩展技术132.3.5 单片机与PC机间的通信152.4Proteus软件仿真162.4.1 Proteus ISIS简介162.4.2 Proteus运行流程162.4.3系统设计和调试 163 程序设计193.1C与8051193.2设计思路及流程图203.3源程序设计224毕业设计总结27致谢附录参考文献35单摆实验自动计时器的设计制作1.单摆仪测量原理及设计方案1.1 测量原理由物理学知识可知,单摆在摆动角小于5度时的运动可近似认为是简谐运动,且其运动周期T和重力加速度g之间有如下关系: (1-1)因此可以通过测量单摆简谐运动的周期T,得到其频率: (1-2)给出摆长可以测得重力加速度: (1-3)根据以上物理学知识,可知单摆实验仪的关键在于能够准确测量单摆运动的周期或频率,单摆摆长一般处于0.1m-1m之间,由式(1-1)计算可得: 可知单摆运动的频率较低,对于高速运行的单片机来说,测得高频信号可以直接测量其频率,而对于低频信号采用测量周期的办法可以减小测量误差。1.2 设计方案利用单片机设计的单摆实验仪其基本电路模块可已分成信号产生模块,信号处理模块,单片机控制模块和显示模块四部分组成。其系统组成如图1-1所示。图1-11.2.1 信号产生电路模块设计方案一:利用红外探测技术可以实现单摆摆动周期的监测,其组成电路由红外发射和接收两大部分组成。1) 红外线发射电路。一般是用LM555定时器IC接成无稳定的多谐振荡模式,工作频率由接入到2,6两端的电阻和电容决定。2) 红外线接收电路。由于红外接收发送波长需匹配,所以在接收过程中提取发射的红外线波长,电路一般包括前置放大,限幅放大器,带通滤波器,检波器,积分器和整形电路。CX20106是红外接收专用集成电路芯片,图1-2是该芯片控制的一种红外接收电路。图 1-2方案二:利用光敏器件在光照和避光的情况下特性相差很大的特点,同样可以检测运动物体的移动。光敏器件可以是光敏电阻,光敏三极管,光敏二极管等,光照可以是普通光,也可以是激光,但为了得到很好的亮暗差异,使用激光效果最好。较之方案一,方案二的电路结构简单,易实现,成本低.图1-3是本文所采用的电路,它是利用光敏电阻接收激光信号,单摆放置于激光棒与光敏电阻之间,当单摆经过最低点时,振子小球挡住光信号,使得光敏电阻阻值很大,在接收电路中,R1的阻值远远小于光敏电阻的暗阻,所以LM555的2,6两端为低电平,经整形后3端输出高电平,单摆来回摆动时,就可以形成一连串的脉冲信号。图 1-31.2.2 信号输入单片机方式方案一:输入单片机的脉冲信号,可以作为外部中断信号,STC89C52单片机有6个中断源,包括三个定时/计数器溢出中断,两个外部中断和一个串行口输入中断。在本课题中,若采用中断控制,其基本思路可以是这样实现,当单摆摆到最低点时,有信号产生并整形后得到的高电平经反相器接入中断0或是中断1,单片机响应中断,并启动定时/计数器中断,因为要实现自动计数周期和总时间,所以可以设计两个定时中断,也可以在程序里面先设定一个摆动周期数,利用循环减1最后为0而解除定时器的工作。方案二:利用脉冲信号的上升下降沿控制单片机工作是一种很常见的思路,首先是避免了外部中断和定时中断嵌套的问题,所以易实现,思路也较易理解,当小球经过最低点时,信号由低电平变为高电平,单片机采集到该上升沿信号,控制定时器工作,当小球再次经过最低点时,控制摆动次数的循环程序运行,此时定时器一直在连续工作,并将溢出的次数赋给一全局变量,当最后的一次上升沿采集到时,定时器停止工作,最后是控制液晶显示输出。方案二同方案一相比,程序结构简单,易编写,也容易实现精确计算,方案一需用到中断嵌套和中断不能返回值的问题,所以本课题先前采用方案一,但最后还是选用了二方案。1.2.3 显示输出在单片机显示系统中,显示输出是很关键的部件,是构成人机对话的一种基本方式。显示器显示控制过程和结果,有两种方式,一种是LED发光器件,还有一种是LCD液晶显示。方案一: LED发光器件一般常用的有2类:数码管和点阵。数码管分共阴和共阳两种,一般8字型,分为A B C D E F G P段,其中P位小数点,数码管常用的有10根管脚(单位),每段一根管脚,另外两根管脚为公共端,2根是通的。点阵常用的为8*8,以前还有5*8(现在不大用了),都是单管芯,分(行)共阴和(行)共阳,一般都用5v供电。8*8点阵为16根管脚(单色, 也有24根的, 可能是作废的双色点阵或者为了能在同一种线路板上实现单色双色都可用而设计的, 也比较常见)8根行8根绿,双色为24根管脚, 8根行, 8根列红, 8根列绿。LED发光器件的显示基本原理分为静态(只有数码管能实现)和动态,静态的比较好实现,动态显示是运用视觉惰性而设计的快速扫描数码管。下图5是一种数码管于单片机的连接电路,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电路,数码管采用共阳型,使用PNP型三极管作为片选端的驱动,所有三极管的发射极连在一起,接到正电源端,它们的基极则分别连P2.0P2.5,当P2.0P2.5中某引脚输是低电平时,三极管导通,给相应的数码管供电,该位数码管点亮哪些笔段,则取决于笔段引脚是高或低电平。图1-4中看出,所有6位数码管的笔段连在一起,通过限流电阻后接到P0口,因此,哪些笔段亮就取决于P0口的8根线的状态。图1-4方案二:液晶显示的原理是利用液晶的物理性质,即通电时导通,排列变得有秩序,使光线容易通过;不通电时排列混乱,阻止光线通过的原理制成的。液晶显示器的驱动方式一般有静态和分割驱动两种。本课题采用的是液晶显示,型号为TH1602A,具体工作原理会在下一章描述。其电路如图1-5所示图 1-5单片机系统中应用晶液显示器作为输出器件有以下几个优点:1)显示质量高。由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。2)数字式接口。液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。3)质量小,重量轻。液晶显示器通过显示屏上的电极控制液晶分子状态来达到显示的目的,在重量上比相同显示面积的传统显示器要轻得多。4)功耗低。相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。1.3 总设计框图和电路图根据以上分析,按照课题的要求,可以将整个方案分成两大部分:硬件和软件。硬件主要是以单片机为核心,根据程序设计思路,将信号产生电路接入到单片机信号输入口(P3.0),加1,减1和输入开关控制设置的周期数,显示部分输出用P1口做数据输出接液晶显示,P2.4,P2.5,P2.6用来控制液晶显示器的控制信号,另外由于工作电压都为5V,所以将市电变压整流滤波稳压后可以直接供给这几个模块式使用。所以该方案的硬件框图如图1-6所示,图1-7为总的电路图(由于在proteus仿真软件中没有光敏电阻和激光电筒,所以仿真时用光耦器件代替)。软件部分主要是将采集信号计数,并计时,待计数完成时,停止计时,利用计时溢出次数算出总时间,然后除于摆动周期,根据,便可以算出重力加速度,最后利用液晶控制信号的控制,输出摆长,周期,和重力加速度。其显示格式为第一行显示L= ,T= ,第二行显示g= 。图 1-6图 1-72 硬件设计及工作原理2.1 5V直流电源的组成 小功率稳压电源是由电源变压器、整流、滤波和稳压电路等四部分组成的。其框图如图2-1所示。 图 2-1 直流稳压电源组成框图电源变压器:将交流电网220V交流电压变成所需的交流电压。变压过程通常由变压器来完成,如收录机、VCD、黑白电视机等设备的电源,大都是用变压器来降低电网电压的。整流器:将交流电压变成脉动的直流电压。整流电路通常有半波整流电路、全波整流、桥式整流电路等,桥式整较为常用。滤波器:将整流所得的脉动直流电(大小发生规律性变化)中的交流成分滤除,常用的滤波电路有电容滤波、电感滤波及阻容滤波等电路。稳压器:滤波后的电压还会随电网电压波动(一般有左右的波动)和随负载和温度的变化而变化。稳压电路的作用是克服电网电压波动、负载和温度变化时所引起的输出电压的变化,维持输出直流电压稳定。直流稳压电源的种类很多,常见的主要有以下四类:第一类是稳压二极管稳压电源,它的特点是电路结构简单,但功率较小,稳压精度低;第二类是晶体管串联调整式稳压电源,它的主要特点是电路结构比较简单,工作可靠,功率较大,稳压精度高,无电磁干扰,但效率低;第三类是集成稳压器,它的特点是体积小,可靠性高以及温度特性好,而且使便、价格便宜。第四类是开关式稳压电源,它的主要特点是: 效率高,温升低,电路便于集成化,但电路较复杂,并有高频干扰存在。当负载要求功率较大且效率高时,常采用开关型稳压电源。图2-2为该课题所用电源,最后输出为5V直流。图 2-22.2 信号产生2.2.1 激光产生及参数分析激光电筒价廉物美,有极高的性价比,主要特点是聚光性能优良,射距达1200m1500m,肉眼观察,数百米外光点仍然很小,故广泛用于教学、导游、娱乐。经试验,可作远距离的防护警戒及遥控传输数据。如图2-3所示为激光电筒原理图,器件均为贴片元件,故体积很小,但因激光功率较大,不可对着人眼直射。图 2-3下图2-4为650nm镭射激光定位指示器实物图,其参数如下:波长:650nm 型号:FU650L5-C9供电电压:DC 2.8-5.0(V) 发散角:0.5-2.0mrad运转方式:连续激光器 光斑模式:一字线状工作电流:10-25mA(与输出功率大小成正比)激励方式:电激励式激光器图 2-4本课题所设计的激光产生电路电源为5V,所以为了保护激光电筒,串联一个较小的电阻。2.2.2 光接收及信号波形整形图1-3是光电控制电路,由LM555电路为核心组成,当光敏电阻有激光照射时电阻变小(经测得在总电路中亮阻为800-900,暗组为700k左右),触发端2,6两端上升4V以上,于是3脚输出低电平,当激光被遮档切断,光敏电阻阻值变大,使得远远大于9.1k,2,6管脚变为低电平,3脚输出高电平。该图中的核心为LM555(内部结构如图2-5所示),所接成的电路为施密特触发电路,用于波形变换、脉冲整形、信号的鉴频等方面,本电路中用于波形整形。施密特触发器具有类似于磁滞回线形状的电压传输特性,如图2-6所示。我们把这种形状的特性曲线称为滞回特性或施密特触发特性。图 2-5 (a)反相输出型(b)同相输出型 图 2-6它有两个特点,第一,输入电压上升时和下降时,特性曲线转折点所对应的输入电压UT+和UT-是不同的。我们把UT+叫做正向阈值电压,把UT-叫做负向阈值电压。同时,把UT+与UT-之差定义为回差电压,用UT表示,即:UT = UT+UT-,第二,电压传输特性转折时的上升时间和下降时间极短,或者说上升沿和下降沿非常陡。由于施密特触发器具有滞回特性,在脉冲整形电路中得到了广泛的应用。2.3 STC89C52单片机组成及外部扩展2.3.1 STC89C52单片机的结构STC89C52处理芯片引脚如图2-7 图 2-7STC89C52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.3.2 STC89C52单片机最小系统组成单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。 图 2-82.3.3 时钟电路和复位电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。STC89C52单片机内部有一个用于构成振荡器的可控高增益反相放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两个匹配电容C1,C2如图2-8所示。就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1,C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1,C2一般选30pF左右。图2-9中PD是电源控制寄存器PCON.1的掉电方式位。上述电路是靠STC89C52单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动单片机,但一般不采用外部时钟输入方式,除非一些特殊场合如多CPU系统。图 2-9复位是单片机的初始化操作。其功能主要是将程序(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。复位是上电的第一个操作,然后程序从0000H开始执行。在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。要使其进入正常状态,唯一办法是将单片机复位,以重新启动。复位也是使单片机退出低功耗工作方式而进入正常状态一种操作。RST引脚是复位端,高电平有效。在该引脚输入至少连续两个周期以上的高电平,单片机复位。RST引脚内部有一个斯密特ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求数字波形。使用时,一般在此引脚与Vss引脚之间接一个约9.1k的下拉电阻,与Vcc引脚之间接一个约一个10vF的电解电容,即可保证上电自动复位。本课题使用的电路如图3-7所示。电容C和电阻9.1k实现上电自动复位。增加按键开关S和电阻R2又可实现按键复位功能。2.3.4 液晶显示扩展技术1) 液晶显示原理:液晶显示的原理是利用液晶的物理特性, 通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。2) 液晶显示器的分类:液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple Matrix)和主动矩阵驱动(Active Matrix)三种。3) 液晶显示器各种图形的显示原理:线段的显示:点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H)=00H,(002H)=00H,(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。字符的显示:用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即可。汉字的显示:汉字的显示一般采用图形的方式,事先从微机中提取要显示的汉字的点阵码(一般用字模提取软件),每个汉字占32B,分左右两半,各占16B,左边为1、3、5右边为2、4、6根据在LCD上开始显示的行列号及每行的列数可找出显示RAM对应的地址,设立光标,送上要显示的汉字的第一字节,光标位置加1,送第二个字节,换行按列对齐,送第三个字节直到32B显示完就可以LCD上得到一个完整汉字。4) 1602字符型LCD简介:字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。一般1602字符型液晶显示器实物如图:(1602LCD基本参数及管脚功能见附录【1】) 图 2-9 1602字符型液晶显示器实物图2.3.5 单片机与PC机间的通信单片机有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。我们采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。这是最简单的连接方法,但是对我们来说已经足够使用了,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接,连接图2-10和实物图2-11如下:图 2-10图 2-112.4 Proteus软件仿真2.4.1 Proteus ISIS简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是:1) 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。3)目前支持的单片机类型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。4)支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真ARM、51、AVR、PIC。2.4.2 Proteus运行流程Proteus ISIS的工作界面是一种标准的Windows界面,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。运行Proteus程序后,进入软件的主界面。通过左侧工具栏中的P(从库中选择元件命令)命令,在Pick Devices 左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。在元器件库中没有光敏电阻和激光棒,最终采用光耦来代替,并运用开关控制它的工作最终达到控制555的2,6两端的电平。2.4.3 系统设计和调试硬件方面:1)应注意激光镭射管的工作参数,与5V电压串联需接限流电阻220欧姆。2)本方案要用到光敏电阻,所以应有良好的避光处理。3)为了实现单摆小球摆至平衡位置遮光时555能输出高电平,远离平衡置时555输出低电平,在555的5端口,2,6两端口应注意电阻的分压选取,这要根据电路中光敏电阻的亮暗阻来确定,本方案最终在5端口用两 个9.1k的电阻分压5v直流电,在2,6相连与地之间接上了9.1k, 经计算和测试能够达到要求。4)LCD的背光管脚应连接一个10k的可变电阻,这样可以实现亮度调节。5)焊接过程中应注意元器件的布置以及焊接顺序。软件方面:1) 单摆经最低点的脉冲信号输入单片机P3.0,程序中采集的是脉冲上升沿信号,而不是以高低电平为准。2)输入摆动次数值和摆球经过最低点时,按键都有抖动,所以在程序中加上按键防抖程序。3) 最后在LCD显示屏上显示摆长,周期和重力加速度,摆长为一定值0.8m,周期和重力加速度的输出格式为T=0.01S,g=00.01m/s2.4)计算周期和单摆时,要注意摆动经最低点的次数与周期次数的转化,设loop为摆动次数,则周期数为n=(loop-1)/2.5)LCD显示的上下两行最多可以分别显示16个字符,应注意溢出的问题,每次写数据之前都要检测忙信号。6)主程序结束时,应加一个死循环语句,以免程序跑飞,最终在不断电情况下,一直显示摆长,周期和重力加速度。7)为了计数中断T0的溢出次数测总时间,需要将这个变量设为全局变量,这样便可实现调用中断中的数据。调试的顺序:开电源-调节LCD的亮度单片机复位调节摆动次数放单摆待单摆稳定摆动后输入摆动数实验结果及误差分析:按上述操作步骤测得如下实验数据:(西安市的标准重力加速度为9.7944m/s2)摆动次数(loop)周期次数 (n)摆长L单位:m周期T单位:s重力加速度g单位: m/s21990.81.789.821990.81.789.7921100.81.789.7821100.81.789.8223110.81.789.7823110.81.789.78 25 12 0.8 1.78 9.77 25 12 0.8 1.78 9.81 41 20 0.8 1.78 9.81 41 20 0.8 1.78 9.79 43 21 0.8 1.78 9.81 43 21 0.8 1.78 9.79表2-1 实验结果比实际值要大,在误差允许范围内基本符合要求,其主要误差来自于摆动过程中摆球摆动不规则,因为标准的操作是在偏离平衡位置5度的位置放开单摆,摆球摆动必须是一条视线上,而实际上经常是一些椭圆,这样就会使周期测得不精准,另外摆线的长度和摆球的各种规格都会带来一定的误差。在程序中的计算也会因小数部分的舍去而带来误差,比如说在计算的过程中直接用g=31.58/(T*T),实际上它是省略了4*的小数部分。3 程序设计3.1 C与8051 KEILC51标准C编译器为8051微控制器的软件开发提供了C语言环境,同时保留了汇编代码高效,快速的特点。C51编译器的功能不断增强,使你可以更加贴近CPU本身,及其它的衍生产品。C51已被完全集成到uVision2的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统,项目管理器,调试器。uVision2IDE可为它们提供单一而灵活的开发环境。C51V7版本是目前最高效、灵活的8051开发平台。它可以支持所有8051的衍生产品,也可以支持所有兼容的仿真器,同时支持其它第三方开发工具。因此,C51V7版本无疑是8051开发用户的最佳选择。工程(project)是由源文件、开发工具选项以及编程说明三部分组成的。一个单一的uVision2工程能够产生一个或多个目标程序。产生目标程序的源文件构成“组”。开发工具选项可以对应目标,组或单个文件。uVision2包含一个器:件数据库(devicedatabase),可以自动设置汇编器、编译器、连接定位器及调试器选项,来满足用户充分利用特定微控制器的要求。此数据库包含:片上存储器和外围设备的信息,扩展数据指针(extradatapointer)或者加速器(mathaccelerator)的特性。 uVision2可以为片外存储器产生必要的连接选项:确定起始地址和规模。uVision2的强大功能有助于用户按期完工。 1)集成源极浏览器利用符号数据库使用户可以快速浏览源文件。用详细的符号信息来优化用户变数存储器。 2)文件寻找功能:在特定文件中执行全局文件搜索。 3)工具菜单:允许在V2集成开发环境下启动用户功能。 4)可配置SVCS接口:提供对版本控制系统的入口。 5)PCLINT接口:对应用程序代码进行深层语法分析。 6)Infineon的EasyCase接口:集成块集代码产生。 7)Infineon的DAVE功能:协助用户的CPU和外部程序。DAVE工程可被直接输入uVision2。KEILC51编译器在遵循ANSI标准的同时,为8051微控制器系列特别设计。语言上的扩展能让用户使用应用中的所有资源。 一、 存储器和特殊功能寄存器的存取 C51编译器可以实现对8051系列所有资源的操作。SFR的存取由sfr和sbit两个关键字来提供。变量可旋转到任一个地址空间。用关键字at还能把变量放入固定的存储器存储模式(大,中,小)决定了变量的存储类型。连接定位器支持的代码区可达32个,这就允许用户在原有64K ROM的8015基础上扩展程序。在V2的编译器和许多高性能仿真器中,可以支持应用程序的调试。二、 中断功能 C51允许用户使用C语言编写中断服务程序,快速进、出代码和寄存器区的转换功能使C语言中断功能更加高效。可再入功能是用关键字来定义的。多任务,中断或非中断的代码要求必须具备可再入功能。 三、 灵活的指针 C51提供了灵活高效的指针。通用指针用3个字节来存储存储器类型及目标地址,可以在8051的任意存储区内存取任何变量。特殊指针在声明的同时已指定了存储器类型,指向某一特定的存储区域。由于地址的存储只需12字节,因此,指针存取非常迅速。3.2 设计思路及流程图 本课题的设计题目是单摆自动计时计数器的制作,对课题的要求是:1) 最多可记录9个摆动周期;2) 最大计时99.9秒;3) 分辨率为0.1秒根据上述要求及分析,为了最终测出重力加速度,需要测算出周期,周期的测量是根据传统的方法,也就是计时给定周期次数的总时间,然后经除法运算便能算出。使用P1口输出液晶显示,P2.4,P2.5,P2.6分别控制使能信号端E,读/写操作端RW,寄存器选择端RS.P3.0口作为单摆脉冲信号输入端。P0.1,P0.2,P0.3口用来控制摆动次数,实现加,减和输入的功能。程序设计是该课题的一个重要实现环节,它需要完成的任务包括以下几个方面:1) 控制LCD的显示。在单摆开始摆动前,需要输入一个摆动次数,功能的实现在硬件可以通过加1键,减1键和输入数值键来实现,在程序设计过程中,需要注意按键防抖动问题,而且还要注意显示摆动次数的格式问题(占用两个字符,第0行的第0和第1个字符分别显示十位和各位;最终输出显示中包括摆长L,周期T和重力加速度g,L是给定的一个值0.8m,周期T和重力加速度g显示的格式为0.01s和00.01m/s2,并且摆长L和周期T在LCD的第0行显示,重力加速度g在第1行显示。2) 采集单摆经过平衡位置的脉冲信号。根据硬件的要求(单摆小球摆动到最低点时P3.0口为低电平),本方案程序编写采用采集脉冲上升沿信号,数值输入键控制摆动次数(也就是脉冲上升的个数)。采集到第1个上升延时需要开T0中断,并计数溢出次数(每一次溢出20ms,由溢出次数可以算出总时间),采集到最后的一个脉冲上升沿,需要关闭中断,根据溢出次数算出周期和重力加速度显示,在此过程中,需要将溢出次数变量设为全局变量,这样可以实现该值的调用。3) 程序设计的最后需要加上一个死循环,以免程序跑飞,最终是一直显示摆长L,周期T和重力加速度g。运用本方案最终设计的技术指标是:1) 最多可记录48个摆动周期;(因为显示次数最大为99)2) 最大计时2e32*0.02秒;(因为计数变量为无符号长整型最大为2e32)3) 分辨率为0.01秒软件流程图3-1如下:图 3-13.3 源程序设计主程序设计:(子程序见附录【2】)/LCD的D0-D7分别接P1.0-P1.7,RS接P2.4,RW接P2.5,E接P2.6/P3.0输入脉冲信号/P0.1加1,P0.2减1,P0.3输入摆动次数#include#define uchar unsigned char#define uint unsigned int#define LCM_Data P1 #define Busy 0x80 /用于检测LCM状态字中的Busy标识sbit LCM_RS=P24;sbit LCM_RW=P25; /定义引脚sbit LCM_E=P26;/-子函数-void WriteDataLCM(unsigned char WDLCM); /写数据void WriteCommandLCM(unsigned char WCLCM,BuysC); /写指令unsigned char ReadStatusLCM(void); /读状态void LCMInit(void); /LCM初始化void culate(); /计算周期和重力加速度,并分别按照0.01,和00.01的格式输出 void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData); /显示一个字符void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData); /显示一串字符void delay(); /延时10msvoid Delay5Ms(void); /延时5msvoid key_delay(void); /按键防抖unsigned long int count = 0;double T,g;unsigned int i,j,k,temp;unsigned char loop = 19; /开机给定的19个摆动次数(也就是9个周期)/-TO中断定时计数-/T0定时器中断初始化void init_timer0 () TMOD = 0x1; /T0,工作方式1 TH0 = 0xb1; /20ms定时 TL0 = 0xe0; ET0 = 1; /允许T0定时器中断 EA = 1; /开启总中断允许 TR0 = 0; /初始状态,定时器关闭/开定时中断void st

温馨提示

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

评论

0/150

提交评论