(ліва двері)
# defineIOLED2 TRISC, 2; світлодіод 2 (праві двері)
# defineIOSB1 TRISD, 0; кнопка +1
# defineIOSB2 TRISD, 1; кнопка 2
# defineIOSB3 TRISD, 2; кнопка 3
; Самі засувки
# defineLED1 PORTC, 1; світлодіод 1 (ліва двері)
# defineLED2 PORTC, 2; світлодіод 2 (праві двері)
# defineSB1 PORTD, 0; кнопка +1
# defineSB2 PORTD, 1; кнопка 2
# defineSB3 PORTD, 2; кнопка 3x20; адреси користувальницьких регістрів (20h - 24h) _FLG; флагі_REG; зберігає час блокування
DEL1_REG; регістр для затримки 1сек._REG; регістр для затримки 1мСек.
# defineFMIGFLAG_FLG, 0; біти, потрібні для перевірки включення/вимикання
# defineFKEYFLAG_FLG, 1; 0x0000; вектор сбросаsetup; йдемо на початок програми; початкові установки контролера, RP0; налаштовуємо порти, банк пам'яті 1 00000000 raquo ;; TRISB, 0; Кнопка +1 на вхід 00000111 raquo ;;; Кнопка 2 на входTRISD; Кнопка 3 на вхід; повертаємося в банк пам'яті 0_FLG; очищення всіх регістров_REG ;; головний цикл програми; якщо натиснута 1 клавіша, стрибаємо через рядок; якщо ні, переходимо на мітку PRK1; запалюємо світлодіод 1; запалюємо світлодіод 2; встановлюємо 1 під FLAG_FLG, 1
clrfTIMENAG_REG; очищаємо TIMENAG_REG
; затримка 20 секdelay1sec_REG, 1; додаємо 1 в TIMENAG_REG, F
movfTIMENAG_REG, 0; переслати вміст f в аккумулятор.20; відняти вміст акку-ра з константи, Z; якщо Z=1, пропускаємо goto
gotoPRK1;
PRK1; якщо натиснута 2 клавіша, стрибаємо через рядок; якщо ні, переходимо на мітку PRK2; запалюємо світлодіод 1; запалюємо світлодіод 2; встановлюємо 1 під FLAG_FLG, 1; якщо натиснута 3 клавіша, стрибаємо через рядок; якщо ні, переходимо на мітку PRK3; тушкуємо світлодіод 1; тушкуємо світлодіод 2; встановлюємо 1 під FLAG_FLG, 1beginms; підпрограма затримки на 1 мсек.
nop_REG_REG, 1
goto $ - 1; на одну команду вверх.74_REG_REG, 1 $ - 1sec; підпрограма затримки на 1 сек.
clrfDEL2_REGms_REG, 1 $ - 2ms_REG, 1 $ - 2ms_REG, 1 $ - 2ms_REG, 1
goto $ - 2; кінець програми
Висновок
У цій роботі ми навчилися проектувати ACP на мікропроцесорних елементах.
Для досягнення цієї мети, ми виконали наступні пункти завдання: склали структурну схему автоматизації; сформулювали задачу автоматизації; вибрали задають і виконавчі елементи; вибрали і обгрунтували вибір мікропроцесорного елемента управління; розрахували навантажувальні характеристики елементів; склали електричну схему і специфікацію елементів; склали алгоритмічну схему управління.
Все зроблене в кінцевому підсумку сприяло написанню програмного забезпечення.
При виконанні даної роботи, ми ознайомилися з різними виконавчими елементами: датчиками різного роду, котушками реле, а також з різними мікроконтролерами, їх застосуванням у різних виконавчих механізмах. Вважаю, що все зроблене є корисним досвідом і добрим початком для подальшого навчання за спеціальністю автоматизація та управління.
Наше завдання повністю була виконана: мікроконтролер PIC16F877 може управляти роботою блокіратора за допомогою програми, написаної мовою Assembler.
Труднощі викликала відсутність реальних елементів ланцюга, тобто не можна наочно побачити роботу всього процесу, а також написання самої програми. Але все-таки загальне уявлення від процесу автоматизації було добре освоєно.
Список літератури
1.Копесбаева А.А. Елементи та пристрої автоматики. Методичні вказівки до виконання лабораторних робіт (для студентів спец-і 360140 - АІСУ).- Алмати: АІЕС, 2003. - 30 с.
2.Однокрістальние мікроконтролери PIC12C5x, PIC16x5x, PIC14000, M16C/61/62 пров. з англ. Б.Я. Прокопенко; Под ред. Б.Я. Прокопенко.- М.: Додека, 2000. - 336с.
.Однокрістальние 8-міразрядние FLASH CMOS мікроконтролери PIC16F87x компанії Microchip Technology Incorporated - М .: ВАТ Мікро-Чіп raquo ;, 2002. - 184 с.
.Однокрістальние 8-міразрядние FLASH CMOS мікроконтролери PIC16F87x компанії Microchip Technology Incorporated - М .: ВАТ Мікро-Чіп raquo ;, 2002. - 184 с.
.Однокрістальние 8-міразрядние, 8-мівиводние FLASH CMOS мікроконтролери PIC12с5xx компанії Microchip Technology Incorporated - М .: ВАТ Мікро-Чіп raquo ;, 2002. - 104 с.
6.microchip
.Руководство за програмою mp...