1. Lorsque l'unité centrale de traitement (CPU) traite quelque chose, une demande d'urgence survient du monde extérieur, obligeant la CPU à suspendre le travail en cours et à passer au traitement de l'événement d'urgence. Après le traitement, retournez à l'endroit interrompu d'origine et continuez. . Fonctionnant à l'origine, un tel processus était appelé interruption. 2. Habituellement, la source d'interruption est mise en file d'attente en fonction de la priorité de la source d'interruption et la source de demande d'interruption de l'événement le plus urgent est traitée en premier, c'est-à-dire que chaque source d'interruption est stipulée pour avoir un niveau de priorité. La CPU répond toujours en premier à la demande d'interruption avec la priorité la plus élevée. 3. Le microcontrôleur C51 dispose de 8 sources de requêtes d'interruption :
1. Interruption du temporisateur T0
Comme le montre la figure : Les interruptions nécessitent également des registres de configuration. Il existe deux types de registres. Le premier est le registre de contrôle d'interruption de bits (IE et XICON) et le second est le registre de contrôle de priorité. Ici nous étudions uniquement une interruption du temporisateur T0. Pour utiliser l'interruption du temporisateur T0 :
ET0 = 1;ET0为定时器T0的中断开关,为1时打开中断
EA = 1; EA为中断源的总开关。
1
2
Une fois le temps défini écoulé, exécutez le programme dans la fonction d'interruption. Alors, comment savoir quelle fonction est la fonction d'interruption ? — Interroger le numéro d'interruption (les numéros d'interruption générés par différentes sources d'interruption sont différents)
2. Cas : Utilisation de l'interruption de la minuterie T0 pour réaliser l'allumage et l'extinction de la lumière à intervalles de 1 s
Lorsque l'interruption est activée, la fonction principale sera sautée toutes les 10 ms et le programme de la fonction d'interruption sera exécuté.
Lorsque les 10 premières ms de synchronisation arrivent, exécutez la fonction d'interruption, réinitialisez la minuterie pendant 10 ms, cnt = 1, et la lumière est toujours éteinte.
Lorsque les secondes 10 ms de la minuterie arrivent, exécutez la fonction d'interruption, réinitialisez la minuterie sur 10 ms, cnt = 2, et la lumière est toujours éteinte.
…
Lorsque la 100ème 10 ms de la minuterie arrive, exécutez la fonction d'interruption, réinitialisez la minuterie pendant 10 ms, cnt = 100 et la lumière s'allume.
De cette façon, les intervalles d'activation et de désactivation de 1 s sont atteints.