FR 2748143 A1 19971031 FR 9704835 A 19970418 PROCEDE DE COMMANDE D'OUVERTURE DE PORTE DE GARAGE AVEC FONCTION DE MOT DE PASSE TEMPORAIRE ARRIERE-PLAN DE L'INVENTION Cette invention concerne des systèmes d'actionnement de porte de ga- rage, et, en particulier, ceux délivrant une autorisation d'accès temporaire pour un utilisateur ou certains utilisateurs tout en maintenant une autorisation d'accès quasi permanente pour d'autres utilisateurs. Dans les sociétés modernes, il est fréquent que les propriétaires de maison se fassent livrer des produits à domicile, ou admettent des travailleurs dans leurs maisons afin que ceux-ci exécutent des tâches convenues à l'avance. Ceci suppose habituellement l'inconvénient de programmer un temps d'arrivée des personnes extérieures, et de programmer un temps pour que les propriétaires les reçoivent et les fassent entrer. Dans certains cas, on peut donner les clefs de la maison aux personnes extérieures, mais, toutefois, étant donné la facilité qu'il y a à copier des clefs, le prêt des clefs n'est pas une situation envisagée à la légère. La porte de garage de nombreuses maisons est commandée par un ap- pareil d'ouverture de porte de garage qui la protège contre des utilisations indésirables au moyen de codes d'accès émis et reçus électroniquement. Les codes d'accès et leur utilisation assurent une sécurité suffisante pour que, pour de nombreux propriétaires de maisons, la porte du garage soit un des principaux moyens d'entrée et de sortie de la maison. Comme les codes d'ac- cès de nombreux appareils d'ouverture de portes de garage peuvent être changés, I'accès à la maison pourrait être autorisé aux personnes extérieures en leur donnant un émetteur de code d'accès o l'accès à un émetteur de code d'accès du type à clavier. Lorsque les personnes extérieures n'ont plus besoin d'accéder à la maison, I'appareil d'actionnement de porte de garage pourrait alors être reprogrammé avec de nouveaux codes pour toujours avoir une sécurité élevée. Bien que la reprogrammation de l'appareil d'ouverture de porte de garage existant puisse procurer une solution partielle au problème d'accès des travailleurs extérieurs, la reprogrammation après l'utilisation par une personne extérieure prend du temps, et, dans de nombreux cas, ne peut jamais être faite. Egalement, durant une période d'utilisation reprogrammée, il est possible que d'autres utilisateurs réguliers se voient refuser l'accès et/ou qu'ils aient à reprogrammer leurs émetteurs de code d'accès. Il existe un besoin pour un système de sécurité de porte qui permette lI'accès à des personnes extérieures pendant une période limitée, qui ne limite pas l'accès aux utilisateurs habituels et qui retire automatiquement l'accès limité aux personnes extérieures sans ou pratiquement sans inconvénient d'utilisation aux utilisateurs habituels. RESUME DE L'INVENTION Ce besoin est satisfait, et une avance de la technique est obtenue, grâce à la présente invention, dans laquelle un récepteur d'actionnement de porte de garage mémorise aussi bien des codes normaux, dénommés codes d'accès semi-permanents, et destinés à être utilisés, par exemple, par les propriétaires de la maison, que des codes d'accès temporaires, destinés à être utilisés par des personnes extérieures. Les codes semi-permanents normaux du système restent inchangés, et un code temporaire peut être programmé dans le sys- tème d'ouverture de porte afin d'être utilisé par des personnes extérieures. Le récepteur compte l'écoulement du temps, et, à un certain temps prédéterminé après la programmation d'un code temporaire, il est invalidé. Le récepteur répond aux codes d'accès reçus et n'actionne la porte que lorsqu'un code reçu correspond à un code valide mémorisé. Par conséquent, le récepteur n'arrête jamais de répondre aux codes d'accès semi-permanents appropriés, ce qui fait que les utilisateurs habituels ne subissent pas d'inconvénients. Par ailleurs, les codes temporaires ne sont actifs que pendant une période limitée, par exemple deux heures. Durant ce temps, les travailleurs extérieurs peuvent entrer le code d'accès temporaire et être admis par le dispositif d'ouverture de porte. Toutefois, lorsque deux heures, dans notre exemple, se sont écou- lées, les codes temporaires sont automatiquement invalidés par le récepteur, par exemple par effacement de ceux-ci de la mémoire. Par conséquent, toute tentative d'utiliser le code d'accès temporaire après deux heures sera ignorée. D'autres configurations pour calculer la durée d'accès limité pourraient également être utilisées, soit seules soit en liaison avec l'invalidation de temps écoulé. Par exemple, le code temporaire pourrait être mémorisé dans le récepteur et invalidé après un nombre prédéterminé d'utilisations pour activer l'entrée. Après l'invalidation, la réutilisation du code temporaire serait ignorée. Selon une réalisation décrite ci-dessous, un émetteur de code de mon- tant de porte dénommé émetteur à clavier est utilisé pour entrer des codes d'accès temporaires durant un apprentissage de code temporaire et pour l'ac- cès des personnes extérieures. Avant que les personnes extérieures arrivent, le code d'accès temporaire est mémorisé dans le récepteur avec les autres données, telles que le nombre d'entrées ou le temps alloué. Le code d'accès temporaire peut alors être donné à la personne extérieure qui utilise celui-ci en I'entrant dans le clavier de l'émetteur de montant de porte. La personne exté- rieure peut avoir un accès répété à la maison par l'intermédiaire du clavier jusqu'à ce le code d'accès temporaire soit automatiquement invalidé lorsque le temps alloué s'est écoulé et/ou que le nombre prédéterminé d'entrées s'est produit. L'accès d'utilisateurs habituels au dispositif d'ouverture de porte n'est pas changé par le code temporaire. Par conséquent, tous les utilisateurs ont accès à la maison sans changements difficiles du programme et l'accès temporaire s'efface automatiquement de lui-même, également sans repro- grammation. De façon plus spécifique, l'émetteur à clavier permet l'activation d'un système de mouvement de barrière par émission d'un code roulant compre- nant une partie de code fixe. La partie de code fixe comprend une indication des touches de clavier qui ont été enfoncées par un utilisateur et de celles de trois touches spéciales, entrée, * et #, qui ont été utilisées pour déclencher l'émission. Lors de l'utilisation ordinaire de l'émetteur à clavier, I'utilisateur entre quatre chiffres de mot de passe et appuie sur le bouton d'entrée. Un code roulant résultant est généré, code dans lequel la partie de code fixe achemine le mot de passe et l'identité de bouton d'entrée. Le récepteur inter- prète le code roulant et déclenche le mouvement d'une barrière ou d'une porte de garage. Selon une réalisation décrite, I'opérateur peut composer le mot de passe et l'envoyer à l'aide de la touche *. Lorsque le récepteur reçoit un mot de passe envoyé avec la touche *, il établit un mode d'apprentissage de mot de passe temporaire. Lorsqu'un mot de passe à quatre chiffres et une indication de touche d'entrée sont reçus de l'émetteur à clavier alors que le mode d'apprentissage de mot de passe temporaire est actif, le mot de passe à quatre chiffres est entré comme mot de passe temporaire, et un mode d'apprentissage de durée est entré. L'opérateur envoie ensuite un code au récepteur, ce code spécifiant soit la durée de temps pendant laquelle le mot de passe est valide, soit le nombre d'activations autorisées lors de l'utilisation du code d'accès tempo- raire. Le code de durée est entré sur le clavier par enfoncement de touches afin de représenter la valeur numérique et par envoi du code à l'aide de la touche * lorsqu'un temps est représenté, ou de la touche # lorsque des acti- vations sont entrées. Le temps ou la valeur d'utilisation est ensuite mémorisé dans le récepteur. Lorsque le temps est le facteur de limitation pour le mot de passe tem- poraire, le récepteur décrémente périodiquement un minuteur et le teste en ce qui concerne son O'. Lorsque l'on constate que le minuteur a une valeur "O", le mot de passe temporaire est effacé de la mémoire du récepteur. Lors- que le nombre d'activations est le facteur de limitation, la valeur d'utilisation mémorisée est décrémentée à chaque fois que le mot de passe temporaire est utilisé, et, lorsqu'elle devient égale à "O", le mot de passe temporaire est ef- facé. BREVE DESCRIPTION DES DESSINS La figure 1 est une vue en perspective d'un garage comportant, monté à l'intérieur de celui-ci, un dispositif d'actionnement de porte de garage repré- sentant la présente invention; la figure 2 est un schéma général d'un contrôleur monté à l'intérieur de l'unité de tête du dispositif d'actionnement de porte de garage employée dans le dispositif d'actionnement de porte de garage montré en figure 1; la figure 3 est une représentation schématique du contrôleur montré sous forme de schéma général en figure 2; la figure 4 montre une alimentation destinée à être utilisée avec l'appa- reil; et la figure 5 est une description de circuit détaillée du récepteur de radio utilisé dans l'appareil; la figure 6 est un schéma de circuit d'un commutateur mural utilisé dans la réalisation; la figure 7 est un schéma de circuit d'un émetteur de code roulant; la figure 8 est une représentation de codes émis par l'émetteur de code roulant de la figure 7; les figures 9A à 9C sont des organigrammes du fonctionnement de l'émetteur de code roulant de la figure 7; la figure 10 est un schéma de circuit d'un émetteur à clavier; la figure 1 1 est une représentation des codes émis par l'émetteur à cla- vier de la figure 10; la figure 12 est un schéma de circuit d'un émetteur de code fixe la figure 13 est une représentation des codes émis par l'émetteur de code fixe de la figure 12; la figure 14 est un organigramme de l'interrogation du commutateur mu- ral de la figure 6; la figure 1 5 est un organigramme d'un sous- programme d'effacement radio effectué par un contrôleur de la réalisation; la figure 16 est un organigramme de sous-programme d'établissement de seuils de nombres; les figures 1 7A et 1 7B sont des organigrammes du commencement de la réception de code radio par le contrôleur; les figures 1 8A à 1 8D sont des organigrammes de la réception des bits de code composant des mots de code complets; les figures 19A à D sont des organigrammes d'un mode d'apprentissage du système; les figures 20A à C sont des organigrammes concernant l'interprétation de codes reçus; les figures 21A à C et 22 sont des organigrammes de l'interprétation de codes émis par des émetteurs du type à clavier; les figures 23A et 23B sont des organigrammes d'un sousprogramme d'essai de code radio utilisé dans le système de la figure 3; la figure 24 est un organigramme d'un sous-programme de compteur de code roulant d'essai; la figure 25 est un organigramme d'un sous- programme d'effacement de mémoire de radio; les figures 26A et 26B sont des organigrammes d'un sous-programme d'interruption de minuteur; la figure 27 est un organigramme d'un sous-programme de réception d'impulsion de protection; la figure 28 est un organigramme de sous-programmes exécutés périodi- quement dans la boucle programmée principale; et la figure 29 est un organigramme de parties d'un sous-programme de descente. DESCRIPTION DETAILLEE DE LA REALISATION PREFEREE Si l'on se réfère à présent aux dessins, et en particulier à la figure 1, de façon plus spécifique, un dispositif d'actionnement de porte de barrière mo- bile ou un dispositif d'actionnement de porte de garage est globalement re- présenté dans celle-ci, et est désigné par le chiffre 10, et comprend une unité de tête 12 montée à l'intérieur d'un garage 14. De façon plus spécifique, l'unité de tête 12 est montée au plafond du garage 14 et comprend un rail 18 s'étendant à partir de celle-ci avec un chariot libérable 20 solidaire compor- tant un bras 22 s'étendant vers une porte de garage à panneaux multiples 24 positionnée pour se déplacer le long d'une paire de rails de porte 26 et 28. Le système comprend une unité d'émetteur portable 30 adaptée pour envoyer des signaux à une antenne 32 positionnée sur l'unité de tête 12, et couplée à un récepteur, comme cela apparaîtra ci-après. Un boîtier de commande ex- terne 34 est positionné à l'extérieur du garage, ledit boîtier comprenant une pluralité de touches, et communiquant par émission de fréquences radio avec une antenne 32 de l'unité de tête 12. Un module commutateur 39 est monté sur un mur du garage. Le module commutateur 39 est connecté à l'unité de tête par une paire de fils 39a. Le module commutateur 39 comprend un commutateur de lumière 39b, un commutateur de verrouillage 39c et un commutateur de commande 39d. Un émetteur optique 42 est connecté par l'intermédiaire d'une ligne d'alimentation et de signaux 44 à l'unité de tête. Un détecteur optique 46 est connecté par l'intermédiaire d'un fil 48 à l'unité de tête 12. Comme montré en figure 2, le dispositif d'actionnement de porte de ga- rage 10, qui comprend l'unité de tête 12, comporte un contrôleur 70 qui comprend l'antenne 32. Le contrôleur 70 comprend une alimentation 72 (figure 4) qui reçoit du courant alternatif d'une source de courant alternatif, comme, par exemple, du 110 volts alternatif, et convertit le courant alternatif en niveaux voulus de tension continue. Le contrôleur 70 comprend un récep- teur à superréaction 80 (figure 5) couplé par l'intermédiaire d'une ligne 82 pour délivrer des signaux numériques démodulés à un micro- contrôleur 84. Le récepteur 80 est alimenté par l'alimentation 72. Le micro-contrôleur est éga- lement couplé par un bus 86 à une mémoire rémanente 88, cette mémoire rémanente stockant des codes d'utilisateur, et d'autres données numériques concernant le fonctionnement de l'unité de commande. Un détecteur d'obs- tacle 90, qui comprend l'émetteur 42 et le détecteur d'infrarouges 46, est couplé par l'intermédiaire d'un bus de détecteur d'obstacle 92 au micro- dispositif de commande. Le bus de détecteur d'obstacle 92 comprend des lignes 44 et 48. Le commutateur mural 39 (figure 6) est connecté par l'in- termédiaire des fils de connexion 39a au micro-contrôleur 84. Le micro- contrôleur 84, en réponse à des fermetures de commutateurs et des codes reçus, enverra des signaux sur une ligne de logique de relais 102 à un module à logique de relais 104 connecté à un moteur à courant alternatif 106 com- portant un arbre de prise de force 108 couplé à la transmission 18 du dispo- sitif d'actionnement de porte de garage. Un tachymètre 110 est couplé à l'arbre 108 et délivre un signal de t/min sur une ligne de tachymètre 112 au micro-contrôleur 84; le signal de tachymètre est indicatif de la vitesse de rotation du moteur. L'appareil comprend également des commutateurs de li- mite haute 93a et des commutateurs de limite basse 93b qui détectent res- pectivement le moment o la porte 24 est complètement ouverte ou complè- tement fermée. Les commutateurs de limite sont montrés en figure 2 sous la forme d'un boîtier fonctionnel 93 connecté au micro-contrôleur 84 par des fils 95. La figure 4 montre l'alimentation 72 pour alimenter l'appareil alimenté en courant continu de la figure 2. Un transformateur 1 30 reçoit du courant alter- natif sur les fils 132 et 134 depuis une source externe de courant alternatif. Le transformateur abaisse la tension à 24 volts et le courant alternatif de sor- tie abaissé est redressé par une pluralité de diodes 1 33. Le courant continu résultant est connecté à une paire de condensateurs 138 et 140 qui remplis- sent une fonction de filtrage. Un potentiel continu filtré de 28 volts est délivré sur une ligne 76. Le potentiel continu est délivré par l'intermédiaire d'une ré- sistance 142 à une paire de condensateurs de filtrage 144 et 146, qui sont connectés à un régulateur de tension de 5 volts 150, qui délivre une tension de sortie de 5 volts régulée, par un condensateur 1 52 et une diode Zener 154, à une ligne 74. Le contrôleur 70 est capable de recevoir et de répondre à une pluralité de types d'émetteurs de code, tels que l'émetteur de code roulant à touches multiples 30, l'émetteur de code fixe à touche unique 31 et l'émetteur monté sur un chambranle de porte du type à clavier 34 (appelé sans clef). Si l'on se réfère à présent à la figure 7, l'émetteur 30 est montré dans celle-ci et comprend une pile 670 connectée à trois commutateurs à boutons- g poussoirs 675, 676 et 677. Lorsque l'un des commutateurs à boutons- poussoirs est enfoncé, une alimentation en 674 est validée, et alimente les circuits restants pour l'émission de codes de sécurité. La commande princi- pale de l'émetteur 30 est effectuée par un micro-contrôleur 678 qui est con- necté par un bus série 679 à une mémoire rémanente 680. Un bus de sortie 681 connecte le micro-contrôleur à un oscillateur à haute fréquence 682. Le micro-contrôleur 678 produit des signaux codés lorsqu'un bouton 675, 676 ou 677 est enfoncé, provoquant la modulation en amplitude de la sortie de l'oscillateur HF 682 de façon à délivrer un signal à haute fréquence à une an- tenne 683 connectée à celui-ci. Lorsque le commutateur 675 est fermé, l'ali- mentation est délivrée par l'intermédiaire d'une diode 600 à un condensateur 602, de façon à délivrer une tension de 7,1 volts à un fil 603 qui y est con- necté. Une diode électroluminescente 604 indique qu'un bouton d'émetteur a été enfoncé et délivre une tension à un fil 605 qui y est connecté. La tension sur le conducteur 605 est appliquée par l'intermédiaire d'un conducteur 675 pour alimenter le micro-contrôleur 678 qui est, dans cette réalisation, un Zilog C0113 à 8 bits. Le signal du commutateur 675 est également envoyé par l'intermédiaire d'une résistance 610, et par l'intermédiaire d'un conducteur 611, à une broche P32 du micro-contrôleur 678. De même, lorsqu'un com- mutateur 676 est fermé, un courant est délivré par l'intermédiaire d'une diode 614 au fil 603, provoquant également l'excitation du cristal 608, alimentant le micro-contrôleur en même temps que la broche P33 du microcontrôleur est mise au niveau haut. De façon similaire, lorsqu'un commutateur 677 est fermé, l'alimentation est délivrée par l'intermédiaire d'une diode 619 au cris- tal 608, de même qu'une tension de niveau haut est délivrée par l'intermé- diaire d'une résistance 620 à la broche P31. Le micro-contrôleur 678 est couplé par l'intermédiaire du bus série 679 à un port de sélection, à un port d'horloge et à un port Dl dans lequel et de- puis lequel des données série peuvent être écrites et lues et auquel des adresses peuvent être appliquées. Comme on le verra ci-après dans le fonc- tionnement du micro-dispositif de commande, le micro-contrôleur 678 produit des signaux de sortie sur le fil 681, ceux-ci étant délivrés à une résistance 625 qui est couplée à une résistance de division de tension 626, délivrant des signaux au fil 627. Une inductance de 30 nanohenrys 628 est couplée à un transistor NPN 629 par sa base 620. Le transistor 629 comporte un collec- teur 631 et un émetteur 632. Le collecteur 631 est connecté à l'antenne 683, qui, dans ce cas, comprend une carte de circuits imprimés, une antenne en boucle ayant une inductance de 25 nanohenrys, comprenant une partie du circuit bouchon avec un condensateur 633, un condensateur variable 634 pour le réglage, un condensateur 635 et un condensateur 636. Une induc- tance de 30 nanohenrys 638 est couplée à la masse par l'intermédiaire d'un condensateur 639. Le condensateur a une résistance 640 qui est connectée à la masse en parallèle avec lui. Lorsque la sortie du fil 681 est mise au niveau haut par le micro-dispositif de commande, le transistor Q1 est commuté de façon à être passant, provoquant la délivrance en sortie d'un signal sur l'an- tenne 683 par le circuit bouchon. Lorsque le transistor est commuté de façon à être bloqué, la sortie d'attaque du circuit de bouchon est éteinte, ce qui provoque également l'extinction du signal de haute fréquence sur l'antenne 683. Le micro-contrôleur 678 lit une valeur de compteur depuis la mémoire rémanente 680 et génère à partir de celle-ci un code roulant (trinaire) à 20 bits. Le code roulant à 20 bits est entremêlé avec un code fixe à 20 bits mé- morisé dans la mémoire rémanente 680 de façon à former un code (trinaire) à 40 bits comme montré en figure 8. La partie de code "fixe" comprend 3 bits 651, 652 et 653 (figure 8) qui identifient le type d'émetteur envoyant le code et un bit de fonction 654. Comme le bit 654 est un bit trinaire, il est utilisé pour identifier lequel des trois commutateurs 675, 676 ou 677 a été enfoncé. Si l'on se réfère aux figures 9A à 9C, I'organigramme présenté dans celles-ci décrit le fonctionnement de l'émetteur 30. Un code roulant venant de la mémoire rémanente est incrémenté de trois au cours d'une étape 500, après quoi le code roulant est mémorisé pour l'émission suivante de l'émet- teur lorsqu'un bouton d'émetteur est enfoncé. L'ordre des chiffres binaires dans le code roulant est inversé ou vu en miroir au cours d'une étape 504, après quoi, dans une étape 506, le chiffre le plus significatif est converti à zéro, de façon à tronquer efficacement le code roulant binaire. Le code rou- lant est ensuite changé en un code trinaire ayant des valeurs de 0, 1 et 2, et le code roulant trinaire initial est établi à 0. On appréciera le fait que c'est le code trinaire qui est en réalité utilisé pour modifier le signal d'oscillateur à haute fréquence, et le code trinaire est mieux vu en figure 8. On peut noter que le minutage de bits en figure 8 pour un 0 est de 1,5 millisecondes de temps d'arrêt et de 0,5 milliseconde de temps de fonctionnement, qu'il est de 1 milliseconde de temps d'arrêt et de 1 milliseconde de temps de fonction- nement pour un i et de 0,5 milliseconde de temps d'arrêt et de 1,5 millise- condes de temps de fonctionnement pour un 2. Le temps de fonctionnement est en fait le temps actif lorsque la porteuse est générée. Le temps d'arrêt est le temps inactif lorsque la porteuse est interrompue. Les codes sont assem- blés en deux trames, comprenant chacune 20 bits trinaires, la première trame étant identifiée par un bit de synchronisation de 0,5 milliseconde, la deuxième trame étant identifiée par un bit de synchronisation de 1,5 millisecondes. Au cours d'une étape 510, la puissance voisine la plus élevée de 3 est soustraite du code roulant, et, au cours d'une étape 512, un essai est réalisé pour déterminer si le résultat est égal à zéro. Si c'est le cas, le chiffre le plus significatif suivant du code roulant binaire est incrémenté au cours d'une étape 514, après quoi le processus retourne à l'étape 510. Si le résultat n'est pas supérieur à 0, la puissance suivante la plus élevée de 3 est ajoutée au code roulant au cours de l'étape 516. Dans l'étape 518, une autre puissance la plus élevée de 3 est incrémentée, et, au cours d'une étape 520, un essai détermine si le code roulant est terminé. Sinon, la commande est retransférée à l'étape 510. Si oui, la commande est transférée à l'étape 522 afin de vider le compteur de bits. Au cours d'une étape 524, le minuteur de silence est essayé pour déterminer s'il est actif ou non. Dans le cas contraire, un essai est réalisé au cours d'une étape 526 pour déterminer si le temps de silence a expiré. Si le temps de silence n'a pas expiré, la commande est transférée à une étape 528, dans laquelle le compteur de bits est incrémenté, après quoi la commande est retransférée à l'étape de décision 524. Si le temps de si- lence a expiré, comme mesuré dans l'étape de décision 526, le minuteur de silence est arrêté dans une étape 530, et le compteur de bits est incrémenté dans une étape 532. Le compteur de bits est ensuite essayé pour savoir s'il est impair ou pair au cours d'une étape 534. Si le compteur de bits n'est pas pair, la commande est transférée dans une étape 536 dans laquelle le bit du compteur de bits de code fixe divisé par deux est délivré en sortie. Si le compteur de bits est pair, le compteur de bits de code roulant divisé par deux est délivré en sortie dans une étape 538. Grâce à l'opération des étapes 534, 536 et 538, les bits de code roulant et les bits de code fixe sont émis en al- ternance. Le compteur de bits est essayé pour déterminer s'il est mis à une valeur égale à 80 au cours d'une étape 540. Si oui, le compteur de silence est démarré au cours d'une étape 542. Sinon, le compteur de bits est essayé pour savoir s'il est égal à 40 au cours d'une étape 544. Si oui, le minuteur de silence est essayé et est démarré au cours d'une étape 544. Si le compteur de bits n'est pas égal à 40, la commande est retransférée à l'étape 522. La figure 10 montre un émetteur de code roulant du type à clavier 34 qui est parfois désigné sous le nom d'émetteur sans clef parce qu'il remplace une entrée de type ancien dans lequel on utilisait une clef réelle. L'émetteur 34 comprend un microprocesseur 715 et une mémoire rémanente 717 ali- mentée par une pile commutée 719. Il comprend également 13 touches 701 à 713 connectées sous un format de rangées et de colonnes. La pile 719 ne délivre pas, normalement, d'alimentation à l'émetteur. Lorsqu'une touche, par exemple 701, est enfoncée, le courant circule à travers des résistances con- nectées en série 714 et 716, et, à travers le commutateur enfoncé, vers la masse. La division de tension par des résistances 714 et 716 provoque la commutation en service de l'alimentation 720, la délivrance de l'alimentation de la pile 719 au microprocesseur 715, à la mémoire 717 et à un étage émet- teur HF 721. Initialement, le microprocesseur 715 valide un circuit de mise en marche 723 afin de provoquer la conduction d'un transistor 724, de façon à maintenir par conséquent active l'alimentation 720. Le microprocesseur 71 5 comprend un minuteur qui invalide le circuit de mise en marche 723 pendant une période de temps prédéterminée, par exemple 10 secondes, après que la dernière touche 701 à 713 ait été enfoncée, de façon à préserver la durée de vie de la pile. Les conducteurs de rangées et de colonnes sont détectés de façon répé- tée sur les bornes d'entrée L0 à L7 du microprocesseur 71 5, de telle sorte que le microprocesseur 715 puisse lire chaque touche enfoncée et mémoriser une représentation de celle-ci. Un opérateur humain appuie sur un certain nombre de touches, par exemple quatre, après quoi il appuie sur la touche d'entrée 712, la touche * 711 ou la touche # 71 3. Lorsque l'une des touches 711 à 713 est enfoncée, le microprocesseur 715 génère un code(trinaire) à bits qui est envoyé par l'intermédiaire de conducteurs 722 à l'étage émet- teur 721 pour l'émission. Le code est formé par le microprocesseur 715 à partir d'une partie de code fixe et d'une partie de code roulant de la façon précédemment décrite en relation avec l'émetteur 30. La partie de code fixe comprend toutefois un numéro de série associé à l'émetteur 34 et une partie d'enfoncement de touche identifiant les quatre touches enfoncées et celle des trois touches 711 à 71 3 qui a déclenché l'émission. La figure 11 représente le code émis par l'émetteur à clavier 34. Comme avec la précédente émission de code roulant, le code se compose de bits de codes fixe et roulant alternés (trinaires). Les bits 730 à 749 sont les bits de code fixe. Les bits 730 à 739 représentent les touches enfoncées et les bits 740 à 748 représentent le nu- méro de série de l'unité, et, dans ceux-ci, les bits 746 à 748 représentent le type d'émetteur. Dans certains émetteurs 34, il n'y a ni touche * ni touche #. Dans cette situation, les touches * et # sont respectivement simulées par un enfoncement simultané de la touche 9 et de la touche d'entrée ou de la tou- che 0 et de la touche d'entrée. La figure 1 2 est une description de circuit d'un émetteur de code fixe 31 qui comprend un contrôleur 1 55, une paire de commutateurs 11 3 et 1 15, une pile 114 et un étage émetteur HF 161 du type décrit ci-dessus. Le con- trôleur 155 est un dispositif relativement simple et peut être un circuit logique à combinaison. Le contrôleur 1 55 mémorise en permanence 19 bits (trinaires) du code fixe à 20 bits (figure 13) devant être émis. Lorsqu'un commutateur, par exemple 1 1 3, est enfoncé, le courant de la pile 114 est appliqué, par l'in- termédiaire du commutateur 113 et d'une diode 117, à une source de 7,1 volts 116 qui alimente l'étage émetteur HF 161. La source de 7,1 volts est également connectée à la masse par l'intermédiaire d'une diode électrolumi- nescente 120 et d'une diode Zener 121 qui produit une source de 5,1 volts régulée 118. La source de 5,1 volts est connectée de façon à alimenter le contrôleur 155. La fermeture du commutateur 11 3 applique également la tension de la pile à des résistances connectées en série 123 et 127 de telle sorte que, lors de la fermeture du commutateur 11 3, une tension sur un conducteur 122 s'élève sensiblement de la masse à une valeur représentant un "1" logique. Lors de la mise en marche, le contrôleur 155 lit le 1 logique sur le conducteur 122 et génère un code (trinaire) à 20 bits à partir des 19 bits mémorisés en permanence dans le contrôleur et de l'état du commutateur 11 3. Le contrô- leur 1 55 émet alors le code à 20 bits vers l'étage HF 161 par l'intermédiaire d'une résistance 1 59 et d'un conducteur 157. Le code est ainsi transmis au récepteur 80. Le contrôleur 155 comprend un oscillateur interne régulé par un circuit RC 124 afin de commander le minutage des opérations du dispositif de commande. La figure 13 représente le code émis par un émetteur de code fixe tel que l'émetteur 30. Le code comprend 20 bits en deux mots de 10 bits avec une période muette entre les mots. Chaque mot est précédé par un bit de synchronisation qui permet la synchronisation du récepteur et qui identifie le type de code envoyé. Le bit de synchronisation pour le premier mot de code est actif pendant approximativement 1,0 milliseconde, et le bit de synchroni- sation du deuxième mot est actif pendant approximativement 3 millisecondes. Le commutateur mural 39 est montré en détail en figure 6, avec une partie du micro-contrôleur 85 et des circuits d'interrogation/détection inter- connectant les deux. Le commutateur mural 39 comprend trois commuta- teurs 39b à 39d. Le commutateur 39d est le commutateur de commande qui est connecté directement entre les conducteurs 39a. Le commutateur 39b, le commutateur de lumière, est connecté entre les conducteurs 39a par l'inter- médiaire d'un condensateur de 1 microfarad 386. Le commutateur 39c, qui est le commutateur d'inutilisation ou de verrouillage, est connecté entre les conducteurs 39a par un condensateur de 22 microfarads 384. Le commuta- teur mural 39 comprend également une résistance 380 et une diode 392 connectés en série entre les conducteurs 39a. Le micro-contrôleur 85 inter- roge le commutateur mural 39 approximativement toutes les 10 millisecondes afin de déterminer si un bouton 39b à d est enfoncé. La figure 14 est un or- ganigramme pour l'interrogation. Au commencement (étape 802, figure 14) de chaque essai, le micro-contrôleur 85 rend passant le transistor 368b grâce à un signal appliqué de la broche P35 à la base du transistor 368a, et, en même temps, bloque un transistor 369 à partir de la broche P37. Les broches P07 et P06 sont connectées de façon à lire le niveau de tension entre les conducteurs 39a par un conducteur 385 et des résistances respectives 387 et 389. Si les broches P07 et P06 sont au niveau bas (étape 804), le commu- tateur de commande 39d est fermé (étape 806) et un bit d'état est marqué en mémoire vive (étape 830) pour indiquer cela. D'une autre façon, si les broches P07 et P06 sont au niveau haut, d'autres essais (étape 803) doivent être effectués. Tout d'abord, le micro-contrôleur 85 bloque le transistor 368b et rend passant le transistor 369. Ensuite, après une courte pause (étape 810) pour permettre à la capacité résiduelle de se décharger, les broches P07 et P06 sont à nouveau détectées (étape 812). Si P07 et P06 sont au niveau bas, aucun commutateur n'a été fermé (étape 814) et leur état en mémoire vive est ainsi établi (étape 830). Toutefois, si, après la courte pause, le ni- veau du conducteur 385 est haut, le micro-contrôleur 85 attend approximati- vement 2 millisecondes (étape 816) et essaye à nouveau (étape 818) le ni- veau de tension du conducteur 385. Si la tension est à présent basse, le commutateur de lumière 396 a été fermé (étape 820). Cette affirmation peut être faite car 2 millisecondes est le temps adéquat pour la décharge du con- densateur de 1 microfarad 386. Si l'entrée sur les broches P07 et P06 est toujours haute lors de l'essai de 2 millisecondes, le contrôleur effectue un nouvel essai (étape 824) après un délai additionnel de 16 millisecondes (étape 822). Si les broches P07 et P06 sont au niveau bas après le délai de 16 milli- secondes, le commutateur d'inutilisation 39c a été fermé (étape 826) et, au- trement, si la tension sur les broches P07 et P06 est au niveau haut, aucun commutateur n'a été fermé (étape 828). Lors de l'achèvement de l'essai du commutateur mural, les bits d'état des trois commutateurs 39b, 39c et 39d sont établis de façon à réfléchir leur état identifié (étape 830). Le récepteur 80 est montré en détail en figure 5. Des signaux HF peu- vent être reçus par le contrôleur 70 au niveau de l'antenne 32 et délivrés au récepteur 80. Le récepteur 80 comprend une paire d'inductances 170 et 172 et une paire de condensateurs 1 74 et 176 qui assurent une adaptation d'im- pédance entre l'antenne 32 et les autres parties du récepteur. Un transistor NPN 1 78 est connecté sous une configuration en base commune pour jouer le rôle d'amplificateur tampon. Le signal de sortie HF est délivré sur une ligne , couplé entre le collecteur du transistor 178 et un condensateur de cou- plage 220. Le signal à haute fréquence transmis par une mémoire tampon est délivré par l'intermédiaire du condensateur de couplage 222 à un circuit ac- cordé 224 comportant une inductance variable 226 connectée en parallèle avec un condensateur 228. Les signaux venant du circuit accordé 224 sont délivrés sur une ligne 230 à un condensateur de couplage 232 qui est con- necté à un transistor NPN 234 au niveau de sa base. Le collecteur 240 du transistor 234 est connecté à un condensateur de rétroaction 246 et à une résistance de rétroaction 248. L'émetteur est également couplé au condensa- teur de rétroaction 246 et à un condensateur 250. Une inductance de lissage 256 délivre un potentiel de masse à une paire de résistances 258 et 260 ainsi qu'à un condensateur 262. La résistance 258 est connectée à la base du transistor 234. La résistance 260 est connectée par l'intermédiaire d'une in- ductance 264 à l'émetteur du transistor 234. Le signal de sortie du transistor est délivré vers l'extérieur sur une ligne 21 2 vers un condensateur électrolyti- que 270. Comme montré en figure 5, le condensateur 270 couple le signal à haute fréquence démodulé du transistor 234 à un amplificateur passe- bande 280 vers un détecteur de moyenne 282. Une sortie de l'amplificateur passe- bande 281 est couplée à la broche P32 d'un micro-contrôleur Z86223 85. De façon similaire, une sortie du détecteur de moyenne 282 est connectée à la broche P33 du micro-dispositif de commande. Le micro-contrôleur est alimen- té par l'alimentation 72 et est également commandé par le commutateur mu- ral 39 couplé au micro-contrôleur par le fil 39a. La broche P26 du micro-contrôleur 85 est connecté à un commutateur de programme de mise à la masse 151 qui est disposé au niveau de l'unité d'extrémité de tête 12. Le micro-contrôleur 85 lit périodiquement le commu- tateur 151 pour déterminer s'il a été enfoncé. Comme décrit ci-après, le commutateur 151 est normalement enfoncé par un opérateur qui désire entrer dans un mode d'apprentissage ou de programmation pour ajouter un nouvel émetteur aux émetteurs acceptés qui ont été mémorisés en dernier dans le récepteur. Lorsque l'opérateur appuie de façon continue sur le commutateur 1 51 pendant 6 secondes ou plus, toutes les configurations de mémoire sont réécrites et un réapprentissage complet des codes d'émetteur et du type de codes devant être reçus est alors nécessaire. L'enfoncement du commutateur 151 pendant un temps momentané après un enfoncement pendant 6 secon- des ou plus fait entrer l'appareil dans un mode d'apprentissage d'un nouveau type d'émetteur, qui peut être soit le type à code roulant soit le type à code fixe. Les broches P30 et P03 du micro-contrôleur 85 sont connectées à un détecteur d'obstacle 90 par l'intermédiaire d'un conducteur 92. Le détecteur d'obstacle 90 émet une impulsion sur le conducteur 92 toutes les 10 millise- condes lorsque le faisceau d'infrarouges entre l'émetteur 42 et le récepteur n'a pas été interrompu par un obstacle. Lorsque le faisceau d'infrarouge est bloqué, une ou plusieurs impulsions seront ratées par le détecteur d'obstacle 46. Le micro-contrôleur balaye le signal sur le conducteur 92 toutes les milli- secondes pour déterminer si une impulsion a été reçue au cours des 12 der- nières millisecondes. Lorsqu'une impulsion n'a pas été reçue, on suppose qu'il y a un obstacle, et une action appropriée, comme décrit ci-dessous, peut être entreprise. La broche P31 du micro-contrôleur est connectée au tachymètre 110 par * I'intermédiaire du conducteur 1 12. Lorsque le moteur 106 tourne, des impul- sions ayant une séparation dans le temps proportionnelle à la vitesse du mo- teur sont envoyées sur le conducteur 11 2. Les impulsions sur le conducteur 1 12 sont balayées de façon répétée par le micro-contrôleur 85 afin d'identi- fier si le moteur 106 tourne, et, si c'est le cas, à quelle vitesse se produit la rotation. L'appareil comprend un commutateur de limite de montée 93a et un commutateur de limite de descente 93b qui détectent le déplacement maxi- mal vers le haut de la porte 24 et le déplacement maximal vers le bas de la porte. Les commutateurs de limite 93a et 93b peuvent être connectés à la structure du garage et détecter physiquement le mouvement de la porte, ou, comme dans la présente réalisation, ils peuvent être connectés à une liaison mécanique à l'intérieur de l'extrémité de tête 12, cette configuration dépla- çant une dent (non représentée) proportionnellement au mouvement réel de la porte, et les commutateurs de limite détectent la position de la dent déplacée. Les commutateurs de limite sont normalement fermés. Lorsque la porte est dans son déplacement maximal vers le haut, le commutateur de limite de montée 93a est fermé, cette fermeture étant détectée par le port P20 du mi- cro-contrôleur 85. Lorsque la porte est dans sa position basse maximale, le commutateur de limite de descente 93b se fermera, cette fermeture étant détectée au niveau du port P21 du micro-contrôleur 85. Le micro-contrôleur 85 répond aux signaux reçus du commutateur mural 39, des émetteurs 30 et 34, des commutateurs de limites de montée et de descente, du détecteur d'obstruction et du signal de t/min en commandant le moteur 106 et la lumière 81 aux moyens des relais de commande de lumière et de moteur 104. L'état allumé ou éteint de la lumière 81 est commandé par un relais 105b, qui est alimenté par la broche P01 du microcontrôleur 85 et un transistor d'attaque 105a. Les enroulements de montée du moteur 106 sont alimentés par un relais 107b qui répond à la broche POO du micro- contrôleur 85 par l'intermédiaire d'un transistor d'attaque 107a, et les enrou- lements de descente sont alimentés par un relais 109b qui répond à la broche P02 du micro-contrôleur 85 par l'intermédiaire d'un transistor d'attaque 109a. Chacune des broches POO, P01 et P02 est associée à un bit cartogra- phié en mémoire, tel qu'une bascule, o l'on peut écrire et d'o l'on peut lire. La lumière peut ainsi être allumée par l'écriture d'un "1" logique dans le bit associé à la broche P01 qui rendra passant le transistor 105a, excitant le re- lais 105b, provoquant l'allumage des lumières par l'intermédiaire des contacts du relais 105b connectant une entrée alternative chaude 135 à la sortie de lumière 136. L'état de la lumière 81 peut être déterminé en lisant le bit asso- cié à la broche P01. Des actions similaires concernant les broches POO et P02 sont utilisées pour commander la rotation de montée et de descente du mo- teur 106. On mentionnera toutefois que l'excitation du relais de lumière 105b délivre une entrée alternative chaude aux relais de montée et de descente du moteur 107b et 109b, de telle sorte que la lumière puisse être commandée à chaque fois qu'un mouvement de porte est désiré. Le micro-contrôleur logique et de décodage de radio 84 (figure 2) selon la présente invention peut répondre aussi bien aux codes roulants montrés en figure 8 qu'aux codes fixes montrés en figure 13; toutefois, après qu'il ait appris un type de code, tous les codes admissibles seront du même type jus- qu'à ce que la mémoire du système ait été effacée et que l'autre type de code ait été entré et que ce soit à celui-ci qu'il soit exclusivement répondu. Lorsque l'appareil est tout d'abord mis en marche ou après que les valeurs de commande de mémoire aient été effacées en réponse à un enfoncement pen- dant plus de 6 secondes du bouton de programmation 151, le système ne sait pas si on va lui apprendre à répondre aux codes fixes ou aux codes rou- lants. Par conséquent, le système entre dans un mode d'essai pour lui per- mettre de recevoir les deux types de codes d'accès et de déterminer quel type de code est reçu. Dans le mode d'essai, I'appareil se remet lui- même périodiquement à zéro pour recevoir l'un des codes roulants, ou, autrement, des codes fixes, jusqu'à ce qu'un code du type attendu soit reçu. Une courte pression sur le commutateur 1 51 après la pression de 6 secondes ou plus provoque l'entrée d'un mode d'apprentissage. Lorsqu'un mode est reçu cor- rectement dans le mode d'essai, et que l'appareil est dans un mode d'ap- prentissage, le type de code attendu devient le type de code devant être reçu, et le code fixe reçu ou la partie de code fixe d'un code roulant reçu est mé- morisé dans une mémoire rémanente afin de l'utiliser à la recherche de con- cordance avec les codes reçus par la suite. Dans le cas de la réception d'un code roulant, la partie de code roulant est également mémorisée en associa- tion avec la partie de code fixe mémorisée devant être utilisée pour la recher- che de concordance avec les codes roulants reçus par la suite. Après qu'un code roulant ait été appris par le système, seuls des codes roulants addition- nels peuvent être appris jusqu'à ce qu'une reprogrammation se produise. De façon similaire, après qu'un code fixe ait été appris, seuls des codes fixes additionnels peuvent être reçus et appris jusqu'à ce qu'une reprogrammation se produise. De temps en temps lorsque l'on reçoit des codes entrants, il est déter- miné qu'un code reçu n'est pas approprié, et un sous-programme de silence de radio (figure 15) est appelé par le micro-contrôleur 85. Une étape de déci- sion 50 est tout d'abord effectuée afin de déterminer si l'appareil est dans un mode d'essai ou dans un mode normal. Lorsqu'il n'est pas dans un mode d'essai, le processus passe à une étape 62 pour effacer les codes de radio et le minuteur de silence, après quoi le sous-programme est excité. Lorsque l'étape de décision 50 identifie le mode d'essai, les étapes 52 à 60 sont ef- fectuées afin de sélectionner arbitrairement le mode de code fixe ou de code roulant et d'établir les valeurs nécessaires pour rechercher le mode sélection- né. Au cours de l'étape 52, le bit le moins élevé d'un minuteur continu est sélectionné pour le programme de calcul d'adresse. La valeur du bit le plus bas est ensuite analysée au cours d'une étape de décision 54. Lorsque le bit le plus bas est un "1", le mode d'essai fixe est sélectionné au cours de l'étape 56, et les seuils numériques nécessaires pour recevoir des codes fixes sont mémorisés au cours d'une étape 60 avant d'effacer les codes de radio et de sortir dans l'étape 62. Lorsque l'étape de décision 54 détermine que le bit le plus bas est un "0", le mode de code roulant est sélectionné au cours de l'étape 58, ceci étant suivi par la mémorisation de valeurs de seuils numéri- ques de code roulant au cours de l'étape 60. Le processus passe à l'étape 62 lorsque les codes de radio sont effacés et que l'on sort du sous-programme d'effacement de radio. Le sous-programme d'établissement de seuils de nombres (étape 60 de la figure 15) est montré plus en détail en figure 16. Initialement, une étape est effectuée pour identifier quel est le mode actuellement sélectionné. Lorsqu'il est déterminé que le mode est un mode de code fixe, les étapes 182, 184 et 186 sont ensuite effectuées pour établir le seuil de synchronisa- tion à 2 millisecondes, le nombre de bits par mot à 10 et le seuil de décision à 0,768 milliseconde. Autrement, lorsque l'étape 180 détermine que le mode de code roulant est sélectionné, les étapes 192, 194 et 196 sont effectuées pour établir le seuil de synchronisation à 1 milliseconde, le nombre de bits par mot à 20 et le seuil de décision à 0, 450 milliseconde. Après la réalisation de l'étape 186 ou 196, le sous-programme retourne à l'étape 188. Le sous-programme d'analyse de code reçu en premier, effectué par le micro-contrôleur 85, commence en figure 17A en réponse à une interruption générée par un front montant ou descendant reçu du récepteur 80 sur les broches P32 et P33. Etant donné le format de largeur d'impulsion des si- gnaux codés, le micro-contrôleur maintient actifs ou inactifs des minuteurs pour mesurer la durée entre les fronts montant et descendant du signal radio détecté. Initialement, une étape 546 est effectuée lorsqu'une transition de signal radio est détectée, et une étape 548 suit pour capturer le minuteur in- actif et effectuer le sous-progamme d'effacement de radio. Ensuite, on dé- termine dans l'étape 550 si la transition était un front montant ou descen- dant. Lorsqu'un front montant est détecté, l'étape 552 est ensuite effectuée, et, dans celle-ci, le minuteur capturé est mémorisé, ceci étant suivi par un retour dans l'étape 554. Lorsqu'un front descendant est détecté dans l'étape 550, la valeur du minuteur capturé dans l'étape 548 est mémorisée (étape 556) dans le minuteur actif. Une étape de décision 558 est ensuite effectuée pour déterminer s'il s'agit de la première partie d'un nouveau mot. Lorsque le compteur de bits est égal à "0" il s'agit d'une première partie dans laquelle une impulsion de synchronisation est attendue, et le processus passe à l'étape 560 (figure 17B). Dans l'étape 560, la valeur d'inactivité du minuteur est mesurée pour voir si elle dépasse 20 millisecondes mais si elle est inférieure à 100 millise- condes. Lorsque le minuteur inactif n'est pas dans la plage, l'étape 562 est effectuée pour effacer le compteur de bits, le registre de code roulant et le registre de code fixe. Ensuite, un retour est effectué. Lorsque le minuteur in- actif est dans la plage de l'étape 560, l'étape 566 est effectuée pour déter- miner si le minuteur actif est inférieur à 4,5 millisecondes. Lorsque le minu- teur actif est trop long, les valeurs sont effacées dans l'étape 568, après quoi on effectue un retour dans l'étape 582. Lorsqu'il se révèle que le minuteur actif est inférieur à 4,5 millisecondes dans l'étape 566, une impulsion de synchronisation a été trouvée, le comp- teur de bits est incrémenté dans l'étape 570 et une étape de décision 572 est effectuée. Dans l'étape de décision 572, le minuteur actif est comparé au seuil de synchronisation établi dans le sous-programme d'établissement de seuils de nombres de la figure 16. Par conséquent, l'étape de décision 572 utilise une valeur de 2 millisecondes lorsqu'un code fixe est attendu et une valeur de 1 milliseconde lorsqu'un code roulant est attendu. Lorsque l'étape 572 détermine que le minuteur actif dépasse le seuil, un indicateur de trame 2 est établi dans l'étape 574 et un indicateur de code sans clé fixe est effacé dans l'étape 576. Ensuite, un retour est effectué dans l'étape 582. Lorsque l'on découvre dans l'étape 572 que le minuteur actif est inférieur au seuil de synchronisation, une étape de décision 578 est effectuée pour déterminer si deux impulsions de synchronisation successives avaient la même longueur. Dans le cas contraire, l'indicateur de code sans clef est effacé dans l'étape 576 et un retour est effectué dans l'étape 582. Autrement, lorsque deux im- pulsions de synchronisation successives égales sont détectées dans l'étape 578, l'indicateur de code sans clef fixe est établi dans l'étape 580 et un re- tour est réalisé dans l'étape 582. Lorsque le déroulement de l'étape 558 identifie que le compteur de bits n'est pas de "0", ce qui indique un bit de non-synchronisation, le processus passe à l'étape 302 (figure 18A). Dans la séquence d'étapes montrée dans les figures 18A à 18D, le micro-contrôleur 85 identifie les bits de code indivi- duels d'un mot de code reçu. Dans l'étape 302, la longueur de la période ac- tive est comparée à 5,16 millisecondes, et, lorsque la période active n'est pas inférieure, les registres et les compteurs sont effacés et un retour est effec- tué. Lorsque l'étape 302 indique que la période active était inférieure à 5,16 millisecondes, une étape 306 est effectuée pour déterminer si la période in- active est inférieure à 5,16 millisecondes. Si elle est inférieure, l'étape 304 est effectuée afin d'effacer les valeurs et d'effectuer un retour. Autrement, lorsque l'étape 306 reçoit une réponse affirmative, un bit a été reçu et le compteur de bits est incrémenté dans une étape 308. Dans l'étape suivante 310, les valeurs des minuteurs actif et inactif sont soustraites et le résultat est comparé dans l'étape 312 au complément du seuil de décision pour le type de code attendu. Lorsque le résultat est inférieur au complément du seuil de décision, une valeur de bit de "0" a été reçue, et le processus passe, par l'intermédiaire d'une étape 314, à l'étape 322 (figure 18B) o il est déterminé si oui ou non on attend un code roulant. Lorsque l'étape 312 détermine que la différence de temps n'est pas in- férieure au complément de seuil de décision, le processus passe au cadre de décision 316 (figure 18B), o le résultat est comparé au seuil de décision. Lorsque le résultat dépasse le seuil de décision, un bit ayant une valeur de 2 a été reçu et le processus passe, par l'intermédiaire de l'étape 318, à l'étape de décision 322. Lorsque l'étape de décision 316 détermine que le résultat ne dépasse pas le seuil de décision, un bit ayant une valeur de 1 a été reçu, et le processus passe, par l'intermédiaire de l'étape 320, à l'étape de décision 322. Au cours de l'étape 322, le micro-contrôleur 85 identifie si des codes roulants sont attendus. Dans le cas contraire, le processus passe à l'étape 338 (figure 18C), o la valeur de bit est mémorisée sous la forme d'un bit de code fixe. Lorsque des codes roulants sont attendus, le processus passe du cadre 322 à une étape de décision 324 o le compteur de bits est vérifié pour identifier si un bit de code fixe ou un bit de code roulant est reçu. Lorsque l'étape 324 identifie un bit de code roulant, le processus passe directement à une étape 340 (figure 18C) pour déterminer s'il s'agit du dernier bit d'un mot. Lorsqu'un bit fixe est détecté au cours de l'étape 324, sa valeur est mémori- sée dans une étape 326, et une étape 328 est effectuée pour identifier si le bit reçu actuellement est un bit d'identification. Si le compteur de bits identi- fie un bit d'identification, une étape 330 est effectuée pour mémoriser le bit d'identification, et le processus passe à l'étape de mémorisation 338 (figure 18C). Lorsque l'étape 328 détermine que le bit reçu actuellement n'est pas un bit d'identification, le processus passe à l'étape 334 (figure 18C) pour dé- terminer si le bit reçu actuellement est un bit de fonction. S'il s'agit d'un bit de fonction, sa valeur est mémorisée sous la forme d'un indicateur de fonc- tion dans l'étape 336, et le processus passe à l'étape 338 pour la mémorisa- tion sous la forme d'un bit de code fixe. Lorsque l'étape 334 indique que le bit actuellement reçu n'est pas un bit de fonction, le processus passe direc- tement à l'étape 338. Après l'étape de mémorisation 338, le processus pour la réception de bit fixe passe également à l'étape 340 afin de déterminer si un mot complet a été reçu. Cette détermination est faite en comparant le comp- teur de bits aux valeurs de seuil établies pour le type de code attendu. Lors- que moins d'un mot a été reçu, le processus passe à l'étape 342 afin d'at- tendre d'autres bits. Lorsqu'un mot complet a été reçu, le processus passe à une étape 344 o leminuteur de silence est remis à zéro. Ensuite, le processus passe à l'étape de décision 346 pour déterminer si deux mots complets (un code complet) ont été reçus. Lorsque deux mots complets n'ont pas été reçus, le processus passe au cadre 348 pour attendre les chiffres d'un nouveau mot. Lorsque deux mots complets sont détectés dans l'étape 346, le processus passe à l'étape 350 (figure 18D) pour déterminer si des codes roulants sont attendus. Lorsque des codes roulants ne sont pas attendus, le processus passe à l'étape 358. Lorsque des codes roulants sont attendus, le processus passe de l'étape 350, par l'intermédiaire de la restauration du code roulant dans une étape 352, à une étape de décision 354 o il est identifié si les bits d'identification indiquent un émetteur à entrée sans clef, par exemple l'émet- teur 34. Lorsqu'un code d'émetteur à entrée sans clef est détecté, un indica- teur est établi dans l'étape 356, et le processus passe à une étape de déci- sion 362, décrite ci-dessous. Lorsque l'étape 354 indique que le code ne vient pas d'un émetteur sans clef, le processus passe à l'étape de décision 358 pour identifier si un indicateur d'inutilisation est établi dans la mémoire. L'indicateur d'inutilisation est établi en réponse à un commutateur d'inutilisa- tion actionné par une personne, et, lorsque l'indicateur d'inutilisation est établi, aucun code de radio n'est autorisé à actionner l'ouverture de la porte, alors que les codes d'émetteurs à clavier (sans clef) tels que 34 sont autori- sés à actionner le système. Par conséquent, si un indicateur d'inutilisation est détecté dans l'étape 358, le code est rejeté et un retour est effectué. Lors- qu'aucun indicateur d'inutilisation n'a été établi, le processus passe à une étape 362 o il est déterminé si un mode d'apprentissage est établi. Les mo- des d'apprentissage peuvent être établis par différents types d'interaction de l'opérateur. Le commutateur de programme 151 peut être enfoncé. Egale- ment, par pré-programmation, le microprocesseur 85 reçoit l'instruction d'in- terpréter l'enfoncement et le maintien des boutons de commande et de lu- mière de la commande murale 39 tout en alimentant un émetteur de code. De plus, des commandes de radio précédentes peuvent mettre le système dans un mode d'apprentissage. La décision dans l'étape 362 ne dépend pas de la façon dont le mode d'apprentissage est établi, mais simplement du fait de savoir si un mode d'apprentissage est demandé. En ce point, on suppose qu'un mode d'apprentissage a été établi et que le processus passe à l'étape 750 (figure 19A). Dans l'étape 750, une détermination est réalisée concernant le type de code attendu. Lorsqu'un code fixe est attendu, le processus passe à l'étape 756 o le code fixe actuel est comparé au code fixe précédent. Lorsque l'étape 756 ne détecte pas de concordance, le code actuel est mémorisé dans un registre de code passé, et un retour est exécuté. Lorsque l'étape 750 identifie qu'un code roulant est attendu, une étape 752 est exécutée pour déterminer si le code roulant actuel correspond au code roulant passé. Si au- cune concordance n'est trouvée, le processus passe à l'étape 754 o le code actuel est mémorisé dans un registre de code passé, et un retour est exécuté. Lorsque l'étape 752 détermine que les codes roulants correspondent, la partie fixe du code roulant reçu est comparée aux parties fixes passées dans l'étape 756. Lorsqu'aucune concordance n'est détectée, le code est mémorisé dans un registre de code passé, et un retour est exécuté. Lorsque l'étape 756 dé- tecte une concordance, le processus passe à l'étape 758 pour identifier si l'apprentissage a été demandé par la commande murale 39. Dans le cas con- traire, le processus passe à l'étape 766 (figure 19B) o il est établi que la fonction d'émetteur est d'être un émetteur de commande standard. Lorsque l'étape 758 détermine que le mode d'apprentissage a été commencé à partir de la commande murale 39, le processus passe à l'étape 760 afin de déter- miner si des codes fixes ou roulants sont attendus. Lorsque des codes fixes sont attendus, le processus passe à l'étape 766 (figure 19B) o il est établi que la fonction est d'être celle d'un émetteur de commande standard. Lors- que des codes roulants sont identifiés dans l'étape 760, le processus passe à l'étape 762 (figure 19B). Dans l'étape 762, il est déterminé si les commutateurs de lumière et d'inutilisation de la commande murale 39 sont maintenus. Si c'est le cas, il est établi que l'émetteur n'est qu'un commutateur de lumière dans l'étape 763, et le processus passe à l'étape 768. Lorsqu'il est répondu à l'étape 762 par la négative, le processus passe à l'étape 764 pour déterminer si les com- mutateurs d'inutilisation et de commande sont maintenus. Si c'est le cas, le processus passe à l'étape 765 pour établir la fonction de l'émetteur comme étant une fonction d'ouverture/fermeture/arrêt, et le processus passe à l'étape 768. Lorsque l'étape 764 détermine que les commutateurs d'inutilisa- tion et de commande ne sont pas maintenus, le processus passe à l'étape 766, dans laquelle l'émetteur est marqué comme un émetteur de commande standard. Après l'étape 766, une étape 768 est effectuée pour identifier si le code reçu est dans la mémoire de code de radio. Si le code actuel est dans la mémoire de code de radio, le processus passe à l'étape 794 (figure 19C). Si le code reçu n'est pas dans la mémoire de code de radio, le processus passe de l'étape 768 à l'étape 780 pour déterminer si le système est dans un mode permanent ou un mode d'essai. Lorsque l'étape 780 détermine que le sys- tème est dans un mode d'essai, le mode de radio en cours, qu'il soit fixe ou roulant, est établi comme un mode permanent dans l'étape 782, et le proces- sus passe à une étape 784 pour établir les seuils actuels en mémorisant un pointeur vers l'emplacement de mémoire en mémoire morte dans la mémoire permanente. Après l'étape 784, le processus passe à l'étape 786 (figure 19C) pour déterminer si le code actuel vient de l'émetteur à clavier, et spécifie un code d'entrée 0000. Si c'est le cas, l'étape 787 est exécutée, et, dans cette étape, le code reçu est rejeté, et un retour est exécuté alors que l'on reste dans le mode d'apprentissage. Lorsque le code 0000 n'est pas présent, le processus passe à l'étape 788 pour trouver si une touche de non entrée (* ou #) a été enfoncée. Si c'est le cas, le processus passe à l'étape 787. Si ce n'est pas le cas, le processus passe à l'étape de décision 789 pour identifier si l'apprentissage d'un émetteur d'ouverture/fermeture/arrêt est en train d'être réalisé. Lorsque l'apprentissage actuel ne comprend pas d'émetteur d'ouverture/fermeture/arrêt, le processus passe à l'étape 792, dans laquelle le code est écrit dans une mémoire rémanente. Lorsque l'étape 789 détermine que l'apprentissage d'un émetteur d'ouverture/fermeture/arrêt est en train d'être exécuté, le processus passe à l'étape 790 pour déterminer si une tou- che autre que la touche d'ouverture est enfoncée. Si c'est le cas, le proces- sus passe au cadre 789, et, si ce n'est pas le cas, le processus passe au ca- dre 792 o le code fixe est mémorisé dans une mémoire rémanente. Après l'étape 792, l'étape 794 est exécutée pour déterminer si le code roulant est le code actuel. Dans le cas contraire, le processus passe à l'étape 799 o l'on fait clignoter la lumière pour indiquer l'achèvement d'un appren- tissage, et un retour est exécuté. Lorsque l'étape 794 identifie le mode comme étant un code roulant, le processus passe à l'étape 795 dans laquelle le code roulant reçu est écrit dans une mémoire rémanente en association avec le code fixe écrit dans l'étape 792. Après l'étape 795, les octets de fonction d'émetteur actuels sont lus dans l'étape 796, modifiés dans l'étape 797 et mémorisés dans une mémoire rémanente. Après cette mémorisation, la lumière de travail clignote au cours de l'étape 799 et un retour est exécuté. La réalisation de l'étape 799 conclut la fonction d'apprentissage qui a commencé lorsque l'étape 362 (figure 18D) a identifié un mode d'apprentis- sage. Lorsque l'étape 362 n'identifie pas de mode d'apprentissage, le proces- sus passe de l'étape 362 à l'étape 402 (figure 20A). Dans l'étape 402, les bits d'identification du code reçu sont interprétés pour identifier si le code vient d'un émetteur du type clavier de code roulant, par exemple 34. Si c'est le cas, le processus passe à l'étape 450 (figure 21A). Lorsque les bits d'iden- tification n'indiquent pas d'entrée de clavier de code roulant, le processus passe à une étape 404, dans laquelle une vérification est faite pour voir si une fenêtre de 8 secondes, dans laquelle un mode d'apprentissage peut être établi, existe, ayant été entrée à partir d'un émetteur à clavier de code fixe. Lorsque le mode d'apprentissage existe, le processus passe à l'étape 406 afin de déterminer si l'opérateur a entré un code "0000" spécial. Si le code spé- cial a été entré, le processus passe de l'étape 406 à l'étape 410, dans laquelle le mode d'apprentissage est établi, et une sortie est effectuée. Lors- que l'étape 406 ne détecte pas le code "0000" spécial, le processus passe à une étape 408, étape dans laquelle on rentre également lorsqu'aucun mode d'apprentissage de 8 secondes n'a été détecté dans l'étape 404. Dans l'étape 408, le code reçu est comparé aux codes précédemment mé- morisés dans la mémoire rémanente 88. Lorsqu'aucune concordance n'est détectée, le code de radio est effacé et une sortie est effectuée dans l'étape 412. D'une autre façon, lorsque l'étape 408 détecte une concordance, le processus passe à une étape 414 (figure 20B) qui identifie le moment o des codes roulants sont attendus. Lorsque l'étape 414 détermine que des codes roulants ne sont pas attendus, le processus passe à une étape 428, dans laquelle une commande de radio est exécutée, et une sortie est effectuée. Lorsque l'étape 414 détermine qu'un code roulant est attendu, le processus passe à l'étape 416 pour déterminer si la partie roulante du code reçu est à l'intérieur de la plage acceptée. Lorsque la partie roulante est hors de la plage, l'étape 418 est effectuée pour rejeter le code et sortir. Lorsque le code rou- lant est à l'intérieur de la plage, l'étape 420 est effectuée pour mémoriser la partie de code roulant reçue (compteur de code roulant) en mémoire réma- nente, et le processus passe à une étape 422, qui identifie si les bits de fonction du code reçu identifient un signal de commande de lumière. Lors- qu'un signal de commande de lumière est identifié, le processus passe à l'étape 424, dans laquelle l'état de la lumière est changé, la radio est effacée et une sortie est effectuée. Lorsque le code actuellement reçu n'est pas iden- tifié dans l'étape 422 comme étant une commande de lumière, le processus passe à l'étape 426 pour identifier si le code actuel est une commande d'ou- verture/fermeture/arrêt. Lorsque l'étape 426 n'identifie pas de commande d'ouverture/fermeture/arrêt, le processus passe à l'étape 428 dans laquelle une commande de radio est établie, et une sortie est effectuée. Lorsque l'étape 426 identifie une commande d'ouverture/fermeture/ arrêt, le processus passe à l'étape 430 (figure 20C) pour interpréter la commande. L'étape 430 identifie à partir des bits de fonction du code reçu lequel des trois boutons a été enfoncé. Lorsque le bouton d'ouverture a été enfoncé, le processus passe à une étape 432, pour identifier quel est l'état actuel de la porte. Lorsque la porte est arrêtée ou lors d'une limite de descente, on entre dans l'étape 434 dans laquelle une commande de montée est délivrée, et une sortie est effectuée. Lorsque l'étape 432 identifie que la porte descend, une commande d'inversion de porte est délivrée et une sortie est effectuée dans l'étape 436. Dans le troisième cas, lorsque l'étape 432 détecte que la porte est ouverte, on entre dans l'étape 440 et aucune commande n'est délivrée. Lorsque l'étape 430 identifie que le bouton de fermeture de l'émetteur a été enfoncé, le processus passe à l'étape 438 pour identifier dans quel état se trouve la porte. Lorsque l'étape 436 détermine que la porte monte ou est à une limite de descente, l'étape 440 est effectuée, étape dans laquelle aucune commande n'est délivrée, et une sortie est effectuée. D'une autre façon, lorsque l'étape 438 identifie que la porte est arrêtée dans une position autre que dans la limite de descente, une commande de descente est délivrée dans une étape 442. Lorsque l'étape 430 détermine que le bouton d'arrêt a été enfoncé, le processus passe à l'étape 444 pour identifier l'état de la porte. Lorsque la porte est déjà arrêtée, le processus passe de l'étape 444 à l'étape 448 o aucune commande n'est délivrée, et o une sortie est effectuée. Lorsque la porte est identifiée dans l'étape 444 comme étant en train de se déplacer, une commande d'arrêt est délivrée dans l'étape 446, et une sortie est effectuée. On se souviendra que, lorsque l'étape 402 (figure 20A) identifie qu'un code de clavier de code roulant est reçu, le processus passe à l'étape 450 (figure 21A). Dans l'étape 450, la partie de numéro de série du code reçu est comparée aux numéros de série des codes mémorisés en mémoire rémanente. Lorsqu'aucune concordance n'est détectée, le processus passe à l'étape 452, o le code est rejeté, et o une sortie est effectuée. Lorsque l'étape 450 dé- tecte une concordance, le processus passe à l'étape 454 pour identifier si la partie de code roulant se trouve à l'intérieur de la fenêtre avant. Lorsque le code ne se trouve pas à l'intérieur de la fenêtre avant, le processus passe à l'étape 452 o le code reçu est rejeté, et o une sortie est effectuée. Lorsque la partie de code roulant reçue se révèle être à l'intérieur de la fenêtre avant dans l'étape 454, une étape 456 est effectuée, o le code reçu est utilisé pour remettre à jour le compteur de code roulant en mémoire. Cette mémoire maintient en synchronisme l'émetteur de code roulant et le récep- teur de code roulant. Après l'étape 456, on entre dans une étape 458 pour identifier quel mode de réception de code a été établi. Lorsque la réception de code normal est identifiée dans l'étape 458, une étape 460 (figure 21 B) est effectuée pour identifier si la partie d'entrée d'utilisateur du code reçu corres- pond à un mot de passe d'utilisateur mémorisé. Lorsqu'une concordance est détectée dans l'étape 460, le processus passe à l'étape 470 pour identifier laquelle des touches d'entrée de clavier, *, # ou entrée, a été enfoncée. Lors- que l'étape 470 identifie la touche d'entrée, une étape 472 est effectuée, étape dans laquelle une commande d'entrée sans clef est délivrée, et une sortie est déclenchée. Lorsque la touche * est détectée dans l'étape 470, le processus passe à l'étape 476, o l'on fait clignoter la lumière et l'indicateur de mot de passe temporaire d'apprentissage est établi pour identifier le mode de mot de passe temporaire d'apprentissage. Lorsque l'étape 470 identifie que la touche # a été enfoncée, le processus passe à une étape 474 pour faire clignoter la lumière et pour établir un mode d'apprentissage standard. Lorsque la réalisation de l'étape 460 détermine que la partie d'entrée d'utilisateur reçue ne correspond pas à une partie mémorisée en mémoire, le processus passe à l'étape 462, dans laquelle la partie d'entrée d'utilisateur reçue est comparée à des codes d'entrée d'utilisateur temporaire. Lorsque l'étape 462 ne découvre pas de concordance, une étape 464 est effectuée pour rejeter le code et sortir. Lorsque l'étape 462 identifie une concordance entre un code d'entrée d'utilisateur reçu et un mot de passe temporaire mé- morisé, le processus passe à l'étape 466 pour identifier si la porte se trouve à la limite de descente. Si ce n'est pas le cas, le processus passe à l'étape 472 pour la délivrance d'une commande d'entrée de clavier. Lorsque l'étape 466 identifie que la porte est fermée, une étape 468 est effectuée pour identifier si le temps établi précédemment ou le nombre d'utilisations pour le mot de passe temporaire a expiré. Lorsque l'étape 468 identifie l'expiration, l'étape 464 est effectuée pour rejeter le code et sortir. Lorsque le mot de passe tem- poraire n'a pas expiré, le processus passe à l'étape 478 (figure 21 C) dans laquelle le type de mot de passe temporaire d'utilisateur, par exemple la durée ou le nombre d'actionnements, est vérifié. Lorsque l'étape 478 identifie que le mot de passe temporaire reçu est limité à un nombre d'actionnements, une étape 480 est exécutée pour décrémenter les actionnements restants, et une étape 472 est exécutée pour délivrer une commande d'entrée. Lorsque l'étape 478 identifie que le mot de passe de clavier reçu n'est pas basé sur le nombre d'actionnements (mais au contraire sur l'écoulement du temps), le processus passe de l'étape 478 à la délivrance d'une commande d'entrée dans l'étape 472. Aucune remise à jour spéciale n'est nécessaire pour des mots de passe temporaires minutés car le micro-contrôleur 85 remet à jour en permanence le temps écoulé. On se souviendra qu'une étape 458 (figure 21A) a été déclenchée pour identifier le mode de réception actuellement validé. Lorsque le mode de mot de passe temporaire d'apprentissage est détecté, le processus passe de l'étape 458 à l'étape 482 (figure 22). Dans l'étape 482, une interrogation est exécutée pour déterminer si la touche d'entrée a été utilisée pour émettre le code reçu. Lorsque la touche d'entrée n'a pas été utilisée, une étape 484 est effectuée pour rejeter le code et sortir. Lorsque la touche d'entrée a été utili- sée, une étape 486 est effectuée pour déterminer si le code d'entrée d'utilisa- teur reçu correspond à un code d'utilisateur déjà mémorisé en mémoire. Si c'est le cas, une étape 488 est effectuée pour rejeter le code. Lorsque l'étape 486 identifie qu'il n'y a pas de codes d'entrée d'utilisateur concordants, le nouveau code d'entrée d'utilisateur est mémorisé sous la forme du mot de passe temporaire dans l'étape 490, et le processus passe à l'étape 492, dans laquelle on fait clignoter la lumière et le mode d'apprentissage de durée de mot de passe temporaire d'apprentissage est établi pour une utilisation ulté- rieure. Lorsque le mode de durée de mot de passe temporaire d'apprentissage est ensuite détecté dans l'étape 458, le processus passe à une étape 481 o le code entré par l'utilisateur est vérifié pour voir s'il dépasse 255. Il s'agit là d'une limite arbitraire de 255 actionnements ou de 255 heures d'accès tem- poraire. Lorsque le code entré par l'utilisateur dépasse 255, il est rejeté dans l'étape 483. Lorsque le code entré par l'utilisateur est inférieur à 255, une étape 485 est effectuée pour identifier quelle touche a été utilisée pour émet- tre le code de clavier. Lorsque la touche * a été utilisée, le code émis sert à indiquer une durée de temps pour le mot de passe temporaire, le mode de durée de temps est établi dans l'étape 487, et un temps est démarré dans l'étape 491 à l'aide du code jouant le rôle de nombre d'heures dans la durée de code temporaire. Lorsque l'étape 485 détermine que la touche # a été uti- lisée pour émettre le code, un indicateur est établi dans l'étape 489, indiquant que le mode temporaire est basé sur le nombre d'actionnements, et le nombre d'actionnements est enregistré dans l'étape 491. Après l'étape 491, on fait clignoter la lumière et une sortie est effectuée. Les figures 23A et 23B sont des organigrammes d'un sous-programme de concordance de code radio. Le processus commence dans une étape 862 o il est déterminé si un code roulant est attendu ou non. Lorsqu'un code roulant n'est pas attendu, le processus passe à une étape 866 o un pointeur identifie le premier code de radio mémorisé en mémoire rémanente. Lorsque l'étape 866 détermine qu'un code roulant est attendu, tous les codes de type d'émetteur sont appelés dans une étape 864 avant le commencement de l'étape de pointeur 866. Après l'étape 866, une étape de décision 868 est effectuée pour déterminer si l'apprentissage d'un émetteur d'ouver- ture/fermeture/arrêt est en train de se faire. Si c'est le cas, une étape 870 est effectuée, étape dans laquelle le code de mémoire est soustrait du code reçu et le processus passe à une étape 878 pour évaluer le résultat. A partir de l'étape 878, le processus passe à une étape 880 pour renvoyer l'adresse de la concordance lorsque le résultat de la soustraction est inférieur ou égal à deux. Lorsque le résultat de la soustraction n'est pas inférieur ou égal à deux, le processus passe de étape 878 à l'étape 882 pour déterminer si le dernier emplacement de mémoire est comparé. Si la dernière mémoire a été compa- rée, l'étape 884 est effectuée pour renvoyer un "pas de concordance". Lorsque l'étape 868 indique que le système ne réalise pas l'apprentis- sage d'un émetteur d'ouverture/fermeture/arrêt, le processus passe à une étape 872 pour déterminer si le code de mémoire est un code d'ouverture/ fermeture/arrêt. Si c'est le cas, le processus passe par les étapes jusqu'à l'étape 874, o le code reçu est soustrait du code de mémoire. Ensuite, le processus passe par l'étape 878, à l'étape 880 ou l'étape 882, comme décrit ci-dessus. Lorsque l'étape 872 détermine que le code de mémoire actuel n'est pas un code d'ouverture/fermeture/arrêt, le processus passe à l'étape 876 (figure 23B). Dans l'étape 876, le code reçu est comparé au code de la mémoire, et, s'ils correspondent, l'étape 880 est effectuée pour renvoyer l'adresse du code de concordance. Lorsque l'étape 876 détermine que les codes comparés ne correspondent pas, le processus passe à l'étape 882 pour déterminer si l'on a accédé au dernier emplacement de mémoire. Lorsque l'on n'a pas accédé au dernier emplacement de mémoire, le pointeur est ajusté pour identifier l'emplacement de mémoire suivant, et le processus revient à l'étape 868 en utilisant les contenus du nouvel emplacement. Le processus se poursuit jusqu'à ce qu'une concordance soit trouvée ou que le dernier * emplacement de mémoire soit détecté dans une étape 882. La figure 24 est un organigramme d'un sous-programme de compteur de code roulant d'essai qui commence dans une étape 888 dans laquelle le compteur de code roulant mémorisé est soustrait du code roulant reçu, et le résultat est analysé dans une étape 890. Lorsque l'étape 890 détermine que le résultat de soustraction est inférieur à "0", le processus passe à l'étape 892 o le sous-programme renvoie un verrouillage de fenêtre arrière. Lorsque l'étape 890 détermine que le résultat de la soustraction est supérieur à 0 et inférieur à 1000, le sous-programme renvoie une indication de fenêtre avant dans l'étape 892. La figure 25 est un organigramme d'un sous-programme d'effacement de mémoire de radio qui commence par une étape 686 d'effacement de tous les codes de radio, y compris les codes sans clef temporaires. Ensuite, une étape 686 est effectuée pour établir le mode de radio en mémoire rémanente comme mode d'essai pour les codes roulants ou mode d'essai pour les codes fixes. L'étape 690 est ensuite effectuée, étape dans laquelle le mode de radio de travail est établi comme mode d'essai de code fixe, et les seuils de nom- bres de code fixe sont établis dans une étape 692. Une étape de retour 694 achève le sous-programme. Les figures 26A et 26B montrent un sous-programme d'interruption de minuteur qui commence dans une étape 902 o tous les temps de logiciel sont remis à jour. Ensuite, le processus passe à l'étape 904 pour déterminer si un minuteur de 12 millisecondes a expiré. Le minuteur de 12 millisecondes est utilisé pour assurer que des obstructions qui bloquent le faisceau lumi- neux dans le dispositif de protection 90 et provoquent l'absence d'une im- pulsion d'obstruction de 10 millisecondes sont rapidement détectées. Lorsque le minuteur de 12 millisecondes n'a pas expiré, le processus passe à une étape 914 décrite ci-dessous. D'une autre façon, lorsque le minuteur expire, une étape 906 est effectuée pour déterminer si un indicateur de rupture, qui est établi lors de la première impulsion manquante, est établi. Si il n'est pas établi, le processus passe à l'étape 910 dans laquelle l'indicateur de rupture est établi. Si l'indicateur de rupture a été détecté dans l'étape 906, le proces- sus passe à l'étape 908 o un indicateur de blocage d'infrarouges, indicatif d'une pluralité d'impulsions d'obstruction de 10 millisecondes qui ont été manquées, est établi. Le processus passe alors, par l'étape 910, à l'étape 912, o le minuteur de 12 millisecondes est remis à zéro. L'étape de décision 914, qui est effectuée après l'étape 912, détermine s'il s'est écoulé plus de 500 millisecondes depuis qu'un code de radio valide a été reçu. Si plus de 500 millisecondes se sont écoulées, l'étape 916 est effectuée pour effacer un indicateur de "radio actuellement dans l'air", et une sortie est effectuée. Lorsque l'étape 914 détermine que 500 millisecondes se sont pas écoulées, le processus passe directement à l'étape de sortie 918. La figure 27 est un organigramme d'une interruption de réception d'im- pulsions infrarouges commencée à chaque fois qu'une impulsion de protec- tion est reçue par le micro-contrôleur 85. Initialement, une étape 920 est ef- fectuée, étape dans laquelle l'indicateur de rupture d'infrarouge est remis à zéro, et le processus passe à l'étape 922, o l'indicateur de blocage d'infra- rouges est remis à zéro. Ce sous-programme se termine par la remise à zéro du minuteur de 12 millisecondes dans l'étape 924 et par la sortie dans l'étape 926. La structure de commande de la présente réalisation comprend une boucle principale qui est exécutée de façon sensiblement continue. La figure 28 est un organigramme montrant des parties de la boucle. Toutes les 15 secondes, une étape 928 est effectuée, étape dans laquelle le mode de radio local est chargé depuis une mémoire rémanente et les seuils de nombres sont établis dans une étape 930. Cette activité s'achève avec une étape de retour 946. Toutes les heures, une étape 932 est effectuée pour déterminer si un minuteur temporaire de clavier est actuellement actif. Si c'est le cas, le pro- cessus passe à l'étape 914 o le temps est décrémenté, et un retour est exé- cuté dans l'étape 946. Toutes les millisecondes, une étape 936 est effectuée pour déterminer si l'indicateur de rupture d'infrarouges est établi et si l'indicateur deblocage d'infrarouges n'est pas établi. Cette condition est indicative de la première impulsion de protecteur manquée. Si la détermination dans l'étape 936 est négative, un retour est effectué. Si l'étape 936 ne détecte que l'indicateur de rupture d'infrarouges et non l'indicateur de blocage d'infrarouges, une étape 938 est effectuée pour identifier si la porte est à la limite de montée. Lorsque la porte n'est pas à la limite de montée, un retour est effectué. Lorsque l'étape 938 détecte la porte à la limite de montée, une étape 940 est effec- tuée pour identifier si la lumière est allumée. Si la lumière est allumée, on la fait clignoter un nombre prédéterminé de fois dans l'étape 942, et un retour est exécuté. Lorsque l'étape 940 détermine que la lumière est éteinte, une étape 944 est effectuée pour allumer la lumière et établir un minuteur de maintien de lumière de 4,5 minutes. Un retour est exécuté après l'étape 944. La figure 29 est un organigramme illustrant l'utilisation du circuit de pro- tection à infrarouges dans la commande de porte. Dans une étape 948, une décision est prise pour savoir si un émetteur du type à clavier correspondant à la mémoire est "dans l'air". Si c'est le cas, le processus passe à l'étape 956 pour déterminer si la limite basse de déplacement de la porte s'est produite. Si la limite de descente a été atteinte, une étape 958 est effectuée pour établir un état d'arrêt à la limite de descente de la porte. Lorsque l'étape 956 détermine que la limite de descente n'a pas été atteinte, une étape 960 est effectuée pour poursuivre le déplacement vers le bas de la porte. Lorsqu'il a été répondu par la négative à l'étape 948, une étape 950 est effectuée pour déterminer si le commutateur de commande est maintenu enfoncé. Si c'est le cas, le processus passe à l'étape 956 et à l'étape 958 ou 960 comme décrit ci-dessus. Lorsqu'il est répondu par la négative à l'étape 950, une étape 952 est effectuée, étape dans laquelle l'indicateur de rupture d'infrarouges est vérifié. Si l'indicateur de rupture est établi, ce qui signale une obstruction, une étape 954 est effectuée pour inverser la porte, établir le nouvel état de la porte et établir un indicateur d'obstruction. Lorsque l'étape 952 ne détecte pas d'indicateur de rupture d'infrarouges, le processus passe à l'étape 956 comme décrit ci- dessus. On mentionnera que les conditions établies dans les étapes 948 et 950 visent à permettre à l'opérateur de prendre la priorité sur le détecteur d'obstruction. Bien que l'on ait illustré et décrit une réalisation particulière de la pré- sente invention, on appréciera le fait que de nombreux changements et modi- fications apparaîtront aux personnes ayant une bonne connaissance de la technique, et que l'on vise à couvrir dans les revendications jointes tous ces changements et modifications qui rentrent à l'intérieur du véritable esprit et de la véritable étendue de l'applicabilité de la présente invention. A titre d'exemple, les émetteurs et les récepteurs de la réalisation décrite sont com- mandés par des micro-contrôleurs programmés. Les contrôleurs pourraient être réalisés sous la forme de circuits intégrés spécifiques à l'application à l'intérieur de l'étendue de l'applicabilité de la présente invention. REVENDICATIONS 1. Procédé de fonctionnement d'un récepteur (70) d'actionnement de mouvement d'une barrière (24) pour permettre l'activation du mouvement d'une barrière (24) par des utilisateurs pouvant avoir des codes d'accès tem- poraires ou semi-permanents, le procédé étant caractérisé en ce qu'il comporte: la mémorisation dans le récepteur (70) d'un code d'accès semi- permanent qui reste valide jusqu'à ce qu'il soit invalidé; la mémorisation dans le récepteur (70) d'un code d'accès temporaire; la réception d'un code d'accès émis; l'activation du récepteur d'actionnement de barrière (70) lorsqu'un code d'accès reçu correspond à un code d'accès semi-permanent valide mémorisé ou à un code d'accès temporaire valide mémorisé; et l'invalidation du code d'accès temporaire après l'écoulement d'une pé- riode de temps prédéterminée. 2. Procédé selon la revendication 1, caractérisé en ce qu'il comporte la mémorisation dans le récepteur (70) d'un indicateur de temps identifiant la période de temps pendant laquelle le mot de code temporaire doit rester va- lide. 3. Procédé selon la revendication 2, caractérisé en ce que l'étape d'inva- lidation comprend l'invalidation du code d'accès temporaire après l'écoule- ment d'une période de temps dérivée de l'indicateur de temps mémorisé au cours de l'étape de mémorisation de l'indicateur de temps. 4. Procédé de fonctionnement d'un récepteur d'actionnement de mou- vement de barrière (70) pour permettre l'activation du mouvement d'une bar- rière (24) par des utilisateurs de codes d'accès temporaires ou semi- permanents et pour refuser l'activation à des utilisateurs de codes d'accès temporaires après un nombre prédéterminé d'utilisations des codes d'accès temporaires, le procédé étant caractérisé en ce qu'il comporte: la mémorisation dans le récepteur (70) d'un code d'accès semi- permanent qui reste valide jusqu'à ce qu'il soit invalidé par l'interaction d'un utilisateur; la mémorisation dans le récepteur (70) d'un code d'accès temporaire; la réception de codes d'accès émis; l'activation du récepteur d'actionnement de porte de garage (70) de fa- çon à déplacer la barrière (24) lorsqu'un code d'accès reçu correspond à un code d'accès semi-permanent valide mémorisé et lorsque le code d'accès re- çu correspond à un code d'accès temporaire valide mémorisé; et, l'invalidation du code d'accès temporaire mémorisé après un nombre prédéterminé de réceptions de celui-ci. 5. Procédé selon la revendication 4, caractérisé en ce qu'il comporte la mémorisation dans le récepteur (70) d'une valeur d'usage indicative du nom- bre d'utilisations pendant lesquelles le mot de passe temporaire doit rester valide. 6. Procédé selon la revendication 5, caractérisé en ce que l'étape d'inva- lidation comprend l'invalidation du mot de passe temporaire lorsque le mot de passe temporaire est utilisé pour activer le récepteur (70) un nombre de fois dérivé de la valeur d'utilisation mémorisée. 7. Procédé selon la revendication 6, caractérisé en ce qu'il comporte la décrémentation de la valeur d'utilisation mémorisée à chaque fois que le mot de passe temporaire est utilisé pour activer le récepteur (70). 8. Procédé selon la revendication 4, caractérisé en ce qu'il comporte l'invalidation du code d'accès temporaire mémorisé après l'écoulement d'une période de temps prédéterminée.