МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів
Контакти
Тлумачний словник Авто Автоматизація Архітектура Астрономія Аудит Біологія Будівництво Бухгалтерія Винахідництво Виробництво Військова справа Генетика Географія Геологія Господарство Держава Дім Екологія Економетрика Економіка Електроніка Журналістика та ЗМІ Зв'язок Іноземні мови Інформатика Історія Комп'ютери Креслення Кулінарія Культура Лексикологія Література Логіка Маркетинг Математика Машинобудування Медицина Менеджмент Метали і Зварювання Механіка Мистецтво Музика Населення Освіта Охорона безпеки життя Охорона Праці Педагогіка Політика Право Програмування Промисловість Психологія Радіо Регилия Соціологія Спорт Стандартизація Технології Торгівля Туризм Фізика Фізіологія Філософія Фінанси Хімія Юриспунденкция |
|
|||||||
Ініціалізація СOM-портуСпособи керування портами у WINDOWS95 та WINDOWS XP Перед тим як використовувати СOM-порт, його необхідно настроїти на визначений формат передачі даних, тобто встановити швидкість, кількість бітів даних, кількість стопових бітів та біт перевірки. Існує три методи настроювання. Перший полягає у використанні команди MODE операційної системи MS DOS. Синтаксис команди можна представити так: MODE COMm: baud=b, parity=p, data=d, stop=s, retry=r або MODE COMm:b,p,d,s,r MODE COM1:96,n,8,1 конфігурує порт СОМ1 з наступними параметрами: швидкість 9600 бод, без перевірки на парність, 8 біт даних, 1 стоповий біт. Зазначена команда може бути включена у файл autoexec.bat. Недолік такого методу - неможливість змінювати формат передачі даних у користувацьких програмах. Другий метод використовує переривання BIOS INT 14h, що дозволяє виконувати конфігурування порту з програм користувача. Для цього необхідно в регістр АН завантажити 0, а в DX - число від 0 до 3, що вказує на відповідний порт (СОМ1 - COM4). У регістр AL завантажується байт ініціалізійних даних, значення бітів якого показані нижче:
BD2 BD1 BDO PAR1 PAR0 STOP DA1 DA0 BD2 - BDO (швидкість) 111 = 9600 011 = 600 110 = 4800 010 = 300 101 = 2400 001 =150 100 = 1200 000=110 PAR1,0 (перевірка на парність) 00 чи 10 = немає перевірки 01 = непарна 11 = парна STOP (кількість стопових бітів) 0 = 1 1 = 2 DA1,0 (довжина блоку даних) 10 = 7 біт 11 = 8 біт Наступна програма на мові ТР6 робить те ж, що і команда DOS MODE СОМ1:96,n,8,1. Procedure initialize; {СОМ1: 9600, без перевірки на парність, 0 біт даних, 1 стоповий біт.} var register: registers; begin with register do begin ah:=0; {Завантаження номера функції переривання.} al:=128+64+32+0+0+0+2+1; {Завантаження ініціалізаційного коду 11100011B.} dx:=0; {Номер порту: DX=0:COM1, DX=1:COM2 і т.д.} intr($14,register); {Виклик переривання BIOS.} end; end; Обмеження описаного методу полягає в тому, що можна задати швидкість тільки 9600 бод. UART 16450 здатний працювати зі швидкістю 115200 бод, це досягається безпосереднім звертанням до регістра. Третій, найбільш гнучкий метод конфігурує порт за допомогою запису даних у регістр формату даних UART (зсув 03h). Наступна програма на ТР6 дозволяє налаштувати сам регістр, для цього потрібна базова адреса порту, що конфігурується, швидкість, режим перевірки, довжина блоку даних і кількість стопових бітів. Процедура переводить задану швидкість у шістнадцятибітовий дільник і завантажує його у відповідні регістри.
(*-Бібліотека ресурсів № А9 (запис у регістр формату даних).-*) Procedure Write_data_format (RS232_address, Baud, Parity, Data_bit, Stop_bit:integer); 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; Читайте також:
|
||||||||
|