Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 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; просмотров: 158; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.005 с.) |