Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Текст управляющей программы ПЭВМ с микроконтроллером
{$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
|
||||||
Последнее изменение этой страницы: 2021-02-07; просмотров: 53; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.81.240 (0.017 с.) |