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

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

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

Добавлен: 09.11.2023

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

Скачиваний: 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;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls, ComPort;typeTForm1 = 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;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);beginFPort:=TComPort.Create(Self);FPort.OnReadByte:=OnReadByte;FPort.EnumComPortsEx(Combobox1.Items);end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginFPort.Close;FPort.ReadActive:=false;end;procedure TForm1.FormDestroy(Sender: TObject);begin

FPort.Free;end;procedure TForm1.Button1Click(Sender: TObject);var b: byte;beginFPort.ComPort:=PChar(Combobox1.Items.Strings[Combobox1.itemindex]);Fport.Open;while Fport.Connected=false dobeginend;beginFPort.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;BeginAvBytes:=PortState.cbInQue;FillChar(MyBuff, SizeOf(MyBuff),b);if AvBytes>0 thenbeginfor k := 1 to Length(MyBuff) do beginStr := Str + ' ' + inttohex(Ord(MyBuff[k-1]),2);end;Memo1.Lines.Add(Str);end;end;Рисунок 3 – Рабочая область созданной программыРисунок 4 – Результат работы программыВывод: В ходе выполнения данной лабораторной работы мы научились отображать данные, полученные с виртуального СОМ порта с помощью средств графического объектно-ориентированного программирования.