POWER DRIVEN VENTING OF A VEHICLE

Abstract: An obstruction detection apparatus is provided for use in closing a power driven vent, such as a window (1035), that is located in an opening (1042). The vent includes a first closing edge that moves as the vent is closed and the opening includes a second closing edge that is contacted by the first closing edge when the vent is in a fully closed position. The apparatus includes a detector (1060) configured to detect an obstruction at all points along the second closing edge without requiring contact between the obstruction and the vent and to deliver a detection signal when an obstruction is detected. A controller is connected to the detector for receiving the detection signal and delivering a corresponding alarm signal.

Description: POWER DRIVEN VENTING OF A VEHICLE Background of the Invention The invention relates to power driven venting of a vehicle. Early automobiles for example, included stationary windows that allowed an occupant of the automobile to view regions outside of the automobile. Over time, these stationary windows evolved into adjustable windows that could be opened to provide ventilation to the interior of the automobile. The adjustable windows, which were initially hand lifted, were followed first by manually cranked windows, and then by the power operated windows commonly found in automobiles today. Eventually, it was discovered that the power operated windows could be automatically opened to provide ventilation when the interior of the automobile became too hot and automatically closed when rain was detected. This automatic venting system, which is described in United States Patent No. 4,852,469 and incorporated by reference, then evolved into the automobile environment management system described in United States Patent No. 5,054,686 and also incorporated by reference. Summary of the Invention In general, in one aspect, the invention features an obstruction detection technique for use in closing a power driven vent, such as a window, that is located in an opening. The vent includes a first closing edge that moves as the vent is closed and the opening includes a second closing edge that is contacted by the first closing edge when the vent is in a fully closed position. A detector is configured to detect an obstruction at points all along the second closing edge without requiring contact between the obstruction and the vent. When the detector detects such an obstruction, the detector delivers a detection signal to a controller. The controller receives the detection signal and delivers a corresponding alarm signal that is used, for example, to open the window. The technique ensures that powered vents such as windows or sunroofs can be automatically closed without risk of injury to children, pets, or other occupants of a vehicle in which the vents are installed. Embodiments of the invention may include the following features. The detector may include an optical detector, an infrared detector, an ultrasound detector, or similar devices. The detector may deliver the detection signal in response to an increase in energy received at the detector, and there may also be an emitter that emits energy so that the detector delivers the detection signal in response to an increase or a decrease in a reflected portion of the energy produced by the emitter and received by the detector. The detection signal may have a characteristic which represents the intensity of the energy received. For example, the detector may produce pulses having durations related to the intensity of the energy received by the detector and deliver the detection signal when the duration of one pulse exceeds a predetermined value, or when the durations of a predetermined number of consecutive pulses exceed the predetermined value. The predetermined value may be related to the duration of a pulse when no obstruction is present or the average duration of pulses produced when no obstruction is present and the vent moves between an opened position and a closed position. The predetermined value may include a correction factor that accounts for variations in the duration of pulses produced when no obstruction is present, and may vary based on the position of the vent. The predetermined value, or some other value indicative of an obstruction free opening, may be stored during an initialization procedure. The detector and emitter may be included in an integral unit, which may be a compact unit in which the detector and the emitter share a common lens. The emitter may include a light emitting diode or a laser device. The emitter may also includes a lens that emits a fan shaped energy curtain. There may also be a second detector configured to detect an obstruction at any point along the second closing edge without requiring contact between the obstruction and the vent and to deliver a second detection signal when an obstruction is detected. The first and second detectors may be arranged so that they are not caused to deliver the first and second detection signals as a result of energy received at the same time. There may also be a first emitter positioned to emit a first energy signal toward the first detector, and a second emitter positioned to emit a second energy signal toward the second detector, with the first and second emitters producing the first and second energy signals in an alternating manner, and the controller being connected to the second detector and to deliver the alarm signal in response to the first or second detection signals. The detectors may be configured so that, when the first emitter is emitting the first energy signal, the first detector delivers the first detection signal in response to a decrease in energy received at the first detector, and the second detector delivers the second detection signal in response to a decrease in energy received at the second detector, and when the second emitter is emitting the second energy signal, the first detector delivers the first detection signal in response to an increase in energy received at the first detector, and the second detector delivers the second detection signal in response to an increase in energy received at the second detector. The first detector may be screened from the second emitter and the second detector may be screened from the first emitter. Automatic closing or opening of the vent may be initiated by a rain sensor, a temperature sensor, a motion sensor, or a light sensor. Closing of the vent may also be initiated by a manual switch. In another aspect, generally, the invention features a technique for controlling power driven windows of an automobile. There are driver control switches accessible at the driver's position, separate passenger control switches accessible at a passenger position, and microprocessor control circuitry for responding to switching of the driver and passenger control switches for controlling the power driven windows. The microprocessor control circuitry is programmable in response to the driver control switches and separately programmable in response to the passenger control switches. Embodiments of the invention may include one or more of the following features. The microprocessor control circuitry may respond to switching of the driver control switches when a conflict arises between the driver control switches and the passenger control switches. There may be passenger control switches located at two additional passenger positions and a lockout switch at the driver's position that, when active, causes the microprocessor control circuitry to ignore switching of the additional passenger control switches in response to the lockout switch. This feature could be used, for example, to disable window controls for the rear window of an automobile when children are present in the back seat. The driver control switches need not be directly connected to the vent driving circuits, and the microprocessor controller may be located remotely from the driver control switches. The driver control switches may be connected to the microprocessor controller by 20 gauge or finer wire. The technique provides failsafe operation in that it is designed so that a failure in the obstruction detection apparatus will prevent automatic vent closure. This ensures that a system failure will not result in injury. However, the apparatus also includes a manual switch that can override the obstruction detection features. Thus, in the event of a failure of the obstruction detection system, the vents can still be closed through the manual override. In another aspect, generally, the invention features automatically opening a power driven vent, such as the sunroof or one or more windows, to an opening level specified by a user of the vehicle in response to the opening of a door of the vehicle to reduce air pressure build up when closing the door. Because the pressure build up can result in a back pressure on the door that increases the force necessary to close the door, the open vent, which reduces or eliminates the pressure build up, substantially reduces the force necessary to close the door. The opening level can be specified by pressing a switch at least one time, with each press of the switch changing the opening level by an incremental amount. This feature may also include automatically closing the vent after the doors are closed, and may further include detecting obstructions while automatically closing the vent without requiring contact between the obstruction and the vent. When an obstruction is detected, the vent is reopened, typically to the opening level. This feature may also include checking the obstruction detection system to verify that it is functioning properly before opening the vent, and only opening the vent if the obstruction detection system is functioning properly. In addition, the obstruction detection system can be checked prior to closing the vent, with the vent only being closed if the obstruction detection system is functioning properly. In this case, the obstruction detection system can be checked a predetermined number of times before giving up on closing the vent. In another aspect, generally, the invention features monitoring the position of a power driven vent by a generating a count of current ripples in a circuit that moves the vent. This count can then be compared against a measure of the number of current ripples generated as the vent moves from a first known position to a second known position (e.g., from fully closed to fully open) . The count of current ripples can be incremented as the vent is, for example, opening, and decremented as the vent is, for example, closing. In another aspect, generally, the invention features a sensor for detecting an obstruction in an opening. The sensor includes an emitter operable to emit energy, a detector operable to detect energy emitted by the emitter and to deliver a detection signal in response to an increase in detected emitter energy, and control circuitry connected to the emitter and detector. The control circuitry is operable to control the emitter and the detector and, in response to the detection signal, to produce an output signal indicative of the detection of an obstruction. The emitter, detector and control circuitry are held in a housing. Embodiments of the invention may include one or more of the following features. The emitter may be operable to emit energy as a fan-shaped beam, and may include a lens that is shaped to produce the fan shaped beam. The emitter may also include one or more light emitting diodes that may be spaced from the lens. The emitter and the detector may also share a common lens, where vertical sections of the common lens in a first dimension have upper surfaces that conform to circular arcs and vertical sections of the common lens in a second dimension have curved upper surfaces that do not conform to circular arcs. Typically, the common lens has a flat lower surface. The common lens may be made from an epoxy resin, and the detector may include a plano-convex lens formed from the epoxy resin. The planar side of this lens may be in contact with the common lens. The detector may also include a photo IC and a filter, with the filter positioned between the photo IC and a convex side of the plano-convex lens. The control circuitry is operable to activate the emitter in response to an input signal. The control circuitry may also be operable to change a state of the output signal from a first state to a second state in response to an input signal, to change the state of the output signal from the second state to the first state when no obstruction is detected, and to maintain the state of the output signal in the second state when an obstruction is detected. The control circuitry may be operable to deliver the output signal along only a single wire and to receive an input signal along only a single wire. The housing may be sized and configured for positioning in an opening of an automobile. In particular, the housing may be sized and configured for positioning in a window opening or door opening of an automobile. The sensor may include an external interface that includes only an input wire, an output wire, a power wire and a ground wire. In another aspect, the invention features a method of indicating the presence of an obstruction in an opening by producing an output signal, changing the state of the output signal from a first state to a second state in response to an input signal, activating, in response to the input signal, an emitter operable to emit energy, detecting energy emitted by the emitter, delivering a detection signal in response to an increase in detected emitter energy, and controlling the state of the output signal to indicate the detection of an obstruction in response to the presence of absence of the detection signal. The method may also include changing the state of the output signal from the second state to the first state when no detection signal is delivered within a predetermined time period. Typically, the first and second states are the only possible states for the output signal, the output signal is produced on only one wire, and the input signal is received on a single wire. In another aspect, the invention features a sensor for detecting an object in an opening of a structure, where the sensor includes a housing, an emitter held by the housing and configured to provide radiation across an area defined by the opening, a receiver held by the housing and positioned to receiver radiation reflected by an object present in the opening, an input connection and an output connection accessible from outside the housing, and a controller held by the housing. The controller is connected to the emitter, the receiver, the input connection and the output connection, and has circuitry that responds to a signal at the input connection by analyzing signals from the receiver and providing a signal at the output connection indicative of whether an object is present in the opening. Other advantages and features will become apparent from the following description and from the claims. Brief Description of the Drawings Fig. 1 is a side view of an automobile with closed doors. Fig. 2 is a top view of the automobile of Fig. 1 with open doors. Fig. 3 is a block diagram of an automatic window system. Fig. 4 is a side view of energy curtains produced by an obstruction detection system of the automatic window system of Fig. 3. Fig. 5 is a top view of the energy curtains of Fig. 4. Fig. 6 is a schematic of a front emitter/receiver unit of the system of Fig. 3. Fig. 7 is a block diagram of a photo IC of a receiver of the emitter/receiver unit of Fig. 6. Fig. 8 is a schematic of a rear emitter/receiver unit of the system of Fig. 3. Figs. 9A-9C are schematic views of a compact emitter/receiver unit for use in the system of Fig. 3. Fig. 10 is a flow chart of an obstruction detection procedure of the system of Fig. 3. Figs. 11A-11C are timing diagrams of signals related to the obstruction detection system of Fig. 3. Figs. 12A-12B are block diagrams of a controller of the system of Fig. 3. Fig. 13 is a flow chart of a procedure implemented by the controller of Fig. 12. Figs. 14A-14C are flow charts of anti air bind procedures implemented by the controller of Fig. 12. Figs. 15 is a flow chart of a driving mode procedure implemented by the controller of Fig. 12. Figs. 16A-16B are flow charts of a parking mode procedure implemented by the controller of Fig. 12. Figs. 17 and 17A are top views of emitter/receiver placement for an obstruction detection system of the automatic window system of Fig. 3. Figs. 18 and 18A are schematics of sunroof emitter/receiver units of the system of Fig. 3. Fig. 19 is a block diagram of a sunroof control system. Figs. 20-29 are flow charts of procedures implemented by a control unit of the sunroof control system of Fig. 19. Fig. 30 shows a block diagram of an obstruction detection system. Fig. 31 shows an obstruction detection system for a window associated with a vehicle door. Fig. 32 shows obstruction detection system for a sun roof associated with a vehicle. Fig. 33 shows the path of an energy signal produced by an obstruction detection system. Fig. 34 shows an obstruction detection system in an environment that includes an ambient light source. Fig. 35 shows a lens and filter system. Fig. 36 shows a shade and filter system. Fig. 37 shows a high frequency pulse modulated signal. Fig. 38 shows a high frequency pulse / low frequency amplitude modulated signal. Fig. 39 shows a pulse synchronization timing diagram. Fig. 40 shows an obstruction detection system including an ambient energy signal receiver. Fig. 41 shows a diverging unit. Fig. 42 shows a partial view of an obstruction detection system including the diverging unit shown in Fig. 41 together with several receiver units. Fig. 43 shows an isometric view of the transmitter/receiver unit shown in Fig. 42. Fig. 44 shows an obstruction detection system including the transmitter/receiver unit shown in Fig. 43. Fig. 45 shows an obstruction detection system including several transmitter/receiver units. Fig. 46 shows an obstruction detection system including a fiber optic waveguide having several notches. Fig. 47 shows a block diagram of an obstruction detection system including a bi-directional transmitter/receiver unit. Fig. 48 shows an obstruction detection system in an environment that includes ambient reflection. Fig. 49 is a schematic block diagram of a circuit which generates and senses a beam that monitors and controls the window. Fig. 50 is a schematic of a vehicle door showing a partially closed window and an arrangement of transmitting and receiving transducers that establish a monitoring beam for a nonlinear, rectilinear window edge. Fig. 51 is a schematic of a vehicle sun roof partially closed showing the arrangement of transducers relative to a nonlinear, curvilinear edge. Fig. 52 is a schematic three-dimensional view of a single sensor corner receiver. Fig. 53 is a schematic three-dimensional view of a dual sensor corner receiver. Fig. 54 is a schematic top plan view of a transducer using a spring-biased interrupter. Fig. 55 is a side elevational view of a transducer accompanied by a camming surface for guiding obstructions into the beam. Fig. 56 is a schematic view showing ambient light from the sun interfering with reception at the receiver. Fig. 57 is a view similar to Fig. 56 wherein the reflected radiation from the transmitter is interfering with the operation of the receiver. Fig. 58 is a schematic view of a transmitter and receiver employing shades according to this invention. Fig. 59 is a view similar to Fig. 58 in which the transmitter and receiver are using both shades and filters. Fig. 60 is a schematic of a dual channel obstruction detection system for a vehicle window according to this invention using different frequencies for each channel. Fig. 61 is a view similar to Fig. 60 wherein the channels may use the same frequency but are operated one at a time. Fig. 62 shows the transmitter and receiver waveforms for each of the channels in Fig. 61. Fig. 63 is a schematic block diagram of a control circuit for operating the dual channel system of Fig. 61. Fig. 64 is a perspective View of a self-contained, compact obstruction sensor. Fig. 65 is a cross sectional view of the sensor of Fig. 64, taken along line 65-65. Figs. 66A-66C are schematic views of the sensor of Fig. 64. Fig. 67 is a timing diagram of signals related to the sensor of Fig. 64. Fig. 68 is a circuit diagram for the sensor of Fig. 64. Description of the Preferred Embodiments Referring to Figs. 1 and 2, an automobile 10 often includes a front door 12 and a rear door 14 on each side, with front door 12 having a power operated front window 16, and rear door 14 having a power operated rear window 18. Automobile 10 can also include a power operated sunroof 20. Each power operated window 16, 18 is moved between closed and fully opened positions by an electric motor 22 (see Fig. 3) positioned within door 12, 14, and is operated by a window switch 24 positioned on door 12, 14. Typically, the driver's side front door 12 includes a control panel 26 that includes four window switches 24 and allows the driver of automobile 10 to operate all windows 16, 18. Similarly, sunroof 20 is opened and closed by a motor 22 and operated by a sunroof switch 28 that is typically positioned near sunroof 20. Sensors 30 (Fig. 2) indicate whether doors 12, 14 are closed (Fig. 1) or open (Fig. 2) . Similarly, the position of an ignition switch 32 provides a general indication as to whether automobile 10 is occupied (i.e., when ignition switch 32 is on, automobile 10 is probably occupied, and when ignition switch 32 is off, automobile 10 is probably unoccupied) and specifically whether a key has been inserted and in which rotary position it is located. Referring also to Fig. 3, a rain sensor 34 positioned on the exterior of automobile 10 detects the presence of rain, and a temperature sensor 36 positioned within automobile 10 monitors the interior temperature of automobile 10. As discussed below, a light sensor 38, a motion detector 40, and a dangerous gas detector 42 can also be installed in automobile 10. Automatic window system 44 includes a controller 46 that uses the signals from the sensors described above to control motors 22. For example, controller 46 responds to an indication from rain sensor 34 that rain is beginning to fall by automatically controlling motors 22 to close windows 16, 18 and sunroof 20. Controller 46 responds to temperature sensor 36 by causing motors 22 to open or close windows 16, 18 and/or sunroof 20. In response to an indication from temperature sensor 36 that the temperature within automobile 10 has exceeded a first threshold value (typically 95° F.), and absent an indication of rain from rain sensor 34, controller 46 causes motors 22 to open windows 16, 18 and/or sunroof 20. Similarly, in response to an indication from temperature sensor 36 that the temperature within automobile 10 has fallen below a second threshold value (typically 55° F.), controller 46 causes motors 22 to close windows 16, 18 and sunroof 20. Temperature sensor 36 can be implemented using a single sensor that measures the temperature and compares it to the two threshold values, or using two sensors, each of which compares the temperature against one of the threshold values. In addition to controlling the environment within automobile 10, system 44 can be configured to provide features such as night closure, intruder detection, and gas detection. When system 44 includes a light sensor 38, windows 16, 18 are automatically closed at night to prevent insects and other nocturnal pests from entering automobile 10. A motion detector 40 can provide intruder detection by, when automobile 10 is unoccupied (as indicated by the position of ignition switch 32) , causing system 44 to automatically close windows 16, 18 and sunroof 20 upon detection of movement. Similarly, a dangerous gas detector 42 can cause system 44 to automatically open windows 16, 18 and/or sunroof 20 upon detection of unacceptable levels of noxious gases such as carbon monoxide. System 44 also provides convenience features such as express open and express close, which allow occupants of automobile 10 to fully open or close windows 16, 18 with a single touch of a window switch 24. In addition, system 44 allows the driver to express open or express close any or all of windows 16, 18 with a single touch at control panel 26. Child guard features that allow the driver to disable the switches 24 positioned on rear doors 14 are also provided. Other features of system 44 provide both security and convenience. For example, system 44 can be configured to automatically close windows 16, 18 and sunroof 20 when ignition switch 32 is turned to the off position, which indicates that the driver and other occupants are exiting automobile 10. This feature, which eliminates any inconvenience associated with closing windows 16, 18 and sunroof 20, is known as security close because it ensures that automobile 10 will not be mistakenly left unattended with the windows open. As a complement to security closing, system 44 could also include a memory function that, when ignition switch 32 is turned on, automatically opens windows 16, 18 and sunroof 20 to the positions they were in just before ignition switch 32 was turned off. Another feature, referred to as anti air bind, eases closing of doors 12, 14, and thereby reduces the chance that a door will be mistakenly left ajar. As automobiles have become increasingly air tight, it has been discovered that a significant amount of air pressure is produced within an automobile while a door is closing. This pressure, referred to as air bind, requires that considerable force be applied to the door to ensure proper closure. System 44 eliminates air bind by partially opening rear windows 18 upon receiving a signal from a sensor 30 that a door 12, 14 is open. The open rear windows 18 drastically reduce the pressure built up within automobile 10 and thereby eliminate the air bind problem. Once system 44 determines, through sensors 30, that all doors 12, 14 are closed, system 44 automatically closes windows 18. In addition to easing closure of doors 12, 14, the anti-air bind feature also reduces the risk that a window will be broken by a door that is closed too hard, and reduces discomfort to occupants of automobile 10 caused by the increase in pressure within automobile 10. System 44 can also be configured to interact with an alarm system 48 or an air conditioning system 50. When system 44 interacts with air conditioning system 50, controller 46 opens windows 16, 18 to allow particularly hot air to be vented from automobile 10. Once controller 46 determines that the temperature within automobile 10 has fallen below a specified value, controller 46 closes windows 16, 18. Because system 44 automatically opens and closes windows 16, 18 and sunroof 20, and often does so without human interaction, system 44 must eliminate any risk that a window 16, 18 or sunroof 20 will be accidentally closed in a way that pinches or otherwise injures a child, pet, or other occupant of automobile 10. To eliminate this risk, system 44 includes an obstruction detection system 52 that prevents system 44 from accidentally closing a window 16, 18 or sunroof 20 when an obstruction such as a child's arm is present within the path travelled by the window 16, 18 or sunroof 20, and does so without requiring the obstruction to contact the moving window 16, 18 or sunroof 20. Typically, obstruction detection system 52 produces an energy curtain in the region traversed by a closing window 16, 18 or sunroof 20, and detects interference with the energy curtain. Obstruction detection system 52 allows system 44 to interact with an alarm system 48, or to itself act as an alarm system. In this configuration, when activated, system 44 periodically polls detectors associated with each window 16, 18 (typically once every half second) to determine whether obstructions are present. If an obstruction is present, this indicates that somebody is reaching into an open or broken window 16, 18, and system 44 responds by signalling alarm system 48 or by sounding an alarm (when acting as an alarm system) . Typically, alarm features are activated/deactivated using a remote control. The alarm remote control, or a separate unit, could also be used to remotely open and/or close windows 16, 18. When system 44 acts as an alarm system, system 44 could also include a mercury switch other means for detecting movement of automobile 10. As shown in Fig. 3, controller 46 receives control signals from occupants of automobile 10, and particularly from the driver, through signals received from ignition switch 32, window switches 24, sunroof switch 28, and door sensors 30. Controller 46 also responds to signals from rain sensor 34, temperature sensor 36, light sensor 38, motion sensor 40, and dangerous gas detector 42. In addition, controller 46 interacts with obstruction detection system 52 by sending driving signals 54 to system 52 and responding to detection signals 56 produced by system 52. Driving signals 54 cause system 52 to produce energy curtains in windows 16, 18 or sunroof 20, and are typically only produced when controller 46 is preparing to close, or closing, a window 16, 18 or sunroof 20 (or when system 44 is acting as, or interacting with, an alarm system 48, and is activated). Controller 46 configures driving signals 54 to only produce an energy curtain in a particular window 16, 18 that is being closed (or monitored for alarm purposes) . Controller 46 also monitors electrical characteristics of motors 22 and uses information about the electrical characteristics in controlling motors 22. Window switches 24 and sunroof switch 28, in addition to signalling that windows 16, 18 and sunroof 20 should be opened or closed, provide configuration signals to controller 46. For example, the driver can disable security closing by pressing a window switch 24 within a short time interval (typically five seconds) after turning off ignition switch 32. After this time interval has expired, or after the driver has enabled security closing by pressing a switch 24, the driver can configure the extent to which windows 16, 18 are opened upon detection of a signal from temperature sensor 36 by pressing switches 24 multiple times. Each press of a switch 24 sets the corresponding window 16, 18 to open by an incremental amount. For example, if the increment were one inch, pressing the switch 24 corresponding to the passenger side window 16 would cause that window to be opened three inches when temperature sensor 36 detects excessive heat. The increment can be selected so that, for example, one press corresponds to slightly open and five presses corresponds to fully open. Rather than separately configuring each window, the driver can simultaneously configure all windows by pressing the switch 24 corresponding to the left rear window. To enable/disable the anti air bind features, the driver simultaneously presses the switches 24 corresponding to the right and left rear windows. The extent to which windows 18 are opened during anti-air bind operations can be controlled through the switches 24 in doors 14, where pressing a switch 24 to the open position will increase the extent to which the corresponding window 18 opens by one inch and pressing the switch 24 to the close position will decrease the extent by the same amount. When switches 24, 28 are used for system configuration, controller 46 provides feedback to the driver through a feedback unit 58. Feedback may be provided through audible tones that reflect the number of times that the driver has pressed switches 24, 28. Feedback could also be provided through an LED or LCD display, or through other means. Though use of switches 24, 28 for configuration reduces the number of switches required and eases installation, a separate set of configuration controls could also be provided. Because system 44 relies on many preexisting sensors and controls, system 44 can be easily installed in an existing automobile 10. For example, in many systems, controller 46, obstruction detection system 52, feedback unit 58 (which is typically a buzzer) , rain sensor 34, and temperature sensor 36 are the only new components. Moreover, because many functions of controller 46 are implemented in software, controller 46 can be easily customized or upgraded as new features become available. Referring to Fig. 4, obstruction detection system 52 includes front emitter/receiver units 60 positioned to produce energy curtains 62 in regions traversed by front windows 16, and rear emitter/receiver units 64 positioned to produce energy curtains 66 in regions traversed by rear windows 18. Emitter/receiver units 60, 64 include emitters 68 (see Fig. 6) that produce energy curtains 62, 66 and receivers 70 (see Fig. 6) that detect any portion of energy curtains 62, 66 that is reflected back to emitter/receiver units 60, 64. When obstructions are placed within energy curtains 62, 66, the reflected portions of energy curtains 62, 66 increase. Thus, receivers 70 detect obstructions by detecting increases in the reflected portions of energy curtains 62, 66. Front emitter/receiver unit 60 is vertically positioned at the lower front corner of window 16. This positioning ensures that energy curtain 62 covers the region ABCD in which an obstruction could be caught between window 16 and a window frame portion 12 of door 12 as window 16 closes. This positioning also minimizes the vertical angle of energy curtain 62 needed to cover region ABCD, which, could be, for example, about 38°. Because the area covered by energy curtain 62 is directly related to the vertical angle , and the intensity of energy curtain 62 is inversely related to the area covered by energy curtain 62, minimizing the vertical angle λ maximizes the intensity of the energy curtain 62 that can be produced by a particular emitter 68. Because the sensitivity of front emitter/receiver unit 60 is directly related to the intensity of energy curtain 62, the positioning of front emitter/receiver unit 60 maximizes the ability of front emitter/receiver unit 60 to detect obstructions. The position of front emitter/receiver unit 60 is also aesthetically pleasing and allows for efficient installation. Rear emitter/receiver unit 64 is horizontally positioned at the lower front corner of window 18. This positioning ensures that energy curtain 66 covers the region EFGHI in which an obstruction could be caught between window 18 and a window frame portion 74 of door 14 as window 18 closes. As with front emitter/receiver unit 60, the positioning of rear emitter/receiver unit 64 minimizes the vertical angle 2 of energy curtain 66, which may vary from about 50° to 60° depending on the configuration of a particular window 18. This positioning maximizes the intensity of energy curtain 66 and thereby maximizes the ability of rear emitter/receiver unit 64 to detect obstructions. Referring to Fig. 5, emitter/receiver units 60, 64 are positioned so that horizontal angles R and B 2 of energy curtains 62, 66 are roughly centered, respectively, in window frame portion 72 of door 12 and window frame portion 74 of door 14. This positioning ensures that, even if an emitter/receiver unit 60, 64 is misaligned due to vibrations or other adverse operating conditions present in automobile 10, energy curtains 62, 66 will detect obstructions in the planes defined by windows 16, 18. These same alignment concerns are addressed by combining emitters 68 and receivers 70 in emitter/receiver units 60, 64 to eliminate any installation difficulties that would be associated with aligning separately packaged emitters 68 and receivers 70, and to eliminate maintenance and operational difficulties that could result from to misalignment stemming from vibrations or other adverse operating conditions. Referring to Fig. 6, front emitter/receiver unit 60 includes an emitter 68 and two receivers 70. Emitter 68 includes four infrared light emitting diodes (LEDs) 76 that produce energy curtain 64 in response to driving signals 54 from controller 46. LEDs 76 may produce conical infrared beams 78 having angles of between 25° and 30° and wavelengths of 940 or 950 nanometers, and are arranged so that beams 78 are parallel and share a common vertical plane. Operating power for each LED 76 is about four to six milliwatts. A cylindrical lens 80 horizontally focusses and vertically diverges the conical beams 78 from LEDs 76 to produce energy curtain 64 having a vertical angle λ of about 38° and a horizontal angle E> λ of about 5°-10°. Emitter 68 includes multiple LEDs 76 to increase vertical angle α 1# and to increase the intensity of energy curtain 64 which, in turn, increases the range R at which front emitter/receiver unit 60 can detect obstructions. Each receiver 70 includes a biconvex lens 82 that focusses incoming energy reflected by an obstruction 83 into a parallel beam directed at a band pass filter 84 that passes energy having wavelengths from about 930-950 nanometers. From band pass filter 84, the parallel beam is directed to a second biconvex lens 86 that focusses the beam on a photo IC 88 that produces a voltage signal which varies with the intensity of the beam. Referring also to Fig. 7, photo IC 88 includes a photodiode 90 that produces a voltage in response to the beam and an amplifier 92 that amplifies that voltage. The output of amplifier 92 passes through a 38 kHz bandpass filter 94 before being applied to the input of an integrator 96 that, in combination with a comparator 98, acts as a Schmitt trigger. The output of comparator 98 is supplied to a drive transistor 100 that toggles the output voltage 102 of photo IC 88 between a high value of about five volts when less than a threshold amount of energy is being received to a low value of about zero volts when more than the threshold amount of energy is being received. Photo IC 88 is implemented using an IS1U60 OPIC sensor available from Sharp. Because each receiver 70 has a conical field of view of about 12°, two receivers 70 are employed to provide a suitable field of view. The outputs 102 of receivers 70 are combined by a logical AND operator 104 to produce a detection signal 56. Because outputs 102 have a low value when energy is being detected, detection signal 56 has a high value when neither receiver 70 is detecting energy, and otherwise has a low value. As illustrated in Fig. 8, except for the positioning of LEDs 76, rear emitter/receiver unit 64 is identical to front emitter/receiver unit 60. LEDs 76, though still sharing a vertical plane, are not arranged to produce parallel beams 78. Instead, LEDs 76 are arranged so that their beams 78 converge at lens 80 and then diverge from lens 80. This arrangement results in an energy curtain 66 having a wider vertical angle α 2 than energy curtain 62 produced by front emitter/receiver unit 60. In an alternative approach, as illustrated in Figs. 9A-9C, emitter/receiver units 60, 64 are implemented using a compact emitter/receiver unit 106 that is only 1.4 inches wide by 0.75 inches deep by 1.1 inches high. Like units 60, 64, unit 106 includes four LEDs 76 and a photo IC 88. Unit 106 also includes a common lens 108 used by LEDs 76 and photo IC 88, and a receiver lens 110 used by photo IC 88. To prevent beams 78 from LEDs 76 from directly striking photo IC 88, photo IC 88 is positioned in a recess 110 within a housing 112 of unit 106. Due to its compact size, unit 106 is extremely easy to install. Referring to Fig. 10, controller 46 operates obstruction detection system 52 according to a procedure 120. Because obstruction detection system 52 is only active when a window is being closed, controller 46 does not activate obstruction detection system 52 until controller 46 generates or receives a close request (step 122) . As discussed above, controller 46 generates automatic close requests in response to signals from, for example, rain sensor 34, and to implement features such as anti air bind. In addition, the driver or another occupant of automobile 10 can cause controller 46 to generate an automatic, express close request by merely touching a switch 24, or a manual close request by continually pressing a switch 24. Thus, as a next step, controller 46 determines whether the close request is an automatic close request or a manual close request (step 124) . Typically, a close request from a switch 24 is deemed to be a manual request if switch 24 is pressed for more than three tenths of a second. If the close request is a manual close request (step 124) , controller 46 sends a close signal to motor 22 that controls the window associated with the pressed switch (step 126) . The close signal causes motor 22 to close the window by an incremental amount. After sending the close signal, controller 46 determines whether there is still a close request (i.e., the driver is still pressing switch 24) (step 122) , and, if so, repeats the process. The manual close request, which enables a window to be closed without attempting to detect obstructions, provides a useful fail safe in that it ensures that a window can be closed in the event of a failure in obstruction detection system 52. If the close request is an automatic close request (step 124) , controller 46 activates the appropriate emitter 68 and determines whether emitter 68 is operating correctly (step 128) . As illustrated in Fig. 11A, controller 46 activates emitter 68 by sending a driving signal 54 that includes a series of 38 kHz pulses 150 that are frequency modulated on a train of lower frequency pulses 152 having a period P and a duty cycle of about fifty percent. Period P for a front emitter/receiver unit 60 may range between 40 milliseconds and 60 milliseconds, and period P for a rear emitter/receiver unit 64 may range between 50 milliseconds and 100 milliseconds. Controller 46 determines whether emitter 68 is operating correctly by monitoring the detection signal 56 produced by receivers 70. As illustrated in Fig. 11B, when emitter 68 is operating correctly, detection signal 56 includes a series of pulses 154 having a period P. Pulses 154, which correspond roughly to pulses 152 of driving signal 54 and have low voltage values when pulses 152 have high voltage valves, result from detection by photo IC 88 of a reflected portion of an energy curtain 62. When emitter 68 is not operating correctly, as illustrated in Fig. lie, detection signal 56 does not include pulses and instead remains at a high voltage value. This condition occurs when emitter 68 is not producing an energy curtain 62, or when emitter 68 is blocked so that no portion of energy curtain 62 can be reflected to photo IC 88. If emitter 68 is not operating correctly (step 130) , controller 46 performs no further action, and instead waits for a new close request (step 122) . At this time, if desired, the driver or other occupant of automobile 10 could override controller 46 by manually pressing the window switch 24 corresponding to the window 16, 18 to be closed. If emitter 68 is operating correctly (step 130) , controller 46 monitors detection signal 56 and determines t, the length of a detection pulse (step 132) . The length of a detection pulse is related to the intensity of energy incident on photo IC 88, and, because obstructions reflect energy toward photo IC 88, increases when an obstruction is present. Thus, controller 46 detects obstructions by comparing t to T', an initialization value related to the length of a detection pulse produced by photo IC 88 when a window 16 is free of obstructions (step 134) . T' is generated in an initialization procedure during installation of system 44. During this procedure, emitter 68 is activated and detection signal 56 is monitored while window 16 is closed under obstruction free conditions. T, the average value of t while window 16 is being closed, is determined from detection signal 56. T' is then generated as: where the square root term allows some deviation in the value of an acceptable t and thereby accounts for deviations that could be caused by variations in temperature or system voltage. T' could be generated using other approaches. For example, T' could be varied with different window positions to more precisely account for reflections caused by window 16. In addition, to avoid the need for nonvolatile memory to store T', T' could be determined each time that system 44 is powered up (i.e., connected to the battery of automobile 10). Also, to optimize performance of system 44 under different operating conditions, T' could be generated in response to a command from the driver of automobile 10. T' accounts for background noise and variations in system 44 that could affect system " performance. Other background effects, such as sunlight, which, in an improperly designed system, could adversely affect operation, are handled by the filters 84, 94 included within receiver 70. Filter 84 ensures that only energy having a wavelength similar to that produced by an emitter 68 can be incident on photo IC 88. However, sunlight includes sufficient amounts of energy within the wavelength band passed by filter 84 to saturate photo IC 88 and prevent detection of reflections from energy curtain 62 (sunlight includes approximately ten to fifteen milliwatts in the wavelength band from 930 to 950 nanometers, while emitter 68 produces approximately sixteen to twenty four milliwatts in this band) . To eliminate the effects of sunlight, receiver 70 also includes filter 94, which only passes energy that, like driving signal 54, is modulated at 38 kHz. Thus, sunlight could only affect operation of receiver 70 if the sunlight were somehow modulated at 38 kHz, a situation that is extremely unlikely to occur. Moreover, in the unlikely event that sunlight was able to saturate receiver 70, this would only prevent automatic closing of window 16, and would impose no risk that window 16 would be accidentally closed on an obstruction such as a child's hand. If controller 46 determines that t is greater than T' (step 134) , this indicates that an obstruction might be present in window 16, and controller 46 responds by incrementing a miscompare count (step 136) . If the incremented miscompare count is greater than two (step 138) , controller 46 determines that an obstruction is actually present, and responds by cancelling any outstanding close signals and sending a signal to motor 22 that causes motor 22 to fully open window 16 (step 140) . Thereafter, controller 46 waits for additional close requests (step 122) . If the incremented miscompare count is not greater than two (step 138) , controller 46 sends a close signal to the motor 22 corresponding to the window associated with the close request (step 142) . The close signal causes motor 22 to close the window by an incremental amount. Typically, controller 46 operates at a speed at which consecutive close signals overlap so that, absent the detection of an obstruction, the close signals cause motor 22 to close window 16 in a smooth, continuous manner. After sending the close signal (step 142), controller 46 determines whether window 16 is closed (step 144) . Typically, controller 46 makes this determination by detecting changes in the electrical characteristics of motor 22. For example, physical resistance caused by the window reaching the closed position results in an increased load on motor 22 that is detectable by controller 46. (Monitoring the electrical characteristics of motor 22 could also be used as a backup to obstruction detection system 52 (e.g., an obstruction that contacts a moving window 16, 18 will cause changes in the electrical characteristics of motor 22.)) If the window is not closed, controller 46 repeats the automatic closing process by monitoring detection signal 56 and determining t (step 132) . If the window is closed, controller 46 waits for additional close requests (step 122) . If controller 46 determines that t is less than or equal to T' (step 134) , controller 46 responds by resetting the miscompare count (step 146) . By doing so, controller 46 ensures that only three consecutive miscompares will be treated as an actual obstruction, and minimizes the occurrence of incorrect obstruction detections. Thereafter, controller 46 sends a close signal to motor 22 (step 142) and checks to see if window 16 is closed (step 144) . The previous discussion assumes that system 44 is not interacting with, or acting as, an activated alarm system 48. When system 44 is operating as such, a request to poll a window 16, 18 (or sunroof 20) would be treated as an automatic close request (step 124) . Also, rather than sending an open signal, controller 46 would just send an alarm signal (step 140) . Referring to Fig. 12A, controller 46 can be implemented using a processor 156 that communicates with other components of system 44 through ports 157 connected to an I/O interface 158. Specifically, I/O interface 158 communicates with driver (D) switch 24, passenger (P_D) switch 24, rear left (RL_D) switch 24, rear right (RR_D) switch 24, and child guard (CG) switch 160 of control panel 26; passenger (P) switch 24; rear left (RL) switch 24; rear right (RR) switch 24; sunroof (SR) switch 28; sunroof fully closed (SRFC) indicator 162; ignition (IS) switch 32; temperature sensor 36; rain sensor 34; sunroof (SR) , driver (D) , passenger (P) , rear left (RL) , and rear right (RR) driving signals 54 and detection signals 56; audible feedback unit 58; and anti air bind (AAB) switch 164, which has a high value when all doors 12, 14 are closed, and a low value when a door 12, 14 is open. Because switches 24, 28 operate in three modes (open, close, and inactive) , I/O interface 158 communicates their status to processor 156 through pairs of bits of ports 157. I/O interface 158 communicates the status of each of the remaining sensors through single bits of ports 157. In an alternate approach, as illustrated in Fig. 12B, a multiplexer 159 combines signals from switches 24 (D, P_D, RL_D, and RR_D) and switch 160 (CG) on control panel 26 to a serial port 161 on processor 156 through a serial link 163. This approach reduces the nine wires required for the switches of control panel 26 to two wires (a data/address wire and a clock wire) . In this approach, each switch 24, 160 is polled once about every 100 milliseconds. In the parking mode (see below) , processor 156 changes serial port 161 to an idle mode, and ceases polling, after about five to ten minutes. To minimize noise effects on serial link 163, processor 156 is typically positioned near multiplexer 159. Referring again to Fig. 12A, Controller 46 also includes a rain sensor interface 166 and a temperature sensor interface 168. Because rain sensor 34 is a capacitor having a value that changes in the presence of rain, interface 166 includes an oscillator 170 that drives rain sensor 34 and a sensor 172 that detects a change in the capacitance of rain sensor 34. Temperature sensor 36 is a resistor that varies with temperature, and interface 168 includes a heat detector 174 that compares the resistance of temperature sensor 36 to a resistance corresponding to 95° F. and produces a high valued output when the resistance of temperature sensor 36 indicates a temperature in excess of 95° F. Interface 168 also includes a cold detector 176 that compares the resistance of temperature sensor 36 to a resistance corresponding to 55° F. and produces a high valued output when the resistance of temperature sensor 36 indicates a temperature that is less than 55° F. Processor 156 drives motors 22 through a port 178 that is connected to a set of relays 180. Relays 180 are also directly driven by switches 24, which are connected to relays 180 by lines 181 between I/O interface 158 and relays 180. For each relay 180, a logical OR gate 183 combines the signal from line 181 and the signal from processor 156. This ensures that switches 24 can control motors 22 even if processor 156 is inoperable. Relays 180 connect to window motors 22 through an eight pin port 182. Each window 16, 18 is operated by a reversible motor 22 that operates in forward or reverse based on the polarity of the net voltage applied to its two terminals, so two relays 180 correspond to each window 16, 18. In another embodiment, in which each window 16, 18 is operated by two unidirectional motors 22, one for opening and one for closing, each of the two relays 180 would correspond to a particular motor 22. Relays 180 connect to sunroof motor 22, a twelve volt power supply (the battery of automobile 10) , and electrical ground through a four pin port 184. Sunroof motor 22 is also reversible, and operates like window motors 22. By providing a central control for motors 22, controller 46 produces substantial savings in wiring and power consumption. For example, instead of each switch 24 being connected to its corresponding motors 22 with high voltage, heavy gauge wire, switches 24 are connected to controller 46 using low voltage, light gauge wire. In addition, switches 24 are only required to handle low voltages and can therefore be implemented using less expensive and lighter materials. Processor 156 is implemented using an Intel 83C552C processor. Specific pin connections for processor 156 include the following: Pin Connection 1 motor circuit for driver's window (to monitor electrical characteristics) 4 feedback unit 58 5 emitters 68 (driving signal) 7 control switch (determines whether pin 67 monitors the motor circuit for the right left or right rear window 18) control switch (determines whether pin 68 monitors the motor circuit for the passenger window 16 or the sunroof 20) 11 indicates whether windows are being manually or automatically controlled 12 passenger window control switch 24 (open) 13 passenger window control switch 24 (close) 15 processor reset 16 rear left window control switch 24 (open) 17 rear right window control switch 24 (close) 18 rear left window control switch 24 (close) 19 rear right window control switch 24 (open) 21 rear right receiver 70 22 serial clock (for multiplexer) 23 serial address/data (for multiplexer) 25 sunroof receiver (one) 26 sunroof closed indicator 27 anti air bind enable/disable 28 emitter 68 enable/disable 30 sunroof open relay 180 31 sunroof close relay 180 39 driver open relay 180 40 driver close relay 180 41 passenger open relay 180 42 passenger close relay 180 43 rear left open relay 180 44 rear left close relay 180 45 rear right open relay 180 46 rear right close relay 180 50 sunroof switch 28 (open) 51 sunroof switch 28 (close) 52 temperature sensor 36 (hot) 56 rain sensor 34 or temperature sensor 36 (cold) 57 ignition switch 32 62 sunroof receiver (two) 63 temperature sensor (for emitter/receiver calibration) 64 rear left receiver 70 65 passenger receiver 70 66 driver receiver 70 67 motor circuit for rear left or rear right windows (to monitor electrical characteristics) 68 motor circuit for passenger's window or sunroof (to monitor electrical characteristics) Assembly language software for implementing the features of system 44 is included as Appendix A. This software has been run in an actual implementation of system 44 after being compiled using a Maclink version 1.02 compiler. Essentially, processor 156 operates in one of three modes: a parking mode in which processor 156 automatically opens and closes windows 16, 18 and sunroof 20 in response to rain, heat, motion, and light; a driving mode in which processor 156 provides one touch, express opening and closing of windows 16, 18 and sunroof 20; and an anti air bind mode in which processor 156 automatically cracks open rear windows 18 in response to an open door 12, 14. When processor 156 enters parking mode (in response to ignition switch 32 moving to the off position) , processor 156 provides security closing of all windows 16, 18 and sunroof 20. Referring to Fig. 13, processor 156 determines its operational mode according to a procedure 200. Processor 156 first determines whether ignition switch 32 is on (step 202) . If ignition switch 32 is on, processor 156 performs driving mode operations (step 204) . Otherwise, processor 156 performs parking mode operations (step 206) . Upon completing either driving or parking mode operations, processor 156 again checks the status of ignition switch 32 (step 202) , and repeats the process. Processor 156 also includes a timer interrupt that occurs at an average rate of about once every six tenths of a second. When the timer interrupt occurs, processor 156 determines whether any motor 22 is activated (i.e., whether a vent is moving) (step 208) . If a vent is moving, processor 156 resumes operations in the mode (parking or driving) in which it was operating prior to the interrupt (step 210) . If no vent is moving, processor 156 checks the status of doors 12, 14 (step 212) . If a door is open, processor 156 performs anti-air bind open operations (step 214) . If no door is open, processor 156 performs anti-air bind close operations (step 216) . After completing anti-air bind operations (steps 214, 216), processor 156 resumes operations in its previous mode (step 210) . Referring to Fig. 14A, in anti air bind opening procedure 214, processor 156 first determines whether the anti air bind feature is enabled (step 218) . As previously discussed, the anti air bind feature is enabled/disabled while processor 156 is operating in the parking mode by simultaneously pressing the two window switches 24 on the driver's console 26 that correspond to the rear left and rear right windows 18. If the anti air bind feature is enabled (step 218) , processor 156 next determines whether processor 156 failed in a prior attempt at opening rear left window 18 for anti air bind purposes (step 219) , and whether processor 156 has already opened rear left window 18 for anti air bind purposes (step 220) . If there has been no previous failure (step 219) , and rear left window 18 is not already open to the anti air bind level (step 220) , processor 156 performs a pre-check of the obstruction detection system 52 for rear left window 18 (step 221) . If the pre-check is successful, as indicated by a pre- check flag being set to "pass" (step 222) , processor 156 express opens rear left window 18 to the anti air bind level (step 223) , which, as previously discussed, is selected by pressing the window switch 24 on rear left door 14. Processor 156 opens rear left window 18 to the anti-air bind level by activating motor 22 for a sufficient time for rear left window 18 to reach that level. Because processor 156 knows the speed at which motor 22 operates , processor 156 can determine the position of window 18 from the duration in which motor 22 is activated. If the pre-check fails (step 222) , this indicates either that the obstruction detection system 52 corresponding to rear left window 52 is not operating correctly or that an obstruction is present. Because such a failure would prevent processor 156 from closing rear left window 18 once all doors 14, 16 are closed, processor 156 does not open rear left window 18 and instead determines whether it failed in a prior attempt at opening rear right window 18 for anti air bind purposes (step 224) . Processor 156 also determines whether it failed in a prior attempt at opening rear right window 18 for anti air bind purposes (step 224) after opening rear left window 18 (step 223) , and upon determining that it failed in a prior attempt at opening rear left window 18 (step 219) or that rear left window 18 is already open (step 220) . If there has been no previous failure (step 224) , and rear right window 18 is not already open to the anti air bind level (step 225) , processor 156 performs a pre- check of the obstruction detection system 52 for rear right window 18 (step 226) . If the pre-check is successful (step 227) , processor 156 express opens rear right window 18 to the anti air bind level (step 228) . If the pre-check is unsuccessful (step 227) , processor 156 exits anti air bind open procedure 214 (step 229) . Processor 156 also exits anti air bind open procedure 214 after opening rear right window 18 (step 228) , or upon determining that the anti air bind feature is not enabled (step 218) , that there has been a prior failure in opening rear right window 18 (step 224) , or that rear right window 18 is already open (step 225) . Though processor 156 opens both rear windows 18 to the preset anti air bind level when performing anti air bind operations, processor 156 could also be configured in other ways. For example, processor 156 could be configured to only open one rear window 18, to open one or both front windows 16, or to open sunroof 20. In addition, processor 156 could be configured to only open rear windows 18 for anti air bind purposes when a rear window 18 is not already open (or when no window 16, 18 is already open) . Referring to Fig. 14B, processor 156 performs pre- check procedures 221, 226 by first activating the obstruction detection system 52 corresponding to the designated window 18 (step 230) . If the obstruction detection system 52 indicates neither a system failure (step 231) nor the presence of an obstruction (step 232) , then processor 156 sets the pre-check flag to "pass" (step 233) . Otherwise, processor 156 sets the pre-check flag to "fail" (step 234). Referring to Fig. 14C, in anti air bind close procedure 216, processor 156 first determines whether rear left window 18 has been opened by processor 156 during anti air bind open procedure 214 (step 235) , and, if so, pre-checks the obstruction detection system 52 corresponding to rear left window 18 (step 221) . If the pre-check indicates a failure (step 236) , processor 156 increments a failure count (step 237) , and, if the failure count is less than or equal to six (step 238) , reperforms the pre-check operation (step 221) . These six iterations of the pre-check operation, if performed, take a total of about five to ten seconds. If the pre-check indicates a pass (step 236) , processor 156 express closes rear left window 18 (step 239). While express closing rear left window 18, processor 156 monitors obstruction detection system 52, and, if an obstruction is detected, express opens rear left window 18. However, when an obstruction is detected, processor 156 only express opens rear left window 18 to the anti air bind level. After closing rear left window 18 (step 239) , or if the failure count is greater than six (step 238) , processor 156 resets a flag that indicates that rear left window 18 was opened during anti air bind open procedure 214 (step 240) . After resetting the flag (step 240) , or upon determining the rear left window 18 was not opened during anti air bind procedure 214 (step 235) , processor 156 determines whether rear right window 18 was opened during anti air bind procedure 214 (step 241) , and, if so, pre- checks the obstruction detection system 52 corresponding to rear right window 18 (step 226) . If the pre-check indicates a failure (step 242) , processor 156 increments a failure count (step 243) , and, if the failure count is less than or equal to six (step 244) , repeats the pre- check operation (step 226) . If the pre-check indicates a pass (step 242) , processor 156 express closes rear right window 18 (step 245) . After closing rear right window 18, or upon determining that the failure count is greater than six (step 244) , processor 156 resets a flag that indicates that rear right window 18 was opened during anti air bind open procedure 214 (step 246) . Referring to Fig. 15, when processor 156 performs driving mode operations (step 204) , processor 156 first checks to see if a valid open switch has been pressed (step 247) . When child guard (CG) switch 160 is active, valid open switches include certain (D, P_D, RL_D, RR_D, and P) window switches 24 and sunroof (SR) switch 28. When child guard (CG) switch 160 is inactive, valid open switches also include the RR and RL window switches 24 (child guard (CG) switch 160 disables RR and RL window switches 24) . If a valid open switch has been pressed (step 247) , processor 156 monitors the switch until the switch is either released or pressed for longer than three tenths of a second (step 248) . Because as discussed above, switches 24 are directly connected to relays 180 by lines 181, when a switch 24 is pressed, the relay 180 associated with the switch 24 is immediately activated. To prevent any movement of the window associated with switch 24 while testing for express or manual closing, processor 156 activates the other relay 180 associated with the switch 24. Each relay 180 applies twelve volts to a terminal of a motor 22 when active and otherwise connects the terminal of the motor 22 to electrical ground. By activating the second relay 180, processor 156 ensures that the net voltage applied to motor 22 will be zero volts. If the switch is pressed for longer than three tenths of a second, processor 156 manually opens the window associated with the pressed switch (step 249) by activating the corresponding motor 22 until the window reaches the fully open position or the switch is released. If the switch is pressed for less than three tenths of a second (step 248) , and the pressed switch is not the RL_D window switch 24 (step 250) , processor 156 express opens the window associated with the pressed switch (step 251) by activating the corresponding motor 22 until the window reaches the fully open position or the switch is pressed again. If the switch is pressed for less than three tenths of a second (step 248) , and the pressed switch is the RL_D window switch 24 (step 250) , processor 156 express opens all of the windows (step 252) by sequentially activating the motors 22 until all of the windows reach the fully open position or another switch is pressed. Processor sequentially activates motors 22 to avoid an excessive drain on the battery of automobile 10 that could be caused by simultaneously activating all motors 22. After responding to any pressed valid open switches, processor 156 checks for pressed valid close switches (step 253) . The valid close switches correspond exactly to the valid open switches discussed above. If a valid close switch has been pressed, processor 156 monitors the switch until the switch is either released or pressed for longer than three tenths of a second (step 254) . If the switch is pressed for longer than three tenths of a second, processor 156 manually closes the window associated with the pressed switch (step 255) by generating a manual close request and responding according to procedure 120. If the switch is pressed for less than three tenths of a second (step 254) , and the pressed switch is not the RL_D window switch 24 (step 256) , processor 156 express closes the window associated with the pressed switch (step 257) by generating an express close request and responding according to procedure 120. Though not illustrated in the discussion of procedure 120, the express close operation, like the express open operation, can be halted by pressing the switch again. If the switch is pressed for less than three tenths of a second (step 254) , and the pressed switch is the RL_D window switch 24 (step 256) , processor 156 express closes all of the windows (step 258) by sequentially generating automatic close requests and responding according to procedure 120. Referring to Figs. 16A-16B, when processor 156 performs parking mode operations (step 206) , processor 156 first initializes a timer to thirty seconds (step 259) . Processor 156 then waits either for a switch 24 to be pressed to deactivate security closing (step 260) or for the timer to expire (step 261) . If the timer expires before a switch 24 is pressed, processor 156 performs the security close feature by express closing all windows, and reinitializes the timer to thirty seconds (step 262) . During security close, the timer interrupt for the anti air bind feature is disabled, and the driver of automobile 10 can stop the closing operation by pressing the switch 24 corresponding to the rear left window 18. As discussed above, processor 156 express closes all windows by generating sequential automatic close requests. After reinitializing the timer (step 262) , processor 156 waits either for a switch 24 to be pressed to activate the heat open feature (step 263) or for the timer to expire (step 264) . If the timer expires before a switch is pressed, processor 156 proceeds to further operations. If a switch is pressed before the timer expires (steps 260, 263) , processor 156 provides feedback in the form of an audible tone at feedback unit 58 (step 265) and activates the heat open feature (step 266) . Next, if the heat open feature is activated and the temperature in automobile 10 is greater than 95° F. (step 267) , and it is not raining (step 268) , processor 156 sequentially express opens all windows 24 to positions previously designated by the driver of automobile 10 (step 269) . (As discussed above, the driver can designate the extent to which windows 24 open by pressing window switches 24 on console 26 multiple times.) Finally, if it is raining (step 270) , if the temperature is less than 55° F. (step 271) , if motion is detected (step 272) , or if it is dark (step 273) , processor 156 express closes all windows by sequentially generating automatic close requests for each window and responding according to procedure 120 (step 274) . Thereafter, if ignition switch remains off (step 276) , processor 156 repeats the process by checking for a temperature in excess of 95° F. (step 258) . Typically, occupant controlled opening and closing of windows 16, 18 is disabled when processor 156 is in the parking mode. However, if desired, these features could be easily implemented therein. In addition to the failsafe features described above, such as the feedback loop in obstruction detection system 52 and the use of lines 181 to allow switches 24 to bypass processor 156, system 44 includes numerous other failsafe features. Processor 156 includes an interrupt driven timing routine that monitors the time involved in performing system operations and, when excessive time indicates that processor 156 has somehow malfunctioned, resets processor 156. For example, the timing routine knows the time required to open or close a window 16, 18 (typically about ten seconds) , and would therefore reset processor 156 whenever processor 156 has caused a motor 22 to operate for more than the required time. By resetting processor 156, the timing routine reduces the risk that processor 156 will become stuck in an endless loop and that a motor 22 will be damaged by continuing to operate after a window is fully open or fully closed. In addition, processor 156 could perform dynamic diagnostic checks of system components such as rain sensor 34 or temperature sensor 36. Referring to Figs. 17 and 18, obstruction detection for sunroof 20 is achieved with a dual emitter/dual receiver configuration. Two emitter/receiver units 300, each including an emitter 302 and a receiver 304, are positioned in the front corners of sunroof frame 306. Emitter/receiver units 300 are oriented so that an energy beam produced by the emitter 302 of one emitter/receiver unit 300 is incident on the receiver 304 of the other emitter/receiver unit 300. A barrier 308 is provided between emitter 302 and receiver 304 so that the energy beam from the emitter 302 of an emitter/receiver unit 300 is not directly incident on the receiver 304 of the same emitter/receiver unit 300. Each emitter 302 includes an infrared LED 76 that produces a conical infrared beam having an angle of 25°- 30° and a wavelength of 950 nanometers. A suitable LED 76 is model number GL538 from Sharp. The housing of emitter 302 limits the conical angle of the infrared beam produced by emitter 302 to about 10°. Each receiver 304 includes a biconvex lens 82 that focusses incoming energy into a parallel beam directed at a high pass filter 310 that passes energy having wavelengths in excess of 750 nanometers. From high pass filter 310, the parallel beam is directed to a second biconvex lens 86 that focusses the beam on a photo IC 88 that produces a voltage signal which varies with the intensity of the beam. As discussed with respect to the window system, photo IC 88 produces a voltage having a high value of about five volts when less than a threshold amount of energy is being received to a low value of about zero volts when more than the threshold amount of energy is being received. In operation, emitters 302 are driven by 38 kHz signals that are modulated by a series of 400 Hz pulses that are configured so that only one emitter 302 is driven at any time. Obstructions are detected when a beam from an emitter 302 of one of the emitter/receiver units 300 is interrupted and prevented from reaching the receiver 304 of the other emitter/receiver unit 300 so that the output of the receiver 304 remains high. Obstructions are also detected when a beam from an emitter 302 of one of the emitter/receiver units 300 is reflected back to the receiver 304 of the same emitter/receiver unit 300 so that the output of the receiver 304 changes to a low value. Use of two receivers 304 and two emitters 302 operating in an alternating fashion eliminates any risk that sunlight will cause the system to fail to detect an obstruction. As discussed with respect to the window system, the 38 kHz band pass filter in photo IC 88 prevents sunlight from being detected by photo IC 88. However, sunlight can still saturate photo IC 88 and thereby prevent photo IC 88 from detecting the 38 kHz signal from the emitter 302. By using two receivers 304 positioned so that sunlight can only strike one of them at any given time, the dual emitter/dual receiver system eliminates the effects of sunlight. An obstruction free condition, F, for sunroof 20 can be expressed as a logical equation: F ~ E1 R1 R2 + E2R2RΪ where El and E2 are the emitters 302 in, respectively, the front left and front right corners and have values of logical one while emitting a 38 kHz modulated signal, and Rl and R2 are the receivers 304 in, respectively, the front right and front left corners of sunroof frame 306 and have values of logical one while receiving a 38 kHz modulated signal. According to this equation, sunroof 20 is obstruction free when the front left emitter 302 (El) is emitting, the front right receiver 304 (Rl) is receiving, and the front left receiver 304 (R2) is not receiving, or when the front right emitter 302 (E2) is emitting, the front left receiver 304 (R2) is receiving, and the front right receiver 304 (Rl) is not receiving. This equation works even when a receiver 304 is saturated by sunlight and unable to receive a signal from an emitter 304. For example, when the front left receiver 304 (R2) is saturated, R2 always has a value of logical zero and the equation reduces to: F = E1 R1 . Thus, when a receiver 304 is saturated by sunlight, the sunroof obstruction detection system still functions. Because it does not require a cylindrical lens 80, the sunroof obstruction detection system is substantially less expensive than the window obstruction detection system. However, due to the conical nature of the beams produced by emitters 302, the sunroof obstruction detection system is unsuited for use in a window. Moreover, due to difficulties associated with installing the window system in a way that would not result in false detections caused by the driver's head or the passenger's head, the window obstruction detection system would be difficult to use in a sunroof. Referring to Figs. 17A and 18A, obstruction detection for sunroof 20 may also be achieved with a quad emitter/dual receiver configuration. Two emitter/receiver units 301, each including two emitters 302 and a receiver 304, are positioned in the front corners of sunroof frame 306. Emitter/receiver units 301 are oriented so that energy beams produced by the emitters 302 of one emitter/receiver unit 301 are incident on the receiver 304 of the other emitter/receiver unit 301. A barrier 308 is provided between emitters 302 and receiver 304 so that the energy beams from the emitters 302 of an emitter/receiver unit 301 are not directly incident on the receiver 304 of the same emitter/receiver unit 301. With this arrangement, the emitters and receivers are alternately operated as follows. First, an emitter 302a of a first unit 301a and a receiver 304b of a second unit 301b are activated, an obstructions that prevent or reduce transmission of the beam from emitter 302a are detected. Next, emitter 302a is deactivated and emitter 302b of unit 301a is activated to detect obstructions that prevent or reduce transmission of the beam from that emitter. Next, emitter 302b and receiver 304b are deactivated, a receiver 304a of unit 301a is activated, and an emitter 302c of unit 302b is activated to detect obstructions that prevent or reduce transmission of a beam from that detector. Next, emitter 302c is deactivated and an emitter 302d of unit 302b is activated to detect obstructions that prevent or reduce transmission of a beam from that detector. Thereafter, emitter 302d is deactivated and emitters 302a and 302b are simultaneously activated to detect obstructions that reflect the beams produced by those emitters. Finally, emitters 302a and 302b and receiver 304a are deactivated, receiver 304b is activated, and emitters 302c and 302d are simultaneously activated to detect obstructions that reflect the beams produced by those emitters. While, as discussed above, control of sunroof 20 can be integrated into system 44, control of sunroof 20 can also be implemented using a separate system 312, as illustrated in Fig. 19. System 312 includes a control unit 314 that receives input from ignition switch 32, sunroof switch 28, rain sensor 34, temperature sensor 36, receivers 304, and a motor feedback signal processing unit 316. In response to these inputs, control unit 312 operates emitters 302 and a motor driver 318 that drives the sunroof motor 22. Control unit 314 is implemented using an Intel 8051 processor. The Intel 8051 processor includes four data ports, particular bits of which are connected as follows: PI.2 ignition switch 32 PI.3 sunroof switch 28 (close) PI.4 sunroof switch 28 (open) PI.5 beeper 58 PI.6 motor driver 318 (open) PI.7 motor driver 318 (close) P2.0 emitter 302 (one) P2.1 emitter 302 (two) P2.2 sunroof 20 (closed indicator) P2.3 rain sensor 34 or temperature sensor 36 (cold) P2.4 temperature sensor 36 (hot) P2.6 receiver 304 (one) P2.7 receiver 304 (two) P3.2 motor feedback signal processing unit 316 Assembly language software for implementing the features of system 312 is included as Appendix B. This software has been run in an actual implementation of system 312 after being compiled using a Maclink version 1.02 compiler. As illustrated in Fig. 20, control unit 314 implements a main procedure 320. After initialization (step 322) , if ignition switch 32 is on (step 324) , control unit 314 performs a driving procedure (step 326) , and, if ignition switch 32 is off (step 324) , control unit 314 performs a parking procedure (step 328) . Operations in driving procedure 326 (Fig. 21) are based on the position of sunroof switch 28, which can be in a close position, an open position, or an inactive position. If switch 28 is in the close position (step 330) , control unit performs a procedure to close sunroof 20 (step 332) and returns to the main procedure (step 334) . If switch 28 is in the open position (step 332) , control unit performs a procedure to open sunroof 20 (step 336) and returns to the main procedure (step 334) . If switch 28 is in the inactive position, control unit 314 returns to the main procedure (step 334) . Sunroof 20 can be in an opened position, a closed position, or a vented position. When sunroof 20 is in the closed position, setting switch 28 to the open position will cause sunroof 20 to move to the opened position, and setting switch 28 to the close position will cause sunroof 20 to move to the vented position. When sunroof 20 is in the opened position, setting switch 28 to the close position will cause sunroof 20 to move to the closed position. Finally, when sunroof 20 is in the vented position, setting switch 28 to the open position will cause sunroof 20 to move to the closed position. In close sunroof procedure 332 (Fig. 22) , if sunroof 28 is in the closed position (step 340) , control unit 314 performs a vent open procedure (step 342) . If sunroof 28 is not in the closed position (step 340) , control unit 314 performs a slide close procedure (step 344) . After performing the vent open procedure (step 342) or the slide close procedure (step 344) , control unit 314 returns to the previous procedure (step 346) . In open sunroof procedure 338 (Fig. 23), if sunroof 28 is in the vented position (step 348) , control unit 314 performs a vent close procedure (step 350) . If sunroof 28 is not in the vented position (step 348) , control unit 314 performs a slide open procedure (step 352) . After performing the vent close procedure (step 350) or the slide open procedure (step 352) , control unit 314 returns to the previous procedure (step 354) . In slide close procedure 344 (Fig. 24) , control unit 314 sets a ripple counter to an increment mode (step 346) . Control unit 314 uses the ripple counter, which counts current ripples in motor 22 and is supplied by motor feedback signal processing unit 316, to detect that sunroof 20 has reached a fully open or fully vented position. Control unit 314 also enables (step 348) a ripple interrupt procedure 349 (Fig. 28) that control unit 314 uses to increment or decrement the ripple counter each time a ripple occurs, and to pressure detect an obstruction in the path of sunroof 20. After enabling ripple interrupt 349 (step 348) control unit 314 signals motor driver 318 to activate motor 22 to close sunroof 20 (step 350) and determines whether switch 28 was touched or pushed (step 352) . If switch 28 was pushed, this indicates that manual closing was selected, and control unit 314 allows motor driver 318 to continue to close sunroof 20 until switch 28 is released (step 354) or sunroof 20 reaches the fully closed position (step 356) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 358) before returning to the previous procedure (step 360) . If switch 28 was touched, this indicates that express closing was selected, and control unit 314 allows motor driver 318 to continue to close sunroof 20 until switch 28 is touched again (step 362) , an obstruction is detected (F = 0) (step 364) or sunroof 20 reaches the fully closed position (step 366) . When switch 28 is touched again (step 362) or sunroof 20 becomes fully closed (step 366) , control unit 314 signals motor drivers 318 to deactivate motor 22 and stops the ripple counter (step 358) before returning to the previous procedure (step 360) . When an obstruction is detected (step 364) , control unit 314, after signaling motor driver 318 to deactivate motor 22 and stopping the ripple counter (step 368), performs the slide open procedure (step 352). In vent open procedure 342 (Fig. 25), control unit 314 sets the ripple counter to an increment mode (step 370) , enables ripple interrupt 349 (step 372) , signals motor driver 318 to activate motor 22 to drive sunroof 20 in the close direction (step 374) , and sets an internal vent flag that indicates that sunroof 20 is in the vented position and is automatically reset when sunroof 20 reaches the fully closed position (step 376) . Next, control unit 314 determines whether switch 28 was touched or pushed (step 378) . If switch 28 was pushed, this indicates that manual closing was selected, and control unit 314 continues to close sunroof 20 until switch 28 is released (step 380) or the ripple counter indicates that sunroof 20 is in the fully vented position (step 382) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 384) before returning to the previous procedure (step 386) . If switch 28 was touched, this indicates that express venting was selected, and control unit 314 allows motor driver 318 to continue to vent sunroof 20 until switch 28 is touched again (step 388) or the ripple counter indicates that sunroof 20 is in the fully vented position (step 390) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 384) before returning to the previous procedure (step 386) . In slide open procedure 352 (Fig. 26) , control unit 314 sets the ripple counter to a decrement mode (step 392) , enables ripple interrupt 349 (step 394) , and signals motor driver 318 to activate motor 22 to drive sunroof 20 in the open direction (step 396) . Next, control unit 314 determines whether switch 28 was touched or pushed (step 398) . If switch 28 was pushed, this indicates that manual closing was selected, and control unit 314 continues to close sunroof 20 until switch 28 is released (step 400) or the ripple counter indicates that sunroof 20 is in the fully open position (step 402) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 404) before returning to the previous procedure (step 406) . If switch 28 was touched, this indicates that express opening was selected, and control unit 314 allows motor driver 318 to continue to open sunroof 20 until switch 28 is touched again (step 408) or the ripple counter indicates that sunroof 20 is in the fully opened position (step 410) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 404) before returning to the previous procedure (step 406) . In vent close procedure 350 (Fig. 27) , control unit 314 sets the ripple counter to the decrement mode (step 412) , enables ripple interrupt 349 (step 414) , and signals motor driver 318 to activate motor 22 to drive sunroof 20 in the open direction (which closes sunroof 20 from the vented position) (step 416) . Next, control unit 314 determines whether switch 28 was touched or pushed (step 418) . If switch 28 was pushed, this indicates that manual closing was selected, and control unit 314 allows motor driver 318 to continue to close sunroof 20 until switch 28 is released (step 420) or sunroof 20 reaches the fully closed position (step 422) . When either of these conditions occur, control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 424) before returning to the previous procedure (step 426) . If switch 28 was touched, this indicates that express closing was selected, and control unit 314 continues to close sunroof 20 until switch 28 is touched again (step 428) , sunroof 20 reaches the fully closed position (step 430) , or ripple interrupt 349 sets a stop flag after pressure detecting an obstruction (step 432) . When switch 28 is touched again (step 428) or sunroof 20 becomes fully closed (step 430) , control unit 314 signals motor driver 318 to deactivate motor 22 and stops the ripple counter (step 424) before returning to the previous procedure (step 426) . When ripple interrupt 349 sets the stop flag (step 432) , which indicates that an obstruction is present in the path of sunroof 20, control unit 314 responds by performing the vent open procedure (step 342) . Ripple interrupt 349 (Fig. 28) , when enabled, is called by control unit 314 each time that a ripple is detected by motor feedback signal processing unit 316. Depending on whether the ripple counter is in an increment or decrement mode (step 434) , control unit 314 increments (step 436) or decrements (step 438) the ripple counter. Next, control unit 314 calculates the present ripple frequency (step 440) based on the time that has expired since ripple interrupt 349 was last called. If the present ripple frequency is smaller than the ripple frequency from when ripple interrupt 349 was previously called by more than a predetermined threshold amount (step 442) , this indicates that motor 22 is facing increased resistance as would be caused by an obstruction in the path of sunroof 20, and control unit 314 responds by setting the stop flag (step 444) and returning to the previous procedure (step 446) . In parking procedure 328, control unit 314 starts a thirty second timer (step 448) and waits for an occupant of automobile 10 to press button 28 to deactivate security closing (step 450) or for the timer to expire (step 452) . If the timer expires, control unit 314 performs a security close of sunroof 20 (step 454) , starts another thirty second timer (step 456) , and waits for an occupant of automobile 10 to press button 28 to activate heat opening and rain closing (step 458) or for the timer to expire (step 460) . If the timer expires, control unit 314 powers down (step 462) and waits to be reactivated by ignition switch 32 turning on. If an occupant of automobile 10 presses switch 28 to deactivate security closing (step 450) or to activate to activate heat opening and rain closing (step 458) , control unit 314 responds by causing beeper 58 to beep once (step 464) . Control unit 314 then waits for an occupant of automobile 10 to press switch 28 to indicate that sunroof 20 should be fully opened during heat opening (step 466) or for the timer to expire (step 468) . If switch 28 is pressed, control unit 314 causes beeper 58 to beep once (step 470) and sets the mode for heat opening to fully open (step 472) . If the timer expires, control unit 314 set the mode for heat opening to partially open (step 474) . Thereafter, control unit 314 powers down and waits to be reactivated by a signal from rain sensor 34 or temperature sensor 36, or by ignition switch 32 turning on. With reference to Fig. 30, an alternative system 1010 includes an electromagnetic energy signal transmitter 1012, a laser signal receiver 1014, a signal detection unit 1016, a signal amplifier 1018, a control unit 1020, a vent element power unit 1022, a vent element 1024, a signal modulation unit 1026, and a laser driver unit 1028. The electromagnetic energy signal transmitter 1012 is a low powered laser such as a laser diode operating in the visible light range. Alternatively, infrared diodes or other light diodes could be used. Low powered laser sources having a minimal impact on the human eye are preferred for safety reasons. The following descriptions including visible light lasers could alternatively include other electromagnetic energy signal sources producing, for example, ultraviolet light or infrared light. In operation, obstructions 1030 entering the path 1032 of the laser beam cause interruptions in the laser beam signal received by the receiver 1014. These interruptions are detected by the detection unit 1016 which transmits a detection signal to the control unit 1020. The control unit 1020 commands the vent element power unit 1022 to respond accordingly. The vent element power unit 1022 may cause the vent element 1024 to stop moving, and subsequently to move in the reverse direction. The signal modulation unit 1026 is connected to the control unit 1020 to enhance operation through feedback control. The modulation unit 1026 preferably provides amplitude, frequency, or phase modulation of the signal, and the detection unit 1016 detects the modulated signals through the use of band pass filters or the like. The control unit may include a microprocessor controller which performs low frequency modulation detection, amplitude modulation detection, pulse code modulation detection, and provides feedback to the signal modulation unit. As shown in Fig. 31, the vent element may be a window 1024 associated with a vehicle door 1033. The closing path 1042 is defined by the top edge 1035 of the door 1033 and the edges 1038, 1040, 1041 of the window frame. The transmitter 1012 and receiver 1014 are positioned together as a single transmitter/receiver unit 1050, and the mirrors 1034, 1036 are positioned to direct the laser energy beam along adjoining straight edges 1038, 1040. As shown in Fig. 32, the vent element may also be a sunroof 1024' within a vehicle roof 1027. The mirrors 1046, 1048 are positioned to direct the laser signal along curved edge 1044. The forward edge 1045 of the sunroof 1024', together with the sunroof opening define the closing path 1042'. Fig. 33 shows the laser beam 1052 of the invention as it is transmitted from the transmitter 1012, reflected off of the mirrors 1036 and 1034 and returned to the receiver 1014. Alternatively the laser beam 1052 may be transmitted along edges 1038 and 1040, then returned doubled back along edge 1040 and finally along edge 1038. In the case where the vent element is a transparent window, the laser energy beam 1052 will pass through the vent element without causing the detection unit to detect an obstruction. Thus the energy signal follows a path that is intersected by two or more edges 1054 of the vent element as the vent element traverses the closing path. In alternative approaches involving opaque vent elements, the laser beam must follow a path that does not intersect the vent element as it traverses the closing path. In this case, the path of the laser beam should be substantially parallel to the plane defined by the vent element. Preferably such a path is adjacent the interior surface of the vent element as opposed to the outside surface which is exposed to the external environment of the vehicle. Temperature variations as well as prolonged vibration may cause misalignment of the energy beam. Two adjustments that can partially alleviate the effects of such misalignment are increasing the sensitivity of the receiver 1014 and permitting the energy beam 1052 to diverge as it travels from the transmitter 1012 to the receiver 1014. Preferably, the energy beam is diverged such that the cross sectional diameter of the energy beam is significantly greater at the receiver than the surface area of the receiving surface 1013 (shown in Fig. 35) of the receiver 1014. Firmly attaching all components to the vehicle also decreases misalignment problems. Ambient energy signals, such as sunlight 1056, may interfere with the obstruction detection system as shown in Fig. 34. If, for example, sunlight 1056 saturates the receiver 1014, then obstructions will not be detected unless a discrimination is made between the ambient signals 1056 and the energy signal 1052 from the transmitter 1012. A discrimination unit 1600, such as a lens 1058, a polarizing filter 1060, and band pass filters 1062 are shown in Fig. 35. The lens 1058 focuses laser light 1032 which is substantially perpendicular to the lens, while diverting ambient light 1056 which is substantially parallel to the lens 1058 away from the focal point of the lens. The polarizing filter 1060 operates in cooperation with another polarizing filter 1064 (shown in Fig. 36) at the transmitter 1012 to further distinguish the transmitted energy beam from ambient signals. The filters 1062 maximize transmission of the laser signal and minimize transmission of ambient signals through absorption. Transmission of the laser light is maximized by having its center wavelength correspond to the wavelength of the laser light. If, for example, the laser light operates at 670 nanometers, then the filters could be selected to provide transmission of only red light (approximately 620 - 700 n ) . Certain of the lenses and filters may be combined in a single colored lens. As shown in Fig. 36, the system may also include a shade configuration 1066 for shading either the transmitter, the receiver, or both from ambient signals 1056. The lens 1065 unit includes a colored polarizing lens as well as the lens 1058 for focusing the beam to a focal point which coincides with the receiving surface 1013 of the receiver 1014. As discussed in connection with Fig. 30, the system includes a signal modulation unit 1026 for modulating the amplitude, frequency, phase, or pulse of the energy signal transmitted from the transmitter. Moreover, the signal may undergo a combination of modulations, such as high frequency (100 khz) / low frequency (10 khz) pulse modulation as shown in Fig. 37, or high frequency pulse / low frequency amplitude modulation as shown in Fig. 38. With reference to Fig. 37, the signal 1800 undergoes a low frequency pulse modulation having a period Tl as well as a high frequency modulation having a period T2. The amplitude alternates between Al and A2. The detection unit for detecting the signal 1800 should include two band pass frequency filters: one for each of the frequencies 1/T1 and 1/T2. With reference to Fig. 38, the signal 1900 undergoes a high frequency modulation of period T4 as well as a low frequency modulation of period T4 which oscillates between an amplitude of +/- A3 and +/- A4. The detection unit for detecting the signal 1900 should include a 1/T3 frequency filter, a 1/T4 frequency filter as well as an amplitude filter to detect the periodic amplitude modulations. Pulse modulation may also be employed to discriminate between the transmitted signal and ambient signals. As shown in Fig. 39, the transmitter emits a predetermined series of pulses 1950 which the receiver will receive 1952 as long as there is no obstruction in the closing path. The detection unit is synchronized to detect whether the receiver has received the correct signal. The correct signal is defined as including three or more short pulses of period T5 followed by a series of longer pulses of period T6. Here, the system requires that a series of pulses at predetermined intervals be detected so as to distinguish the transmitted signal from ambient signals which flicker. A flickering ambient signal may result from the vehicle passing trees which are positioned between the vehicle and the sun. Returning to Fig. 39, at time t b the closing operation is commenced until an obstruction is detected by the detection unit. If and when an obstruction is detected, the system responds as described above. As shown in Fig. 40, the signal discrimination may be accomplished by the use of another signal receiver 1068 for receiving only ambient signals. The signal detection unit 1016 would rely on the output of the ambient signal receiver 1068 as a reference. In operation, the analog output of the receiver 1014 is measured with respect to the positive output of the receiver 1068 instead of being measured with respect to ground. Alternatively, the control unit 1020 amy include a microprocessor for digitizing the respective outputs of the receivers 1014 and 1068. The output of the receiver 1068 could then be subtracted from the output of the receiver 1014 by the microprocessor. The system may also include a cylindrical lens 1070 for diverging the laser energy signal as it is emitted from the transmitter 1072 as shown in Fig. 41. The laser energy signal is thus diverged into a substantially planar light beam 1074, any portion 1074' of which may reflect off of an obstruction 1076. This reflection of the signal 1074' is detected by the signal receiver 1078 through the filtering lens 1080. In this case, the detection of an unusually bright reflection corresponds to the detection of an obstruction and the system responds accordingly. As shown in Fig. 42, numerous receiver units 1082a-f are positioned adjacent to the transmitter 1072 and diverging lens 1070. Each receiver/lens unit 1082 includes a receiver 1014 similar to that shown in Fig. 30, and a filter lens unit 1065 similar to that shown in Fig. 36. With reference to Figs. 43 and 44, the multiple receiver units 1082a-f together with the emitter 1072 and diverging lens 1070 (unit 1073) are packaged as a single transmitter/receiver unit 1084 and positioned adjacent to the closing path of an automated vent 1024. In alternative approaches, several transmitter/receiver units 1086a-f may be positioned along one or more edge of a closing path as shown in Fig. 45. Preferably, such units are prepackaged on a single strip 1088 which is attached to the window frame of the vehicle. In another approach, the system includes a fiber optic waveguide 1090 having triangular notches 1092a-f cut as shown in Fig. 46. In operation, the laser would transmit the laser light into the waveguide 1090, and the light would escape through the several notches 1092, thus producing a substantially planar beam 1094. The receiver can either be positioned at the opposite end of the fiber optic waveguide, or adjacent the transmitter. In the latter situation the waveguide includes a mirror 1096 positioned at the opposite end of the waveguide. Again, the presence of an unusually bright signal at the receiver is typically indicative of there being an obstruction in the closing path. In other approaches of the invention, the vent element includes either an attached transmitter, receiver, or waveguide for transmitting the energy signal from a transmitter. In still further approaches, the vent element itself may be comprised of a planar waveguide for transmitting the energy signal. One concern associated with systems incorporating diverging devices is that reflection of the energy beam off of, for example, the interior roof of an automobile, may produce a false detection signal if excess light is reflected to the receiver. Consequently, the detection and control units of such systems should also detect and correct for excessive levels of reflection which remain constant. As shown in Fig. 47, a bi-directional transmitter/receiver unit 1000 comprises a laser emitter 1100, an emitter lens 1102, a light splitter 1104 at 45 * , a parallel focus lens 1106, a positive piano cylindrical lens 1108, a receiver lens 1110, and a signal receiver 1112. The output from the signal receiver 1112 is amplified by the AC amplifier 1114 and the DC amplifier 1116. The vent control unit 1118 controls the movement of the vent element 1024 responsive to the output of the DC amplifier 1116. An output of the vent control unit 1118 is fed back to the modulation unit 1120 which corrects synchronization and other inconsistencies which are within the range of acceptable variation. If, for example, a low frequency modulation of 25 khz is performed on the transmitted signal and the received signal has a low frequency modulation of 30 khz, then the detection unit will not report an error as the received signal is within an acceptable range (25 +/- 5 khz) . The modulation unit will correct the transmitted signal to return it to 25 khz. Alternatively, the control unit could record the modulation of 30 khz and measure variations and changes from this new base. The bi-directional transmitter/receiver unit 1000 operates as follows. The transmitted light from transmitter 1100 is focused by the lens 1102 and passes through the beam splitter 1104. The light is then focused by the lens 1106 and diverged by cylindrical lens 1108 in to a substantially planar beam 1122. If light reflects off of an obstruction 1124, then the reflected light 1122' will pass back through the cylindrical lens 1108, through the lens 1106 and be split by the beam splitter 1104. A portion of this light will be refracted into the beam splitter and a portion will be reflected by the beam splitter. The reflected portion is directed towards the photo sensitive receiving surface of the receiver 1110. If excessively bright light is received for an extended period of time (such as may be caused by the light reflecting off of the interior of the roof or the sun visor) , the control unit could adjust and measure variations from the increased level of brightness. As shown in Fig. 48 an environment, such as the interior of an automobile, may include ambient reflection 1122". Such reflection could be produced by the interior roof of an automobile 1126. Ambient reflection 1122" will interfere with reflection 1122' from the object 1124 and drench the receiver of the unit 1000 with reflected light 1122' and 1122". The system must differentiate between the object detection reflection 1122' and the ambient reflection 1122". The system achieves this differentiation through use of the feedback control mentioned above. In general, the ambient reflection 1122" does not change as rapidly as the object reflection 1122'. The system employs numerous modulation techniques as described above to detect the variations in object reflected light 1122' with respect to the more steady state ambient reflection 1122". This feedback provides the system with desirable fail-safe features. Referring to Fig. 49, another alternative obstruction detection system 2010 for a vehicle window uses a pair of transducers, transmitter 2012 and receiver 2014. Transmitter 2012 includes an emitter 2016 which emits a narrow beam 2018 of energy which may be sound, ultrasonic, infrared, or light, for example. This beam is received by sensor 2020 in receiver 2014. Transmitter generator circuit 2022 energizes transmitter 2012 to emit beam 2018. To enhance noise rejection a modulation circuit 2024 may be provided to modulate beam 2018. The output from transmitter generator circuit 2022 is also supplied to amplifier and bandpass filter circuit 2026 so that any necessary modulation detection may be accomplished. If an obstacle 2028 should interfere and obstruct beam 2018, this is detected by sensor 2020 in receiver 2014, amplified in amplifier 2030 and submitted to control 2032, which then interrupts the power to window drive 2034. In order to efficiently provide a beam to monitor the nonlinear edge 2040 of window 2030 in door 2036, Fig. 50, having a rectilinear form of two straight edges 2042 and 2044 joined at apex 2046, three transducers 2048, 2050, and 2052 are used. Transducers 2048, 2050, and 2052 are mounted on section 2055 of frame 2054 which receives the edge 2040 of window 2038. Transducer 2050 is the opposite type of transducer as that a transducers 2048 and 2052. Thus if transducer 2050 is a transmitter, transducers 2048 and 2052 are receivers. Conversely, if transmitter 2050 proximate the intermediate portion 2046 is a receiver, then transducers 2048 and 2052 at the terminal portions 2056 and 2058 of edge 2040 are transmitters. In this way, a beam which conforms closely to the contour of window edge 2040 can be effected with a minimum number of transducers. Typically transmitters and receivers for use with infrared are C0X14GE infrared emitter, L14C2GE infrared photo transistor; ultrasonic are P9923 ceramic ultrasonic transducer, P9934 ultrasonic ceramic microphone; sound ar P9922 audio transducer. P9956 electric condenser microphone; laser are P451 laser diodes, BPW38GE photo transistor; and light are P374 light emitter, PN116PA photo transistor. A similar construction is shown with respect to sun roof 2057, Fig. 51, where the sun roof panel 2038a has terminal portions 2056a and 2058a and intermediate portion 2046a. In situations where transducer 2050 is a receiver, there is a need to prevent a blind spot from occurring whereby a finger or other small object might be crushed between the apex or intermediate portion 2046 of window 2038, Fig. 50, and the mating corner 2047 of section 2055, where transducer 2050 is located. In that case a receiver 2050', Fig. 52, having a single sensor 2060 which is generally wide-angle, may be used so that even the smallest finger or similar object necessarily interferes with the beam 2018', 2018" even at its convergence at sensor 2060. Such a receiver is a PN127- SPA NPN photo transistor. Alternatively, a receiver 2050", Fig. 53, may use two sensors 2060', 2060", which are made small enough, approximately 1/4 inch or less, so that each receives a portion of the beam 2018', 2018", but the space 2062 between sensors 2060' and 2060" is made small enough so that even the smallest object to be detected would overlap and block one or the other of sensors 2060' and 2060" and provide the necessary interruption of beam 2018', 2018" to cause the control 2032 to stop the window drive 2034. Such a device is AEM (Automobile Environment Management) System from Prospects Corporation. Whether transducer 2050, Fig. 50, is a transmitter or a receiver, it may be constructed as shown in Fig. 54, where transducer 2050'" has two sensors 2062, 2064 which may as well be emitters, and an interrupter or cover 2066 which is biased by spring 2068 away from sensors or emitters 2062, 2064 in the normal condition. However, when for example an advancing window edge pushes a finger against interrupter 2066, interrupter 2066 will be moved against the force of spring 2068 until it covers sensors 2062 and 2064, thus interrupting beams 2018' and 2018", causing an indication of the presence of an obstacle and causing control 2032 to stop window drive 2034. Such a device is a AEM System from Prospects Corporation. In any corner situation where an obstruction might be so small that it would miss blocking the transmitter or receiver, the transmitter or receiver 2070, Fig. 55, may be mounted in conjunction with a camming surface 2072 which would guide a finger 2074 toward the transistor or receiver, driven by advancing window edge 2076 until finger 2074 is compelled to block beam 2018. Receiver 2070 may be approximately 1/4 inch or less in diameter and surface 2072 may have a radius which varies from 3 inches to 30 inches. Often when a beam 2080, Fig. 56, is being transmitted from transmitter 2082 to receiver 2084, the presence of an obstacle 2086 may not be detected because of ambient noise. For example, if beam 2080 is a light beam then the ambient light from sun 2088 may be such as to overdrive or saturate receiver 2084 so that even if beam 2080 is totally blocked by obstacle 2086, receiver 2084 receives sufficient light so that it provides no indication that an obstruction has occurred. The same type of interference can occur when the beam from transmitter 2082 itself is deflected as beam 2080' Fig. 57, from a surrounding surface 2090, so that receiver 2084 does not detect the presence of obstacle 2086. This may by remedied in a number of ways according to this invention. As shown in Fig. 58, receiver 2084 may be provided with a shade 2092 that blocks not only the rays of sun 2088, but also the deflected beam 2080'. A similar shade 2094 may be used on a housing mounted with transmitter 2082. Alternatively, band pass filter 2096, Fig. 59, may be used to screen from receiver 2084 all but the particular frequency of light, sound or other energy beam, except that originally contained in beam 2080. This of course would not prevent the effect of the deflected beam 2080' because it would have the same frequency as beam 2080 since it is derived from that beam. However, with further improvement of transmitter or receiver construction such an effect can be eliminated. Shade 2092 as well as shade 2094 may be employed along with filter 2096. In another approach, a dual-channel system 2100, Fig. 60, may be used wherein channel A includes transmitter 2082a which transmits beam 2080a toward receiver 2084a. Channel B is reversed with respect to channel A so that transmitter 2082b is proximate receiver 2084a and receiver 2084b is proximate transmitter 2082a. This is done so that if the ambient energy is incident upon receiver 2084a, it is unlikely that it could also be incident upon receiver 2084b, since 2084b is in the opposite direction from receiver 2084a. When an obstacle 2086 is present, it is possible that beam 2080a could strike obstacle 2086 as indicated at 2080aa and be reflected as also indicated along 2080aa so that it would strike receiver 2084b. The same thing would happen with respect to beam 2080b whereby beam 2080bb would reflected to receiver 2084a. To prevent this crossover between the channels, beam 2080a and beam 2080b are selected to have two different frequencies such as 20 KHz/70 KHz. The receivers are therefore tuned to different frequencies and either one can interfere with the other. Alternatively, as shown in Fig. 61, a dual channel system may be constructed in which channel A and channel B provide energy beams 2080c and 2080d of the same frequency, but their operation is sequenced or multiplexed so that only one beam is on at a time. Thus transmitter 2082c sends out a series of pulses 2082cc, Fig. 62, which are received by receiver 2084c by the series of pulses 2084cc. Any difference between the received pulses 2084cc and the transmitted pulses 2082cc is an indication that an obstacle has been detected. The periods between the pulses, shown crosshatched at 2083cc, are ignored, because during these periods transmitter 2082d is generating pulses 2082dd and receiver 2084d is receiving a like series of pulses 2084dd. The crosshatched areas indicated at 2085dd are the periods during which the input to receiver 2084d is ignored, since they are occurring during the period of the pulses 2082cc, 2084CC The timing diagram, Fig. 62, also shows the fail safe detection diagnostic operations. The active time period before time line 2102 indicates the active fail safe detection time interval. Before the vent closing operation, a diagnostic OFF/ON signal is send out from the transmitter. The receiver should correspondingly receive the same signal pattern as monitored by the processor 2120. Otherwise, a warning message is generated by processor 2120 and the automatic close-vent operation is blocked. This can be accomplished using a main controller such as microprocessor 2120, Fig. 63, which drives switch control 2122, operates switch 2124 to connect the transmitter generator 2022, Fig. 49, to switch 2124, and selects which of transmitters 2082c and 2082d is turned on in the alternating sequence. A second switch 2126 may be employed, also supervised by switch control 2122, so that the receiver circuits 2026, 2030, 2032 will not even see the signal from the other channel. Switch 2126 may also be used under control of microprocessor 2120, so that if an obstruction is indicated in one of the channels and not the other, indicating that the one channel is giving false readings, switch 2126 can be simply connected continuously to the still credible channel so that only outputs from that channel are processed for determination of whether a true obstruction has occurred. Other embodiments are within the following claims. For example, as illustrated in Fig. 64, a compact, self- contained obstruction detection unit 640 provides an obstruction detection output signal in response to an activation input signal. Obstruction detection unit 640 includes a housing 642 and a lens 644 that is shared by emitters and a receiver within the housing. Four wires 646 (electrical power, electrical ground, input, output) permit connection of obstruction detection unit 640 to a system such as a window control system in an automobile. Referring also to Fig. 65, obstruction detection unit 640, like unit 106 (described above with reference to Figs. 9A-9C) , includes four light emitting diodes 648 that function as emitters and a photo IC 650 that functions as a receiver. The diodes and photo IC, which operate as discussed above with respect to units 60, 64 and 106, are controlled by a processor 652 mounted on a circuit board 654 that is positioned in housing 642. The circuit board includes other electrical components 656 and is connected to the diodes and photo IC, and to wires 646. A piano convex lens 658 is positioned between photo IC 650 and lens 644, and a filter 657 is positioned between photo IC 650 and lens 658. In one implementation, the filter is a 950 nanometer bandpass filter. Referring also to Figs. 66A-66C, the upper surface of lens 644 is generally rectangular in shape (Fig. 66C) . To maximize the sensitivity of unit 640 to obstructions, lens 644 is shaped so that each vertical section along the long dimension 659 of the lens has an upper surface that conforms to the arc of a circle. (The surface 661 in Fig. 65 is an example of such an arc of a circle.) To concentrate the energy produced by diodes 648 into a relatively flat energy curtain, lens 644 is shaped so that each vertical section along the short dimension 660 of the lens has a sharper than circular upper surface, such as one that conforms with a parabola or an arc of the narrow dimension of an ellipse. In one example, lens 644 is fifty two millimeters long and twenty six millimeters wide, with the arcs along the long dimension corresponding to a circle having a radius of 102 milliemeters. Lens 644 has a minimum thickness 662 of 2.5 millimeters and a maximum thickness 664 of ten millimeters. Housing 642 is forty six millimeters long, twenty one millimeters wide and twenty two millimeters high. Common lens 644 and piano convex lens 658 are shaped to optimize the performance of photo IC 650. The performance of diodes 648 is optimized by spacing the diodes 648 from lens 644 to leave an air gap 665 between the diodes and the lens and to focus the energy curtain produced by the diodes and the lens at a desired position. A spacing assembly 666 positions diodes 648, receiver 650 and lens 658 at their proper positions. Lens 644 is formed from an epoxy resin by an pour casting process. First, diodes 648 and lens 658 are positioned in spacing assembly 666. The spacing assembly is then inverted and placed over a mold having the shape desired for lens 644. Finally, epoxy resin is injected into the mold. After the resin of the lens has set, the photo IC 650 is positioned in the spacing assembly, the diodes and photo IC are connected to the circuit board 654, and the entire assembly is positioned in the housing 642. To avoid air bubbles in the lens (which could reduce the performance thereof) , the lens is formed under vacuum by placing the mold and the resin mixture in a bell jar vacuum. In one example, the lens is formed from Tra-Bond F114 Epoxy Adhesive, available from Tra-Con, Inc., and lens 658 is formed from the same material as lens 644. Referring to Fig. 67, obstruction detection unit 640 provides an obstruction detection output signal 668 in response to an activation input signal 670. When the input signal has a value corresponding to logical zero (i.e., zero volts), the output signal has a value corresponding to logical one (i.e., five volts). With this arrangement, it can be easily verified that unit 640 is properly connected to power. At time 672, the input signal changes to a value corresponding to logical one. This activates unit 640, which responds by changing the output signal to a value corresponding to logical zero. At time 674, unit 640 determines that no obstruction is present and changes the output signal back to logical one. The difference between time 672 and time 674 is approximately fifty milliseconds. By changing the output signal to logical zero upon activation, unit 640 provides an affirmative indication that unit 640 has been activated in response to the transition in the input signal. Similarly, by changing the output signal to logical one when no obstruction is detected, unit 640 provides an affirmative indication that no obstruction is present. Obstruction detection unit 640 continues to monitor for an obstruction until the input signal changes back to logical zero at time 676. Deactivation of unit 640 has no effect on the output signal, which remains at logical one. At time 678, the input signal again changes to logical one and the output signal change to logical zero in response thereto. However, because an obstruction is present, the output signal remains at logical zero beyond time 680 (approximately fifty milliseconds after time 678) . Thus, the presence of an obstruction is indicated by an output signal that remains at logical zero for more than fifty milliseconds. The output signal remains at logical zero until the input signal changes to logical zero at time 682, at which point the output signal changes to logical one. (If the detected obstruction had been removed prior to time 682, the output signal would have immediately changed to logical one.) At time 684, the input signal changes to logical one, and unit 640 responds by changing the output signal to logical zero. At time 686, unit 640 determines that no obstruction is present and changes the output signal back to logical one. The output signal remains at logical one until unit 640 detects an obstruction at time 688 and changes the output signal to logical zero as an indication thereof. The output signal then remains at logical zero until the input signal changes to logical zero at time 690. The circuit implemented on circuit board 654 is illustrated in Fig. 68. A voltage regulation circuit 692 converts a six volt voltage from wires 646 to a regulated five volt supply for use by processor 652 and other components. An input circuit 694 receives an input signal from one of wires 646 and supplies the signal to the processor. Similarly, an output circuit 696 receives an output signal from the processor and supplies the signal to one of wires 646. Processor 652 activates photo diodes 648 by providing a signal 698 to a diode control circuit 700. Processor 652 ensures that the voltage supplied to the photo diodes does not vary with temperature by controlling the voltages supplied to various resistors in a voltage divider of a temperature compensation circuit 702. Processor 652 determines the temperature based on a signal supplied by a voltage divider 704 that includes a resistor 706 and a thermistor 708. The processor is also connected to a reset circuit 710 and a serial electrically erasable and programmable read only memory (EEPROM) 712. Processor 652 is implemented using a Motorola MC68HC705P9 8-Bit microcontroller unit. The microcontroller includes four data ports. One bit of port A (PA3) is connected to the output circuit 696, another bit (PA2) supplies signal 698 to diode control circuit 700, four bits (PA4..PA7) are connected to resistors of temperature compensation circuit 702, and the remaining bits (PA0..PA1) are connected to the serial EEPROM 712. The three bits of serial I/O port B (Pb5..PB7) are connected to the serial EEPROM. Two bits (PC0..PC1) of analog port C are connected to resistors of temperature compensation circuit 702, one bit (PC5) is connected to photo IC 650, one bit (PC6) is connected to voltage divider 704, and the remaining four bits (PC2..PC4 and PC7) are inactive. Port D is inactive. Referring to Fig. 3, obstruction detection unit 640 may be substituted for obstruction detection system 52. In this case, the input activation signal substitutes for the driving signals 54 and the output signal substitutes for the detection signals 56. In addition, much of the processing performed by the controller 46 in the system 44 is performed by the processor 652 (Fig. 65) . For example, with reference to Fig. 10, after responding to an input activation signal by setting the output signal to logical zero, the processor 652 activates the emitters 648 and determines whether the emitters 648 are operating correctly (step 128) . The processor 652 activates the emitters 648 by sending a driving signal that includes a series of 38 kHz pulses that are frequency modulated on a train of lower frequency pulses. Processor 652 then determines whether the emitters are operating correctly by monitoring a detection signal produced by photo IC 650. If the emitters are operating correctly (step 130) , the controller 652 monitors the detection signal and determines t, the length of a detection pulse (step 132) . The length of a detection pulse is related to the intensity of energy incident on photo IC 650, and, because obstructions reflect energy toward photo IC 650, increases when an obstruction is present. Thus, processor 652 detects obstructions by comparing t to T' , an initialization value related to the length of a detection pulse produced by photo IC 650 when no obstructions are present (step 134) . T' is generated in an initialization procedure as discussed above with respect to system 44. If processor 652 determines that t is greater than T' (step 134) , this indicates that an obstruction might be present, and processor 652 responds by incrementing a miscompare count (step 136) . If the incremented miscompare count is greater than two (step 138) , processor 652 determines that an obstruction is actually present and responds by maintaining the output signal at logical zero (or setting the output signal to logical zero if the output is at logical one) . The processor 652 also maintains the output signal at logical zero if the emitters are not functioning correctly. If the processor 652 determines that no obstruction is present, the processor sets the output signal to logical one. Obstruction detection unit 640 may be used in applications other than the automobile application discussed above. For example, it could be used to detect obstructions in or around a machine tool. In addition, it could be positioned in a window opening or doorway of a building to detect intruders or near a doorway to control an automatic door. A power enhanced version could be positioned to produce an energy curtain covering the top of a swimming pool and to thereby detect unauthorized or accidental entry into the pool. As previously discussed, appendixes A and B, incorporated by reference, are assembly language software for implementing, respectively, an automatic venting system and an automatic sunroof system. The appendixes contain material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or patent disclosure, as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever. What is claimed is:

Claims: APPENDIX A TO APPLICATION TITLE: POWER DRIVEN VENΗNG OF A VEHICLE APPLICANT: Prospects Corporation * D 0 TO 1FFF 0000020100 LJMP 0100 ;jump 0003020CD3 LJMP 0CD3 0006 BD7CDF CJNE R5,#7C,FFE8 0009 BFBC02 αNE R7,#BC,000E 000C OD INC R5 000D 13 RRC A OOOE 68 XRL A,R0 OOOF C6 XCH A,@R0 00109F SUBB A,R7 0011 8FF4 MOV F4,R7 0013020D12 LJMP 0D12 00164F ORL A,R7 00174F ORL A,R7 00188DDE MOV DE,R5 001 A EE MOV A,R6 001B 020D18 LJMP 0D18 001E 6F XRL A,R7 001F 8DFF MOV FF,R5 0021 BFFE02 CJNE R7,#FE,0026 0024 OD INC R5 002546 ORL A,@R0 0026 FF MOV R7,A 00274B ORL A,R3 002899 SUBB A,R1 002933 RLC A 002A AC 00 MOV R4,00 002C 3F ADDC A,R7 002D 53BEC4 ANL BE,#C4 00309F SUBB A,R7 00319E SUBB A,R6 003207 INC @R1 0033 12DD9D LCALLDD9D 00367859 MOV R0,#59 0038 FD MOV R5,A 0039 CF XCH A,R7 003A BD 36 F5 CJNE R5,#36,0032 003D 75 AE B6 MOV AE,#B6 0040 D9 C9 DJNZ R1,000B 0042 B7 F7 E7 CJNE @R1,#F7,002C 00458825 MOV 25,R0 0047 AD AD MOV R5 D 0049 AB96 MOV R3,96 004B 57 ANL A,@R1 004C AB 87 MOV R3,87 004E E7 MOV A,@R1 004F E0 MOVX A,@DPTR 0050 BB 02 E2 ONE R3,#02,0035 0053 7E FB MOV R6,#FB 0055 D5 EC 5C DJNZ EC,00B4 0058 CD XCH A,R5 0059 A2 95 MOV C,95 005B E2 MOVX A,@R0 005C DD B9 DJNZ R5,0017 005E FD MOV R5,A 005F B5 FF E8 CJNE AJΨ,004A 0062 EF MOV A,R7 0063 C6 XCH A,@R0 0064 CF XCH A,R7 0065 7D EE MOV R5,#EE 0067 BO CB ANL CJCB 0069 Bl B7 ACALL 05B7 006B Bl 63 ACALL 0563 006D F4 CPL A 006E 67 XRL A,@R1 006F 13 RRC A 0070 BF FC F9 CJNE R7,#FC,006C 0073 21 IF AJMP 01 IF 0075 9D SUBB A,R5 0076 35 5B ADDC A,5B 0078 DB FB DJNZ R3,0075 007A FF MOV R7,A 007B 869D MOV 9D,@R0 007D 25 4D ADD A,4D 007F 90 DD FF MOV DPTR,#DDFF 0082 F7 MOV @R1,A 0083 9D SUBB A,R5 0084 FB MOV R3,A 0085 5F ANL A,R7 0086 7E 47 MOV R6,#47 0088 DB 9A DJNZ R3,0024 008A C7 XCH A,@R1 008B 64 EF XRL A,#EF 008D 61 EB AJMP 03EB 008F 6D XRL A,R5 0090 C4 SWAP A 0091 A0 E4 ORL CJE4 0093 73 JMP @A+DPTR 0094 FD MOV R5,A 0095 DD C7 DJNZ R5,005E 0097 309C DD JNB 9C,0077 009A BE 05 DF CJNE R6,#05,007C 09D EF MOV A,R7 09E B7918D CJNE @R1,#91,002E 00A1 A7AB MOV @R1,AB 00A343DE77 ORL DE,#77 00A6 AB 9F MOV R3,9F 00A8 C3 CLR C 00A924 F7 ADD A,#F7 OOAB 9289 MOV 89,C 00AD 2D ADD A,R5 00AE 66 XRL A,@R0 OOAF 40 EB JC 009C 00B1 CB XCH A,R3 00B2 AF24 MOV R7,24 00B4 D8 IF DJNZ R0,00D5 00B6 ED MOV A,R5 00B7 FA MOV R2,A 00B8 BF CB E7 CJNE R7,#CB,00A2 OQBB 90B7A9 MOV DPTR,#B7A9 OOBE FF MOV R7,A OOBF A2FF MOV OFF OOCl EB MOV A,R3 00C2 F6 MOV @R0,A 00C303 RR A 00C4 AB 77 MOV R3,77 00C6 AD 5F MOV R5,5F 00C88DFA MOV FA,R5 OOCA E3 MOVX A,@R1 OOCB 60 D9 JZ 00A6 OOCD 306EBB JNB 6E,008B 00D0 AF62 MOV R7,62 00D2 F6 MOV @R0,A 00D3 1199 ACALL0099 00D5 A4 MUL AB 00D6 EF MOV A,R7 00D7 DDDB DJNZ R5,00B4 00D9 E4 CLR A OODA DF63 DJNZ R7,013F OODC F4 CPL A OODD A794 MOV @R1,94 OODF 94 FA SUBB A,#FA 00E1 2A ADD A,R2 00E2 F7 MOV @R1,A 00E3 EF MOV A,R7 00E48FFE MOV FE,R7 00E6 E7 MOV A,@R1 00E7 DFB9 DJNZ R7,00A2 00E9 AC 7E MOV R4,7E OOEB 9A SUBB A,R2 00EC 71 07 ACALL 0307 OOEE BC 329F CJNE R4,#32,0090 00F1 EF MOV A,R7 00F2 FC MOV R4,A 00F3 D3 SETB C 0OF4 9F SUBB A,R7 0OF5 D7 XCHD A,@R1 00F6 73 JMP @A+DPTR 00F7 7D 9F MOV R5,#9F 00F9 6A XRL A,R2 OOFA 82 10 ANL CIO OOFC EC MOV A,R4 OOFD AB 88 MOV R3,88 OOFF D9 12 DJNZ R1.0113 0101 08 INC RO 0102 67 XRL A,@R1 0103 2077 14 JB 77,011 A 0106 C27C CLR 7C 0108 C272 CLR 72 OIOA C26B CLR 6B 010C C2 66 CLR 66 010E 75 3A 11 MOV 3A,#11 0111 75 39 B8 MOV 39,#B8 0114 75 38 00 MOV 38,#00 0117 75 37 00 MOV 37,#00 011A 75 80 FF MOV 80,#FF OllD 75 90 FF MOV 90,#FF 0120 75 AO FF MOV A0,#FF 0123 00 NOP 0124 00 NOP 0125 D297 SETB 97 0127 D2 96 SETB 96 0129 C27F CLR 7F 012B 74 11 MOV A,#ll 012D F5 89 MOV 89,A 012F C2 8C CLR 8C 0131 75 8A 00 MOV 8A,#00 0134 75 8C 00 MOV 8C,#00 0137 D2 AF SETB AF 0139 D2 A9 SETB A9 013B D2 AB SETB AB 013D D2 88 SETB 88 013F C2 A8 CLR A8 0141 C2 A8 CLR A8 0143 C28E CLR 8E 0145 C28C CLR 8C 01477411 MOV A,#ll 0149 F589 MOV 89,A 014B C2A5 CLR A5 014D 309252 JNB 92,01A2 0150 D27B SETB 7B 0152309409 JNB 94,015E 0155309325 JNB 93,017D 0158 C2A1 CLR Al 015A C2A0 CLR AO 015C 80 E3 SJMP 0141 015E C2A5 CLR A5 01602094DE JB 94,0141 0163 120336 LCALL0336 0166 1207 IE LCALL071E 0169 1206E3 LCALL06E3 016C 1207 IE LCALL071E 016F 1206E3 LCALL06E3 0172 1207 IE LCALL071E 0175 1206E3 LCALL06E3 0178 1207 IE LCALL071E 017B 80 C4 SJMP 0141 017D C2A5 CLR A5 017F 2093BF JB 93,0141 0182 120518 LCALL0518 0185 1207 IE LCALL071E 0188 1206E3 LCALL06E3 018B 1207 IE LCALL071E 018E 1206E3 LCALL06E3 0191 1207 IE LCALL071E 0194 1206E3 LCALL06E3 0197 1207 IE LCALL071E 019A 1206E3 LCALL06E3 019D 1207 IE LCALL071E 01A0809F SJMP 0141 01A212078E LCALL078E 01A5 C2A5 CLR A5 01A7 C2A1 CLR Al 01A9 C2A0 CLR AO 01AB D2B0 SETB BO 01AD 307B0C JNB 7B,01BC OIBO 307A03 JNB 7A,01B6 01B302024C LJMP 024C 01B6307B03 JNB 7B,01BC 01B9 120257 LCALL0257 1BC 75 3E 05 MOV 3E,#05 1BF 30 A2 03 JNB A2,01C5 1C2 20 A3 34 JB A3,01F9 1C5 30 A3 03 JNB A3,01CB 1C8 02 02 4C LJMP 024C 1CB 20 A4 03 JB A4,01D1 1CE 02 024C LJMP 024C 1D1 20 A278 JB A2,024C 1D4 12 07 2A LCALL 072A 1D7 12 07 IE LCALL 071E 1DA 12 07 IE LCALL 071E 1DD 1207 2A LCALL 072A 1E0 E5 3D MOV A,3D 1E2 B4020A CJNE A,#02,01EF 1E5 C2 B0 CLR BO 1E7 1203 36 LCALL 0336 01EA D2 B0 SETB BO 01EC 02024C LJMP 024C 01EF C2 BO CLR BO 01F1 12064F LCALL 064F 01F4 D2 BO SETB BO 01F6 02024C LJMP 024C 01F9 30 A250 JNB A2,024C 01FC 12 07 2A LCALL 072A 01FF 12 07 IE LCALL 071E 0202 12 07 IE LCALL 071E 0205 12 07 2A LCALL 072A 0208 20 6628 JB 66,0233 020B C2 B0 CLR BO 020D 12 05 18 LCALL 0518 0210 D2 BO SETB BO 0212 30 A2 12 JNB A2,0227 0215 207A 38 JB 7A.0250 0218 75 7F 30 MOV 7F,#30 021B 1204 E2 LCALL 04E2 021E 307E FD JNB 7E,021E 0221 D5 3E D5 DJNZ 3E,01F9 0224 02 02 50 LJMP 0250 0227 75 7F 50 MOV 7F,#50 022A 12 04 E2 LCALL 04E2 022D 307E FD JNB 7E,022D 0230 02024C LJMP 024C 0233 C2 B0 CLR BO 0235 12 03 36 LCALL 0336 0238 D2 B0 SETB BO 023A 30 A2 EA JNB A2,0227 023D 75 7F 10 MOV 7F,#10 0240 12 04 E2 LCALL 04E2 0243 30 7E FD JNB 7E,0243 0246 D5 3E BO DJNZ 3E,01F9 0249 02 02 50 LJMP 0250 024C C2 8E CLR 8E 024E D2 A5 SETB A5 0250 D2 B0 SETB BO 0252 12 08 93 LCALL 0893 0255 21 41 AJMP 0141 0257 D2 BO SETB BO 0259 75 7F 40 MOV 7F,#40 025C 1204 E2 LCALL 04E2 025F 75 3D 00 MOV 3D,#00 0262 12 02 CF LCALL 02CF 0265 E5 3D MOV A,3D 0267 C3 CLR C 0268 9402 SUBB A,#02 026A 605C JZ 02C8 026C 307E F3 JNB 7E,0262 026F E5 3D MOV A,3D 0271 B40054 CJNE A,#00,02C8 0274 307B 36 JNB 7B,02AD 0277 75 3E 05 MOV 3E,#05 027A 30 A246 JNB A2.02C3 027D C2 B0 CLR BO 027F 1207 2A LCALL 072A 0282 12 07 IE LCALL 07 IE 0285 12 07 IE LCALL 071E 0288 1207 2A LCALL 072A 028B C27B CLR 7B 028D 20 6606 JB 66,0296 0290 12 05 18 LCALL 0518 0293 020299 UMP 0299 0296 1203 36 LCALL 0336 0299 D2 B0 SETB BO 029B 30 A2 25 JNB A2.02C3 029E 207A 16 JB 7A,02B7 02A1 75 7F 10 MOV 7F,#10 02A4 12 04 E2 LCALL 04E2 02A7 307E FD JNB 7E.02A7 02AA D5 3E CD DJNZ 3E,027A 02AD C2 A5 CLR A5 02AF D2 BO SETB BO 02B1 12 08 93 LCALL 0893 02B4 0202 CE LJMP 02CE 2B7 75 3D 01 MOV 3D,#01 2BA 1207 4A LCALL 074A 2BD 1202 F5 LCALL 02F5 2C0 0202 C8 LJMP 02C8 2C3 75 7FFF MOV 7F,#FF 2C6 8094 SJMP 025C 2C8 C2 8E CLR 8E 2CA C2 7B CLR 7B 2CC D2 A5 SETB A5 2CE 22 RET 2CF D2 B0 SETB BO 2D1 3094 11 JNB 94,02E5 2D4 309303 JNB 93,02DA 2D7 02 03 35 LJMP 0335 2DA 3093 FD JNB 93,02DA 2DD 05 3D INC 3D 2DF 1207 4A LCALL 074A 2E2 0202 FO LJMP 02F0 2E5 3094 FD JNB 94,02E5 2E8 05 3D INC 3D 2EA 1207 4A LCALL 074A 02ED 1207 IE LCALL 07 IE 2F0 E5 3D MOV A,3D 02F2 B401 40 CJNE A,#01,0335 02F5 C2 8E CLR 8E 02F7 C27E CLR 7E 02F9 75 7F 30 MOV 7F,#30 02FC 1204 E2 LCALL 04E2 02FF 309409 JNB 94,030B 0302 3093 0C JNB 93,0311 0305 307E F7 JNB 7E,02FF 0308 02 03 35 LJMP 0335 030B 3094 FD JNB 94,030B 030E 0203 14 LJMP 0314 0311 3093 FD JNB 93,0311 0314 C2 8E CLR 8E 0316 05 3D LNC 3D 0318 7400 MOV A,#00 031A C3 CLR C 03 IB 9C SUBB A,R4 031C 70 12 JNZ 0330 03 IE 1207 4A LCALL 074A 0321 12 07 IE LCALL 07 IE 0324 1207 IE LCALL 07 IE 0327 1207 IE LCALL 07 IE 032A 1207 IE LCALL 071E 032D 1207 IE LCALL 071E 0330 12 07 4A LCALL 074A 0333 D27E SETB 7E 0335 22 RET 0336 12 04 CD LCALL 04CD 0339 C274 CLR 74 0354 20 A2 02 JB A2,0359 0357 D26A SETB 6A 0359 C272 CLR 72 035B 75 7F 04 MOV 7F,#04 035E 12 04 E2 LCALL 04E2 0361 D271 SETB 71 0363 307E FB JNB 7E,0361 0366 C2 8E CLR 8E 0368 75 7F 09 MOV 7F,#09 036B 1204 E2 LCALL 04E2 036E 30720E JNB 72,037F 0371 3093 05 JNB 93,0379 0374 20 94 16 JB 94,038D 0377 80 F5 SJMP 036E 0379 0203 CA LJMP 03CA 037C 0203 CF LJMP 03CF 037F 3093 F7 JNB 93,0379 0382 209408 JB 94.038D 0385 307E E6 JNB 7E,036E 0388 C2 8E CLR 8E 038A 3094 EF JNB 94,037C 038D C2 8E CLR 8E 038F 207C 65 JB 7C.03F7 0392 D271 SETB 71 0394 75 7F 01 MOV 7F,#01 0397 75 73 12 MOV 73,#12 039A 75 72 E2 MOV 72,#E2 039D 12 (M FD LCALL (MFD 03A0 D275 SETB 75 3A2 C2 7F CLR 7F 3A4 30 93 23 JNB 93,03CA 3A7 3094 20 JNB 94,03CA 3AA 207E 06 JB 7E,03B3 3AD 307F F4 JNB 7F,03A4 3B0 02 03 C5 LJMP 03C5 3B3 E5 77 MOV A,77 3B5 C3 CLR C 3B6 9404 SUBB A,#04 3B8 50 OB JNC 03C5 3BA 30 6A 08 JNB 6A,03C5 3BD 1208 B6 LCALL 08B6 3C0 1208 AF LCALL 08AF 3C3 D2 7C SETB 7C 3C5 C272 CLR 72 3C7 0203 FF LJMP 03FF 3CA C272 CLR 72 3CC 0203 FF UMP 03FF 3CF C2 8E CLR 8E 3D1 C27E CLR 7E 3D3 207C F4 JB 7C,03CA 3D6 75 7F FF MOV 7F,#FF 3D9 12 04 E2 LCALL 04E2 3DC 207E 03 JB 7E,03E2 3DF 3094 FA JNB 94,03DC 3E2 12 06 E3 LCALL 06E3 3E5 E5 77 MOV A,77 3E7 C3 CLR C 3E8 94 EO SUBB A,#E0 3EA 50 OB JNC 03F7 3EC E5 76 MOV A,76 3EE C3 CLR C 3EF 95 38 SUBB A,38 03F1 E5 77 MOV A,77 03F3 95 37 SUBB A,37 03F5 5008 JNC 03FF 03F7 85 37 77 MOV 77,37 03FA 85 38 76 MOV 76,38 03FD D27C SETB 7C 03FF 12 06 E3 LCALL 06E3 0402 30 94 FD JNB 94,0402 0405 30 93 FA JNB 93,0402 0408 22 RET 0409 C2 97 CLR 97 (MOB 20 A203 JB A2.0411 040E 020470 LJMP 0470 0539 12 07 FA LCALL 07FA 053C 20 5E 03 JB 5E,0542 053F 0205 C5 LJMP 05C5 0542 20 7F 09 JB 7F,054E 0545 D2 97 SETB 97 0547 C2 96 CLR 96 0549 C2 7C CLR 7C 054B 12 0C 92 LCALL 0C92 054E 75 7F 04 MOV 7F,#04 0551 12 04 E2 LCALL 04E2 0554 D2 71 SETB 71 0556 3094 19 JNB 94,0572 0559 20 A2 03 JB A2,055F 055C 02 05 C5 LJMP 05C5 055F 307E F2 JNB 7E,0554 0562 C2 8E CLR 8E 0564 75 7F 09 MOV 7F,#09 0567 1204 E2 LCALL 04E2 056 A D271 SETB 71 056C 20 A209 JB A2.0578 056F 0205 C5 LJMP 05C5 0572 0205 DB UMP 05DB 0575 0205 EO LJMP 05E0 0578 3094 F7 JNB 94,0572 057B 2093 08 JB 93,0586 057E 307E E9 JNB 7E,056A 0581 C2 8E CLR 8E 0583 3093 1A JNB 93,05A0 0586 207F 57 JB 7F,05E0 0589 D271 SETB 71 058B 30 A2 37 JNB A2,05C5 059A 20 A20A JB A2.05A7 059D 02 05 C5 LJMP 05C5 05A0 D2 97 SETB 97 05A2 D2 96 SETB 96 05A4 02 05 E3 LJMP 05E3 05A7 1207 FA LCALL 07FA 05AA 30 5E 18 JNB 5E,05C5 05AD 30942B JNB 94,05DB 05B0 3093 28 JNB 93,05DB 5B3 20 92 03 JB 92,05B9 5B6 20 7B 27 JB 7B,05E0 5B9 207F 02 JB 7F,05BE 5BC 80 D8 SJMP 0596 5BE C2 8E CLR 8E 5C0 C27E CLR 7E 5C2 02 05 F5 UMP 05F5 5C5 D2 72 SETB 72 5C7 C2 6C CLR 6C 5C9 1206 E3 LCALL 06E3 5CC 85 77 36 MOV 36,77 5CF 85 76 35 MOV 35,76 5D2 75 7600 MOV 76,#00 5D5 75 77 10 MOV 77,#10 5D8 02 0645 LJMP 0645 5DB 207B 02 JB 7B,05E0 5DE D27A SETB 7A 5E0 020645 LJMP 0645 5E3 C27C CLR 7C 5E5 20 A202 JB A2,05EA 5E8 80 DB SJMP 05C5 5EA 2093 05 JB 93.05F2 5ED 309402 JNB 94,05F2 5F0 80 F3 SJMP 05E5 5F2 02 0645 LJMP 0645 05F5 1206 E3 LCALL 06E3 05F8 12 07 IE LCALL 071E 05FB D2 96 SETB 96 05FD C297 CLR 97 05FF C274 CLR 74 0601 12 04 CD LCALL 04CD 0604 C275 CLR 75 0606 75 7F 04 MOV 7F,#04 0609 1204 E2 LCALL 04E2 060C D271 SETB 71 060E 307E FB JNB 7E,060C 0611 C2 8E CLR 8E 0613 C27E CLR 7E 0615 D271 SETB 71 0617 D275 SETB 75 0619 75 7F 01 MOV 7F,#01 061C 75 73 12 MOV 73,#12 061F 7572 E2 MOV 72,#E2 0622 12 (M FD LCALL (MFD 0625 C27F CLR 7F 0627 3094 16 JNB 94,0640 062A 30 93 13 JNB 93,0640 062D 20 7F 15 JB 7F.0645 0630 12 0C 99 LCALL 0C99 0633 20 79 OF JB 79,0645 0636 307E EE JNB 7E,0627 0639 C2 8E CLR 8E 063B C27E CLR 7E 063D 020645 LJMP 0645 0640 207B 02 JB 7B,0645 0643 D27A SETB 7A 0645 1206 E3 LCALL 06E3 0648 3093 FD JNB 93,0648 064B 3094 FA JNB 94,0648 064E 22 RET 064F D2 97 SETB 97 0651 C2 96 CLR 96 0653 D2 66 SETB 66 0655 20 A2 12 JB A2,066A 0658 C2 8E CLR 8E 065A C2 A8 CLR A8 065C 75 7600 MOV 76,#00 065F 75 77 10 MOV 77,#10 0662 309478 JNB 94,06DD 0665 307B E7 JNB 7B,064F 0668 80 E5 SJMP 064F 066A 1204 CD LCALL 04CD 066D D274 SETB 74 066F C272 CLR 72 0671 D2 66 SETB 66 0673 75 7F 04 MOV 7F,#04 0676 12 04 E2 LCALL 04E2 0679 D271 SETB 71 067B 307E FB JNB 7E,0679 067E C2 8E CLR 8E 0680 75 7F 02 MOV 7F,#02 0683 1204 E2 LCALL 04E2 0686 D271 SETB 71 0688 3094 52 JNB 94,06DD 068B 2093 OB JB 93,0699 068E 307E F5 JNB 7E.0686 0691 C2 8E CLR 8E 0693 3093 IF JNB 93,06B5 0696 20 78 IC JB 78,06B5 0699 D271 SETB 71 069B 206B 29 JB 6B,06C7 069E 206B 3C JB 6B,06DD 6A1 30 94 39 JNB 94,06DD 6A4 3093 36 JNB 93,06DD 6A7 12 04 A6 LCALL 04A6 6AA 2073 30 JB 73,06DD 6AD 307B E9 JNB 7B,0699 6B0 30 92 2A JNB 92,06DD 6B3 80 E4 SJMP 0699 6B5 75 7FFF MOV 7F,#FF 6B8 1204 E2 LCALL 04E2 6BB 207E 12 JB 7E,06D0 6BE 2078 FA JB 78,06BB 6C1 3093 F7 JNB 93,06BB 6C4 0206 DO LJMP 06D0 6C7 85 3A 77 MOV 77,3A 6CA 85 39 76 MOV 76,39 6CD 02 06 DD LJMP 06DD 6D0 E5 76 MOV A,76 6D2 C3 CLR C 6D3 95 39 SUBB A,39 6D5 E5 77 MOV A,77 6D7 95 3A SUBB A,3A 6D9 4002 JC 06DD 6DB 80 EA SJMP 06C7 6DD 12 06 E3 LCALL 06E3 6E0 C2 8E CLR 8E 6E2 22 RET 6E3 309406 JNB 94,06EC 6E6 3093 17 JNB 93,0700 6E9 0207 11 LJMP 0711 6EC C297 CLR 97 6EE C296 CLR 96 6F0 3094 F9 JNB 94,06EC 06F3 12 07 IE LCALL 07 IE 06F6 3094 F3 JNB 94.06EC 06F9 D296 SETB 96 06FB D297 SETB 97 06FD 02 07 11 LJMP 0711 0700 C296 CLR 96 0702 C2 97 CLR 97 0704 3093 F9 JNB 93,0700 0707 1207 IE LCALL 07 IE 070A 3093 F3 JNB 93,0700 070D D2 97 SETB 97 070F D296 SETB 96 0711 C2 A8 CLR A8 0713 C2 8C CLR 8C 0774 C2 6D CLR 6D 0776 22 RET 0777 75 4C 01 MOV 4C,#01 077A 75 4B 40 MOV 4B,#40 077D 30 A20B JNB A2,078B 0780 00 NOP 0781 00 NOP 0782 D5 4B F8 DJNZ 4B,077D 0785 D5 4C F5 DJNZ 4C,077D 0788 0207 8D LJMP 078D 078B C2 5E CLR 5E 078D 22 RET 078E 75 7F 50 MOV 7F,#50 0791 12 04 E2 LCALL 04E2 0794 2092 62 JB 92,07F9 0797 2094 5F JB 94,07F9 079A 2093 5C JB 93.07F9 079D 307E F4 JNB 7E,0794 07 A0 C2 A0 CLR AO 07 A2 D2 Al SETB Al 07A4 120777 LCALL 0777 07A7 A2 A6 MOV OA6 07A9 92 64 MOV 64,C 07 AB A2 A7 MOV C,A7 07AD 92 63 MOV 63,C 07AF C2 Al CLR Al 07B1 C2 A0 CLR AO 07B3 1207 77 LCALL 0777 07B6 A2 A6 MOV C 6 07B8 92 62 MOV 62,C 07BA A2 A7 MOV C,A7 07BC 92 61 MOV 61,C 07BE D2 A0 SETB AO 07C0 C2 Al CLR Al 07C2 1207 77 LCALL 0777 07C5 A2 A6 MOV C 6 07C7 92 60 MOV 60,C 07C9 A2 A7 MOV C 7 07CB 92 5F MOV 5F,C 07CD A2 62 MOV C,62 07CF 82 60 ANL C,60 07D1 4003 JC 07D6 07D3 0207 F7 LJMP 07F7 07D6 A263 MOV C,63 07D8 82 61 ANL C,61 07DA 4003 JC 07DF 7DC 0207 F7 LJMP 07F7 7DF A264 MOV C,64 7E1 B3 CPL C 7E28262 ANL C,62 7E45011 JNC 07F7 7E6 A25F MOV C,5F 7E8 B3 CPL C 7E98261 ANL C,61 7EB 50 OA JNC 07F7 07ED C2A1 CLR Al 07EF C2A0 CLR AO 07F1 12074A LCALL 074A 07F4 1207 IE LCALL 071E 07F780 A7 SJMP 07 AO 07F922 RET 07FA C27F CLR 7F 07FC D25E SETB 5E 07FE 754828 MOV 48,#28 0801 C2A0 CLR AO 0803 D2A1 SETB Al 0805 120777 LCALL 0777 0808305E57 JNB 5E,0862 080B A2A6 MOV C,A6 080D 9264 MOV 64,C 080F A2A7 MOV C,A7 0811 9263 MOV 63,C 0813 C2A1 CLR Al 0815 C2A0 CLR AO 0817 120777 LCALL 0777 081A 305E45 JNB 5E,0862 08 ID A2A6 MOV OA6 081F 9262 MOV 62,C 0821 A2A7 MOV QA7 08239261 MOV 61,C 0825 D2A0 SETB AO 0827 C2A1 CLR Al 0829 120777 LCALL 0777 082C 305E33 JNB 5E,0862 082F A2A6 MOV C 6 0831 9260 MOV 60,C 0833 A2A7 MOV C 7 0835925F MOV 5F,C 0837 A262 MOV C,62 08398260 ANL C,60 083B 4006 JC 0843 083D A262 MOV C,62 083F 72 60 ORL C,60 0841 40 1A JC 085D 0843 A2 63 MOV C,63 0845 82 61 ANL C,61 0847 4006 JC 084F 0849 A2 63 MOV C,63 084B 72 61 ORL C,61 084D 40 0E JC 085D 084F A2 64 MOV C,64 0851 B3 CPL C 0852 82 62 ANL C,62 0854 40 OC JC 0862 0856 A25F MOV C,5F 0858 B3 CPL C 0859 82 61 ANL C,61 085B 4005 JC 0862 085D D5 48 A1 DJNZ 48,0801 0860 D27F SETB 7F 0862 C2 A1 CLR Al 0864 C2 A0 CLR AO 0866 22 RET 0867 E5 30 MOV A,30 0869 B455 14 CJNE A,#55,0880 086C E5 31 MOV A,31 086E B4 AA 0F CJNE A,#AA,0880 0871 E5 32 MOV A,32 0873 B4 33 OA CJNE A,#33,0880 0876 E5 33 MOV A,33 0878 B4 CC 05 CJNE A,#CC,0880 087B D2 77 SETB 77 087D 02 08 92 LJMP 0892 08F8 75 39 50 MOV 39,#50 08FB 02 09 13 LJMP 0913 08FE D2 67 SETB 67 0900 C2 68 CLR 68 0902 C2 69 CLR 69 0904 75 3A 11 MOV 3A,#11 0907 75 39 50 MOV 39,#50 090A 0209 13 LJMP 0913 090D 75 3A 11 MOV 3A,#11 0910 75 39 50 MOV 39,#50 0913 22 RET 0914 15 76 DEC 76 0916 E5 76 MOV A,76 0918 B4 FF 02 CJNE A,#FF,091D 091B 15 77 DEC 77 091D 20 66 0A JB 66,092A 0920 C27F CLR 7F 0922 12 04 89 LCALL 0489 0925 3073 02 JNB 73,092A 0928 D2 7F SETB 7F 092A 306E 06 JNB 6E,0933 092D 12 09 34 LCALL 0934 0930 12 09 87 LCALL 0987 0933 22 RET 0934 85 5C 5A MOV 5A,5C 0937 85 5B 59 MOV 59,5B 093A 85 5E 5C MOV 5C,5E 093D 85 5D 5B MOV 5B,5D 0940 85 60 5E MOV 5E,60 0943 85 5F 5D MOV 5D,5F 0946 85 62 60 MOV 60,62 0949 85 61 5F MOV 5F,61 094C 85 6462 MOV 62,64 094F 85 63 61 MOV 61,63 0952 85 6664 MOV 64,66 0955 85 65 63 MOV 63,65 0958 85 68 66 MOV 66,68 095B 85 67 65 MOV 65,67 095E 85 6A 68 MOV 68,6A 0961 85 69 67 MOV 67,69 0964 85 6C 6A MOV 6A,6C 0967 85 6B 69 MOV 69,6B 096A 85 6E 6C MOV 6C,6E 096D 85 6D 6B MOV 6B,6D 0970 85 70 6E MOV 6E,70 0973 85 6F 6D MOV 6D,6F 099E 85 6F 50 MOV 50,6F 09A1 85 704F MOV 4F,70 09A4 02 09 AD LJMP 09AD 09A7 85 6D 50 MOV 50,6D 09AA 85 6E 4F MOV 4F.6E 09AD E5 6B MOV A,6B 09AF C3 CLR C 09B0 95 52 SUBB A,52 09B2 E5 6C MOV A,6C 09B4 95 51 SUBB A,51 09B6 40 14 JC 09CC 09B8 E5 6B MOV A,6B 09BA C3 CLR C 09BB 95 50 SUBB A,50 09BD E5 6C MOV A,6C 09BF 95 4F SUBB A,4F 09C1 40 OF JC 09D2 09C3 85 6B 50 MOV 50,6B 09C6 85 6C 4F MOV 4F,6C 09C9 02 09 D2 LJMP 09D2 09CC 85 6B 52 MOV 52,6B 09CF 85 6C 51 MOV 51,6C 09D2 E5 69 MOV A,69 09D4 C3 CLR C 09D5 95 52 SUBB A,52 09D7 E5 6A MOV A,6A 09D9 95 51 SUBB A,51 09DB 40 14 JC 09F1 09DD E5 69 MOV A,69 9DF C3 CLR C 9E0 95 50 SUBB A,50 9E2 E5 6A MOV A,6A 9E4 95 4F SUBB A,4F 9E6 40 OF JC 09F7 9E8 85 69 50 MOV 50,69 9EB 85 6A 4F MOV 4F.6A 9EE 02 09 F7 LJMP 09F7 9F1 85 69 52 MOV 52,69 9F4 85 6A 51 MOV 51,6 A 9F7 E5 67 MOV A,67 9F9 C3 CLR C 9FA 95 52 SUBB A,52 9FC E5 68 MOV A,68 9FE 95 51 SUBB A,51 A00 40 14 JC 0A16 A02 E5 67 MOV A,67 0A04 C3 CLR C 0A05 95 50 SUBB A,50 0A07 E5 68 MOV A,68 0A09 954F SUBB A,4F OAOB 40 OF JC OAIC OAOD 85 67 50 MOV 50,67 0A10 85 68 4F MOV 4F,68 0A13 02 OA IC LJMP OAIC 0A16 85 67 52 MOV 52,67 0A19 85 68 51 MOV 51,68 OAIC E5 65 MOV A,65 0A1E C3 CLR C 0A1F 95 52 SUBB A,52 0A21 E5 66 MOV A,66 0A23 95 51 SUBB A,51 0A25 40 14 JC 0A3B 0A27 E5 65 MOV A,65 0A29 C3 CLR C 0A2A 95 50 SUBB A,50 0A2C E5 66 MOV A,66 0A2E 95 4F SUBB A,4F 0A30 40 OF JC 0A41 0A32 85 65 50 MOV 50,65 0A35 85 664F MOV 4F,66 OA38 020A 41 LJMP 0A41 0A3B 85 65 52 MOV 52,65 0A3E 85 66 51 MOV 51,66 0A41 E5 6F MOV A,6F 0A43 C3 CLR C A44 25 6D ADD A,6D A46 F5 58 MOV 58,A A48 E5 70 MOV A,70 A4A 35 6E ADDC A,6E A4C F5 57 MOV 57,A A4E E5 58 MOV A,58 A50 C3 CLR C A51 25 6B ADD A,6B A53 F5 58 MOV 58,A A55 E5 6C MOV A,6C A57 35 57 ADDC A,57 A59 F5 57 MOV 57,A A5B E5 58 MOV A,58 A5D C3 CLR C A5E 25 69 ADD A,69 A60 F5 58 MOV 58,A A62 E5 6A MOV A,6A A64 35 57 ADDC A,57 A66 F5 57 MOV 57,A A68 E5 58 MOV A,58 A6A C3 CLR C A6B 25 67 ADD A,67 A6D F5 58 MOV 58,A A6F E5 68 MOV A,68 A71 35 57 ADDC A,57 A73 F5 57 MOV 57,A A75 E5 58 MOV A,58 A77 C3 CLR C A78 25 65 ADD A,65 A7A F5 58 MOV 58,A A7C E5 66 MOV A,66 A7E 35 57 ADDC A,57 A80 F5 57 MOV 57,A A82 E5 58 MOV A,58 A84 C3 CLR C A85 95 52 SUBB A,52 A87 F5 58 MOV 58,A A89 E5 57 MOV A,57 A8B 95 51 SUBB A,51 A8D F5 57 MOV 57,A A8F E5 58 MOV A,58 A91 C3 CLR C A92 95 50 SUBB A,50 A94 F5 58 MOV 58,A A96 E5 57 MOV A,57 A98 95 4F SUBB A,4F A9A F5 57 MOV 57,A A9C 13 RRC A A9D F5 57 MOV 57,A A9F E5 58 MOV A,58 0AA1 13 RRC A 0AA2 F5 58 MOV 58,A 0AA4 C3 CLR C 0AA5 E5 57 MOV A,57 0AA7 13 RRC A 0AA8 F5 57 MOV 57,A OAAA E5 58 MOV A,58 OAAC 13 RRC A OAAD F5 58 MOV 58,A 0AAF 3071 16 JNB 71.0AC8 0AB2 85 57 4E MOV 4E,57 0AB5 85 58 4D MOV 4D,58 0AB8 E5 4E MOV A,4E OABA 94 11 SUBB A,#l l OABC 4003 JC 0AC1 OABE 020C 7A LJMP 0C7A 0AC1 C271 CLR 71 0AC3 C27F CLR 7F 0AC5 020C 7C LJMP 0C7C 0AC8 85 63 52 MOV 52,63 OACB 85 64 51 MOV 51,64 OACE E5 61 MOV A,61 OADO C3 CLR C 0AD1 95 52 SUBB A,52 0AD3 E5 62 MOV A,62 0AD5 95 51 SUBB A,51 0AD7 50 OF JNC 0AE8 0AD9 85 61 52 MOV 52,61 OADC 85 62 51 MOV 51,62 OADF 85 63 50 MOV 50,63 0AE2 85 644F MOV 4F,64 0AE5 02 OA EE LJMP OAEE 0AE8 85 61 50 MOV 50,61 OAEB 85 624F MOV 4F,62 OAEE E5 5F MOV A,5F OAFO C3 CLR C 0AF1 95 52 SUBB A,52 0AF3 E5 60 MOV A,60 0AF5 95 51 SUBB A,51 0AF7 40 14 JC OBOD 0AF9 E5 5F MOV A,5F OAFB C3 CLR C OAFC 95 50 SUBB A,50 OAFE E5 60 MOV A,60 0B00 95 4F SUBB A,4F 0B02 40 OF JC OB 13 0B04 85 5F 50 MOV 50,5F 0B07 85 60 4F MOV 4F,60 OBOA 02 OB 13 LJMP 0B13 OBOD 85 5F 52 MOV 52,5F 0B10 85 60 51 MOV 51,60 OB 13 E5 5D MOV A,5D OB 15 C3 CLR C 0B16 95 52 SUBB A,52 OB 18 E5 5E MOV A,5E 0B1A 95 51 SUBB A,51 0B1C 40 14 JC 0B32 OB IE E5 5D MOV A,5D 0B20 C3 CLR C 0B21 95 50 SUBB A,50 0B23 E5 5E MOV A,5E 0B25 95 4F SUBB A,4F 0B27 40 OF JC 0B38 0B29 85 5D 50 MOV 50.5D 0B2C 85 5E 4F MOV 4F,5E 0B2F 02 OB 38 LJMP 0B38 0B32 85 5D 52 MOV 52,5D 0B35 85 5E 51 MOV 51,5E OB38 E5 5B MOV A,5B 0B3A C3 CLR C 0B3B 95 52 SUBB A,52 0B3D E5 5C MOV A,5C 0B3F 95 51 SUBB A,51 0B41 40 14 JC 0B57 0B43 E5 5B MOV A,5B 0B45 C3 CLR C 0B46 95 50 SUBB A,50 0B48 E5 5C MOV A,5C 0B4A 95 4F SUBB A,4F 0B4C 40 OF JC 0B5D 0B4E 85 5B 50 MOV 50,5B 0B51 85 5C 4F MOV 4F,5C 0B54 02 OB 5D LJMP 0B5D 0B57 85 5B 52 MOV 52,5B 0B5A 85 5C 51 MOV 51,5C 0B5D E5 59 MOV A,59 0B5F C3 CLR C 0B60 95 52 SUBB A,52 B62 E5 5A MOV A,5A B64 95 51 SUBB A,51 B66 40 14 JC 0B7C B68 E5 59 MOV A,59 B6A C3 CLR C B6B 95 50 SUBB A,50 B6D E5 5A MOV A,5A B6F 95 4F SUBB A,4F B71 40 OF JC 0B82 B73 85 59 50 MOV 50,59 0B76 85 5A 4F MOV 4F,5A 0B79 02 OB 82 LJMP 0B82 0B7C 85 59 52 MOV 52,59 0B7F 85 5A 51 MOV 51,5 A OB 82 E5 63 MOV A,63 0B84 C3 CLR C 0B85 25 61 ADD A,61 0B87 F5 56 MOV 56,A 0B89 E5 64 MOV A,64 0B8B 35 62 ADDC A,62 0B8D F5 55 MOV 55,A 0B8F E5 56 MOV A,56 0B91 C3 CLR C 0B92 25 5F ADD A,5F 0B94 F5 56 MOV 56,A 0B96 E5 60 MOV A,60 0B98 35 55 ADDC A,55 0B9A F5 55 MOV 55,A 0B9C E5 56 MOV A,56 0B9E C3 CLR C 0B9F 25 5D ADD A,5D 0BA1 F5 56 MOV 56,A 0BA3 E5 5E MOV A,5E 0BA5 35 55 ADDC A,55 0BA7 F5 55 MOV 55,A 0BA9 E5 56 MOV A,56 OBAB C3 CLR C OBAC 25 5B ADD A,5B OBAE F5 56 MOV 56,A OBBO E5 5C MOV A,5C 0BB2 35 55 ADDC A,55 0BB4 F5 55 MOV 55,A 0BB6 E5 56 MOV A,56 0BB8 C3 CLR C 0BB9 25 59 ADD A,59 OBBB F5 56 MOV 56,A C14 C3 CLR C C15 95 7A SUBB A,7A C17 F5 7D MOV 7D,A C19 E5 79 MOV A,79 C1B 95 7B SUBB A,7B C1D 4005 JC 0C24 C1F F5 7E MOV 7E,A C21 02 0C 2F LJMP 0C2F C24 75 7E 00 MOV 7E,#O0 C27 75 7D 00 MOV 7D,#00 C2A C27F CLR 7F C2C 02 0C 7C LJMP 0C7C C2F C27F CLR 7F C31 20 6609 JB 66,0C3D C34 2069 20 JB 69,0C57 C37 20 68 26 JB 68,0C60 C3A 20 67 2C JB 67,0C69 C3D 75 7C 30 MOV 7C,#30 C40 75 71 00 MOV 71,#00 C43 E5 76 MOV A,76 C45 C3 CLR C C46 9470 SUBB A,#70 C48 E5 77 MOV A,77 C4A 94 10 SUBB A,#10 C4C 5006 JNC 0C54 C4E 75 7C C8 MOV 7C,#C8 C51 75 71 00 MOV 71,#00 C54 02 OC 6F LJMP 0C6F C57 75 7C 3A MOV 7C,#3A C5A 75 71 00 MOV 71, #00 C5D 02 OC 6F LJMP 0C6F C60 75 7C 2D MOV 7C,#2D 0C63 75 71 00 MOV 71,#O0 0C66 02 OC 6F LJMP 0C6F 0C69 75 7C 2D MOV 7C,#2D 0C6C 75 71 00 MOV 71, #00 0C6F E5 7D MOV A,7D 0C71 C3 CLR C 0C72 95 7C SUBB A,7C 0C74 E5 7E MOV A,7E 0C76 95 71 SUBB A,71 0C78 4002 JC 0C7C 0C7A D27F SETB 7F 0C7C 22 RET 0C7D 02 OC 86 UMP 0C86 0C80 12 09 34 LCALL 0934 OC83 12 09 87 LCALL 0987 0C86 C27D. CLR 7D 0C88 05 76 INC 76 0C8A E5 76 MOV A,76 0C8C B40002 CJNE A,#00,0C91 0C8F 05 77 INC 77 0C91 22 RET 0C92 85 77 3C MOV 3C,77 0C95 85 76 3B MOV 3B,76 0C98 22 RET 0C99 C279 CLR 79 OCCC OD INC R5 OCCD D5 FO EO DJNZ FO,OCBO ODAB E5 49 MOV A,49 ODAD 33 RLC A ODAE F5 49 MOV 49,A ODBO 2401 ADD A,#01 0DB2 F5 49 MOV 49,A 0DB4 12 OD CE LCALL ODCE 0DB7 E5 54 MOV A,54 0DB9 C3 CLR C ODBA 954A SUBB A,4A ODBC E5 53 MOV A,53 ODBE 95 49 SUBB A,49 ODCO 40 OB JC ODCD 0DC2 D27F SETB 7F 0DC4 02 OD CD LJMP ODCD 0DC7 754C 00 MOV 4C,#00 ODCA 75 4B 00 MOV 4B,#00 ODCD 22 RET ODCE 30 Bl 13 JNB B1,0DE4 0DD1 20 B7 1E JB B7,0DF2 0DD4 78 20 MOV R0,#20 0DD6 E54A MOV A,4A 0DD8 28 ADD A,R0 0DD9 F5 4A MOV 4A.A ODDB 7400 MOV A,#00 ODDD 3549 ADDC A,49 ODDF F5 49 MOV 49,A 0DE1 020D F2 LJMP 0DF2 0DE4 30 B7 04 JNB B7,0DEB 0DE7 78 60 MOV R0,#60 0DE9 80 EB SJMP 0DD6 ODEB 78 02 MOV R0,#02 ODED E549 MOV A,49 ODEF 28 ADD A,R0 ODFO F5 49 MOV 49,A 0DF2 22 RET E64 206D IC JB 6D,0E83 E67 D5 7F 02 DJNZ 7F,0E6C E6A D2 7E SETB 7E E6C 3076 OB JNB 76,0E7A E6F E5 72 MOV A,72 E71 F5 8D MOV 8D,A E73 E5 73 MOV A,73 E75 F5 8B MOV 8B,A E77 02 OE 8D LJMP 0E8D E7A 75 8D 00 MOV 8D,#00 E7D 75 8B 00 MOV 8B,#00 E80 02 OE 8B LJMP 0E8B E83 B295 CPL 95 E85 75 8B 6A MOV 8B,#6A E88 75 8D FF MOV 8D,#FF E8B D2 8E SETB 8E E8D 32 REΗ E8E 32 REΗ E8F 206624 JB 66,0EB6 0E92 2069 06 JB 69.0E9B 0E95 20680C JB 68,0EA4 0E98 20 67 12 JB 67,0EAD 0E9B 75 4A 73 MOV 4A,#73 0E9E 754901 MOV 49,#01 0EA1 02 OF IF LJMP 0F1F 0EA4 75 4A 00 MOV 4A,#00 0EA7 75490C MOV 49,#0C OEAA 02 OF IF LJMP 0F1F OEAD 75 4A 28 MOV 4A,#28 OEBO 75 4901 MOV 49,#01 0EB3 02 OF IF UMP 0F1F 0EB6 754A 8F MOV 4A,#8F 0EB9 75 49 01 MOV 49,#01 OEBC 02 OF IF LJMP 0F1F OEBF 206624 JB 66,0EE6 0EC2 206906 JB 69.0ECB 0EC5 2068 0C JB 68,0ED4 0EC8 2067 12 JB 67,0EDD OECB 75 4A 98 MOV 4A,#98 OECE 754901 MOV 49,#01 APPENDIX B TO APPLICATION ΗTLE: POWER DRIVEN VENΗNG OF A VEHICLE APPLICANT: Prospects Corporation jump ~ j 'DA 02 EO LJMP iCEO iCD F " MOV A,RO 1CDE 24 20 ADD A,#20 iCEO B MOV RO,A ICE! 22 RET 1CΞ2 12 IE OF LCALL 1E0F 1CE5 86 35 MOV 35,ΘRO 1CE7 74 80 MOV A ,#80 1CE9 55 2E ANL A,2E 1CEB B4 80 03 CJNE A,#80,1CF1 1CEE 02 ID 18 LJMP 1D18 1CF1 BF 15 03 CJNE R7,#15,1CF7 1CF4 02 ID 3C LJMP 1D3C 1CF7 BF 30 03 CJNE R7,#30,1CFD 1CFA 02 ID 3C LJMP 1D3C 1CFD BF 48 03 CJNE R7,#48,1D03 1D00 02 ID 3C LJMP 1D3C 1D03 BF 58 03 CJNE R7,#58,1D09 1D06 02 ID 3C LJMP 1D3C 1D09 BF 68 03 CJNE- R7,#68,1D0F 1D0C 02 ID 3C LJMP 1D3C 1D0F BF 78 03 CJNE R7,#78,1D15 1D12 02 ID 3C LJMP 1D3C 1D15 02 ID 33 LJMP 1D33 1D18 E5 2E MOV A,2E 1D1A B4 FF 22 CJNE A,#FF,1D3F • 1D1D A9 35 MOV Rl ,35 1D1F E5 2F MOV A.2F 1D21 F7 MOV ©Rl ,A 1D22 DA 16 DJNZ R2.1D3A 1D24 7A 03 MOV R2,#03 1D26 7B 02 MOV R3,#02 1D28 12 ID 42 LCALL 1D42 1D2B A9 3C MOV Rl ,3C 1D2D F7 MOV ©Rl ,A 1D2E 05 3C INC 3C 1D30 02 ID 33 LJMP 1D33 1D33 OF INC R7 1D34 75 2E .00 MOV 2E,#00 1D37 02 ID 3F LJMP 1D3F 1D3A 05 35 INC 35 1D3C 75 2E 80 MOV 2E,#80 1D3F A6 35 MOV ΘR0.35 1D41 22 RET 1D42 12 IE OF LCALL 1E0F 1D45 A9 35 MOV Rl ,35 1D47 E7 MOV A.ΘRl 1D48 15 35 DEC 35 1D4A A9 35 MOV Rl ,35 1D4C C3 CLR C 1D4D C2 Dl CLR Dl 1D4F 27 ADD A,©R1 1D50 50 02 JNC 1D54 1D52 D2 Dl SETB Dl 1D54 75 FO 02 MOV F0,#02 1D57 84 DIV AB 1D56 30 Dl 02 JNB D1.1D5D 1D B " 4 60 ADD A, #80 i " - "" ' F " MOV _ ; ,A •■ • - ■ - ■ = ■■ ■ : -- OJWZ «3,|D<U --. RET 1EC2 44 06 OP- A.ttO. .EOc E5 C5 MOV A,C5 1E08 30 E4 FB JNB E4.1E06 1E0B 65 C6 4A MOV 4A.C6 1E0E 22 RET 1Ξ0F 43 87 10 ORL 87,#10 1E12 75 FF 00 MOV FF,#00 1E15 22 RET 1E16 12 IE OF LCALL 1E0F 1E19 E5 3E MOV A.3E 1E1B B4 01 06 CJNE A,#01,1E24 1E1E 75 3E OC MOV 3E ,#0C 1E21 02 IE 39 LJMP 1E39 1E24 B4 02 06 CJNE A,#02,1E2D 1E27 75 3E OF MOV 3E,#0P 1E2A 02 IE 39 LJMP 1E39 1E2D B4 03 06 CJNE A,#03,lE3o 1E30 75 3E 13 MOV 3E,#13 1E33 02 IE 39 LJMP 1E39 1E36 75 3E 40 MOV 3E,#40 1E39 75 7A 01 MOV 7A,#01 1E3C 22 RET 1E3D 12 IE OF LCALL 1E0F 1E40 E5 62 MOV A,62 1E42 B4 00 06 CJNE A,#00,1E4B 1E45 75 3E 05 MOV 3E,#05 1E48 02 IE 72 LJMP 1E72 1E4B B4 01 06 CJNE A,#01,1E54 1E4E 75 3E IF MOV 3E,#1F 1Ξ51 02 IE 72 LJMP 1E72 1E54 B4 02 06 CJNE A,#02,1E5D 1E57 75 3E 20 MOV 3E ,#20 1E5A 02 IE 72 LJMP 1E72 1E5D B4 03 06 CJNE A,#03,1E66 1E60 75 3E 35 MOV 3E,#35 1E63 02 IE 72 LJMP 1E72 1E66 B4 04 06 CJNE A,#04,1E6F 1E69 75 3E 43 MOV 3E,#43 1E6C 02 IE 72 LJMP 1E72 1E6F 75 3E CO MOV 3E,#C0 1E72 75 7A 01 MOV 7A,#01 1E75 22 RET 1E76 12 IE OF LCALL 1E0F 1E79 7C OF MOV R4,#0F 1E7B E5 3E MOV A.3E 1E7D B4 00 08 CJNE A,#00,1E88 1E80 75 4B 00 MOV 4B,#00 1ES3 78 C2 MOV R0,#C2 1E85 02 IE Bl LJMP 1EB1 1E88 B4 01 08 CJNE A,#01,1E93 1E8B 12 19 9β LCALL 199B 1E8E 78 B2 MOV R0,#B2 1E90 02 IE Bl LJMP 1EB1 1E93 B4 02 08 CJNE A,#02,1E9E 1E96 12 19 AA L.CHI_L 19AA 1 E 99 ~?S A2 O R0 , *Α2 i r ' A " ,, - 8 CJNE *-• , H 'O ' -v ~τ- " y - ' - ' 1Z J ? <? 6 L ALlm J C " I E A- 7g f : mϋ R0 , t, S2. -' --1 - Cl - 1 I D Oi Ϊ 33 00 IviOP 1F34 00 NOP 1F3 OC NOP 1F36 20 81 10 JB 81.1F49 1F39 12 1A 14 LCALL 1A14 1F3C 78 6D MOV R0,#8D 1 3E E6 MOV A.ΘRO 1F3F B4 02 E9 CJNE A,#02,1F2B 1F42 E5 40 MOV A, 0 1F44 60 E5 JZ 1F2B 1F46 02 IF 63 LJMP 1F63 1F49 20 80 17 JB 80.1F63 1F4C E5 3B MOV A,3B 1F4E B4 26 DA CJNE A,#26,1F2B 1F51 D2 84 SETB 84 1F53 00 NOP 1F54 00 NOP 1F55 00 NOP 1F56 20 84 D2 JB 84 ,1F2B 1F59 E5 72 MOV A,72 1F5B 54 FO ANL A,#FO 1F5D B4 FO CB CJNE A,#F0,1F2B 1F60 20 B2 C8 JB B2.1F2B 1F63 12 IE OF LCALL 1E0F 1F66 43 A8 FF ORL A8,#FF 1F69 12 19 14 LCALL 1914 1F6C 75 7C FF MOV 7C,#FF 1F6F 22 RET 1F70 AA 7D MOV R2.7D 1F72 8A 7D MOV 7D,R2 1F74 D5 7D FD DJNZ 7D.1F74 1F77 12 IE OF LCALL 1E0F 1F7A D5 7C F5 DJNZ 7C.1F72 1F7D 75 7D FF MOV 7D,#FF 1F80 22 RET 1F81 75 34 FF MOV 34,#FF 1F84 12 IE OF LCALL 1E0F 1F87 D5 34 FA DJNZ 34.1F84 1F8A 22 RET 1F8B 75 7C FF MOV 7C,#FF 1F8E 75 7D FF MOV 7D ,#FF 1F91 12 IF 70 LCALL 1F70 1F94 22 RET 1F95 75 7C 20 MOV 7C,#20 1F98 12 IF 70 LCALL 1F70 1F9B 22 RET 1F9C 12 IF 8B LCALL 1F3B 1F9F 12 IF 8B LCALL 1F8B 1FA2 12 IF SB LCALL 1F8B 1FA5 22 RET 1FA6 75 7C AF MOV 7C,#AF 1FA9 75 7D FF MOV 7D,#FF 1FAC D5 7D FD DJNZ 7D , IFAC 1FAF 12 IE OF LCALL 1E0F 1FB2 30 C3 06 JNB C3..FBB 1FB C > 20 55 0? TNB 85.1FBB ~~F " C T D FF MO V. 7" ' j S f- " IFBE 21 FT IFCI -- rVEf "R0 W56, 0 < ) 1FC4 " ■ v R0,# 30 if - v- - --F .-.--•;. "... " 09 1FC9 " fc " MOV - . 'CB Bfe 3308 WE RO j - 06 C,U IFDo 02 IF EC LJMP iFEC 1FD9 75 30 00 MOV 30,#00 1FDC 78 6F MOV R0,#6F 1FDE 76 55 . MOV @R0,#55 1FE0 73 3D MOV R0,#3D 1FE2 76 AA MOV ΘRO,#AA 1FE4 78 74 MOV R0,#74 1FE6 76 33 MOV ΘR0,#33 1FE8 78 55 MOV R0,#55 1FEA 76 CC MOV @R0,#CC IFEC 22 RET 1FED 02 06 67 LJMP 0667 1FF0 02 06 67 LJMP 0667 1FF3 02 06 67 LJMP 0667 1FF6 02 06 67 LJMP 0667 1FF9 02 06 67 LJMP 0667 1FFC 02 06 67 LJMP 0667 1FFF 02 06 67 LJMP 0667 -♦-list stop F47 E5 77 MOV A,77 F49 94 10 SUBB A,#10 F4B 50 OD JNC 0F5A F4D E5 4A MOV A,4A F4F C3 CLR C F50 2400 ADD A,#00 F52 F5 4A MOV 4A,A F54 E5 49 MOV A,49 F56 3405 ADDC A,#05 F58 F5 49 MOV 49,A F5A 3066 ID JNB 66,0F7A F5D E5 76 MOV A,76 F5F C3 CLR C F60 94 88 SUBB A,#88 F62 E5 77 MOV A,77 F64 94 10 SUBB A,#10 F66 4003 JC 0F6B F68 02 0F 7A UMP 0F7A F6B E5 4A MOV A,4A F6D C3 CLR C 0F6E 33 RLC A 0F6F F5 4A MOV 4A,A 0F71 E5 49 MOV A,49 0F73 33 RLC A 0F74 F5 49 MOV 49,A 0F76 2401 ADD A,#01 OF78 F5 49 MOV 49,A 0F7A 12 OF 94 LCALL 0F94 0F7D E5 54 MOV A,54 0F7F C3 CLR C 0F80 95 4A SUBB A,4A 0F82 E5 53 MOV A,53 0F84 95 49 SUBB A,49 0F86 400B JC 0F93 0F88 D27F SETB 7F 0F8A 02 OF 93 LJMP 0F93 0F8D 75 4C 00 MOV 4C,#00 0F90 754B 00 MOV 4B,#00 0F93 22 RET 0F94 30 Bl 13 JNB B1,0FAA 0F97 20 B7 IE JB B7,0FB8 0F9A 78 20 MOV R0,#20 0F9C E5 4A MOV A,4A 0F9E 28 ADD A,R0 0F9F F54A MOV 4A,A 0FA1 7400 MOV A,#00 0FA3 35 49 ADDC A,49 0FA5 F5 49 MOV 49,A 0FA7 02 0F B8 LJMP 0FB8 OFAA 30 B7 04 JNB B7,0FB1 OFAD 78 60 MOV R0,#60 OFAF 80 EB SJMP 0F9C 0FB1 78 02 MOV R0,#02 0FB3 E5 49 MOV A,49 0FB5 28 ADD A,R0 0FB6 F5 49 MOV 49,A 0FB8 22 RET 0FB9 1207 70 LCALL 0770 OFBC 30 A2 03 JNB A2,0FC2 OFBF 12 07 C3 LCALL 07C3 0FC2 C2 7D CLR 7D 0FC4 05 76 INC 76 0FC6 E5 76 MOV A,76 0FC8 B40002 CJNE A,#00,OFCD OFCB 05 77 INC 77 OFCD 22 RET OFCE 85 77 3C MOV 3C,77 0FD1 85 76 3B MOV 3B,76 0FD4 22 RET 0FD5 C279 CLR 79 0FD7 E5 77 MOV A,77 0FD9 C3 CLR C OFDA 95 3C SUBB A,3C OFDC 5002 JNC OFEO OFDE D279 SETB 79 OFEO 22 RET 0FE1 CO DO PUSH DO 0FE3 CO EO PUSH EO 0FE5 C2 A8 CLR A8 0FE7 C2 8C CLR 8C 0FE9 207406 JB 74,0FF2 OFEC 1207 4B LCALL 074B OFEF 02 OF F8 LJMP 0FF8 0FF2 120F B9 LCALL 0FB9 0FF5 02 10 OF LJMP 100F 0FF8 207D 14 JB 7D,100F OFFB 30 76 11 JNB 76,100F OFFE C2 8E CLR 8E 1. Apparatus for closing a power driven vent within an opening, the vent including a first closing edge that moves as the vent is closed and the opening including a second closing edge that is contacted by the first closing edge when the vent is in a fully closed position, the apparatus comprising: a detector configured to detect an obstruction at points all along the second closing edge without requiring contact between the obstruction and the vent and to deliver a detection signal when an obstruction is detected, and a controller connected to the detector for receiving the detection signal and delivering a corresponding alarm signal. 2. The apparatus of claim 1, wherein the detector delivers the detection signal in response to an increase in energy received at the detector. 3. The apparatus of claim 2, further comprising an emitter that emits energy, and wherein the detector delivers the detection signal in response to an increase in a reflected portion of the energy received by the detector. 4. The apparatus of claim 2, wherein the detector produces pulses having durations related to the intensity of the energy received by the detector, and wherein the detector delivers the detection signal when the duration of one pulse exceeds a predetermined value. 5. The apparatus of claim 2, wherein the detector produces pulses having durations related to the intensity of the energy received by the detector, and wherein the detector delivers the detection signal when the durations of a predetermined number of consecutive pulses exceed the predetermined value. 6. The apparatus of claim 3, wherein the detector and the emitter comprise an integral unit. 7. The apparatus of claim 6, wherein the detector and the emitter share a common lens. 8. The apparatus of claim 1, further comprising an emitter that emits energy, and wherein the detector receives at least a portion of the energy. 9. The apparatus of claim 8, wherein the energy signal is modulated at a first modulation frequency and wherein the detector includes a band pass filter that passes energy modulated at the first modulation frequency. 10. The apparatus of claim 9, wherein the energy signal has a first wavelength and wherein the detector includes a second band pass filter that passes energy having the first wavelength. 11. The apparatus of claim 8, wherein the emitter includes a lens that emits the energy signal as a fan shaped energy curtain. 12. The apparatus of claim 8, wherein the vent comprises a window and wherein the emitter and detector are both positioned in one corner of the opening. 13. The apparatus of claim 8, further comprising means for activating the detector and the emitter only when the vent is closing. 14. The apparatus of claim 13, further comprising means for testing the emitter immediately after the activating means activate the emitter. 15. The apparatus of claim 1, further comprising a second detector configured to detect an obstruction at any point along the second closing edge without requiring contact between the obstruction and the vent and to deliver a second detection signal when an obstruction is detected. 16. The apparatus of claim 15, further comprising: a first emitter positioned to emit a first energy signal toward the first detector, and a second emitter positioned to emit a second energy signal toward the second detector, wherein the first and second emitters produce the first and second energy signals in an alternating manner, and wherein the controller is connected to the second detector and delivers the alarm signal in response to the first or second detection signals. 17. The apparatus of claim 16, wherein: when the first emitter is emitting the first energy signal, the first detector delivers the first detection signal in response to a decrease in energy received at the first detector, and the second detector delivers the second detection signal in response to a decrease in energy received at the second detector; and when the second emitter is emitting the second energy signal, the first detector delivers the first detection signal in response to an increase in energy received at the first detector, and the second detector delivers the second detection signal in response to an increase in energy received at the second detector. 18. The apparatus of claim 16, wherein the first detector is screened from the second emitter and the second detector is screened from the first emitter. 19. Apparatus for closing a power driven vent within an opening, comprising a detector positioned to detect an obstruction in the opening by receiving energy reflected from the obstruction, the detector producing pulses having durations related to the intensity of the energy received by the detector. 20. The apparatus of claim 19, wherein the detector delivers the detection signal when the duration of at least one pulse exceeds a predetermined value. 21. The apparatus of claim 20, wherein the predetermined value is related to the duration of a pulse when no obstruction is present. 22. The apparatus of claim 21, wherein the predetermined value is related to the average duration of pulses produced when no obstruction is present and the vent moves between an opened position and a closed position. 23. The apparatus of claim 22, wherein the predetermined value includes a correction factor that accounts for variations in the duration of pulses produced when no obstruction is present. 24. Apparatus for closing a power driven vent within an opening, comprising: an automatic vent actuator for automatically activating the power driven vent, a manual vent actuator for manually activating the power driven vent, a detector configured to detect an obstruction in the opening without requiring contact between the obstruction and the vent and to deliver a detection signal when an obstruction is detected, and a controller connected to the detector for receiving the detection signal, wherein: when the power driven vent is activated by the automatic vent actuator and the detection signal is received, the controller deactivates the vent, and when the power driven vent is activated by the manual vent actuator, the controller ignores the detection signal. 25. The apparatus of claim 24, further comprising a manual switch that, while pressed, enables the manual vent actuator, wherein, when the manual switch is pressed for less than a predetermined time, the controller enables the automatic vent actuator. 26. The apparatus of claim 25, wherein the controller disables the manual vent actuator during the predetermined time to prevent activation of the power driven vent until the controller determines whether to enable the automatic vent actuator. 27. A method of closing a power driven vent within an opening, comprising: activating the vent with a manual actuator or an automatic actuator, detecting an obstruction in the opening without requiring contact between the obstruction and the vent, delivering a detection signal when an obstruction is detected, and when the vent has been actuated by the automatic activator, responding to the detection signal by deactivating the vent, when the vent has been actuated by the manual activator, ignoring the detection signal. 28. A method for conditioning a vehicle to reduce air pressure build up when closing a door of the vehicle, comprising: obtaining an opening level specified by a user of the vehicle, automatically opening a power driven vent to the opening level in response to the opening of the door. 29. The method of claim 28, wherein the user of the vehicle specifies the opening level by pressing a switch at least one time, and each press of the switch changes the opening level by an incremental amount. 30. The method of claim 28, further comprising initiating automatic closing of the power driven vent in response to all doors being closed. 31. The method of claim 30, wherein the power driven vent is located within an opening, the method further comprising, after initiating automatic closing of the power driven vent: monitoring the opening for an obstruction in the opening, and opening the power driven vent when an obstruction is detected. 32. The method of claim 31, wherein the power driven vent is only opened to the opening level when an obstruction is detected. 33. The method of claim 31, wherein the obstruction is detected using an obstruction detection system that does not require contact between the obstruction and the vent. 34. The method of claim 33, further comprising, prior to automatically opening the power driven vent in response to the opening of a door, determining whether the obstruction detection system is functioning properly, wherein the power driven vent is automatically opened only if the obstruction detection system is functioning properly. 35. The method of claim 33, further comprising, prior to initiating automatic closing of the power driven vent, determining whether the obstruction detection system is functioning properly, wherein the power driven vent is automatically closed only if the obstruction detection system is functioning properly. 36. The method of claim 35, further comprising, while the determining step indicates that the obstruction detection system is not functioning properly, repeating the determining step a predetermined number of times. 37. A method of monitoring the position of a power driven vent, comprising generating a count of current ripples in a circuit that moves the vent. 38. A method of providing information about the position of switches in an automobile to a controller, comprising: detecting position information about the positions of the switches, multiplexing the position information into a multiplexed signal, and transmitting the multiplexed signal to the controller through a data link. 39. An interface between switches in an automobile and a controller, comprising: a multiplexer having a plurality of inputs connected to the switches, the multiplexer detecting information about the positions of the switches and multiplexing the information into a multiplexed signal, and a data link connected between an output of the multiplexer and a serial port of the controller. 40. The interface of claim 39, wherein the switches comprise window switches and the controller comprises a window controller. 41. The interface of claim 39, wherein the data link comprises a serial data link. 42. The interface of claim 39, wherein the data link comprises two wires. 43. A method of controlling a power driven vent within an opening, comprising: memorizing the position of the power driven vent when the power driven vent is in an open position, and subsequently controlling the power driven vent based on the memorized position. 44. The method of claim 43, comprising: memorizing the position of the power driven vent in response to a closing signal, closing the power driven vent in response to the closing signal, and subsequently opening the power driven vent to the memorized position in response to an opening signal. 45. The method of claim 44, further comprising: generating the closing signal in response to movement of an ignition switch to an off position, and generating the opening signal in response to movement of an ignition switch to an on position. 46. An alarm system for detecting the presence of an intruder in an opening of a power driven vent, comprising: a detector configured to detect an obstruction within the opening without requiring contact between the obstruction and the vent and to deliver a detection signal when an obstruction is detected, a controller connected to the detector for receiving the detection signal and generating an alarm signal, and an alarm connected to the controller for receiving the alarm signal and sounding an alarm in response thereto. 47. A sensor for detecting an obstruction in an opening, comprising: an emitter operable to emit energy, a detector operable to detect energy emitted by the emitter and to deliver a detection signal in response to an increase in detected emitter energy, control circuitry connected to the emitter and detector, the control circuitry being operable to control the emitter and the detector and to produce an output signal indicative of the detection of an obstruction in response to the detection signal, and a housing in which the emitter, detector and control circuitry are held. 48. The sensor of claim 47, wherein the emitter is operable to emit energy as a fan-shaped beam. 49. The sensor of claim 48, wherein the emitter comprises a lens that is shaped to produce the fan shaped beam. 50. The sensor of claim 49, wherein the emitter comprises a light emitting diode. 51. The sensor of claim 50, wherein the emitter comprises multiple light emitting diodes. 52. The sensor of claim 50, wherein the light emitting diode is spaced from the lens. 53. The sensor of claim 47, wherein the emitter and the detector share a common lens. 54. The sensor of claim 53, wherein vertical sections of the common lens in a first dimension have upper surfaces that conform to circular arcs and vertical sections of the common lens in a second dimension have curved upper surfaces that do not conform to circular arcs. 55. The sensor of claim 54, wherein the common lens has a flat lower surface. 56. The sensor of claim 53, wherein the common lens comprises epoxy resin. 57. The sensor of claim 56, wherein the detector further comprises a plano-convex lens formed from the epoxy resin. 58. The sensor of claim 53, wherein the detector further comprises a plano-convex lens having a planar side in contact with the common lens. 59. The sensor of claim 47, wherein the detector further comprises a photo IC. 60. The sensor of claim 59, wherein: the emitter and the detector share a common lens, and the detector further comprises a plano-convex lens having a planar side in contact with the common lens and a filter positioned between the photo IC and a convex side of the plano-convex lens. 61. The sensor of claim 47, wherein the control circuitry is operable to activate the emitter in response to an input signal. 62. The sensor of claim 47, wherein the control circuitry is operable to change a state of the output signal from a first state to a second state in response to an input signal. 63. The sensor of claim 62, wherein the control circuitry is operable to change the state of the output signal from the second state to the first state when no obstruction is detected and to maintain the state of the output signal in the second state when an obstruction is detected. 64. The sensor of claim 47, wherein the housing is sized and configured for positioning in an opening of an automobile. 65. The sensor of claim 64, wherein the housing is sized and configured for positioning in a window opening of an automobile. 66. The sensor of claim 64, wherein the housing is sized and configured for positioning in a door opening of an automobile. 67. The sensor of claim 47, wherein the control circuitry is operable to deliver the output signal along only a single wire. 68. The sensor of claim 67, wherein the control circuitry is operable to receive an input signal along only a single wire. 69. The sensor of claim 68, further comprising an external interface that comprises an input wire and an output wire. 70. The sensor of claim 69, wherein the external interface further comprises a power wire and a ground wire, and wherein the input wire, output wire, power wire and ground wire are the only wires of the sensor that extend externally from the housing. 71. A sensor for detecting an obstruction in an opening, comprising: an emitter operable to emit energy, a detector operable to detect energy emitted by the emitter and to deliver a detection signal in response to an increase in detected emitter energy, control circuitry connected to the emitter and detector, the control circuitry being operable to control the emitter and the detector and to produce an output signal indicative of the detection of an obstruction in response to the detection signal, and a housing in which the emitter, detector and control circuitry are held, wherein the emitter and the detector share a common lens that is shaped to produce a fan-shaped beam. 72. A method of indicating the presence of an obstruction in an opening comprising: producing an output signal; changing the state of the output signal from a first state to a second state in response to an input signal, activating, in response to the input signal, an emitter operable to emit energy, detecting energy emitted by the emitter, delivering a detection signal in response to an increase in detected emitter energy, and controlling the state of the output signal to indicate the detection of an obstruction in response to the presence of absence of the detection signal. 73. The method of claim 72, further comprising: changing the state of the output signal from the second state to the first state when no detection signal is delivered within a predetermined time period. 74. The method of claim 72, wherein the first and second states are the only possible states for the output signal. 75. The method of claim 72, wherein the output signal is produced on only one wire. 76. The method of claim 72, wherein the input signal is received on a single wire. 77. A sensor for detecting an object in an opening of a structure, comprising: a housing, an emitter held by the housing and configured to provide radiation across an area defined by the opening, a receiver held by the housing and positioned to receiver radiation reflected by an object present in the opening, an input connection and an output connection accessible from outside the housing, and a controller held by the housing and connected to the emitter, the receiver, the input connection, and the output connection, the controller having circuitry that responds to a signal at the input connection by analyzing signals from the receiver and providing a signal at the output connection indicative of whether an object is present in the opening.

Inventors: CHEN ZIQIANG, CHUANG CLIFF, LI JAMES S, LU MICHAEL YUAN, PAN PETER J, SHAO YONG BO, WANG CHONG TIAN, ZHANG JIANJUN, ZHANG JOHN Z W, CHEN, ZIQIANG, CHUANG, CLIFF, LI, JAMES, S., LU, MICHAEL, YUAN, PAN, PETER, J., SHAO, YONG, BO, WANG, CHONG, TIAN, ZHANG, JIANJUN, ZHANG, JOHN, Z., W.
Applicants: PROSPECTS CORP, PROSPECTS CORPORATION
Application year: 1996
Main classification: E05F15
IPC codes: E05F15, G01S17, G01V8