L05 Malec Marcola Ławniczek Mikronapedy Lab4 spr(1)

background image

Politechnika Rzeszowska im. Ignacego Łukasiewicza

Mikronapędy w systemach komputerowych

Rok studiów:

IIEF-DI

Grupa laboratoryjna:

L05

Numer ćwiczenia:

4

Temat ćwiczenia:

Programy sterujące pracą silników z komutacją elektroniczną

Wykonali:

Łukasz Malec

Piotr Ławniczek

Łukasz Marcola

Data wykonania ćwiczenia:

25/04/2016


1. Cel ćwiczenia.


Celem ćwiczenia było napisanie programu, który steruje silnikiem z komutacją elektroniczną.

2. Program napisany na laboratorium.

#include<reg515.sfr>

#include<lcd.h>

void

czekaj(); //deklaracja funkcji opóŸniaj¹cej

//_interrupt 5 void pt2(void);

unsigned int

l;

unsigned char

x;

int

freq=0;

int

i=1,j;

int

li=0;

int

limp;

int

kom[3][8]={{8, 2, 4, 1, 8, 2, 4, 1}, {9, 10, 6, 5, 9, 10, 6, 5}, {8,

10, 2, 6, 4, 5, 1, 9}};

int

krok=0, komu=0, strona=1;

int

p1[6]={0xDE,0xDB,0xF9,0xED,0xE7,0xF6}; //tablica stanów tranzystorów

int

hall[6]={0x03,0x01,0x05,0x04,0x06,0x02}; // tablica stanów po³o¿enia

wirnika

_interrupt 5 void

int_T2(void){

TF2=0;

for(j=0;j<5;j++)

{

if((P4&0x07)==p1[j])

{

krok=j;

}

}

if(strona)

{

krok++;

if(krok>5){krok=0;}

P1=p1[krok];

background image

}else

{

krok-- ;

if(krok<0){krok=5;}

P1=p1[krok];






}

}

void

main()

{

T2I0=1;

T2R1=1;

EAL=1;

ET2=1;

l=0;

lcd_init(); //funkcja inicjalizacji wyŸwietlacza

out_instr(0x01); //rozkaz do sterownika kasuj¹cy dane

//i ustawiaj¹cy kursor pod adres 0

while(1)

{

x=get_kb(); // sczytywanie znaku do zmiennej

czekaj();

if(x!='\0') //warunek wciŸniêcia dowolnego klawisza

{

if(x>='0'

&& x<='9') //warunek wciŸniêcia cyfry

{

out_char(x); // wyŸwietlenie znaku na ekranie

li=(li*i)+(x-48); //zczytywanie czestotliwosci z klawiatury

i=10;

}

}

if(x=='e') //warunek wciŸniêcia klawisza enter

{

if((li<=600)&&(li>=17)){

freq=li;

limp=1000000/freq;

CRCL=65536-limp;

CRCH=(65536-limp)>>8;

while(1)

{

x=get_kb();

/*if(x=='g')

{

if(komu==2)

komu=0;

else

komu++;

}

if(x=='d')

background image

{

if(komu==0)

komu=2;

else

komu--;

} */

if(x=='l')

strona=0;

if(x=='p')

strona=1;

}}

else{

li=0;

i=1;

out_instr(0x01);

czekaj();

x=get_kb();

while(x=='\0') // oczekiwanie na nowy kod
programu po

{ // wyŸwietleniu wczeŸniej podanego
kodu

x=get_kb();

}

}

/** out_instr(0xC0); //ustawienie kursora w pierwszym polu nowej linii

out_char(li); // wypisanie znaku

czekaj(); // u¿yta funkcjia opóŸniaj¹ca

x=get_kb(); // "get_kb" oraz pêtla "while" realizuj¹

while(x=='\0') // oczekiwanie na nowy kod programu po

{ // wyŸwietleniu wczeŸniej podanego kodu

x=get_kb();

}

out_instr(0x01); // ustawia kursor

li=0; // ustawienie pocz¹tkowych wartoŸci zmiennych

i=1; **/

}

}

}

void

czekaj() //definicja funkcji opóŸniaj¹cej

{

int

ieo;

for(ieo=0;ieo<15000;ieo++){}

}

/*_interrupt 5 void int_T2(void){

TF2=0;

if(strona){

if(krok>7)

krok=0;

P1=kom[komu][krok];

krok++;

}

else{

if(krok<0)

krok=7;

P1=kom[komu][krok];

background image

krok--;

}

}

*/

3. Wnioski.


Silnik prądu stałego z komutacją elektroniczną ma najczęściej trzy uzwojenia

umieszczone na stojanie, zasilane przez trzygałęziowy mostek. Tranzystory mostka sterowane
są poprzez bity zmiennej P1. Na laboratorium należało napisać program, który będzie
odpowiednio załączał lub wyłączał poszczególne tranzystory. Tranzystor jest załączony, gdy
przypisany mu bit ma wartość 0.

Pierwszym zadaniem było wyznaczenie sposobów komutowania silnika poprzez

określenie wartości poszczególnych bitów zmiennej P1 tak, aby odpowiednio sterować
tranzystorami mostka. Należało uzupełnić tabelę.

Wartości bitów, które wpisane zostały to tabeli były niezbędne, aby poprawnie

zaprogramować załączanie tranzystorów. Realizacja sterowania to podstawianie do zmiennej
P1 wartości bitów zgodnie z powyższą tabelą. Zostało to zrealizowane poprzez obsługę
przerwania.

Program napisany na zajęciach najpierw sprawdza czy wirnik znajduje sie w sektorze

przypisanym do danej kolumny, następnie podstawia odpowiednie wartości dla P1. Pojawia
się też zmienna P4, która sprawdza czy wirnik wykonał zadany obrót. Program umożliwia
wprowadzenie wartości częstotliwości z klawiatury. Program działał poprawnie i został
zaliczony przez prowadzącego.


Wyszukiwarka

Podobne podstrony:
lab4 spr
Nap Lab4 spr
lab4 spr
lab.3, spr 3 Michał Kata Tomasz Kordas L05
lab.4, spr 4 Michał Kata Tomasz Kordas L05
lab.2, spr 2 Michał Kata Tomasz Kordas L05
spr lab4
Lab4
Spr[1] adm i uznanie adm
08 03 KPGO Spr z realizacji
17 Rozp Min Zdr w spr szk czyn Nieznany
Lab4
przetworka spr ostatnie
as spr 5 id 69978 Nieznany (2)
metr spr 5

więcej podobnych podstron