Текст управляющей программы ПЭВМ с микроконтроллером — КиберПедия 

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Текст управляющей программы ПЭВМ с микроконтроллером

2021-02-01 41
Текст управляющей программы ПЭВМ с микроконтроллером 0.00 из 5.00 0 оценок
Заказать работу

{$I+}

program Data_Transfer_und_Receive_with_used_serial_ports;

uses crt,dos;

const right=240;  left=15;  stop=204;  knop=51; label 7,8,9,10;

var slovo,copyslovo:byte; {обрабатываемый символ}

YN:char;

zn:boolean; {увеличение/уменьшение скорости}

cv:word;    {определяет скорость вращения}

i,j:integer;

adr:word;   {базовый адрес порта коммуникации}

num:word;   {номер коммуникационного канала}

ch_err:word; {общее число ошибок}

rt_err:word; {ошибка - полученный символ был перезаписан}

  par_err:word; {ошибка четности}

syn_err:word; {ошибка - передача не синхронизирована}

procedure Window(X1,Y1,X2,Y2,Color,Fon,Bor: Byte);

var i,j: integer; begin

for i:= X1 to X2 do begin

TextColor(Color); TextBackground(Fon);  GotoXY(i,Y1); Write('═');

GotoXY(i,Y2); Write('═'); TextBackground(Fon); GotoXY(i+2,Y2+1); Write('█'); end;

for i:= Y1 to Y2 do begin

TextColor(Color); TextBackground(Fon); GotoXY(X1,i); Write('║');

GotoXY(X2,i); Write('║');  TextBackground(Bor); GotoXY(X2+1,i+1); Write('██'); end;

TextColor(Color); TextBackGround(Fon); GotoXY(X1,Y1); Write('╔');

GotoXY(X1,Y2); Write('╚'); GotoXY(X2,Y1); Write('╗'); GotoXY(X2,Y2); Write('╝'); for i:= X1+1 to X2-1 do for j:= Y1+1 to Y2-1 do begin

                      GotoXY(i,j);                      Write(' ');

                    end; end;

BEGIN asm mov ah,0        mov al,2        int 10h   end;

cv:=1000; clrscr;

Window(15,5,55,13,15,7,8);

gotoxy(20,7);writeln('ВЫБОР ПОРТА:'); gotoxy(20,8);writeln('1:COM1');

gotoxy(20,9);writeln('2:COM2'); gotoxy(20,10);writeln('3:COM3'); gotoxy(20,11);writeln('4:COM4');

7:YN:=readkey;

i:=ord(YN)-48;

case i of

1: adr:=$3f8; 2: adr:=$2f8; 3: adr:=$3e8; 4: adr:=$2e8; else goto 7; end;

num:=i-1;

Window(21,11,62,21,15,7,8);

gotoxy(26,12); writeln('ВЫБРАН ПОРТ COM',num+1); gotoxy(26,13);

write('Действия: влево - клавиша ',#27); gotoxy(26,14);

write('     вправо - клавиша ',#26); gotoxy(26,15);

write('     стоп - клавиша ',#25); gotoxy(26,16);

write('     скорость-клавиша ',#24); gotoxy(26,17);

write('работа от кнопок - клавиша Ins'); gotoxy(26,18);

write('     выход - клавиша Del');

i:=26;

slovo:=0;

asm

  mov dx,adr {базовый адрес}

  add dx,3d  {указываем на регистр контроля линии}

  mov al,10000000b{устанавливаем 7-ой бит}

  out dx,al  {посылаем байт}

  dec dx     {указываем на старший байт}

  dec dx     {делителя скорости обмена}

  mov al,0   {приравниваем}

  out dx,al  {его нулю}

  dec dx     {указываем на младший байт делителя}

  mov al,60h {приравниваем}

  out dx,al    {его 96}

  mov al,0

  or al,00000011b {длина слова 8 бит}

  or al,00000000b {1 стоп-бит}

  or al,00010000b {нет четности}

  add dx,3

  out dx,al

  dec dx

  dec dx

  mov al,0

  out dx,al

  end;

gotoxy(26,19);

10:write('Ждем перехода на программу');

asm

@ket: mov dx,adr   {базовый адрес}

   add dx,5d    {указываем на регистр статуса линии}

   in al,dx    {получаем байт статуса}

   test al,00000001b {проверяем, получены ли данные}

   jz @ket     {если нет, то на @ket}

   mov dx,adr   {базовый адрес}

   in al,dx    {читаем полученный символ}

   mov slovo,al {помещаем его в slovo}

end;

gotoxy(26,19);

case slovo of

9: write('Переход выполнен     ');

else goto 8;

end;

gotoxy(1,2);

write('Slovo_IN: ',slovo:3);

repeat

 9: YN:=readkey;

if ord(YN)=0 then YN:=readkey else goto 9;

case ord(yn) of

75: slovo:=right;

77: slovo:=left;

80: slovo:=stop;

{ 83: break;{}

82: slovo:=knop;

72: begin

     if zn then cv:=cv+100 else cv:=cv-100;

     if cv=10000 then zn:=false;

     if cv=100 then zn:=true;

   end

else goto 9;

end;

copyslovo:=slovo;

repeat

gotoxy(1,1);

write('Slovo_OUT: ',slovo:3);

asm

@ketry: mov dx,adr   {базовый адрес}

      add dx,5d    {указываем на регистр статуса линии}

      in al,dx    {получаем байт статуса}

      test al,00100000b {проверяем готовность к передаче}

      jz @ketry   {если нет, то возвращаемся назад}

      mov dx,adr   {указываем на регистр хранения передатчика}

      mov al,slovo {теперь нужный символ в al}

       out dx,al    {посылаем символ}

      sub slovo,51d

      jz @endd

 

      add dx,5d    {указываем на регистр статуса линии}

@rec: in al,dx    {получаем байт статуса}

      test al,00000001b {проверяем, получены ли данные}

      jz @rec

      mov dx,adr   {базовый адрес}

      in al,dx    {читаем полученный символ}

      mov slovo,al {помещаем его в slovo}

      jmp @en

@endd: mov slovo,2d

@en: end;

    gotoxy(1,2);

write('Slovo_IN: ',slovo:3);

gotoxy(26,19);

case slovo of

   2: goto 10;

   10: write('Правое вращение  ');

   12: write('Левое вращение   ');

   9: write('Останов двигателя ')

   else goto 8;

end;

delay(cv);

gotoxy(1,3);

write('SPEED: ',trunc((1100-cv)/100):2);

gotoxy(i,20);

case slovo of

10,12:write('*');

9: j:=100;

else begin write('+');gotoxy(26,19);

goto 8 end;

end;

i:=wherex;

if i>60 then begin

   gotoxy(26,20);

   TextColor(black);   write('                              ');

   TextColor(white);   i:=26; end;

slovo:=copyslovo; until keypressed;

until YN=#83;8:gotoxy(26,19); write('Неправильный прием'); delay(10000);

END.

Задания по лабораторной работе

1. Изучить виды, назначение, основные параметры и характеристики шаговых двигателей. Изучить варианты управления различными шаговыми двигателями. Изучить варианты управления шаговыми двигателями. Изучить варианты схем питания шаговыми двигателями.

2. Изучить структурную и принципиальную схемы, конструкцию лабораторного макета.

3. Составить “заготовку” отчета и правильно ответив на 5 вопросов преподавателя получить допуск к выполнению работы.

4. Аккуратно (!!!!!!!) подключить (в присутствии лаборанта или преподавателя) макет к компьютеру и включить питание.

5. По алгоритму работы макета выполнить пункты 6, 7.

6. Следуя указаниям лаборанта или самостоятельно изучить работу макета в автономном режиме. Записать краткие выводы в отчет.

7. Следуя указаниям программы управления с ПЭВМ изучить работу макета в автоматизированном режиме управления. Записать краткие выводы в отчет.

8. Научиться сопоставлять структурную, принципиальную схемы и макет лабораторной работы.

9. Изучить программу управления ПЭВМ с микроконтроллером в среде программирования PASCAL.

1) Запустить PASCAL.

2) Открыть управляющую программу (адрес программы уточнить у лаборанта).

3) Выполнить программу в пошаговом режиме.

4) Научиться устанавливать разные варианты управления двигателем. (Например, автоматическое (случайное или детерминированное изменение направления и скорости вращения двигателя)) Откомпилировать программу. Запустить на выполнение. Сравнить исполнение команд с пунктом 4.8. Записать измененный алгоритм и измененные фрагменты программ в отчет (только не списанные у соседа материалы!!!!!!!!).

10. Составить отчет и защитить работу.

 

Список рекомендуемой литературы:

1. Джордейн, Роберт. Справочник программиста персональных компьютеров – М.: Радио и связь,1992.–280с.

2. Кулешов С.В. Интерфейс PIC контроллера с компьютером// Радио – №7,2003.– с.20-22.

3. Новоченко И.В. и др. Интегральные схемы для бытовой радиоаппаратуры – М.: Радио и связь,1995.–324с.

4. Перельман Б.Л. Транзисторы для аппаратуры широкого применения: Справочник.– М: Радио и связь,1986.–567с.

5. Яценков В.С. Микроконтроллеры Microchip. Практическое руководство – М.: Горячая линия – Телеком,2002.–296с.

6. http://PIC16F84.narod.ru/index.htm – устройство управления на микроконтроллере PIC16F84.

7. http://www.kulakov.ru/ – разработка электронных устройств на PIC – контроллерах.

8. http://www.toehelp.ru/theory/electromach/contents.html – описание принципов работы шаговых двигателей.

9. http://www.maxim-ic.COM/quick_view2.cfm/qv_pk/179 - описание микросхемы MAX232.

10. http://www.microchip.ru/lit/pic/pic16x8x/PIC16F84. - описание PIC16F84.

11. Seiichi Inoue. PIC контроллер управляет электродвигателем // Радио – №6, 2002.– с.4,5.

 

 

ЛАБОРАТОРНАЯ РАБОТА №4


Поделиться с друзьями:

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.022 с.