Stare, spr 3, Politechnika Rzeszowska im


Politechnika Rzeszowska im. Ignacego Łukaszewicza

Urządzenia elektryczne w systemach komputerowych

Rok studiów: II FD

Grupa laboratoryjna: L09

Numer ćwiczenia: 3

Temat ćwiczenia:

Algorytmy komutacji silników skokowych ze sprzężeniem zwrotnym

Wykonali:

Ralf Sawa

Dawid Smyka

Mateusz Słabicki

Data wykonania ćwiczenia:

23.04.2009

Kod źródłowy programu napisanego na laboratorium:

0x08 graphic

0x08 graphic

0x08 graphic

Program sporządzony podczas zajęć laboratoryjnych okazał się działać poprawnie, bez żadnych zastrzeżeń, zatem podany tu kod nie zawiera żadnych zmian w stosunku do wersji, którą przedstawiliśmy na końcu zajęć, z wyjątkiem komentarzy.

#include <reg515.sfr>

#include <lcd.h>

unsigned char x;

unsigned int liczba, licznik = 0, licznikC = 0, liczba2 = 0, aaa;

//x -> znak wpisany z klawiatury

//licznikC -> licznik cykli

//aaa -> 'predkosc', liczba petli opozniajacych

//liczba, liczba2 -> liczba wpisana z klawiatury

//licznik -> zmienna do obslugi tablicy P1

void czekaj(unsigned int n); //deklaracja funkcji opozniajacej

unsigned char tablica[4] = {9,10,6,5}; // komutacja ½

_interrupt 0 void int_0(void)

{

P1 = tablica[licznik++];

if(licznik == 4) licznik = 0;

if (EAL == 1) //jezeli silnik jest w ruchu, zliczamy wywolania tego przerwania

{

licznikC++;

}

if (licznikC >= liczba2-200) // zaczynamy hamowac przy 200 obrotach do konca (200 wywolan przed koncem)

//zwiekszajac liczbe wywolan funkcji opozniajacej

{

aaa++;

}

if (licznikC == liczba2) // licznik cykli rowny wpisanej liczbie z

//klawiatury, zatrzymujemy i resetujemy zmienne sterujace

//zatrzymujemy silnik

{

EAL = 0;

liczba2 = 0;

liczba = 0;

aaa = 100;

licznikC = 0;

}

czekaj(aaa);

}

int main()

{

init();

EAL = 0;

EX0 = 1;

IT0 = 1;

liczba = 0;

while(1)

{

x = get_char();

if((x >= 48) && (x <= 57))

{

liczba = 10 * liczba + (x - 48);

put_char(x);

}

if(x == 'e')

{

liczba2 = liczba;

liczba = 0;

aaa=100;

put_instr(0x01); //czyscimy wyswietlacz

EAL = 1; //uruchamiamy silnik

P1 = 9;

P1 = 10; //2 'probne' ruchy silnika

}

czekaj(20000);

}

return 0;

}

void czekaj(unsigned int n) //definicja funkcji opozniajacej

{

int i;

for(i = 0; i < n; i++){ }

}



Wyszukiwarka

Podobne podstrony:
Stare, spr 1, Politechnika Rzeszowska im
Stare, spr 4, Politechnika Rzeszowska im
spr 5, Politechnika Rzeszowska Budownictwo, IBD, Fizyka
Spr. 2 ZEN, POLITECHNIKA Rzeszowska
Katedra Geodezji im, Politechnika Rzeszowska Budownictwo, IBD, Geodezja
8 krokiew ugiecie mn, Budownictwo Politechnika Rzeszowska, Rok IV, Konstrukcje Drewniane, drewno mat
konsystencje, Budownictwo Politechnika Rzeszowska, Rok II, Mechanika Gruntów, Mechanika Gruntów
praca-magisterska-7092, 1a, prace magisterskie Politechnika Krakowska im. Tadeusza Kościuszki
praca-magisterska-7091, 1a, prace magisterskie Politechnika Krakowska im. Tadeusza Kościuszki
POLITECHNIKA RZESZOWSKA 01
Politechnika Rzeszowska Rok aka Nieznany
praca-magisterska-6927, 1a, prace magisterskie Politechnika Krakowska im. Tadeusza Kościuszki
praca-magisterska-6888, 1a, prace magisterskie Politechnika Krakowska im. Tadeusza Kościuszki
sciaga ekonomia i problemy, Politechnika Rzeszowska, Rok I, Semestr 1, Ekonomia

więcej podobnych podstron