机箱活动门控制系统的设计(单片机).doc_第1页
机箱活动门控制系统的设计(单片机).doc_第2页
机箱活动门控制系统的设计(单片机).doc_第3页
机箱活动门控制系统的设计(单片机).doc_第4页
机箱活动门控制系统的设计(单片机).doc_第5页
已阅读5页,还剩40页未读, 继续免费阅读

下载本文档

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

文档简介

摘 要目前,计算机正向着小型化、便捷化、普遍化的方向飞速发展。尤其是个人计算机的发展更为迅速,随着人们生活水平的提高,和网络技术的日趋成熟,个人计算机的性能也变得越来越强大,形成了独具特色的家用机。现今,家用机不但有着强大的功能,还兼具时尚、美观便捷的特性。机箱自动门一般具有使用方便、程序简单、操作简单、成本低等特点。本文通过对机箱自动门系统硬件与软件的分析,总结了设计个模块的功能和特点,对几种实现方案进行了介绍和比较,选择了合适的器件行了电路设计。同时,使用编程软件对系统进行了编程,使其能实现下列功能:实现活动门的开关动作,在单片机的作用下,控制电机实现活动门的开关动作。单片机收到开关的信号,经过软件的处理,向驱动电路发出信号来控制电机的正转与反转来达到机箱门的开与关。实现微机软件控制活动门,利用计算机的软件实现控制活动门的开关工作,通过单片机与计算机的通讯功能,把门的状态信号送到计算机中,通过计算机的软件对其进行处理,处理后的得到的控制信号再送还给单片机,进而对门的开与关进行控制。本系统以AT89C52为核心,用TA7267BP驱动芯片作为驱动电路,触点开关作为门限装置,MAX202作为通信电路,通过编程使单片机实现电机的控制和门位置的判断。对于单片机不能直接驱动直流电机的特点,文中给出了常见的解决方案,最后较详细的介绍了系统调试的基本过程。 关键词:机箱活动门;自动控制;驱动电路;AT89C52AbstractAt present, the computer is thinking small, convenient, the generalization of the direction of rapid development. In particular, the development of personal computers more quickly, with the improvement of living standard, and network technology matures, the performance of personal computers have become more powerful, developed a unique home machine. Today, not only has a strong console features, but also possesses the fashion, beauty and convenient features. Chassis Automatic doors generally have easy to use, simple procedures, simple and low cost.Based on the chassis automatic door system hardware and software analysis, design modules summarized the functions and characteristics of some implementations are introduced and compared, select the appropriate line of the circuit device. Meanwhile, the use of programming software to program the system so that it can achieve the following functions: to achieve the switching activities of the door, in the role of SCM under the control of motor activities doors to achieve action. SCM received the signal switch through software processing, a signal to the drive circuit to control the forward and reverse motor to achieve the doors open and off the chassis. Computer software control activities to achieve the door, using the computer software work on the activities of doors, through the SCM and computer communications, the status of the door to a computer, by computer software to process their deal to get control after sending the signal back to microcontroller, then the state of door control.AT89C52 as the core system, with TA7267BP driver chip as the driver, contact switch as a threshold device, programmed to enable single chip motor control, and gate position of judge. The MCU can not directly drive DC-click features, the paper gives a common solution, and finally a more detailed description of the basic process of debugging the system.Keywords: case activities doors; control; drive circuit; AT89C52IV目 录摘 要IAbstractII第1章 引言1第2章 系统分析与实现方案32.1系统分析32.2技术方案42.3关键技术5第3章 系统电路设计63.1驱动电路的设计63.1.1作用63.1.2技术方案63.1.3具体实现63.2门限电路的设计103.2.1作用103.2.2技术方案113.2.3具体实现113.3按键去抖电路的设计123.3.1作用123.3.2技术方案123.3.3具体实现133.5通信电路的设计143.5.1作用143.5.2技术方案143.5.3具体实现153.6单片机AT89C52153.6.1振荡器的选择163.6.2看门狗电路173.7 器件选择和功能19第4章 系统软件设计214.1 计算机部分的程序214.1.1作用214.1.2技术方案214.1.3具体实现214.2单片机部分的程序274.2.1作用274.2.2技术方案274.2.3具体实现27第5章 调试335.1调试串口335.2调试驱动365.3系统联调36第6章 结论38参 考 文 献1致 谢2附 录3沈阳工业大学工程学院本科生毕业设计(论文)第1章 引言除了微机本身的品质外,微机的机箱是否美观、方便也是吸引客户的一个卖点。为了方便用户,加强面板的功能以及使面板更加美观,多数的机箱在前面板上设计了耳机和USB插槽,并相应地设计了活动门。如图1-1所示的一款机箱,在其面板上有两个光驱门和一个USB接口的活动门1。图1-1微机箱面板的活动门机箱前面板上的活动门一般是在光驱或者是USB接口处,由于市场上大部份光驱和刻录机等都是灰白色的,为了保持机箱颜色一致,可以在机箱前面板处设置两个带弹开按钮的光驱活动门。无论用户购买的是何种颜色的光驱和刻录机,装上机箱后,只要关上光驱活动门,整个机箱的外观颜色仍能保持一致,不会因为光驱和机箱颜色的不一致,而影响整体的视觉效果1。将USB接口、前置喇叭和麦克风做到机箱面板下方并且留有接口,可以极大地方便用户的使用。这些接口上安装活动门,一方面是为了美观,保证机箱前面板的整体效果,另一方面也具有保护接口和防尘的作用。为了方便用户开关活动门,一般在活动门上安装按钮,用户只要按动按钮,就可以进行机箱门的开关动作2。本设计的功能分为两个方面: 1活动门的开关动作:在单片机的作用下,控制电机实现活动门的开关动作。 2实现微机软件控制活动门:利用计算机的软件实现对活动门的开关工作,并完成基单片机和微机通信的电路与程序设计。 在本设计,以上的两个功能均需要满足,其中主要部分就是单片机控制外部电机的转动以及单片机和上位计算机的通信。而这两个功能也正是单片机系统中常用的关键技术1。本设计的活动门开关装置具有以下的特点: 1使用方便:体积小,重量轻,不占用太多的机箱空间。 2程序简单:无论是计算机还是单片机的程序都很简单,不占用太多的程序空间。 3操作简单:用户通过按键或鼠标实现活动门的开关动作。 4成本低:使用最为简单的控制方案1。第2章 系统分析与实现方案2.1系统分析想要实现微机机箱活动门的开关动作,从理论上分析,最简单的方法就是用开关控制电机的通断,带动开关门机构作相应的动作。也就是说,只需要安装一个电机就可以了,如图2-1所示1。电机活动门操纵机构图2-1基本构成但是采用图2-1所示的控制方案,只能实现最为简单的开关工作。然而实际的工作情况要复杂得多,这样的工作方式还存在着如下的问题:1如何控制电机的正反转。由于电机的动作十分简单,只能是正转或者是反转。对于图2-1所示的方案,需要采用双刀双掷的开关才能实现每一个活动门的开关动作。并且需要用户自己判断当前活动门的开关状态,根据当前的状态选择双刀双掷开关。对于用户而言操作双刀双掷的开关无疑显得过于复杂。在实际使用中,用户只希望按一次按钮,就能改变当前的门的状态,并且按钮最好是触点式的。这就需要在活动门的操纵机构之上加入逻辑控制模块。2是否能用单一电源方案。图2-1所示的方案中,为了控制电机的正反转,采用了正、负双电源的供电方式。一般说来,在这样的面板机构中,最好采用单电源供电的方式。采用单电源的方式控制电机的正反转就牵涉到电机的驱动电路的设计问题。3是否利用软件控制活动门的开关。 面板活动门操纵结构中的电机一般都是小型的直流电机,通过按钮改变电机的正反转动作1。但是,对于某些特殊的要求,或者是在某些程序中需要涉及到利用软件实现活动门的开关动作,这对于如图2-1所示的电路方案而言,是无法做到的,所以还需要对电路作进一步的改进,并在微机软件中加入活动门的开关控制功能4。2.2技术方案综合上述三点,对于微机机箱活动门的开关控制应当更加智能化,开关过程更加可控化。基于这两点,可以利用一个单片机控制多个活动门的开关动作,甚至可以通过微机和单片机的连接,在用户的可视化窗口上随时控制活动门的开关,从而形成一个较为智能的活动门控制系统3。其基本的系统构成如图2.2所示。光驱活动门门限开关小电机单片机驱动电路微机触电开关图2-2活动门的设计方案从图2-2可以看出,基于单片机的活动门控制系统可以分为:1微机及控制软件:提供用户微机程序界面,并将用户对活动门的操纵转化为控制指令发送到下位单片机。2片机控制单元:监测和接收外部状态信号,并发送控制指令给驱动电路,控制活动门的开关。3驱动电路:驱动活动门的电机动作,实现活动门的开关。4纵机构:将电机的转动转化为活动门的开关动作的机构,其中还包括提供活动门状态的门限装置5。2.3关键技术如上文所述,用单片机编码控制电机的正反转这项技术本身并不复杂,完成控制模块的在于外围芯片的使用和相关电路的设计2。所以本设计的关键技术主要如下:1驱动电路单片机对外围较大负载的驱动方法。2门限电路单片机对外围设备的检测和状态判断。3去抖电路单片机对键盘、按键等输入端口的信号处理。第3章 系统电路设计3.1驱动电路的设计3.1.1作用单片机本身具备一定的驱动能力,其I/O口的电流在10mA左右,驱动发光二极管之类的器件并不需要特殊的驱动电路2。但是对于直流电机这类负载较大的器件,单片机无法为其提供足够的电流。尤其是在直流电动机刚启动时,电机的启动电流往往会达到其正常工作电流的数倍,所以,这一类的电路需要专门的驱动电路完成对电机的驱动,而单片机只是完成逻辑部分的工作5。从目前的单片机的发展现状来看,越来越多的单片机集成了特殊的功能。MOTOLOLA, PIC等众多型号的单片机中集成了电源监控电路、USB接口、A/D,PWM输出等功能,但是很少有集成电机驱动电路的。这主要是因为电机的驱动电路所需的电流较大,有些器件属于大功率器件,难以和单片机集成。控制回路中的常用接口电路。所以在实际应用中,电机驱动电路是单片机控制回路中的常用接口电路6。3.1.2技术方案由于直流电机的控制性能优越,别适合用于点位控制。为了实现直流电机的正反转运行只需要改变电机电源电压的极性。这种电压极性的变化和运转时间的长短由单片机实现,而提供直流电机正常运转的电流则需要驱动电路实现1。此处的驱动电路是指连接单片机的控制指令和电机动作的接口电路。驱动电路是在单片机无法带动负载的情况下,使得电机能够在单片机的控制指令下完成规定的动作3。3.1.3具体实现如上文所述,驱动电路的功能分为两个部分,一是利用单片机的逻辑电平输出控制电机的正反转,以及正反转的时间限制;二是要有足够的电流驱动电机转动5。本设计将根据使用场合的不同和集成度的高低,分别对H桥式电路的驱动原理、实用电路的专用芯片进行阐述,说明单片机中常用的驱动电路的构成和实用方法。1H桥式电路原理桥式电路是一种最基本的驱动电路结构。控制电机正反转的桥式驱动电路有单电源和双电源两种方式。由于本设计采用单电源的驱动方式较为满足实际的应用需要,所以这里只介绍单电源的驱动方式,其原理如图3-1所示1。图3-1 H桥式电路的基本原理单电源方式的桥式驱动电路又称为全桥方式驱动或者H桥方式驱动。在图3-1中,电机正转时三极管Q1和Q4导通,反转时Q2和Q3导通,两种情况下,加在电机两端的电压极性相反。当四个晶体三极管全部关断时,电机停转。若是Q1与Q3关断,而Q2与Q4同时导通时,电机处于短路制动状态,将在瞬时停止转动。这4种状态所对应的H桥式驱动电路状态如图3-2所示5。图3-2 H桥式电路的4种状态图中,从左到右分别表示H桥式驱动电路的开关工作状态的切换,电机分别处于正转、反转、停机和短路制动4个状态。2实用的桥式电路以上是桥式驱动电路的原理,用功率M4SFET的单电源方式正、在实际使用中往往需要作一些变化。图3-3显示为一种使反转驱动电路。该电路可以由微机或者是单片机控制。图中所示的功率MOSFET可以用逻辑电平直接驱动,也可与微机或单片机的输出管脚直接相连4。由于功率MOSEET内部的漏极和源极之间设置了寄生二极管,因此不需要外接续流二极电路更加简单。图3-3实用的桥式电路3专用芯片TA7267BP的使用上述电路均是通用的桥式驱动电路。若用户能承受较大的成本,或是对开发时间的要求较高,那么专用的电机驱动芯片则是一种较为理想的选择。目前,专用的电机驱动芯片很多,需要针对使用的电机型号和额定输入进行选择4。对于本设计使用的小电机而言,其逻辑输入为5V,而驱动电压需要12V左右。根据这个要求,选择了东芝公司的TA7267系列芯片。4TA7267BP的性能TA7267BP是东芝公司生产的一款专用于小型直流电机驱动的专用芯片。该芯片在相应的逻辑电平的控制下,能够实现电机的正转、反转、停止和刹车4种动作。其逻辑电平的工作电压为6V-18V,驱动电机工作的电压为6V-18V,是一款单电源供电的芯片。该芯片的外形如图3-4所示。 图3-4 TA7267BP驱动芯片及其管脚实际上,TA7267BP的驱动原理和上述的桥式电路并没有什么不同,只不过是该芯片将桥式电路中所用的分离器件集成到一体,并定义了相关管脚的逻辑电平,从而使得驱动部分模块化,便于用户使用。表3-1表示了TA7267BP7个引脚的定义。这7个引脚中的1和2脚连接到单片机的逻辑控制指令输出脚,而3、5脚则分别连接到所要控制的电机上。表3-1 TA7267BP引脚的定义引脚号名称作用1IN1控制指令输入12IN2控制指令输入23OUT1电机输出14GND地信号5OUT2电机输出26VS驱动级电源7VC逻辑电路电源TA7267BP是依靠单片机输入到1、2引脚上的逻辑电平变化实现电机的正反转、停机、刹车4个状态的选择。这4种状态的变化所对应的逻辑电平如表3-2所示。根据上述TA7267BP的控制电平,可以很方便地利用单片机实现对小电机的转动状态控制。表3-2 TA7267BP输出和电机状态的变化IN1IN2OUT1OUT2点击状态11LL刹车01LH正转10HL反转00高阻抗停止3.2门限电路的设计3.2.1作用一般情况下,这种活动门的启停位置上都会安装限位开关。当活动门到达开或者关的停止位置上时,限位开关会被合上,从而发出一个电平变化的信号,提供给控制器,从而实现门的自动控制功能6。本设计使用触点开关取代了常用的限位开关,当活动门合上时,触点开关被合上;当活动门关上时,触点开关打开,从而反映活动门开关状态变化所造成的电平变化5。这种使用触点代替限位开关的方案只是结构设计上的技巧,由于本设计主要是单片机在控制电机转动方面的设计,所以此处要讨论的是该门限电路如何和单片机相互作用,实现活动门的自动开关状态。3.2.2技术方案门限电路是告知单片机活动门状态的电路。当需要对活动门操作时,首先应根据门限电路的电平状态判断出此时活动门所处的状态,然后根据门的状态决定电机的正反转;最后,用单片机发出相应的开门、关门的指令电平,控制电机实现开门或者是关门的动作4。表3-3为门限电路电平和活动门开关的对应关系。表3-3 门限电路和活动门开关的对应关系门限电平门开关电机状态低按下关门高按下开门3.2.3具体实现具体实现技术方案的示意图如3-5所示。 INT0AT89C51P2.0活动门开关关门限开关图3-5 活动门门限电路的具体实现单片机利用I/O口读入活动门状态和输出控制电平。以下对单片机中使用到的I/O口作简单的说明:1P2.0:连接门限开关。单片机的P2.0口读取此时的活动门状态,决定下次按键按下时对应的开关动作。2INT0:中断口,连接活动门开关,当活动门开关按下时,触发单片机的中断,输出开关门的控制电平。3P1.2、P1.3:作为单片机控制指令的输出,连接到驱动电路相应管脚上。3.3按键去抖电路的设计3.3.1作用当活动门的按键被按下时,首先应当进行去抖动处理。这是因为按键本身是一个机械开关,由于机械触点的弹性以及电压突跳等原因,在触点闭合或者是断开的瞬间会出现电压抖动的情况3。在发生抖动时,单片机很难判别此时键是否按下,为此就要进行按键去抖动处理。3.3.2技术方案按键去抖动处理的办法一般有两种,一种是采用硬件电路去抖动,例如,加入R-S触发器;另一种方法是采用软件去抖,利用软件的时间延迟程序以躲过抖动时间,待信号稳定后再进行按键扫描。用R-S触发器形成去抖电路是单片机外围电路设计中常用的手段,并且可以减少单片机软件对按键动作的延时和计算。R-S触发器的基本构成如图3-6所示,是由两个与非门交叉藕合而成。,是信号的输入端,低电平有效。Q和既表示触发器的状态,又是触发器的输出端。图3-6 RS触发器的基本原理如果仔细观察一下触发器的电平翻转过程,则不难发现,由于两个与非门交叉耦合的结果,不仅在没有输入信号时能够自动保持状态不变,而且在触发脉冲的作用下,内部还会产生一个称之为正反馈的过程,推动电路快速地完成状态转换。例如,在启动过程中,端一旦下降到开门电平,Q端电平就会上升,反馈到门B的输入端,促使门B由截止转向导通,端电平下降,反馈到门A的输入端,进一步促使门A截止,Q端电平进一步上升,Q端电平上升的结果又会使的电平进一步下降,这样的进程,使得门A很快截止、门B很快导通,触发器在极短的时间内完成由截止到导通的电平翻转6。通过端的复位时,也有类似的正反馈过程发生,从而实现按键开关的去抖功能。3.3.3具体实现在本设计中,硬件去抖的方法是在单片机的INT0脚和活动门按键之间加入由74LS02或非门形成的R-S触发器去抖电路,如图3-7所示。图 3-7 去抖电路图3-7中为或非门组成的R-S触发器去抖电路,如果用与非门,则图中电源和地对调,这主要是避免各自R-S触发器真值表中不确定状态的出现。3.5通信电路的设计3.5.1作用由于计算机串口是标准的RS-232接口,发出的数据信号是以字节为单位进行传送,而CAN 总线信号是以帧为单位进行传送的,因此要想在计算机串口与CAN 总线之间进行数据传送,就必须有CAN总线通信接口卡,此卡的作用就是把计算机串口发出的信号和CAN 总线发出的信号进行格式转换,使每一方都能识别对方发送来的信号,实现数据流通7。3.5.2技术方案MAX202器件是专为RS-232和V28通信接口设计的收发器,尤其是12V供压无法实现的情况。MAX202板载的电荷泵将+5V的输入电压转换为RS-232协议所要求的10V输出电平5。图3-8 MAX202芯片及其管脚MAX202发送器和接收器的数据传输速率达20kbps,完全符合EIA/TIA-232E和CCITT V28的规格。只要根据EIA/TIA-232E的规格接入负载,当数据传输速率超过120kbps时,MAX202驱动器仍将保持5V的EIA/TIA-232E输出信号电平5。3.5.3具体实现在设计中实现方式是通过把单片机的TDX和RDX引脚分别与MAX202的T1IN和R1OUT引脚相连形成信号转换电路,如图3-9所示。图3-9 信号转换电路3.6单片机AT89C52AT89系列单片机是ATMEL公司生产的7。这是当前最新的一种电擦写8位单片机,与MCS-51系列完全兼容,有超强的加密功能,可完全替代87C51/52和8751/52。它物美价廉,深受用户欢迎10。图3-10 AT89C52芯片及管脚AT89C52是一种低功耗、高性能内含8K字节闪电存储器(Flash Memory)的8位CMOS微控制器。片内闪电存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。例如,MP-100这样一种经济型的编程器,它支持通用EPROM等各种存储器、PAL、GAL以及INTEL、ATMEL和PHILIPS等各公司的全系列51单片机的编程。ME5103和ME5105仿真器支持AT89系列所有器件的调试、仿真和编程。单片机AT89C52有内部RAM,可以作为各种数据区使用,内部闪电存储器存放控制程序。它的主要功能是完成键盘扫描程序,检测外部的操作指令,控制液晶显示模式和向液晶发送显示数据等。3.6.1振荡器的选择振荡器特性XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接8。有余输入至内部时钟信号要通过一二分频触发器,因此对外部时 钟 信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。3.6.2看门狗电路从本质上来说看门狗电路就是一个定时器电路,一般有一个输入和一个输出,其输出连接到单片机的复位端,在单片机正常工作的时候,每隔一段时间输出一个信号到输入,给看门狗电路清零,如果在超过规定的时间没有输入信号,WDT定时超时,就会回给一个复位信号到达单片机,使单片机复位,防止单片机死机6。总的来说,看门狗电路的作用就是防止程序发生死循环,或者说程序跑飞。IMP813LCMOS监控电路能监控电源及电池电压和的工作状况。 当电源电压降至4.65V以下时,即产生复位。该产品能提供多种功能。每个器件在上电、掉电期间及在电压降低的情况下可产生一个复位信号。此外,IMP813L带有一个1.6秒的看门狗定时器。IMP813L的引脚和功能与IMP705相同但只具有高电平有效的复位输出。具有1.25V门限的电源故障报警电路可用于检测电池电压和非5V的电源。所有器件都具有手动复位(MR)输入。看门狗定时器的输出如果连接至MR将会触发复位信号。所有器件都具有8脚DIP、SO和MicroSO封装。 IMP813L具有以下特点1可替换Maxim公司的MAX705/6/7/8及MAX813L2精确的电源监控,4.65V门限3去抖动的手动复位输入4电压监控,1.25V门限,电池监控/辅助电源监控5看门狗定时器6200ms复位脉冲宽度7高电平有效的复位输出表3-4 引脚说明IMP813L名称功能DIP/SO封装1手动复位输入。 低电平有效的输入可触发复位脉冲。 250A的上拉电阻允许此脚被TTL/CMOS逻辑驱动或由开关短路到地2Vcc+5V电源输入3GND所有信号的基准地4PFI电源故障电压监控输入。 当PFI小于1.25V时,变为低电平。不用时将PFI接地或接至Vcc5电源故障输出。该输出低电平有效且当PFI小于1.25V时吸收电流6WDI看门狗输入。 WDI控制内部看门狗定时器。WDI端保持高电平或低电平达1.6秒可使内部定时器完成计数,并将变为低电平。将WDI悬空或连接一个高阻抗三态缓冲器将禁止看门狗功能。 内部看门狗定时器清零的条件有三种:发生复位;WDI处于三态;或WDI检测到一个上升沿或下降沿8看门狗输出。当内部看门狗定时器超时1.6秒时,拉至低电平,并直到看门狗被清零才变为高电平。此外,当Vcc低于复位门限时,保持低电平。和不同,没有最小脉冲宽度,只要Vcc超过复位门限,就变为高电平而没有延迟7RESET高电平有效的复位输出。RESET与相反。IMP813L只有一个RESET输出图3-11 IMP813L管脚如图所示3.7 器件选择和功能此处列出本设计选用的关键部分的器件名称和相关的主要功能。1单片机:ATMEL89C52,主要完成对各个端口状态信号的监测、控制信号的发送以及和微机程序的通信。2驱动电路:东芝公司的TA7267BP,驱动小电机,完成对活动门的开关动作。3通信电路:MAX202,两路的TTL信号和RS232信号的电平转换芯片。完成单片机和微机之间的通信信号的电平转换。地址分配和硬件连接列出本设计关键部分的单片机引脚连接和相关的地址分配。1P 1.2:输入引脚,连接活动门的开关,通过活动门开关的电平变化触发单片机的中断,执行开关门控制指令的输出;2P2.0:输入引脚,连接活动门的状态才奋建,单片机读取P2.0口的电平,判断出活动门的当前状态;3P1.2、P1.3:输出引脚,连接驱动芯片TA7267BP的1、2引脚。单片机通过改变这两个管脚的电平,实现4种电机状态的控制指令。4RXD、TXD:通信管脚,连接通信电平转换芯片MAX202的11、12引脚。通过MAX202完成单片机和微机串行通信的电平转换。由这些器件组成的机箱活动门控制系统的基本电路如图3-12所示。图3-12 活动门的单片机控制电路第4章 系统软件设计4.1 计算机部分的程序4.1.1作用利用单片机实现机箱活动门控制的另一个优点是,可以利用软件控制活动门的开关,从而将计算机软件和硬件动作联系起来,更加方便用户对活动门的操作。在上述的技术方案中,采用串行通信的方式连接上位计算机和单片机有若干好处。首先,对于微机而言,控制外部设备的接口有多种多样,如并口、串口、PCI,ISA等。从电路设计的简便性考虑,利用串口最为理想10。这是因为,一般的微机均带有4个以上的串行接口,而并口只有一个,机箱和微机的生产厂家不可能仅仅为了活动门而占用微机有限的并口资源。 同样,使用PCI,ISA插槽不仅占用了主板资源,更是需要开发独立的驱动,开发成本较高;此外,从开发的成本和复杂性上考虑,采用串口无疑是最为简便而低廉的设计方案。4.1.2技术方案用户通过软件界面选择和控制机箱活动门的开关。控制界面和单片机相当于是上、下位机的关系。控制界面通过串行通信传递给单片机控制指令,单片机接收指令后,选择和控制所需要动作的活动门。4.1.3具体实现软件控制活动门需要实现两个功能:一是人机控制界面的编写,二是活动门控制信号的传送和执行。第一个功能的主要内容是Windows环境下可视化程序的开发;第二个功能主要是微机与单片机之间的通信。1控制界面目前,软件界面一般都是基于Windows环境下的程序开发,Visual Basic, Visuat C+等。在这里只给出本设计所采用的人机控制界面,如图4-1所示。控制界面中一般需要完成如下的内容:选择设备:选择需要动作的活动门。选择动作:决定活动门的开关动作。执行内容:在活动门动作后,选择应用程序。例如,显示光盘的内容等。图4-1 微机控制界面控制界面中一般需要完成如下的内容:选择设备:选择需要动作的活动门。选择动作:决定活动门的开关动作。执行内容:在活动门动作后,选择应用程序。例如,显示光盘的内容等。2微机与单片机的通信微机和单片机的通信和以下的两个方面有关:一是微机端的软件,二是通信的协议。在本例中,上位计算机采用Visual Basic 6.0编程语言,单片机使用ATMEL89C52,二者之间通过串行通信传输控制指令。以下就详细说明微机和单片机之间是如何通过串行通信进行控制指令传递的。控制指令的定义:上位机程序需要将用户在人机控制界面中的选择,如活动门编号的选择、开关门动作的选择等,转换为可以传递的ASCII码控制指令,通过串行数据的发送、接收和处理,实现控制动作。在设计中,对控制指令做如图4-2所示的规定。“$ #x , B/S/CW/CCW *起始符 门号 动作 终止符图4-2 控制指令的组成在微机和单片机通信时,电机的4种动作分别用“B”(刹车)、“s”(停止)、“CW”(开门)和“CCW”(关门)表示。相关的起始符和终止符则是表示控制编码的开始和结束,方便单片机的接收和对控制指令的处理。例如,“$ #1, CW*”这一组编码,表示用户希望活动门1打开。而这一组编码将会被界面控制软件发送到单片机中,并由单片机控制电机实行活动门1的开门动作。控制指令的发送:本设计以Visual Basic 6.0(VB6)为编程语言,在VB6中对串行数据的操作一般是利用MSComm控件实现的。MSConn控件发送串口通信的方法非常简单实用,只需要规定MSCmnm控件中的相关属性,如使用端口、数据传输率等属性后,利用Mscomm.Output事件发送控制指令的字符串就可以了。以下是VB中发送控制指令程序简化后的代码,只列出了关键部分,其他控件的函数请用户参考有关资料编写。发送控制指令的代码如下:主窗体初始化MSComm控件Private Sub Form_Load()主窗体初始化MSComm控件 MSComm1.CommPort=1定义串口数据格式:9600 bit/s,无奇偶校验,8位数据,一个停止位 MSComm1.Settings=“9600,N,8,1” MSComm1.InputLen=1当接收到一个字符后,触发ONCOMM时间 MSComm1.Rthreshold=1End Sub发送程序的代码Private Sub send() If MSComm1.PortOpen=False Then MSComm1.PortOpen=Ture MSComm1.Output=sendstringEnd Sub以上是VB中利用MSComm控件发送串口数据的方法。接下来是VB中利用MSComm控件接收串口数据的方法。VB6中利用MSComm控件接收串口数据的方法有两种:一种是利用查询MSComet控件的属性,得到当前缓冲区中的数据;另一种方式是通过设定MSCamm.RTHRESHOLD属性,触发MSComm控件的ONCOMM事件9。如果需要对每个接收到的字符进行识别,则设定MSComm.RTHRESHOLD的值为1,即每收到一个字符,产生ONCOMM事件,在事件中对字符进行处理。基本的时间触发程序代码如下:Prinate Sub MSComm1_OnComm()Select Case MSComm1.CommEvent Caes comEvReccive Nowstring=Mscomm1.Input Ionsting=Instring+Nowstring If Nowstring=“*”Then data_number=data_number+1 data_steing(data_number)=Instring Instring=“” End IfEnd SelectEnd Sub控制指令的接收单片机完成控制指令的接收主要分为3个步骤。(1)串口数据传输率的设定。(2)串口初始化。(3)接收程序的编制。通常使用单片机的串口时,选用的晶振比较固定,一般是6MHz, 12MHz和11.0592MHz。常用于和微机通信的数据传输率也相对固定。串口常用数据传输率及相应设置如表4-1所示。表4-1串口常用数据传输率设置工作方式数据传输率(kbit/s)Fosc=6MHzFosc=12MHzFosc=11.0592MHz方式1或方式3SMODTMODTH1SMODTMODTH1SMODTMODTH162.512019.2120FDH9.6020FDH4.8120F3H020FAH2.4120F3H020F3H020F4H1.2120E6H020E6H020E8H600120CCH020CCH020D0H串口初始化主要是设置产生数据传输率的定时器1、串行口控制和串口中断控制。具体步骤如下9:(1)确定定时器1的工作方式写TMOD寄存器。(2)计算定时器1的初值装载TH1, TLl。(3)启动定时器1写TCON中的TR1位。(4)确定串口的控制写SCON。(5)使用串口中断方式时,开CPU和中断源写IE寄存器。单片机串口接收数据的编程一般有两种方式,一种是采用查询的方式,另一种是中断方式。查询方式接收串行数据较为简单,以下是查询方式的代码:#includc unsigned char astring; TOMD=0x20; TL1=0xfd;TH1=0xfd; SCON=0xd8;PCOM=0X00; TR1=1while(1) while(RI=0); RI=0; astring=SBUF;由于查询方式大量占用CPU时间,单片机在执行多任务时,往往会使用中断方式。以下只列出中断服务程序的代码,主程序中的串口初始化程序和查询方式的类似。serial()interrupt 4 using1RI=0; if(SBUF=0X24) record=1 i=0; astring=0; if(record=1) astringi=SBUF i+ if(SBUF=*) astringi=0 record=0; 当单片机接收到来自微机的控制指令后,按照如表4-2所示的内容改变P1.2和P1.3口的电平状态,从而控制电机的不同动作。表4-2 控制指令对应的电机状态控制指令P1.2P1.3电机状态“$ #1. B *”“$ #1. CW *”“$ #1. CCW *”101110刹车正转反转“$ #1. S *”00停车4.2单片机部分的程序4.2.1作用当计算机向单片机发出控制指令时,单片机通过当时开关和门的状态,依据程序控制电机的正、反转,刹车,停车,最终达到控制门开启与关闭的功能。4.2.2技术方案机箱活动门通过单片机的控制来达到门的开启与关闭,其对门的控制采用中断的工作方式,与上位机的通信采用串口的工作方式4.2.3具体实现单片机的程序完成两个功能,首先是监测活动门开关和活动门状态,并以此为依据输出活动门的控制指令。以下是这部分源程序的代码。#includesbit gate=P20;bit diect;sbit moto1=P12;sbit moto2=P13;unsigned char astring;void main(void)EA=1;EX0=1;IT0=1;TMOD=0x20;TL1=0xfd;YH1=0xfd;SCON=0xd8;PCOM=0x00;TR1=1;for(;) gate=1; if(gate)direct=0; else direct=1;void int0svr(void)interrupt O using 1 if(direct) moto1=0; motor2=1; else moto1=1; moto2=0; 其次,单片机程序还需要随时接收上位机发送的控制指令,并根据指令发送对活动门的控制指令。并根据指令发送对活动门的控制指令。单片机和微机控制指令的传递在本设计中使用的是串口通信。serial () interrupt 4 using 1 RI=0; if (SBUF=0x24) record=1; i=0; astringi=0; if(record=1) astringi=SBUF; i+ if(SBUF=*) astring i=0; record=0; if(astring=”#1.CW”) moto1=0; moto2=1; 当需要执行活动门开关动作时,单片机应当执行如下的程序:1判断P2.0口的电平对单片机P2.0口电平的判断,在实际的程序中是通过查询方式实现的。sbit gate=P20;bit direct;void main(void)for(;) gate=1 if(gate)direct=0 else direct=12判断INT0口的电平变化:判断INT0口的电平变化,实际上就是判断此时有无开关按键按下的动作。当有按键按下的动作发生时,引起中断0

温馨提示

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

评论

0/150

提交评论