Файл: Муромский институт (филиал).doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 14

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.





Министерство науки и высшего образования Российской Федерации

Муромский институт (филиал)

федерального государственного бюджетного образовательного учреждения высшего образования

«Владимирский государственный университет

имени Александра Григорьевича и Николая Григорьевича Столетовых»

(МИ ВлГУ)
Факультет ФИТР

Кафедра УКТС



Лабораторная

РАБОТА №1
По дисциплине: ВООП

( наименование дисциплины)
Т ема: Работа с портом


Руководитель

Ц аплев

(фамилия, инициалы)




(подпись) (дата)

С тудент гр. Пз-119


(группа)

Б ичагова Т. Ю.

(фамилия, инициалы)




(подпись) (дата)
Муром



ЛАБОРАТОРНАЯ РАБОТА № 1
Работа с портом.

Цель работы: Научиться отображать данные, полученные с виртуального СОМ порта с помощью средств графического объектно-ориентированного программирования.

Теоретические сведения

Существует множество устройств, которые подключаются к компьютеру через СОМ порт, но, поскольку в состав современных компьютеров все реже входят СОМ порты, то связь с СОМ устройствами выполняется через USB порты дополненными специальными преобразователями сигналов. Значительное повышение частоты сигналов в USB линии (в сравнении с сигналами СОМ порта)
накладывает ограничение на длину линий, повышает их стоимость и требует решения вопросов согласования линий. В этой работе на примере контроллера Arduino UNO рассматривается подключение СОМ устройства к компьютеру.

Типовая схема подключения контроллера Arduino UNO к компьютеру через USB порт показана на рисунке 1.



Рисунок 1. Типовое подключение контроллера Arduino UNO к компьютеру через USB порт.

Со стороны компьютера канал связи виден как стандартный СОМ порт. Но, на самом деле, это виртуальный СОМ порт с которым компьютер обменивается пакетами данных на частоте 12 МГц, а специализированный контроллер, расположенный на плате Arduino UNO, преобразует пакеты USB данных в последовательность бит в формате асинхронного интерфейса UART с уровнями 0/5В, которые и используются основным контроллером Arduino UNO (микросхема ATmega328P) для загрузки программ и обмена данными с компьютером в процессе выполнения программ.
Задание на лабораторную работу.

1. Написать скетч и загрузить на плату Arduino. Программа должна передавать в com - порт символ.

2. Написать программу на языке Object Pascal (Delphi) которая будет считывать данные с порта к которому подключена плата Arduino, и выводить результат в окне программы.
Ход работы:

  1. Написали скетч и загрузили на плату Arduino. Программа должна передавать в com - порт символ. Результат представлен на рис. 2.



Рисунок 2 – Листинг рабочей области


  1. Написали программу на языке Object Pascal (Delphi), которая будет считывать данные с порта к которому подключена плата Arduino и выводить результат в окне программы.

unit Unit1;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComPort;
type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

ComboBox1: TComboBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }
FPort:TComPort;

procedure OnReadByte(const b:byte; PortState:TComStat; ErrCode,ModemState:cardinal);
public

{ Public declarations }

end;
var

Form1: TForm1;
implementation

{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);

begin

FPort:=TComPort.Create(Self);

FPort.OnReadByte:=OnReadByte;

FPort.EnumComPortsEx(Combobox1.Items);

end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

FPort.Close;

FPort.ReadActive:=false;
end;
procedure TForm1.FormDestroy(Sender: TObject);

begin



FPort.Free;

end;
procedure TForm1.Button1Click(Sender: TObject);
var b: byte;

begin

FPort.ComPort:=PChar(Combobox1.Items.Strings[Combobox1.itemindex]);

Fport.Open;

while Fport.Connected=false do

begin

end;

begin

FPort.ReadActive:=true;

FPort.Connect;

Fport.ReadByte(b);

Memo1.Lines.Add('значение'+inttostr(b));

end;

end;

procedure TForm1.OnReadByte(const b:byte; PortState: TComStat; ErrCode, ModemState:cardinal);

var AvBytes:cardinal;

MyBuff: array[0..2] of Char; //буфер для чтения данных


Str: string; //вспомогательная строка

k: integer;

Begin

AvBytes:=PortState.cbInQue;

FillChar(MyBuff, SizeOf(MyBuff),b);

if AvBytes>0 then

begin

for k := 1 to Length(MyBuff) do begin

Str := Str + ' ' + inttohex(Ord(MyBuff[k-1]),2);

end;

Memo1.Lines.Add(Str);

end;
end;




Рисунок 3 – Рабочая область созданной программы



Рисунок 4 – Результат работы программы
Вывод: В ходе выполнения данной лабораторной работы мы научились отображать данные, полученные с виртуального СОМ порта с помощью средств графического объектно-ориентированного программирования.