joi, 5 mai 2011

Problema 1. Monitorizarea stării unui led.

Expunerea problemei: Să se elaboreze un dispozitiv pe baza unui MCU, care va monitoriza prin intermediul unui buton, starea unui led. La apăsarea butonului, ledul va trebui să lumineze, dar la înlăturarea acţiunii, ledul va trebui să se stingă.
Deci, în cadrul sistemului ce urmează a fi proiectat, unui MCU este nevoie de conectat un led şi un buton de comandă. Pentru controlul ledului este utilizat portul C şi pentru controlul butonului, este folosit portul B.
Prin rezistanţa R1, conectată portului C (intrare), la MCU se aplică „+” tensiunii de alimentare ce corespunde nivelului „1” logic, fiind în stare deconectată (deschis).  La închiderea contactului nivelul de tensiune devine „0” logic. Astfel citind valoarea semnalului la ieşire, se poate determina momentul cînd butonul este apăsat.
Pe lîngă elementele de bază, schema dispozitivului mai include:
Q1 – rezonatorul de cuarţ. Acesta asigură lucrul generatorului de tact intern. Rezonatorul este conectat prin intermediul condensatoarelor C1 şi C2.
Schema electrică:
          Algoritmul:
  Setări iniţiale:
  1. Iniţializarea Stivei;
  2. Setarea portului C ca Ieşire;
  3. Aplicarea portului C semnalului corespunzător  „1” logic (stingerea ledului);
  4. Setarea portului B drept intare;
  5. Conectarea  rezistenţelor de pull-up ale portului C;
          Ciclul de bază:
  1. Citirea stării portului B;
  2. Dacă valoarea aplicată la intrare este egală cu „1” logic, se va efectua stingerea ledului;
  3. Dacă valoarea aplicată portului B este egală cu „0” logic, se va efectua aprinderea ledului;
  4. Trecerea în punctul de start al ciclului de bază.