L05 Malec Marcola Ławniczek Mikronapedy Lab4 spr(1)


Politechnika Rzeszowska im. Ignacego Aukasiewicza
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: Data wykonania ćwiczenia:
Aukasz Malec
Piotr Aawniczek 25/04/2016
Aukasz Marcola
1. Cel ćwiczenia.
Celem ćwiczenia było napisanie programu, który steruje silnikiem z komutacją elektroniczną.
2. Program napisany na laboratorium.
#include
#include
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];
}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')
{
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];
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
23 ROZ warunki i tryb postępowania w spr rozbiórek obiek
kryształy spr 3 bez filtra Mo
spr MIBM
Lab4 1 R4 lab41
Hipua lab3 spr
pwsz labor spr korozja doc
spr 5 1 8 transf bryl male
Spr[1] kompetencji kl III
spr
SPR rol 2
mikronapedy w systemach komputerowych
HiPUA lab4

więcej podobnych podstron