Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted by xd ( 12 years ago )
Obliczenie wartości DIVISORA dla 22000 b/s
divisor=CLK/16*1/BAUDRATE=(1,8*〖10〗^6)/16*1/22000=5,11
inicjalizacja 16c550
begin
ustaw(3836HEX,80HEX) - ustawienie trybu programowania częstotliwości
ustaw(3810HEX,6HEX) - wysyłanie młodszego bajtu divisora pod adres 3810HEX = 11100000010000BIN wartości 6HEX = 110BIN
ustaw(3812,0HEX) - wysłanie starszego bajtu pod adres 3812HEX = 11100000010010BIN wartości 0HEX
ustaw(3836HEX,1FHEX) - zaprogramowanie układu 16c550 8b danych 1 bit stopu 1b parzystosci
end
czytaj znak
begin
if (czyatj(383AHEX*1HEX) = 1) - sprawdzenie czy w rejestrze RHR znajduje sie odebrany znak
{
int s = czytaj(3830HEX) - odczytanie odebranego znaku
if(s = 55HEX)
{
ustaw(230HEX,20H) - ustawienie pod adres 230HEX = 1000110000BIN wartości 20H = 10000000 ZAPALENIE 10 DIODY LED
}
if (s = AAHEX) - sprawdzenie czy odebrany znak to AAHEX
{
ustaw(230HEX,800HEX) - ustawienie pod adres 230HEX = 1000110000BIN wartości 800HEX = 100000000000 ZAPALNIE 12 DIODY LED
}
if (s = 0HEX) - sprawdzenie czy odbrany znak to 0
{
ustaw(230HEX,0HEX) - ustawienie pod adres 230HEX = 1000110000BIN wartosci 0HEX WYGASZENIE WSZYSTKICH DIOD LED
}
}
end
Revise this Paste