Раздел: Документация
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
|