FR 2748141 A1 19971031 FR 9704833 A 19970418 FORMATS DE CODE MULTIPLES DANS UN DISPOSITIF D'OUVERTURE DE PORTE DE GARAGE UNIQUE COMPRENANT AU MOINS UN FORMAT DE CODE FIXE ET AU MOINS UN FORMAT DE CODE ROULANT ARRIERE-PLAN DE L'INVENTION La présente invention concerne des dispositifs d'actionnement de mou- vement de barrière, et, plus particulièrement, de tels dispositifs d'actionne- ment qui répondent aussi bien à des codes d'accès roulants qu'à des codes d'accès fixes. Les dispositifs d'ouverture automatique de porte de garage comprennent une unité de déplacement de porte ou de barrière, telle qu'un moteur com- mandé et des dispositifs d'actionnement et de sécurité intelligents. L'unité de déplacement de barrière est, de façon typique, actionnée en réponse à un code d'accès émis par un émetteur à distance. La signalisation HF constitue le moyen le plus courant pour émettre les codes d'accès. Il est important que le format de code d'accès émis par l'émetteur à distance soit le même format que celui attendu par le récepteur de l'équipement d'actionnement. Un code d'accès standard peut, par exemple, comprendre 20 chiffres qui restent in- changés jusqu'à ce que l'équipement d'ouverture de porte soit reprogrammé. Il existe potentiellement un problème de sécurité avec les codes fixes, car un voleur éventuel pourrait intercepter et enregistrer un code d'accès fixe stan- dard. Ensuite, le voleur pourrait revenir avec un émetteur pour produire une copie identique du code enregistré et ouvrir la barrière sans autorisation. Certains systèmes d'ouverture de porte de garage ont commencé à utili- ser, pour actionner le système, des codes qui changent après chaque émis- sion. Ces codes variables, appelés codes roulants, sont créés par l'émetteur et exécutés par le récepteur, tous deux fonctionnant selon le même procédé pour prédire un code d'accès suivant devant être envoyé et reçu. Les codes rou- lants constituent une amélioration dans la sécurité des équipements d'action- nement de porte de garage, mais, toutefois, ils sont plus coûteux que les sys- tèmes à code fixe, et la plupart des équipements existants ne sont pas du type à code roulant. De plus, comme l'émetteur et le récepteur identifient (prédisent) chacun indépendamment le code suivant en fonction du dernier code, il est possible que l'émetteur et le récepteur se désynchronisent mutuel- lement, ce qui nécessite une reprogrammation du récepteur. Les acheteurs d'un nouvel équipement peuvent ne pas imaginer qu'ils né- cessitent la sécurité accrue d'un système à code d'accès roulant, et peuvent posséder des émetteurs à code d'accès fixe plus vieux qu'ils aimeraient utiliser avec le nouvel équipement. La décision d'acheter des systèmes à code fixe pourrait également être encouragée par le souci concernant la reprogramma- tion périodique éventuelle qui pourrait être nécessaire avec les systèmes à code d'accès roulant. Par conséquent, les consommateurs peuvent désirer acheter un système à code d'accès fixe. Lorsque le temps passe, la sécurité accrue d'un système à code roulant peut les attirer. La seule possibilité de changement qui leur est offerte est d'acheter un nouvel équipement à code d'accès roulant. Il existe un besoin pour un agencement d'actionnement de porte de garage qui soit capable de réagir aux codes d'accès fixes aussi bien que roulants sur la commande du propriétaire. Si un tel agencement était dis- ponible, le propriétaire se contenterait simplement de reprogrammer le récep- teur de son système, et, éventuellement, de se procurer de nouveaux émet- teurs de code, pour obtenir la sécurité des codes d'accès roulants. RESUME DE L'INVENTION Cette exigence est satisfaite par la présente invention, qui permet égale- ment une avance technique. Un récepteur d'actionnement de porte de garage met en oeuvre un sous-programme pour réagir aux codes d'accès roulants et un sous-programme pour réagir aux codes d'accès fixes. Chaque sous- programme de code d'accès, lorsqu'il est mis en oeuvre avec d'autres sous- programmes et l'appareil du système, est capable d'apprendre et de répondre de façon appropriée aux codes d'accès reçus du type qui lui est associé. Un dispositif d'apprentissage de code d'accès du récepteur autorise un mode de fonctionnement d'apprentissage de type de code d'accès, dans lequel le type du premier code d'accès reçu identifie lequel des deux sous-programmes de code d'accès est exécuté jusqu'à la validation suivante du mode d'apprentis- sage de code d'accès. Par exemple, lorsque l'apprentissage de type de code d'accès est validé et qu'un code fixe est tout d'abord reçu et appris, le sous- programme de code d'accès fixe est exécuté pour commander le dispositif d'ouverture et pour apprendre de nouveaux codes d'accès fixes. Lorsque l'on entre à nouveau dans le mode d'apprentissage de type de code d'accès et qu'un code d'accès roulant est tout d'abord reçu et appris, le sous-programme de code d'accès roulant est exécuté pour commander le dispositif d'ouverture et pour apprendre de nouveaux codes d'accès roulants. Par conséquent, le récepteur peut fonctionner soit en récepteur de code d'accès roulant soit en récepteur de code d'accès fixe grâce à l'entrée du mode d'apprentissage de type de code d'accès et à l'émission d'un type approprié de code d'accès au récepteur. 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'appareil 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 11 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 15 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 17A et 1 7B sont des organigrammes du commencement de la réception de code radio par le contrôleur; les figures 18A à 18D sont des organigrammes de la réception des bits de code composant des mots de code complets; les figures 1 9A à 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 sous-programme 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 mobile ou un dispositif d'actionnement de porte de garage est globalement repré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'éten- dant à partir de celle-ci avec un chariot libérable 20 solidaire comportant un bras 22 s'étendant vers une porte de garage à panneaux multiples 24 posi- tionnée pour se déplacer le long d'une paire de rails de porte 26 et 28. Le sys- tè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 externe 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 an- tenne 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 op- tique 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 com- prend 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écepteur à super- ré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 également couplé par un bus 86 à une mémoire rémanente 88, cette mémoire rémanente stock- ant des codes d'utilisateur, et d'autres données numériques concernant le fonctionnement de l'unité de commande. Un détecteur d'obstacle 90, qui comprend l'émetteur 42 et le détecteur d'infrarouges 46, est couplé par l'in- termédiaire d'un bus de détecteur d'obstacle 92 au micro-dispositif de com- mande. Le bus de détecteur d'obstacle 92 comprend des lignes 44 et 48. Le commutateur mural 39 (figure 6) est connecté par l'intermé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 connec- té à un moteur à courant alternatif 106 comportant un arbre de prise de force 108 couplé à la transmission 18 du dispositif d'actionnement de porte de ga- rage. Un tachymètre 1 10 est couplé à l'arbre 108 et délivre un signal de t/min sur une ligne de tachymètre 1 12 au micro-contrôleur 84; le signal de tachy- mètre est indicatif de la vitesse de rotation du moteur. L'appareil comprend également des commutateurs de limite haute 93a et des commutateurs de limite basse 93b qui détectent respectivement 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 130 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 133. 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- 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 principale de l'émetteur 30 est effectuée par un micro-contrôleur 678 qui est connecté 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 antenne 683 connectée à celui-ci. Lorsque le commutateur 675 est fermé, l'alimentation 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 connecté. 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 conduc- teur 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 125C0 113 à 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 commutateur 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 micro-contrôleur est mise au niveau haut. De façon similaire, lorsqu'un commutateur 677 est fermé, l'ali- mentation est délivrée par l'intermédiaire d'une diode 619 au cristal 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 depuis 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 fonctionnement 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 collecteur 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 inductance 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 pas- sant, provoquant la délivrance en sortie d'un signal sur l'antenne 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) à 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 cel- les-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'émetteur lors- qu'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 roulant 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 O 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 fonctionnement pour un 1 et de 0,5 milliseconde de temps d'arrêt et de 1, 5 millisecondes 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 assemblés en deux tra- mes, 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 es- sayé 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 expi- ré. 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 silence 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 alternance. Le compteur de bits est essayé pour déterminer s'il est mis à une valeur égale à 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 es- sayé 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 alimenté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 exem- ple 701, est enfoncée, le courant circule à travers des résistances connecté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 émetteur 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 715 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 LO à 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 # 713. Lorsque l'une des touches 711 à 713 est enfoncée, le microprocesseur 715 génère un code (trinaire) à 40 bits qui est envoyé par l'intermédiaire de conducteurs 722 à l'étage émetteur 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 toute- fois 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 à 713 qui a déclenché l'émission. La figure 1 1 représente le code émis par l'émetteur à clavier 34. Comme avec la précédente émission de code rou- lant, 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 numéro de série de l'unité, et, dans ceux-ci, les bits 746 à 748 représentent le type d'émet- teur. Dans certains émetteurs 34, il n'y a ni touche * ni touche #. Dans cette situation, les touches * et # sont respectivement simulées par un enfonce- ment simultané de la touche 9 et de la touche d'entrée ou de la touche 0 et de la touche d'entrée. La figure 12 est une description de circuit d'un émetteur de code fixe 31 qui comprend un contrôleur 155, une paire de commutateurs 113 et 115, une pile 114 et un étage émetteur HF 161 du type décrit ci-dessus. Le contrôleur 155 est un dispositif relativement simple et peut être un circuit logique à combinaison. Le contrôleur 155 mémorise en permanence 19 bits (trinaires) du code fixe à 20 bits (figure 13) devant être émis. Lorsqu'un commutateur, par exemple 113, 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 1 55 lit le 1 logique sur le conducteur 122 et génère un code (trinaire) à 20 bits à partir des 1 9 bits mémorisés en permanence dans le contrôleur et de l'état du commutateur 113. Le contrôleur émet alors le code à 20 bits vers l'étage HF 161 par l'intermédiaire d'une résistance 159 et d'un conducteur 157. Le code est ainsi transmis au récep- teur 80. Le contrôleur 155 comprend un oscillateur interne régulé par un cir- cuit 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 syn- chronisation 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 synchronisation du deuxième mot est actif pendant approximativement 3 millisecondes. Le commutateur mural 39 est montré en détail en figure 6, avec une par- tie du micro-contrôleur 85 et des circuits d'interrogation/détection intercon- nectant les deux. Le commutateur mural 39 comprend trois commutateurs 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 con- nectés en série entre les conducteurs 39a. Le micro-contrôleur 85 interroge 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 organi- gramme 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 commutateur de com- mande 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 niveau du conducteur 385 est haut, le micro- contrôleur 85 attend approximativement 2 millisecondes (étape 816) et essaye à nouveau (étape 818) le niveau 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 condensateur 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 millisecondes, le commutateur d'inuti- lisation 39c a été fermé (étape 826) et, autrement, si la tension sur les bro- ches 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 peuvent être reçus par le contrôleur 70 au niveau de l'antenne 32 et délivrés au récep- teur 80. Le récepteur 80 comprend une paire d'inductances 170 et 172 et une paire de condensateurs 174 et 176 qui assurent une adaptation d'impédance entre l'antenne 32 et les autres parties du récepteur. Un transistor NPN 178 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 200, couplé entre le collecteur du transistor 178 et un condensateur de couplage 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 accordé 224 comportant une inductance variable 226 connectée en parallèle avec un con- densateur 228. Les signaux venant du circuit accordé 224 sont délivrés sur une ligne 230 à un condensateur de couplage 232 qui est connecté à un tran- sistor 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étro- action 248. L'émetteur est également couplé au condensateur de rétroaction 246 et à un condensateur 250. Une inductance de lissage 256 délivre un po- tentiel de masse à une paire de résistances 258 et 260 ainsi qu'à un conden- sateur 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 inductance 264 à l'émetteur du transistor 234. Le signal de sortie du transistor est délivré vers I'extérieur sur une ligne 212 vers un condensateur électrolytique 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 passebande 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 alimenté par l'alimentation 72 et est également commandé par le commutateur mural 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'ex- trémité de tête 12. Le micro-contrôleur 85 lit périodiquement le commutateur 151 pour déterminer s'il a été enfoncé. Comme décrit ci-après, le commuta- teur 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 151 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 secondes 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 derniè- 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 l'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 112. Les impulsions sur le conducteur 112 sont balayées de façon répétée par le micro-contrôleur 85 afin d'identifier si le moteur 106 tourne, et, si c'est le cas, à quelle vitesse se produit la rota- tion. 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 maximal 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écani- que à 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 micro- contrôleur 85. Lorsque la porte est dans sa position basse maximale, le com- mutateur 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 P00 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 P00, P01 et P02 est associée à un bit cartographié 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 asso- cié à la broche P01 qui rendra passant le transistor 105a, excitant le relais b, 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 lu- mière 136. L'état de la lumière 81 peut être déterminé en lisant le bit associé à 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 com- mande de mémoire aient été effacées en réponse à un enfoncement pendant 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 roulants. Par * conséquent, le système entre dans un mode d'essai pour lui permettre de re- cevoir 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, jus- qu'à ce qu'un code du type attendu soit reçu. Une courte pression sur le commutateur 151 après la pression de 6 secondes ou plus provoque l'entrée d'un mode d'apprentissage. Lorsqu'un mode est reçu correctement dans le mode d'essai, et que l'appareil est dans un mode d'apprentissage, 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 concordance 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 association avec la partie de code fixe mémorisée devant être utilisée pour la recherche 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 additionnels 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étermi- né 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écision 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éci- sion 50 identifie le mode d'essai, les étapes 52 à 60 sont effectué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électionné. 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 analy- sé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 nu- mé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ériques 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 180 est effectuée pour identifier quel est le mode actuellement sélectionné. Lors- qu'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 synchronisation à 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 1 92, 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 bro- ches P32 et P33. Etant donné le format de largeur d'impulsion des signaux codés, le micro-contrôleur maintient actifs ou inactifs des minuteurs pour me- surer 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 inactif et effec- tuer le sous-progamme d'effacement de radio. Ensuite, on détermine dans l'étape 550 si la transition était un front montant ou descendant. 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 minu- teur 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 millisecondes. 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 inactif est dans la plage de l'étape 560, l'étape 566 est effectuée pour déterminer si le minu- teur actif est inférieur à 4,5 millisecondes. Lorsque le minuteur 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 compteur de bits est incrémenté dans l'étape 570 et une étape de décision 572 est ef- fectué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éter- mine 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 synchronisa- tion, une étape de décision 578 est effectuée pour déterminer si deux impul- sions 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 re- tour est effectué dans l'étape 582. Autrement, lorsque deux impulsions de synchronisation successives égales sont détectées dans l'étape 578, l'indica- teur de code sans clef fixe est établi dans l'étape 580 et un retour 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 "o", 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 individuels d'un mot de code reçu. Dans l'étape 302, la longueur de la période active 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 effectué. Lorsque l'étape 302 indique que la période active était inférieure à 5, 16 milli- secondes, une étape 306 est effectuée pour déterminer si la période inactive est inférieure à 5,16 millisecondes. Si elle est inférieure, l'étape 304 est effec- tué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 va- leurs 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 infé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 identifie 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éter- miner 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 fonction dans l'étape 336, et le processus passe à l'étape 338 pour la mémorisation sous la forme d'un bit de code fixe. Lorsque l'étape 334 indique que le bit ac- tuellement reçu n'est pas un bit de fonction, le processus passe directement à l'étape 338. Après l'étape de mémorisation 338, le processus pour la récep- tion 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 compteur de bits aux valeurs de seuil établies pour le type de code attendu. Lorsque moins d'un mot a été reçu, le processus passe à l'étape 342 afin d'attendre d'autres bits. Lorsqu'un mot complet a été reçu, le processus passe à une étape 344 o le minuteur 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écision 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'inutilisation 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 autorisés à actionner le sys- tè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é. Lorsqu'aucun indicateur d'in- utilisation n'a été établi, le processus passe à une étape 362 o il est détermi- né si un mode d'apprentissage est établi. Les modes d'apprentissage peuvent être établis par différents types d'interaction de l'opérateur. Le commutateur de programme 151 peut être enfoncé. Egalement, par préprogrammation, le microprocesseur 85 reçcoit l'instruction d'interpréter l'enfoncement et le main- tien des boutons de commande et de lumiè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 de- mandé. 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 iden- tifie qu'un code roulant est attendu, une étape 752 est exécutée pour déter- miner si le code roulant actuel correspond au code roulant passé. Si aucune 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é. Lors- que 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 re- gistre 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'appren- tissage a été demandé par la commande murale 39. Dans le cas contraire, 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éterminer si des codes fixes ou roulants sont attendus. Lorsque des codes fixes sont at- tendus, 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. Lorsque 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 commuta- teurs d'inutilisation et de commande sont maintenus. Si c'est le cas, le pro- cessus 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'inutilisation 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 systè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 processus passe à une étape 784 pour établir les seuils actuels en mémorisant un pointeur vers I'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'apprentis- sage 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'ouver- ture/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 touche autre que la touche d'ouverture est enfoncée. Si c'est le cas, le processus passe au cadre 789, et, si ce n'est pas le cas, le processus passe au cadre 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. Lorsque 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émo- risés dans la mémoire rémanente 88. Lorsqu'aucune concordance n'est détec- té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 rou- lants 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 roulant 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émanente, et le processus passe à une étape 422, qui identifie si les bits de fonction du code reçu iden- tifient un signal de commande de lumière. Lorsqu'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 identifié 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'ouverture/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, lors- que 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é enfon- cé, 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écepteur de code roulant. Après l'étape 456, on entre dans une étape 458 pour identi- fier 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 effec- tuée pour identifier si la partie d'entrée d'utilisateur du code reçu correspond à 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. Lorsque 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 temporaire 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'actionne- ments (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. Au- cune remise à jour spéciale n'est nécessaire pour des mots de passe temporai- res 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écu- té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 effec- tuée pour rejeter le code et sortir. Lorsque la touche d'entrée a été utilisée, une étape 486 est effectuée pour déterminer si le code d'entrée d'utilisateur 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 tem- poraire 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étec- té dans l'étape 458, le processus passe à une étape 481 o le code entré par I'utilisateur est vérifié pour voir s'il dépasse 255. Il s'agit là d'une limite arbi- traire de 255 actionnements ou de 255 heures d'accès temporaire. Lorsque le code entré par l'utilisateur dépasse 255, il est rejeté dans l'étape 483. Lors- que le code entré par l'utilisateur est inférieur à 255, une étape 485 est effec- tuée pour identifier quelle touche a été utilisée pour émettre 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é utilisé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 enre- gistré 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 em- placement de mémoire est comparé. Si la dernière mémoire a été comparé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 co- des 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 empla- cement 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 comp- teur 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 nombres 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 lumineux dans le dispositif de protection 90 et provoquent l'absence d'une impulsion d'obstruction de 10 millisecondes sont rapidement détectées. Lorsque le mi- nuteur 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 éta- bli. Si l'indicateur de rupture a été détecté dans l'étape 906, le processus 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 mi- nuteur 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 millise- condes depuis qu'un code de radio valide a été reçu. Si plus de 500 millise- condes 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 protection est reçue par le micro-contrôleur 85. Initialement, une étape 920 est effec- tué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'infrarouges est remis à zéro. Ce sous-programme se termine par la remise à zéro du minu- teur 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 bou- cle 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 secon- des, 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 éta- blis 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 de blocage d'in- frarouges n'est pas établi. Cette condition est indicative de la première impul- sion de protecteur manquée. Si la détermination dans l'étape 936 est néga- tive, un retour est effectué. Si l'étape 936 ne détecte que l'indicateur de rup- ture 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 effectué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éter- mine que la limite de descente n'a pas été atteinte, une étape 960 est effec- * tué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'exem- pie, les émetteurs et les récepteurs de la réalisation décrite sont commandé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 I'applicabilité de la présente invention. REVENDICATIONS 1. Récepteur pour l'apprentissage de codes d'accès du type code fixe et de codes d'accès du type code roulant et la réponse à ceux-ci, caractérisé en ce qu'il comporte: des moyens d'entrée (32, 39, 151) réagissant à l'interaction d'un opéra- teur pour valider un mode de fonctionnement d'apprentissage de type d'accès du récepteur; un contrôleur (70, 84, 85) comprenant un sous-programme de code d'accès fixe pour commander l'apprentissage de codes d'accès du type code fixe et la réponse à ceux-ci et un sous-programme de code d'accès roulant pour commander l'apprentissage de codes d'accès du type code roulant et la réponse à ceux-ci; un récepteur (80) pour recevoir un code d'accès émis des moyens d'identification (85) fonctionnant lorsque le mode d'appren- tissage de type d'accès est validé, pour identifier si un code d'accès du type code fixe ou un code d'accès du type code roulant a été reçu par le récepteur (80); et des moyens (84) réagissant aux moyens d'identification (85) de façon à faire exécuter par le contrôleur (70, 84, 85) le sous-programme de code d'ac- cès qui correspond au type de code d'accès identifié par les moyens d'identifi- cation (85) jusqu'à ce que le mode d'apprentissage du type d'accès soit à nouveau validé. 2. Récepteur selon la revendication 1 caractérisé en ce que les moyens d'identification (85) comprennent un jeu de modèles d'émission de code rou- lant pour l'identification de codes d'accès du type code roulant et un jeu de modèles d'émission de code fixe pour l'identification de codes d'accès du type code fixe. 3. Récepteur selon la revendication 2, caractérisé en ce que les moyens d'identification (85) évaluent les codes reçus par les moyens de réception (80) en fonction du jeu de modèles de code roulant et du jeu de modèles de code fixe pour identifier le code reçu. 4. Récepteur selon la revendication 3, caractérisé en ce que le contrôleur (70) et les moyens d'identification (85) sont réalisés grâce à l'utilisation d'un micro-contrôleur programmable. 5. Récepteur selon la revendication 3, caractérisé en qu'il comporte un emplacement de mémorisation de type de code d'accès (88) pour mémoriser une indication du type de code d'accès qui a été appris, et en ce que les moyens d'entrée (32, 39, 151) comprennent des moyens (151) pour effacer le contenu de l'emplacement de mémorisation de type de code d'accès.