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

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

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

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

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

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

Міністерство освіти та науки України Національний університет “Львівська політехніка” Кафедра ЕОМ Лабораторна робота №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.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

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

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

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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