8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 22 23 24 25 26 27 28 ... 55

do INBYTE ! type(i) type(chr(Ml[i] ) )

show(15,1,S1)

show(18,1,Конец передачи из микроконтроллера1)

show(22,26,Для продолжения нажми ENTER,выход-ESC)

loop until keyboard О

ask

if keycode()=2 56 then break.

! esc ! enter

if keycodeО=257

blank i=l

M[l] =40h do OUTBYTE goto OK

goto E

WYKL show(23,26,Для выхода нажми ESC) loop until keyboard 0 ask

if keycodeО=2 56 then break.

! esc

E

blank

out<3fch,Y00h) !Сброс микроконтроллера return

П/п инициализации RS232

routine


Инициализация СОМ-порта.

! Установка скорости обмена.

out(3fbh,Y8Oh) ! DLAB=1 для установки делителя.

out(3f8h,YOlh) ! Установить мл.б. скор.:YOlh-115200 бод,У12-9600 бод. out(3f9h,Y00h) ! Установить ст.б. скор.=0.

Установка режима.

out(3fbh,Y07h) ! DLAB=0,Режим: 8 бит данных,2 стопа,нет пар.,сброс TxD.

Установка запрета прерываний по СОМ-порту.

out(3f9h,YOOh) ! Запрет всех прерываний по порту 3f8h.

Инициализация микроконтроллера.

out(3fch,Y00h) beep (0,20) out(3fch,YOlh) beep (0,20) in(3f 8h,B) beep(0,20)

exit

! Сброс линии DTR (Re < Задержка 0.1 сек. ! Установка линии DTR ! Задержка 0.1 сек. ! Холостой ввод - для

set микроконтроллера). (Запуск микроконтроллера). сброса бита 0 (DR) в 3fdh (в "0")

! П/п ввода байта (байт в Ml[i] )

INBYTEroutine

out(3fbh,Y47h)

loop;in(3feh,B) ,-if band(B,20h) <>0;break. out(3fbh,Y07h)

loop;in(3fdh,B);if band(B,l)<>0;break. . in(3f8h,Ml[i] )

exit

.Установка TxD (разрешение передачи)

!Ожидание старт-бита (уст-ки DSR)

!Сброс линии TxD (запрет передачи)

!0ж-е конца прихода байта(бит "DR"-data ready)

!Чтение байта данных


! П/п вывода байта (байт в M[i] )

OUTBYTEroutine

loop;in(3fdh,В);if band(B,20h)<>0;break.. loop;in(3feh,B);if band(B,2Oh)<>0;break.. out (3f 8h,M[i] )

loop;in(3feh,B);if band(B,2Oh)=0;break.. loop;in(3fdh,B);if band(B,40h)<>0;break..

exit

!Ож-е гот-ти передатчика (transmitter e,mpty) . !Ож-е разреш.передачи(установки DSR) 1Вывод байта

.Ож-е запрета передачи (сброса DSR)

!Ож-е выхода байта из PC(trasmitter holding

Iregister empty.OK to send).

inrsllSac.с #include "stdarg.h"

#include "stdio.h" /* для printf */ #include "stdlib.h"

#include "aduc834.h" /* для RS232 */ void initrs(void) f

PLLCON=0;

T3CON=0x81;

T3FD=0x2d;

SCON=0x40;

void outbyte(unsigned char byte) { while (RXD); SBUF=byte; while (!RXD); while (!TI); TI = 0;

}

unsigned char inbyteO { unsigned char byte; TXD=0;

while (RXD); TXD=1;



0 ... 22 23 24 25 26 27 28 ... 55