Komputer do pomiaru czasu!.

Posted 21st Listopad 2013

Czy nie wystarcz zegarek lub stoper?. Ale jak stoperem zmierzyć czas otwarcia przysłony aparatu fotograficznego (1/30 —1/2000 s)? Jak zmierzyć czas swobodnego spadku kulki stalowej spuszczonej z wysokości 30 cm na podłoże? Jak sterować złożonym procesem technologicznym, gdzie trzeba jednocześnie kontrolować i sterować wieloma parametrami? Można też bardzo łatwo zamienić wielkości nieelektryczne (pojemność, temperaturę, ciśnienie) na czas i wprowadzić je do komputera. W systemach mikroprocesorowych czas można mierzyć za pomocą specjalizowanych układów scalonych (np. 8253) lub taniej programowo. Niezależnie od metody, pomiar czasu polega na zliczaniu impulsów stabilnego źródła częstotliwości podczas trwania mierzonego zjawiska. W przypadku specjalizowanych układów wzorcem jest najczęściej odpowiednio podzielona częstotliwość generatora zegarowego systemu. Więc co może być wzorcem przy programowym pomiarze czasu? Też generator zegarowy, ale pośrednio. Otóż każda instrukcja wykonywana przez mikroprocesor trwa odpowiednią liczbę taktów generatora zegarowego. Wykonanie instrukcji INC A trwa 4 takty, a LD BC, (nn) trwa 20 taktów.
Zliczając liczbę obiegów programowej pętli, w której sprawdzany jest stan mierzonego zjawiska (istnienie niskiego lub wysokiego poziomu logicznego) i mnożąc ją przez czas obiegu jednej pętli uzyskujemy czas trwania zjawiska. Zasada program do pomiaru czasu trwania dodatniego, impulsu doprowadzonego do bitu 0 portu PA układu 8255. Zaczyna się on inicjalizacją układu 8255. Potem zerowany jest licznik pętli i blokowane są przerwania. W pętli CZEK1 (linie 150–180) program czeka na zakończenie poprzedniego impulsu. W pętli CZEK2 program czeka na rozpoczęcie pomiaru dodatniego impulsu i w chwili pojawienia się go rozpoczyna się właściwy pomiar. Najpierw inkrementowany (zwiększany) jest licznik pętli (rejestr BC). Potem do rejestru DE wpisywana jest liczba obiegów pętli PĘTLA (linie 290–320). Liczba obiegów tej pętli określa dokładność pomiaru. W liniach 350–370 program sprawdza, czy jeszcze trwa mierzony impuls i w przypadku jego zakończenia następuje odblokowanie przerwań i powrót do BASIC-a. Instrukcja NOP w linii 340 służy do wydłużenia czasu trwania głównej pętli POMIAR. Procedura BREAK wywoływana w liniach 150 i 200 umożliwia powrót do BASIC-a w przypadku braku impulsu. Program ten jest wywoływany przez program w BASIC-u z listingu nr 2. Umożliwia on wybór pomiaru impulsu o poziomie niskim lub wysokim, oraz wybór dokładności pomiaru. Układ służący do pomiaru czasu otwarcia migawki w aparacie fotograficznym. Ustawiamy silne źródło światła przed aparatem fotograficznym z wyjętym obiektywem. Umieszczamy fotorezystor na miejscu błony fotograficznej i ustawiamy tak pokrętło potencjometru 47 kOhm by komputer odczytywał stan niski przy zasłoniętym fotorezystorze i stan wysoki przy oświetlonym. Można to zrobić testując zerowy bit portu PA instrukcją IN. Na ekranie zostanie wyświetlony czas otwarcia migawki. Układ może też służyć jako bramka świetlna zliczająca przechodzące osoby lub spadające przedmioty albo informować o zbliżaniu się niepowołanych osób. Przedstawiony układ reaguje prawidłowo na szybkie zmiany natężenia oświetlenia. W innym przypadku należy zastosować bramkę logiczną z przerzutnik