Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Когда производится ограждение поезда, остановившегося на перегоне: Во всех случаях немедленно должно быть ограждено место препятствия для движения поездов на смежном пути двухпутного...
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
История развития методов оптимизации: теорема Куна-Таккера, метод Лагранжа, роль выпуклости в оптимизации...
Интересное:
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Дисциплины:
2021-02-01 | 41 |
5.00
из
|
Заказать работу |
|
|
{$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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!