DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

Моделювання послідовного інтерфейсу RS-232C

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2015
Тип роботи:
Лабораторна робота
Предмет:
Периферійні пристрої
Група:
КІ

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти та науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота №3 з предмету “ Периферійні пристрої ” Моделювання послідовного інтерфейсу RS-232C Львів – 2005 Для засвоєння принципу роботи послідовного інтерфейсу RS-232C було запропоновано написати програмну емуляцію цього інтерфейсу. Програма має в графічному режимі відобразити процес передачі даних. Для написання програми було використано середовище розробки Microsoft Visual Studio 6.0 (C++). Для того щоб забезпечити передавання даних необхідні наступні модулі: Передавач даних (виділений в клас CTransmitter) Приймач даних (Виділений в клас CReceiver) Середовище передавання даних, або лінія зв’язку (CLine) Генератор тактових імпульсів для передавача та приймача (CGenerator) Алгоритм передачі даних буде повністю описаний в третій лабораторній роботі. Розглянемо, що являє собою клас CLine – лінія передачі даних (всі інші класи були розглянуті в попередніх лабораторних роботах). class CLine { public: CLine(); virtual ~CLine(); void Write(int s) {signal=s;} int Read() const {return signal;} private: int signal; }; Змінна signal – поточне значення сигналу в лінії. Метод Write використовується для запису, Read – для читання. void CJCOMbetaDlg::OnbExec() { UpdateData(TRUE); int Delay=atoi(m_valDelay); int TxFreq=100; int RxFreq=100+m_Slider.GetPos();//[+/-]10% int ArrSize=((TxFreq>RxFreq)?TxFreq:RxFreq)*8*12+2*Delay; //=========DRAWING CUIntArray TxCLK; TxCLK.SetSize(ArrSize,1); CUIntArray RxCLK; RxCLK.SetSize(ArrSize,1); CUIntArray LineData; LineData.SetSize(ArrSize,1); CUIntArray Received; Received.SetSize(ArrSize,1); //====END==DRAWING CString Data=(m_SendData); Data="10"+Data+"11"; CLine *TheLine= new CLine; CTransmitter *Transmitter=new CTransmitter(TxFreq,Data,TheLine,Delay); CReceiver *Receiver=new CReceiver(RxFreq,TheLine,Delay); int i=0; for (int j=0;j<ArrSize;j++) { Transmitter->Proceed(); Receiver->Proceed(); //FOR DRAWING: TxCLK[i]=(Transmitter->GetCLK()); LineData[i]=(TheLine->Read()); RxCLK[i]=(Receiver->GetCLK()); Received[i++]=(Receiver->DEBUG_GET()); } //------------------------------ DrawVertex(&TxCLK); CClientDC dc(this); TextOut(dc,0,0,"TxCLK",5); TextOut(dc,0,30,"Tx(Line)",8); TextOut(dc,0,60,"RxCLK",5); TextOut(dc,0,90,"Rx",2); Draw(30,&TxCLK,TxFreq*12*8,0x0000FF); Draw(60,&LineData,TxFreq*12*8,0x0000FF); Draw(90,&RxCLK,RxFreq*12*8,0xFF0000); Draw(120,&Received,RxFreq*12*8,0xFF0000); TxCLK.RemoveAll(); RxCLK.RemoveAll(); LineData.RemoveAll(); Received.RemoveAll(); delete(TheLine);delete(Receiver);delete(Transmitter); m_bExec.EnableWindow(FALSE); m_bExec.SetWindowText("Sent :))))))))"); UpdateData(FALSE); }  Висновок: у ході виконання лабораторної роботи ми створили програму, яка графічно відображає процес передачі даних згідно інтерфейсу RS-232C.
Антиботан аватар за замовчуванням

2015

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!