精品毕业论文灭火机器人自爆系统设计_第1页
精品毕业论文灭火机器人自爆系统设计_第2页
精品毕业论文灭火机器人自爆系统设计_第3页
精品毕业论文灭火机器人自爆系统设计_第4页
精品毕业论文灭火机器人自爆系统设计_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计 引 言随着科学技术越来越多地融入人们的生活,计算机已经不再是单纯的工程和科学工具,而开始被公认为是医疗保健、教育、能源和环境保护等重大社会问题解决方案的重要组成部分,计算已无处不在。自然、便捷的人机交互技术作为推动这一进程的核心领域之一,已成为计算机科学和信息产业的重要研究领域。经过50多年的发展,人工智能已形成极广泛的研究领域,并且取得了许多令人瞩目的成就。人工智能也称机器智能,是一门研究人类智能机理和如何用计算机模拟人类智能活动的学科。智能机器人技术综合了计算机、控制论、机构学、信息和传感技术、人工智能、仿生学等多学科而形成的高新技术,集成了多学科的发展成果,代表高技术的发展前沿。智能机器人的研究,大大促进了人工智能思想和技术的进步,渐渐成为一个备受关注的分支领域,各种智能机器人比赛也成为国内外广泛推广和发展的一种竞技项目。机器人是高级整合控制论、机械电子、计算机、材料和仿生学的产物。在工业 、医学、农业、建筑业甚至军事等领域中均有重要用途。 现在,国际上对机器人的概念已经逐渐趋近一致。一般说来,人们都可以接受这种说法,即机器人是靠自身动力和控制能力来实现各种功能的一种机器。联合国标准化组织采纳了美国机器人协会给机器人下的定义:“一种可编程和多功能的,用来搬运材料、零件、工具的操作机;或是为了执行不同的任务而具有可改变和可编程动作的专门系统。灭火器具是一种平时往往被人冷落,急需时大显身手的消防必备之物。尤其是在高楼大厦林立,室内用大量木材、塑料、织物装潢的今日,一旦有了火情,没有适当的灭火器具,便可能酿成大祸.灭火器古时的灭火器具很简单,无非是钩、斧、锹、桶之类。第一个真正的专用灭火器是由英国船长、诺福克郡人曼比于1816年发明的,它仅是一2个装1升多水并充有压缩空气的圆桶。 到19世纪中叶,法国医生加利埃发明了手提式化学灭火器。将碳酸氢钠和水混合放在筒内,另用一玻璃瓶盛着硫酸装在桶口内。使用时,由撞针击破瓶子中,使化学物质混合,产生二氧化碳,把水压出桶外。 1905年,俄国的劳伦特教授在圣彼德堡发明一种泡沫灭火剂,把硫酸铝与碳酸氢钠溶液混合并加入稳定剂,喷出后生成含有二氧化碳的泡沫,浮在燃烧的油、漆或汽油上,能有效地隔绝氧气,窒熄火焰。 1909年,纽约的戴维森取得一项专利,利用二氧化碳从灭火器内压出四氯化碳,这种液体会立即变成不可燃的较重气体以闷熄火焰。此后又出现了干粉灭火器,液态二氧化碳灭火器等多种小型式灭火器。 在灭火方面,机器人更是表现了不小的作用,其安全性,稳定性,耐高温等功能更是超过了人为消防。机器人灭火,大大减少了救火人员的伤亡,提高了效率,功劳功不可没。灭火弹自爆,更是在机器人灭火中体现了不少的价值。 1 开发软件及原理本设计采用Proteus软件开发,涉及MMA7260QT加速度传感器,DS18B20等元件,下面对本设计的一些元件进行介绍。1.1 ProteusProteus软件具有其它EDA工具软件(例:multisim)的功能。这些功能是: (1)原理布图 (2)PCB自动或人工布线 (3)SPICE电路仿真 革命性的特点 (1)互动的电路仿真 用户甚至可以实时采用诸如RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。 (2)仿真处理器及其外围电路 可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。还可以直接在基于原理图的虚拟原型. Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。 Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。 除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。 Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。1.1.1 Proteus的发展Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。目前Proteus的最新版为7.7 sp2,今年将推出8.0版本,增加DSP系列及ARM cortex处理器。1.1.2 Proteus软件的应用 在Proteus绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在Proteus的原理图中看到模拟的实物运行状态和过程。 Proteus是单片机课堂教学的先进助手。 Proteus不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于Proteus提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台 随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中Proteus也能茯得愈来愈广泛的应用。1.1.3智能原理图设计(ISIS)丰富的器件库:超过27000种元器件,可方便地创建新元件; 智能的器件搜索:通过模糊搜索可以快速定位所需要的器件; 智能化的连线功能:自动连线功能使连接导线简单快捷,大大缩短绘图时间; 支持总线结构:使用总线器件和总线布线使电路设计简明清晰; 可输出高质量图纸:通过个性化设置,可以生成印刷质量的BMP图纸,可以方便地供WORD、POWERPOINT等多种文档使用。 1.1.4完善的电路仿真功能(Prospice)Prospice混合仿真:基于工业标准SPICE3F5,实现数字/模拟电路的混合仿真; 超过27000个仿真器件:可以通过内部原型或使用厂家的SPICE文件自行设计仿真器件,Labcenter也在不断地发布新的仿真器件,还可导入第三方发布的仿真器件; 多样的激励源:包括直流、正弦、脉冲、分段线性脉冲、音频(使用wav文件)、指数信号、单频FM、数字时钟和码流,还支持文件形式的信号输入; 丰富的虚拟仪器:13种虚拟仪器,面板操作逼真,如示波器、逻辑分析仪、信号发生器、直流电压/电流表、交流电压/电流表、数字图案发生器、频率计/计数器、逻辑探头、虚拟终端、SPI调试器、I2C调试器等; 生动的仿真显示:用色点显示引脚的数字电平,导线以不同颜色表示其对地电压大小,结合动态器件(如电机、显示器件、按钮)的使用可以使仿真更加直观、生动; 高级图形仿真功能(ASF):基于图标的分析可以精确分析电路的多项指标,包括工作点、瞬态特性、频率特性、传输特性、噪声、失真、傅立叶频谱分析等,还可以进行一致性分析. 1.1.5独特的单片机协同仿真功能(VSM)支持主流的CPU类型:如ARM7、8051/52、AVR、PIC10/12、PIC16、PIC18、PIC24、dsPIC33、HC11、BasicStamp、8086、MSP430等,CPU类型随着版本升级还在继续增加,如即将支持CORTEX、DSP处理器; 支持通用外设模型:如字符LCD模块、图形LCD模块、LED点阵、LED七段显示模块、键盘/按键、直流/步进/伺服电机、RS232虚拟终端、电子温度计等等,其COMPIM(COM口物理接口模型)还可以使仿真电路通过PC机串口和外部电路实现双向异步串行通信; 实时仿真:支持UART/USART/EUSARTs仿真、中断仿真、SPI/I2C仿真、MSSP仿真、PSP仿真、RTC仿真、ADC仿真、CCP/ECCP仿真; 编译及调试:支持单片机汇编语言的编辑/编译/源码级仿真,内带8051、AVR、PIC的汇编编译器,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源码级仿真和调试.1.1.6实用的PCB设计平台原理图到PCB的快速通道: 原理图设计完成后,一键便可进入ARES的PCB设计环境,实现从概念到产品的完整设计; 先进的自动布局/布线功能:支持器件的自动/人工布局;支持无网格自动布线或人工布线;支持引脚交换/门交换功能使PCB设计更为合理; 完整的PCB设计功能:最多可设计16个铜箔层,2个丝印层,4个机械层(含板边),灵活的布线策略供用户设置,自动设计规则检查,3D 可视化预览; 多种输出格式的支持:可以输出多种格式文件,包括Gerber文件的导入或导出,便利与其它PCB设计工具的互转(如protel)和51板的设计和加工。1.2前景使用Proteus 软件进行单片机系统仿真设计, 是虚拟仿真技术和计算机多媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作能力;在单片机课程设计和全国大学生电子设计竞赛中,我们使用 Proteus 开发环境,在不需要硬件投入的条件下,普遍反映,对单片机的学习比单纯学习书本知识更容易接受,更容易提高。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作,能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。经过上述分析,本设计最终选择英国Labcenter electronics公司的Proteus为设计实现平台,并在其上试验了多种数字信号处理算法,均得到较为满意的结果.1.3 MMA7260QT加速度传感器 图1.1 加速度传感器MMA7260QT(图1.1)功能:可选灵敏度(1.5g/2g/4g/6g)低功耗:500uA休眠模式:3uA低压运行:2.2V3.6V高灵敏度(800mV/g1.5g)低通滤波器具备内部信号调理设计稳定、防震能力强1.4 DS18B20技术性能描述 独特的单线接口方式,DS18B20(图1.2)在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 测温范围 55125,固有测温分辨率0.5。 支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定,实现多点测温 工作电源: 35V/DC 在使用中不需要任何外围元件 测量结果以912位数字量方式串行传送 图1.2 DS18B20不锈钢保护管直径 6 适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 标准安装螺纹 M10X1, M12X1.5, G1/2任选 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。DS18B20的核心功能是指示数字的温度传感器,其方案可以由用户设置(9,10,11,12位),默认情况使用12位。这相当于现实不同的精度。通过温度转换命令执行操作后温度数据被保存在16位高速缓存中,信号分为两种不同的格式保存,通过执行读缓存的命令返回采集到的温度。传送时最低有效位LSB优先,最高加权位包含了标识温度正负的“s”位。温度转换完成后,温度将和TH与TL进行比较,如果不在这个范围之内则会返回一个警示标志。允许多芯片同时并行惊醒温度测量,如果某处芯片超出了此范围,此芯片可以被辨别出并立即读取没有别警示的芯片。64位激光ROM:每一片芯片提供了一个特定的系列号,前8位为DS18B20的家族系列,后面48位表征不同的芯片系列。在通过单线对芯片进行配置后,方可以执行下面的操作。1.5 DS18B20应用范围 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域 轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一: (1) 读ROM,(2) ROM匹配,(3)搜索ROM, (4)跳过ROM, (5)报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。2方 案 设 计2.1灭火引爆灭火引爆系统实际上就是一个温度到达一定要求后,发出信号使灭火装置自爆的系统, 造成高温火灾有:电气线路短路、过载、接触电阻过大等引发高温或火灾;静电产生高温或火灾;雷电等强电侵入导致高温或火灾;最主要是机房内电脑、空调等用电设备长时间通电工作,导致设备老化,空调发生故障,而不能降温;因此机房内所属的电子产品发热快,在短时间内机房温度升高超出设备正常温度,导致系统瘫痪或产生火灾,这时超温报警系统就发挥应有的功能。引爆灭火常用的是手提式灭火弹,如图2.1图2.1 便携式灭火弹2.2灭火机器人引爆控制系统设计内容我的设计是灭火机器人引爆控制系统设计,在本次设计中,我需要完成的任务是:1:设计灭火机器人在运动过程中对温度的感应。2:设计灭火机器人在运动过程中对位移量的检测。2:设计灭火机器人在运动过程中对运行时间的检测。3:通过计算位移量,在指定的范围内进行温度检测,条件符合即发出自爆信号,如温度不符合,但位移超出设定量或者超出设定时间,也要自爆。2.3 灭火机器人引爆控制系统设计流程图开始时钟计数判断位移达到最小值引爆信号加速度感应计算位移温度检测判断温度达到设定值判断位移达到最大值判断时间达到最大设定值YN NYNYNY 图2.2 灭火引爆设计流程图本设计的仿真流程是在开始仿真时,时钟传感器开始计时,加速度传感器开始感应加速度,通过计算公式:x=V0t+0.5at2在位移量到达设定的最小值时,应用DS18B20采集温度,之后转换为电压,传给引爆系统。在系统达到设定位移设定最小值时,如果温度到达预警温度,则单片机发出信号,信号通过了LED显示,LCD1显示屏显示,自爆信号完成。如果在设定位移范围内,温度没有到达设定要求,则在设定时间最大量时,也发出自爆信号。如果在设定时间范围内。温度同样没有达到设定要求,在位移达到设定最大值时,同样会发出自爆信号。下面,对各模块的介绍。2.4时钟计时电路时钟计时电路(图2.3)一般由晶体振荡器、晶振控制芯片和电容组成。 图2.3 时钟计时电路时钟电路主要作用是与加速度传感器共同作用,计算出位移的电路。时钟电路与51单片机连接,开始仿真即刻计数。时钟计数电路流程图如图2.4图2.4 时钟计时电路流程图时钟计数的流程是在程序仿真开始,首先对时钟电路初始化,然后对时间进行采集,并且每时刻的与设定的时间进行比较。时钟计数电路的仿真图如图2.5图2.5 时钟计时电路仿真图定时器T0中断服务程序;T1中断程序用于批示时间调整单元的闪亮或秒表计数,在时间状态下,每过0.3S左右,将对应单元的显示数据换成“熄灭符”数据(#AH)。这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。在作秒表计时,每10MS中断1次,计数单元加1,每100次为1S。秒表计计数单元地址在60H61H(10毫秒)、62H63H(秒)、64H-65H(分)中,最大计数值为99分59.99秒。 调时功能程序;按下P1.0口按键,若按下时间小于1S则进入省电状态;否则进入调分状态,等待操作,此时计时器停止走动。当再按下P1.0口按键时,若按下时间小于0.5S,则时间加1分钟;若按下时间大于0.5秒,则进入小时调整状态。按下P1.1按键时,可进行减1调整。在小时调整状态下,当按键按下的时间大于0.5S时,退出时间调整状态,时钟从0S开始计时。秒表功能程序;在正常时钟状态下,若按下P1.1口按键,则进行时钟/秒表显示功能的转换,秒表中断计时程序启动,显示首地址改为60H,LED将显示秒表计时单元60H-65H中的数据。按下P1.2口的按键开关,可实现秒表清0,秒表启动,秒表计时暂停功能;当再按下P1.1口按键时,关闭T1秒表中断计时,显示首地址又改为70H,恢复正常时间的显示功能。在本设计中,要采用秒表功能程序,主要是在仿真开始,秒表计时,由程序内做程序比较,具体程序会在附录中附加。2.5 位移感应位移的确定由加速度传感器还有运行时间确定的,即对运行位移的确定。加速度传感器采用MMA7260QT采用了信号调理(图2.6),单极低通滤波器和温度补偿技术,并且提供4个量程可选,用户可以在4个灵敏度中做选择.该器件带有低通滤波并已作零G补偿.本设计中,灭火器的加速度由传感器得出,时钟得出该运行时间,通过积分可得运行位移量,再经过数据的比较,判断出设定位移与当前位移,做出比较后,方可进行后面的程序。 图2.6 MMA7260QT设计图位移传感器有很多种,之所以选用MMA7260QT,是通过各加速度传感器做出比较后,确定选材的。例如:电位器式位移传感器:它通过电位器元件将机械位移转换成与之成线性或任意函数关系的电阻或电压输出。普通直线电位器和圆形电位器都可分别用作直线位移和角位移传感器。但是,为实现测量位移目的而设计的电位器,要求在位移变化和电阻变化之间有一个确定关系。电位器式位移传感器的可动电刷与被测物体相连。物体的位移引起电位器移动端的电阻变化。阻值的变化量反映了位移的量值,阻值的增加还是减小则表明了位移的方向。通常在电位器上通以电源电压,以把电阻变化转换为电压输出。线绕式电位器由于其电刷移动时电阻以匝电阻为阶梯而变化,其输出特性亦呈阶梯形。如果这种位移传感器在伺服系统中用作位移反馈元件,则过大的阶跃电压会引起系统振荡。因此在电位器的制作中应尽量减小每匝的电阻值。电位器式传感器的另一个主要缺点是易磨损。它的优点是:结构简单,输出信号大,使用方便,价格低廉。但是,电压式位移传感器需要在运行轨道上建立一个电压轨道,在此设计中并不实际,所以我选择了MMA7260QT。2.6 温度感应图2.7 温度模拟仿真图图2.7是整个程序仿真的温度模拟部分,主要是流程是在时间和位移条件确定后,温度模拟开始,将模拟温度转换为电信号.传入单片机进行比较.温度处理过程是: 首先配置DS18B20的分辨率,将分辨率设为12位.再将读取16位,将后面的11位2进制数转换为10进制数再乘以0.0625,所得便为所测温度,之后通过前5位判断正负,本仿真只用正数,所以前5位为0.DS18B20的初始化,将数据线置高电平“1”,通过拉高或拉低电平,再进行写操作。写操作是先将数据线置低电平“0”,然后按低位到高位发送字节,再将数据线拉到高电平,重复上面的发送过程,再拉高电平.读操作即为数据的处理过程,将数据线拉高“1”。延时2微秒。将数据线拉低“0”。延时15微秒。将数据线拉高“1”。延时15微秒。读数据线的状态得到1个状态位,并进行数据处理。延时30微秒。DS18B20的内部结构如图2.8: 图2.8 DS18B20内部结构由于高温度系数晶振随温度变化其震荡率明显变化,所产生的信号作为基数器2的脉冲输入。计数器对温度寄存器的累加,当停止累加时,该寄存器中的数值即为所测温度,再通过12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FE6FH,-55的数字输出为FC90H 。 表2.9 温度数字输出转换对照表DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器 TH、TL和结构寄存器。高速暂存存储器由9个字节组成。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在 高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算: 当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。表 2是对应的一部分温度值。第九个字节是冗余检验字节。根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行 复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后 释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。2.7数码显示模块图2.10LCD1只是为了方便仿真观察,所以添加上了,他为了方便观察温度的检测及位移,时间,起到直接的观察效果。首先,先介绍下LCD1各引脚。 表2.11 LCD1 引脚说明管脚名称引脚说明管脚名称引脚说明1VSS电源地9DB2双向数据口2VDD电源正极10DB3双向数据口3VEE对比度调节11DB4双向数据口4RS数据/命令选择12DB5双向数据口5RW读/写选择13DB6双向数据口6E模块使能端14DB7双向数据口7DB0双向数据口8DB1双向数据口VSS为地电源,即接地,VDD为电源正极,给定5V,VEE为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,通过一个10K的电位器调整对比度。这3个引脚我都在程序里面给定了,因此在图中并没有接入。 表2.12 模块内部的控制器共有11条控制指令序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移,S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。2.8比较模块本设计中,虽然在比较方面,各个模块的程序中都做到了比较功能,但是为了保险,采用双比较模式,在程序中又加入了一个比较模块。然而比较模块需要进行AD转换,普通的单片机根本没有AD转换器。AT89C2051单片机在使用时连接比较器的端口一般只作普通IO使用,而对其内置的模拟比较器的应用却很少。正好符合本设计。本设计中采用单片机AT89C2051,该单片机内置模拟比较器来构成AD转换器的新方法。比较模块的流程图如图2.13图2.13 比较模块的流程图硬件转换电路:AT89C2051是MCS51单片机系列中的一种,它虽然只有20个引脚,却集成了51系列单片机的标准内核,其中包括2k程序存储器、128字节数据存储器、2个16位定时计数器、一个标准全双工UART和一个精确的模拟比较器,而这个模拟比较器是以前产品所没有的。利用AT89C2051的模拟比较器来构成双积分式AD转换器的电路原理图。其中:内置模拟比较器的结构,比较器的正、反相输入端分别与P10、P11连接,这是两个漏极开路无上拉电阻的输出和输入端口,当向P10、P11写“1”时,M1、M2截止,相当于P10、P11对数字部分悬空,这时比较器的输入不受单片机端口输出的影响;由于P10、P11具有很强的灌电流能力,当写入“0”时,P10、P11能吸入20mA的灌电流,而且M1、M2的饱和电压很低,利用这一特点可为积分电容彻底放电。比较器输出端在单片机内部与P36连接,读P36就可得到比较器的输出结果。因此,利用AT89C2051这个内置的比较器,再加上少量的外围器件就可组成双积分式AD转换器。I0为恒流源,其电流约为052mA,Cf是积分电容,Cf与I0的选择取决于AD转换的位数,Vref为参考电压,一般取模拟输入电压最大值的一半,U2是一个模拟开关,其中通道0接参考电压,通道1至7接模拟输入,即该AD转换器有7个输入通道。 转换过程 当恒流源对电容器积分时,积分电容上的电压与时间成线性比例关系,这样利用单片机内部的定时计数器就可分别测量参考电压及模拟输入电压的积分时间,再通过CPU的运算来得到转换的结果。单片机的端口P12至P14可用来输出模拟开关通道选择地址,定时计数器T0可设定为方式1,16位定时状态,用来测定积分时间。该转换过程可分5个步骤: 第一步为积分电容的放电,主要是向P11写“0”,利用其吸入灌电流大的特点为Cf放电,同时定时计数器T0清零。 第二步是参考电压积分,即模拟开关选择通道0,相当于Vref接至比较器的正输入端,并向P11写“1”,同时启动定时计数器,这样,I0开始对Cf积分;程序循环读P36状态,以检测比较器的输出结果,当积分电容上的积分电压稍大于(由于比较器有极高的增益,故可近似地看作等于)参考电压时,比较器的输出反转,P36发生由高至低的跳变。程序检测到这个跳变后,停止定时计数器,保存此时的定时计数器结果Tref,此时可由恒流源对电容积分的关系式得出:Vref(I0 Tref)Cf 第三步为积分电容放电,也就是重复第一步对Cf放电和定时计数器T0清零。 第四步为输入电压积分,此时模拟开关可选择通道17中的一个,相当于模拟输入电压Vx接至比较器的正输入端,重复第二步对输入电压积分,则可得到积分时间Tx,因此,Vx(I0Tx)Cf 以上4步积分电容Cf上的积分电压波形。第五步是通过CPU的运算来求得AD转换的结果,由第二步结果除以第四步结果,可以得到: VrefVxTrefTx 变换后得: Vx(VrefTx)Tref 上式即AD转换的结果。从上式可以看出:AD转换结果Vx只与Vref、Tx、Tref有关而与I0、Cf无关。这一点非常重要。因为它意味着在转换过程中抑制了恒流源和积分电容温漂所造成的误差,从而保证了该AD转换器工作的稳定性,这也正是积分式AD转换器的优点。理论上,该AD转换器的精度只取决于参考电压的稳定性和单片机定时计数器的精确度,而这两点都相对比较容易保证。当然,这是指在恒流源为理想恒流源的情况,实际上恒流源的特性决定了该AD转换器的非线性误差,因此,在要求较高的场合,应选用线性好的恒流源集成电路。需要注意的是,由于单片机采用端口查询的方式来检测比较器的输出结果,MCS51系列单片机端口查询命令需要占用2个机器周期,而定时计数器则需要在每个机器周期上加1。因此,在使用时有可能在比较器的输出反转时,程序不能立刻停止定时计数器,而是要等到下一个机器周期运行到CLRTR0语句时才停止。这样,定时计数器的值总为偶数,这一问题如果不在程序中进行处理就会造成误差。解决的方法是增加I0、Cf的积分时间,即把积分时间加大一倍,再把定时计数器的读数即Tref和Tx除以2,这样就能把定时计数器多加了1的误差去掉而得到正确的结果。也就是说,如果要得到12位的分辨率,那么就需要有13位的定时计数器的读数。这种算法虽然牺牲了定时计数器的1位分辨率,加长了转换周期,但是确保了测量结果的准确性。对于有模拟比较器输出跳变中断的单片机如Z86E08等,上述过程处理起来会更简单,可用程序在比较器输出反转时来设定中断,并在中断子程序的开始时停止定时计数器,其读数减去从比较器中断到执行中断子程序之间的机器周期数即为实际积分时间。 由于AT89C2051的定时计数器为16位,所以该AD转换器的分辨率实际上可以达到15位。调整I0和Cf的值就能改变AD转换器的分辨率,I0和Cf的取值与分辨率和单片机时钟频率之间的关系,应满足下式: 122N1(f0 Vmax)CfIO12216(f0Vmax) 式中Vmax 为最大模拟输入电压,N为分辨率位数,f0为单片机的时钟频率。根据上式,在设计时应保证足够长的积分时间以保证分辩率的要求。同时还应保证积分时间不能超过单片机的最大定时值,以免引起定时计数器的溢出。 2.9报警引爆模块报警引爆高模块是该系统的结束部分。由于引爆这方面处于国家违禁项目,个人不允许对此进行研究,所以我在仿真中,采用了达到温度和位移要求后,用LED发光二极管显示该自爆信号。由于考虑到干扰性比较强,在引爆设计中采用密码引爆设计。密码数字是串行输入,输入的密码是单片机前面发出来的电信号,并且每次分别与一个预置码做比较,而且这3个十进制数字分别有12个输入端口送入,因此应该使用一个数据电路来进行选择。显然这个数据选择电路应由4个三选一选择器组成,同时选择器的地址码用一个计数器来进行控制。控制器向计数器提供下列信号:复位信号 RESET_CNT 和时钟信号 CNP。计数器的模为4(有0、1、2、3四个状态),每送一个密码数字,控制器向计数器提供一个时钟CNP,使计数器状态加1。当计数器至3时,说明已送入3个数据,这时计数器应向控制器反馈信号CNTe3,通知控制器进入点火状态。对于READY,FIRE等信号,它们可以直接送入控制器模块,功能是控制其状态的转换。由于READY、FIRE等信号和密码数字一样都是由按键产生,其产生时刻和持续时间长短是随机不定的,并且存在因开关簧片反弹引起的电平抖动现象,因此必须在每个开关后面安排一个消抖和同步电路模块,目的是保证系统能捕捉到输入脉冲,同时保证每按一键只形成一个宽度为系统时钟的脉冲。图

温馨提示

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

评论

0/150

提交评论