background image

 

~K. 

Data wykonania: 13.04.2010 

Data oddania: 27.04.2010 

Mikronapędy w systemach komputerowych 

Laboratorium 

Ćwiczenie 3 

 Algorytm komutacji silników skokowych ze sprzężeniem zwrotnym. 

2 FDI                          Grupa: L-04 

 

 

Kod programu 

#include

 

<reg515.sfr> 

#include

 

<lcd.h> 

 

unsigned

 

char

 tablica[4]={9,10,6,5};  

// komutacja 1/2 

unsigned

 

char

 x;  

// znak wpisywany z klawiatury 

int

 licznik, czekaj;  

// licznik "przechodzi" po tablicy 
// czekaj jest argumentem funkcji opznienie

 

 

void

 opoznienie(

int

 x){ 

  

// funkcja opozniajaca 

  

int

 i; 

  

for

 (i=0;i<x;i++); 


_interrupt 0 

void

 int_0(

void

){ 

  P1=tablica[licznik++]; 
  

if

 (licznik == 4) 

    

// ustawienie licznika na 0 po przejsciu wszystkich elementow tablicy 

    licznik=0; 
  opoznienie(czekaj); 

int

 main(){ 

  init(); 
  EAL=0;      
  EX0=1; 
  IT0=1; 
  

while

(1){ 

    x = get_char(); 
    

if

 (x == 

'e'

){ 

      czekaj=1000; 
      EAL=1; 
 

// uruchomienie silnika 

      P1=9; 
 

  }    
  

return

 0; 

}  

 

 

 

background image

 

Wnioski 

Powyższy program uruchamia silnik, niestety nie udało nam się poprawnie napisać kodu dzięki któremu silnik 

hamowałby po wykonaniu zadanej liczby obrotów. Pomimo dołożenia wszelkich starań nie potrafiliśmy znaleźć 

błędów. Przy implementowaniu należy pamiętać, by wykorzystać komutację ½ bądź ¼.