《垂直度测量仪自动检定系统设计—数据处理资料.doc》由会员分享,可在线阅读,更多相关《垂直度测量仪自动检定系统设计—数据处理资料.doc(43页珍藏版)》请在三一文库上搜索。
1、 本 科 毕 业 论 文 垂直度测量仪自动检定系统设计数据处理Verticality Measuring Instrument Automatic Test System DesignData Handing学院名称: 电子信息与电气工程学院 专业班级: 学生姓名: 学 号: 指导教师姓名: 指导教师职称: 2014年5月毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得安阳工学院及其它教育机构的
2、学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解安阳工学院关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 目 录摘要IAbstractII引 言1第一章 绪论21.1设计背景21.2 倾斜角测量方法31.3
3、 设计内容3第二章 方案设计与论证42.1 系统组成42.2 微控制器模块方案比较42.3 电源转换模块方案比较52.4 电机驱动模块方案比较62.5 倾角测量方案比较72.6 液晶显示模块方案比较7第三章 硬件设计83.1 STC12C5A60S2单片机介绍83.2 单片机最小系统电路93.3 驱动电路103.4 电源转换电路113.6 角度测量电路143.7 RS232总线接口电路设计153.8 按键电路15第四章 软件设计174.1 C语言介绍174.2 液晶显示模块程序设计174.3 外部中断程序设计184.4 电机驱动模块程序设计19第五章 系统仿真215.1 Proteus的介绍2
4、15.2 LCD显示电路的仿真215.3 小车驱动的仿真22第六章 系统调试246.1 硬件调试246.2 软件调试24结 论25致 谢26参考文献27附 录28附录A28附录B30垂直度测量仪自动检定系统设计数据处理摘要:本系统是以STC12C5A60S2单片机为主控制器,用于测量垂直角度的数字角度测试仪。系统由主控制器模块、电源及稳压模块、小车电机驱动模块、倾角测量模块、数据通信模块以及液晶显示模块等组成,用C语言编写了相关程序,利用Proteus软件进行仿真调试。系统可通过小车移动来测量物体相对于水平面的倾斜角度。关键词:STC12C5A60S2单片机;移动小车;角度测量Vertical
5、ity Measuring Instrument Automatic Test System Design Data HandingAbstract:This system predominantly STC12C5A60S2 single-chip microcomputer controller, digital Angle measuring instrument used for measuring the vertical Angle.System consists of main controller module, power supply and voltage regulat
6、or module, the car motor driver module, dip Angle measuring module, data communication module and LCD module, etc, using C language to write the related procedures, use of Proteus simulation software debugging.System can move through the car to measure the object relative to the horizontal plane Ang
7、le.Key words: STC12C5A60S2 microcontroller ;Move the car;The Angle measurementI引 言随着电子技术的发展,程控技术和计算机技术也运用到实际的工作中。在过去相当长时期内,人工一直是物体角度的唯一的测量方法,其效率低、还不准,对平时的测量造成了很大的影响,随着现在世界测量精度的日趋提高,这种传统的手段已难以达到对物体角度测量的目的。角度测量被广泛应用于工程机械、道路桥梁检测、山体滑坡检测、汽车电子、水平测量、电力监控、建筑、钻探机械等多个行业,应用的广泛更要求了倾角测量有较高的精度及更强的抗冲击力。本系统就是从电子应用的
8、角度出发,希望借助于将电子测量的技术,将该技术应用到工程实际测量的过程中,提供一种低成本、效率高、精度高的物体角度的测量仪器。第一章 绪论1.1设计背景 角度是用以量度角的单位,符号为。一周角分为360等份,每份定义为1度。采用360这数字,因为它容易被整除。360除了1和自己,还有22个真因数,包括了7以外从2到10的数字,所以很多特殊的角的角度都是整数。数学上是用弧度而非角度,因为360的容易整除对数学不重要,而数学使用弧度更方便。 角度的测量方法有很多,基本的有量角器测量,现在更精密操作更容易的测角方法有光学测角、齿轮式测角、微电子测角等。 倾角传感器测量仪器测量物体与水平面的倾角。作为
9、传统方法的替代品,应用在道路工程、机械测量、建筑工程、工业平台、石油勘测、军工、船舶,以及其他需要重力参考系下的倾角或者水平的情况。 国际在该方面大量成批生产和使用,我国也进入大步伐前进阶段,但和国际水平还有一定的差距。 人们现在经常提到的数字化测量仪器所包括的范围十分广泛,一般是指智能化测量仪器,即不仅仅是数字化的输出或显示,还包括数字信号和数字化电路等方面。随着现代测量技术的迅速发展,无论是单台测量仪器还是整个测试系统都朝着数字化、智能化、多功能、小型化、模块化、标准化和开放型方向发展。倾角仪是一种用来测量倾斜度的测量仪器,它作为一种重要的通用工具,广泛应用在桥梁架设、铁路铺设、土木工程、
10、地质勘探、石油钻井、航空航海、工业自动化、机械加工、精密制造、教学研究、国防军事等各个领域和行业中。角度测量是几何量计量技术的重要组成部分,广泛应用于工业、军事、航空、航海以及通讯等各种领域。在经济建设、国防建设和科学技术各部门都离不开角度测量问题,诸如切削刀具的测量、零件有关角度的测量、仪器或机床导轨的检验和装调,以及天文研究、大地测量、水利、交通建设、导弹和卫星的发射等。 随着工业体系的发展,对角度测量技术的要求也越来越高,从开始的离线、抽检测量到现在的在线连续测量;从人工测量到目前的自动或半自动测量;从指针式按钮式的机械仪表到后来的数字式仪表;从纯粹的硬件电路测量系统到虚拟系统。 角度是
11、一个重要的几何量计量参数,角度测量是测量技术的重要组成部分,随着现代测量仪器的发展尤其是集成电路技术的不断发展。1.2 倾斜角测量方法 常见倾斜角测量的原理如图1.1所示。图1.1 倾斜角测量原理在地球上任何位置的物体都受到重力的作用(F=mg),即任意的质量块会受到一个重力加速度的作用,采用加速度传感器即可测出这个重力加速度。把加速度传感器固定在物体的水平面上,则加速度传感器感受到的加速度g;当物体姿态改变时,加速度传感器的敏感轴随之转动角度,则传感器受到的加速度改变,因此可以通过测量加速度的变化来反映物体姿态的变化。1.3 设计内容本系统是以STC12C5A60S2单片机为主控制器,用于测
12、量垂直角度的数字角度测试仪。实现SCA100T传感器采集垂直角度数据,单片机进行数据处理,测得的数据通过RS232总线传输到PC机。系统实现的功能:(1) 小车可自行移动,电机的速度匀速控制,将匀速控制到0.01转/min;(2)数据能自动采集,并正确的进行传输;(3)测量角度的范围为030;(4)角度传感器的测量角度误差控制到0.1度。第二章 方案设计与论证2.1 系统组成 系统组成如图2.1所示。干电池供电电源转换模块直流电机STC12C5A60S2单片机倾角测量传感器 5V 9V电机驱动模块RS232总线数据传输液晶显示模块PC机晶振复位图2.1 系统组成本系统是主要包括以下几个模块组成
13、: (1)微控制器模块,完成数据的采集和处理,以及数据的传输; (2)电机驱动模块,完成智能小车电机的驱动功能,实现小车能够前后移动; (3)电源转换模块,完成从干电池供电转换到系统工作所需电压; (4)液晶显示模块,完成智能小车的实际转动速度的显示; (5)倾角传感器采集模块,完成对倾斜角度的数据采集功能; (6)RS232总线接口模块,采用RS232总线协议通信,完成单片机与PC机的数据传输功能,实现单片机采集的实时倾角数据与PC机通信。2.2 微控制器模块方案比较方案一:采用凌阳16位SPCE061A单片机作为控制核心,体积小、集成度高、易扩展、可靠性高、结构简单、中断处理能力强,内嵌3
14、2k字闪存FLASH,处理速度较高,突出特点是具有很强的语音功能。但是该单片机处于待机状态下耗电约为2uA,功耗相对较高,本系统中不予采用。方案二:采用宏基公司的性价比高的STC12C5A60S2单片机可以省掉复位电路、外部数据存储器(如24Cxx系列芯片),某些场合还可以省掉晶振,电路简单、价格低廉。兼容C51指令,另外安全性能好,目前很难破译STC12C5A60S2单片机加密程序,加之用户数据可以保存到单片机内部,解密者很难通过用户数据分析单片机的运行状况。而且本系统的倾角传感器需要进行模数转换,此单片机正好自带A/D转换模块。综合比较,本系统采用方案二。2.3 电源转换模块方案比较方案一
15、:采用干电池组进行供电。电源模块设计示意图如图2.2所示。 9V直流电源 直流电机供电控制系统供电图2.2 电源模块设计图 采用四节干电池降压至5V后给单片机及其他逻辑单元供电,另取六节干电池为电机及光电开关供电。这样电机启动及制动时的短暂电压干扰不会影响到逻辑单元和单片机的工作。干电池用电池盒封装,体积和重量较小,同时小车底座可以安装四节干电池,正好可为单片机及其他逻辑单元供电。在稳压方面,起始时考虑使用7805芯片对6V的电池电压进行降压稳压。但考虑到这样使得7805芯片消耗大量能量,降低电池寿命;同时,由于STC12C5A60S2、小车电机对于供电电压要求并不苛刻,故将6V电池电压稳压成
16、5V直接给单片机及其他逻辑单元供电。而电机的电源不做稳压处理。这样只需在小车上加两个调速按钮,根据电池电量选择合适功率即可。方案二:采用交流电经直流稳压处理后供电。采用交流电提供直流稳压电源,电流驱动能力及电压稳定性最好,且负载对电源影响也最小。由于需要电线对小车供电,极大影响了小车行动的灵活性及地形的适应能力。故放弃了这一方案。 方案三:采用蓄电池供电。蓄电池具有较强的电流驱动能力和较好的电压稳定性能,且成本低廉。可采用蓄电池经7812芯片稳压后给电机供电,再经过降压接7805芯片给单片机及其他逻辑单元供电。但蓄电池体积相对庞大,且重量过大,造成电机负载过大,不适合此处采用的小车。故放弃了这
17、一方案。综合考虑,采用方案一。2.4 电机驱动模块方案比较 方案一:使用分立原件搭建电机驱动电路。使用分立原件搭建电机驱动电路造价低廉,在大规模生产中使用广泛。但分立原件H桥电路工作性能不够稳定,较易出现硬件上的故障,故我们放弃了这一方案。方案二:使用L298N芯片驱动电机。电机驱动框图如图2.3所示。保护电路L298驱动芯片+9V直流供电电源电机+5V直流供电电源电机单片机指令总线保护电路图2.3 电机驱动图L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。输出电压最
18、高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO口提供信号,而且带有使能端,方便PWM调速,电路简单,性能稳定,用比较方便。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,正好符合小车一个电机的驱动要求。 综合考虑,采用方案二L298N芯片驱动小车电机。2.5 倾角测量方案比较方案一:采用美国模拟器件公司的三轴数字倾斜角度模块ADXL345,具有小巧轻薄、可变量程等优点。ADXL345数字式三轴加速度传感器,该传感同样可以检测三个轴向的加速度,并且自身含信号的调理与AD转化,还可以设定零点漂移值,与单片机的串行接口可以只使用2条IO,使得主控机的负荷大大降低,传
19、感器可以工作在超低功耗模式,其最大13位的全分辨率足以满足题目中对1度测量分辨的要求。但是其编程比较复杂,采集速度慢,价格比较贵,本系统设计中不予采用。方案二:SCA100T传感器是芬兰VTI公司2005年最新推出的利用MEMS技术开发生产的高精度静态加速度双轴倾角传感器其体积小重轻仅1.2克。MEMS(micro electro mechanical system)是二十一世纪的前沿技术,采用MEMS技术可以在硅芯片加工出完整的微型电子机械系统,包含了微型传感器、微型机械结构、以及信号处理和控制电路、通讯接口等于一体的微型器件,把信息系统的微型化、多功能化、智能化和可靠性水平提高到新的高度。
20、该器件内部包含了一个硅敏感微电容传感器和一个ASI专用集成电路,ASIC电路集成EEPROM存储器、信号放大器、A/D转换器、温度传感器和SPI串行通信接口组成了一个完整的数字化传感器,有30和90两种量程。综合比较,采用方案二。2.6 液晶显示模块方案比较方案一:采用LED显示模块。LED数码管显示速度较快,亮度较高,显示清晰,价格便宜编程控制也较为简单。但是一般的LED工作电流都在毫安级,无法实现低功耗。方案二:采用4位半段码式LCD显示模块。它拥有较低的功耗,约为170A,且能够清晰的显示各种数字。同时,还可以根据需要,将不必要的显示段接到公共端,实现显示段的控制,这样也有助于我们进一步
21、降低功耗。综合比较,采用方案二。第三章 硬件设计3.1 STC12C5A60S2单片机介绍STC12C5A60S2单片机如图3.1所示。图3.1 STC12C5A60S2单片机STC12C5A60S2系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。它具有以下特性:STC12系列单片机为增强型 8051 芯片,1T,单时钟/ 机器周期,指令代码完全兼容传统8051单片机;工
22、作频率范围:0 - 35 MHz,相当于普通8051的 0420MHz.实际工作频率可达48MHz;通用I/O 口(27/23/15 个)可设置成四种模式:准双向口/ 弱上拉,推挽/ 强上拉,仅为输入/ 高阻,开漏每个I/O 口驱动能力均可达到20mA,但整个芯片最大不得超过55mA;ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/ P3.1)直接下载用户程序,数秒即可完成一片;片内集成EEPROM 功能和看门狗功能;内部集成MAX810 专用复位电路(外部晶体20M 以下时,可省外部复位电路);时钟源:外部高精度晶体/ 时钟,内部R/ C
23、振荡器,用户在下载用户程序时,可选择是使用内部R/ C 振荡器还是外部晶体/ 时钟常温下内部R/ C 振荡器频率为:5.2 MHz 6.8 MHz,精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,应认为是4 MHz 8 MHz;共2个16位定时器/ 计数器;外部中断2 路,下降沿中断或低电平触发中断,Power Down 模式可由外部中断唤醒; PWM(4 路)/ PCA(可编程计数器阵列,4路);A/D 转换,10位精度ADC,共8路。STC12C5A60S2 系列有8 位精度;通用全双工异步串行口(UART),由于STC12系列是高速的8051,也可再用定时器软件实现多串口;S
24、PI 同步通信口,主模式/ 从模式。3.2 单片机最小系统电路最小系统电路如图3.2所示。图3.2 最小系统电路该系统包含五个电路模块:时钟电路模块、电源电路模块、输入/输出接口电路模块和复位电路模块。其中电源电路、时钟电路、复位电路模块是保证单片机系统能够正常工作的最基本的三部分电路模块,缺一不可。 电源电路:芯片引脚VCC上供电电压,为直流DC+5V电压,电压范围在45.5V之间,可保证单片机系统能正常工作。为提高电路的抗干扰性能,通常在引角VCC与GND之间接上一个0.1uF陶片电容和一个10uF电解电容。陶片电容为去耦电容,滤波用,电解电容为旁路电容,储能用,这样可抑制杂波串扰,从而有
25、效地确保电路稳定性。 时钟电路:单片机的第18引脚和第19引脚外接晶振,单片机工作频率取决于晶振Y1的频率。这里选用12M晶振。两个小电容通常取值20pF,以保证振荡器电路的稳定性及快速性。复位电路:如果引脚RST上保持超过连续地24个工作主频周期的高电平。单片机就可以复位。但保证系统有可靠的复位,复位电路一般使引脚RST保持10ms以上的高电平。当电路上电时,由于C15电容两端电压值不能突变,电源+5V会通过电容向RST提供充电电流,因此在RST引脚上产生一高电平,使单片机进入复位状态。随着电容C15的充电,它两端电压上升使得RST的电位下降,最终使单片机退出复位状态。正常运行时,可按复位按
26、钮对单片机复位。3.3 驱动电路L298N是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片采用15脚封装。主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;并且可以外接检测电阻,将变化量反馈给控制电路。使用L298N驱动电机,该芯片可以驱动两个二相电机,也可以驱动一个四相电机,可以直接通过电源来调
27、节输出电压,也可以直接用单片机的I/O口提供信号,而且电路简单,使用比较方便。L298N的主要引脚功能如下:+5V:芯片电压5V;VCC:电机电压,最大可接50V;GND:共地接法;A-D-:输出端,接电机;AD+ :为步进电机公共端,模块上接了VCC;EN1、EN2:高电平有效,EN1、EN2分别为 IN1和IN2、IN3和IN4的使能端;IN1IN4:输入端,输入端电平和输出端电平是对应的;驱动电路如图3.3所示图3.3 L298N驱动电路单片机的I/O端口分别与L298N的IN1,IN2,IN3,IN4相连,发送PWM脉冲调制信号,PWM即脉宽调剂,信号的宽度来决定电机的转速,当宽度增高
28、时,电机速度增大,当脉宽降低时,速度降低。 L298N的1脚和15脚发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。OUT1,OUT2和OUT3,OUT4之间可分别接电动机的一相。5,7,10,12脚接输入控制电平,控制电机的正反转。ENA,ENB控制使能端,控制电机的停转。本系统中,只驱动一个电机,因此将L298N的两相驱动连接到电机的正负端,可以增强驱动能力。3.4 电源转换电路电源模块如图3.4所示。图3.4 电源电路 本系统采用+9V的电池供电,但是单片机系统和传感器是采用+5V电压,因此需要将+9V转换为+5V电压,这里采用7805芯片,其驱动电流最高可达500mA,足够满
29、足本系统应用。3.5 液晶显示电路LCD1602液晶显示屏如图3.5所示。图3.5 LCD1602 LCD1602为液晶显示器,是一种专门用来显示数字、字母、符号等的点阵型液晶模块。在它的内部有一个控制器,可以执行专属的指令。它每行可以显示16个字符,LCD1602液晶显示器一共可以显示两行。这些显示模式可以通过控制器的专用指令进行设置。这类液晶通常是字符型液晶就是只能显示ASCII码字符,而其它的字符是不可以实现的。LCD1602液晶显示器的主要技术参数如下所示:显示内容:162个字符;芯片工作电压:4.5-5.5V;工作电流:2.0mA;模块最佳工作电压:5.0V;字符尺寸:2.95*4.
30、35mm。单片机与LCD1602的管脚接线如表3.1所示。表3.1 管脚接线表STC12C5A60S2LCD1602VCCVCCGNDGND P0.0DB0P0.1DB1P0.2DB2P0.3DB3P0.4DB4P0.5DB5P0.6DB6P0.7DB7P2.0RSP2.2ENP2.2R/W通常情况下,LCD1602液晶显示器都是采用标准的14脚或16脚标准接口(本系统中,采用的是16标准引脚),每一引脚都有其独特的意义,其引脚功能如下所示:第1脚:VSS为电源地,接电源负极; 第2脚:VDD电压正极,接5V电源正极;第3脚:为液晶显示器的显示对比度调整端,可以通过调节电位器的电阻值来调整液晶
31、显示器的屏幕亮度对比度;第4脚:是指令和数据片选端,电压为高电平时选择数据寄存器、电压为低电平时选择指令寄存器;第5脚:RW端为读写信号线,当置高电平时进行读操作,置低电平时进行写操作;在本系统里,只用到了写操作,可以直接接地,硬件电路设置为写操作;第6脚:E(或EN)端为使能(enable)端,只有其电压为高电平是才允许操作;第714脚:D0D7为8位双向数据端,作用是用来输入输出数据;第1516脚:空脚和背光电源。其中15脚背光正极,16脚背光负极。显示电路如图3.6所示。图3.6 显示电路在硬件系统的设计中,根据液晶显示器的引脚功能进行电路连接,同时,因本系统只需要用到LCD1602液晶
32、显示器的写操作功能,而不需要读操作的功能,所以可以直接通过硬件给第5脚输入低电平,也就是在电路中直接接地,这样液晶显示器就只实现写操作功能;LCD1602液晶显示器的8位数据端接到单片机的P0口,用于数据的写入。3.6 角度测量电路角度测量接口电路如图3.7所示。图3.7 角度测量接口电路采用来SCA100T测量加速度,然后通过一定转换,转换成角度。SCA100T其内部包含硅电容感应元件,EEPROM存储器,信号调理电路等,该传感器具有X、Y两个通道,分别用来测量倾斜和俯仰的加速度,每个通道具有自测系统,可内部产生一个静电力来校验全部的信号通道。它是一种加速度传感器,里面的硅电容感应元件有三层
33、硅片构成,形成立体的结构,当发生倾斜时,中间的质量片会倾向某一侧,从而使两侧的电容放生变化,通过电压值可反映出相应的加速度值,进而计算出角度值。其角度的计算方程如下:=sin-1(Ax/g) (2-1)=sin-1(Ay/g) (2-2)3.7 RS232总线接口电路设计STC12C5A60S2单片机与PC机串行通信电路如图3.8所示。图3.8 RS232总线接口电路由芯片MAX232实现STC12C5A60S2单片机与PC机的串行通信。图3.8中外接电解电容C5,C6,C7,C8用于电源电压变换,提高抗干扰能力,它们可以取相同数值电容1.0uF/16V,其值一般为0.1UF。3.8 键盘电路
34、键盘电路如图3.9所示。图3.9 按键电路按键一端接单片机通过上拉电阻接至+5V电压,另一端接地,当贴片按键按下时,单片机即可检测到低电平电压。功能按键一共有4个,分别完成的功能是电机开始、加速、减速、电机停止。C18C21为去耦电容,主要作用是消除按键在按下瞬间产生的抖动干扰。第四章 软件设计 本系统用C语言编写相关程序。4.1 C语言介绍C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔实验室于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计
35、算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用比如单片机以及嵌入式开发。4.2 液晶显示模块程序设计 液晶显示模块的流程如图4.1所示。开始写显示数据到 LCD写指令数据到 LCD检测忙状态? Y N 初始化LCD显示字符图4.1 LCD1602显示流程图该部分的编写主要采用C语言,让其实现功能。在这模块中,首先往LCD里面写入显示数据,然后再往里面写入指令,进去循环检测是否为忙,若为空闲了,就初始化LCD,并显示字符。程序代码详见附录B。4.3 外部中断程序设计 外部中断的流程
36、如图4.2所示。外部中断 X0=0? Y 正转操作,RETI N 反转操作,RETIX1=0? Y N X2=0?减速操作,RETI YX3=0? N 加速操作,RETI Y X4=0? N Y 停止操作,RETI 图4.2 中断服务流程图当有外部中断响应时,立刻进入中断函数,然后依次去检测X0X4的电平,判断,如果某个电平为低,然后延时10mS,再判断是否依然为低,通过延时去抖动可以增强单片机的判断正确率,当判断成功后,改变相应的变量值去实现相应的功能。4.4 电机驱动模块程序设计 电机驱动模块的流程如图4.3所示。开始初始化设计刷新液晶屏幕循环查询按键 N中断唤醒?/停止按键=0? Y开始
37、按键=0?减速按键=0?加速按键=0? N N N Y Y Y Y停止电机减速加速启动电机停止显示显示速度显示速度显示速度图5.3 驱动模块流程图 程序运行后,首先对各个模块进行初始化,然后循环检测是否有按键按下,当有外部按键按下时,就会进入外部中断函数,并对相应按键变量赋值,同时增大或减少PWM的脉宽,从而实现电机的加减速控制。程序代码详见附录B。第五章 系统仿真本系统主要利用Proteus软件进行仿真调试。5.1 Proteus的介绍仿真的概念非常的广泛,其实最终的解释就是用可控的手段模拟真实的情况,本文设计仿真组要用的仿真软件是Proteus。Proteus软件是英国Lab Center
38、 Electronics公司出版的EDA工具软件,它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。它具有完善的电路仿真功能,超过27000个仿真器件,可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件;丰富的虚拟仪器,13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等;生动的仿真显示,用色点显示引脚的数字电平,导线以不同颜色
39、表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动。5.2 LCD显示电路的仿真LCD显示电路仿真如图5.1所示。图5.1 LCD显示电路的仿真在Proteus软件运行环境中首先检验LCD显示电路,添加程序,运行LCD液晶显示电路,如图5.1所示,系统运行成功。带中断的LCD显示电路仿真如图5.2所示。图5.2 带中断的LCD电路仿真在LCD显示电路的基础之上再拓展带中断的独立式键盘,就得到了带中断的LCD显示电路仿真。5.3 小车驱动的仿真 电机正转情况下的仿真结果如图5.3所示。图5.3 电机正转仿真用带中断的键盘来控制直流电机驱动模块的部分电路,启动
40、目标系统,按正转,然后接加速开关,我们观察到电机开始运转,每按一次加速,电机的转速都要增加,此时如果按减速,则电机的转速慢慢地减小。电机反转情况下的仿真结果如图5.4所示。图5.4 电机反转状态仿真同样按反转按键也看到同样的结果,当按停止键时,电机慢慢停下来。第六章 系统调试6.1 硬件调试这部分的主要任务是在系统整体设计好,连接合适后,调试各个组件能否正常的工作,能否达到设计预期的效果。调试主要包括电机驱动模块的调试,LCD1602液晶显示模块的调试等,以及上述电路的联合调试的过程。在这里,要特别主意电机驱动模块调试,如果电路错误,会使驱动能力不足,或者不能驱动,造成小车无法移动,这样整个系
41、统就不能正常工作。6.2 软件调试软件的设计是设计的重要组成部分,本系统使用C语言编写相关程序。程序调试时,可单步执行或连续执行。连续执行时,程序执行速度很快,可以看到程序执行的总体效果,但如果程序出错,就难以确认出错的具体地方。单步执行则可以每条指令的执行结果,找出程序错误所在,但耗时长。因此,用户可以先采用连续执行,对怀疑或容易出错的地方执行单步调试。某一些程序只有在特定条件下才会被执行,此时可采用断点设置,可在某一程序行设置断点,设置好断点后连续运行程序,一但执行该程序立即停止,这样就可以观察有关的变量值,以确定问题所在。整个系统的软件部分是模块化的设计,主要有控制程序、数据采集程序、数据处理程序、显示程序等组成,将各个功能模块编写成单独的源文件,进行调试,调试成功后。将各源程序段连接起来,进行综合调试,综合调试时,需要我们非常有耐心,主意细节,这样才能减少很多不必要的错误。结 论本系统无论是稳定性还是在计量的精度上都满足本次设计的需求。系统可通过小车移动来测量物体相对于水平面的倾斜角度。系统是采用STC12C5A60S2单片机作为主控制器,控制各个部分进行工作,驱动部分工作正常,小车能正常移动,小车上电机的速度匀速控制,将匀速控制到0.01转
链接地址:https://www.31doc.com/p-2051947.html