5.06.2013
Mikronapędy w systemach komputerowych
Laboratorium 5:
Krzysztof Wroński
Marcin Zalepa
L16
1. Wstęp
Celem ćwiczenia było stworzyć program sterujący pracą silnika prądu stałego przy użyciu specjalnych mikrokontrolerów. Dodatkowo mieliśmy wykorzystać kod z 2 laboratorium, który obsługiwał klawiaturę oraz wyświetlacz LCD.
2. Program napisany na zajęciach:
3. Wniosek:
Znaczną cześć kodu jest z 2 laboratorium. Odpowiada za obsługę klawiatury i wyświetlanie na wyświetlaczu. Dzięki temu mogliśmy wpisywać z klawiatury wartość współczynnika wypełnienia wyrażoną w procentach. Zakres współczynnika musiał zawierać się od 15% do 99%.
#include<reg515.sfr>
#include<lcd.h>
int k = 0;
unsignedchar znak, znak_poprzedni;
unsignedint liczba = 0;
int pomocnicza = 0;
int pomocnicza1= 0;
int i;
void main ()
{
lcd_init();
T2CON = 1;
CCEN = 8;
CRCH = 0xFF;
CRCL = 0;
TH2 = 0xFF;
CCH1 = 0xFF;
CLK = 1;
P3 = 0xDF;
T2R1 = 1;
TL2 = 0;
CCL1 = 255*15/100;
out_instr(0x1);
out_char(1+48); out_char(5+48); out_char(37);
pomocnicza = 1;
while (1)
{
if (znak >= '0' && znak <= '9')
{
if (pomocnicza == 1)
{
out_instr(0x1);
pomocnicza = 0;
liczba = 0;
pomocnicza1= 0;
}
out_char(znak);
liczba = liczba*10 + (znak -'0');
for(i=0;i<20000;i++);
}
if (znak == 'e' && pomocnicza1== 0)
{
pomocnicza = 1;
pomocnicza1= 1;
znak = get_kb();
if (znak != '\0' && znak_poprzedni == '\0')
{
if (liczba < 15 )
{
CCL1 = 255*15/100;
out_instr(0x1);
out_char(1+48); out_char(5+48); out_char(37);
}
if (liczba > 99)
{
CCL1 = 255*99/100;
out_instr(0x1);
out_char(9+48); out_char(9+48); out_char(37);
}
if ((liczba >= 15) && ( liczba <= 99))
{
out_char(37);
CCL1 = 255*liczba/100;
}
}
}
znak_pop = znak;
}
}