Дипломная работа: Комп’ютерне моделювання роботи послідовного порта
var
byte1,byte2,output_byte:byte;
divisor:integer;
begin
divisor:=115200 div Baud;
if divisor<=255 then begin byte1:=divisor; byte2:=0; end;
if divisor>255 then begin byte1:=divisor mod 256; byte2:=divisor div 256;
end;
output_byte:=(data_bit-5)+4*(stop_bit-1)+8*(parity);
port(RS232_address+3):=128:
{Завантаження ініціалізаційних даних, перший біт регістра дорівнює 1.}
port(RS232_address+0):=byte1; {Молодший байт дільника дорівнює 1.}
port(RS232_address+1);=byte2; {Старший байт дільника дорівнює 0.}
port(RS232_address+3):=output_byte; {Завантаження дільника й інших параметрів.}
end;
Наступна функція, написана мовою TurboPascal для Windows, виконує те ж саме:
(*-Бібліотека ресурсів № A9 (запис у регістр формату даних).-*)
Function Write_data_format(RS232_address, Baud, Parity, Databit,
Stop_bit:integer):integer; export;
Var
byte1, byte2,output_byte:byte;
divisor:integer;
begin
divisor:=115200 div Baud;
if divisor<=255 then begin byte1:=divisor; byte2:=0; end;
if divisor>255 then
begin
byte1:=divisor mod 256;
byte2:=divisor div 256;