Автор работы: Пользователь скрыл имя, 02 Сентября 2011 в 10:53, курсовая работа
Ключевые слова: кодовый замок, микроконтроллер, клавиатура, датчик, светодиод, функциональная схема, программа.
ВВЕДЕНИЕ 4
1 АНАЛИЗ ЗАДАЧИ 5
2 РАЗРАБОТКА СТРУКТУРНОЙ СХЕМЫ 6
3 ВЫБОР И ОБОСНОВАНИЕ ЭЛЕМЕНТНОЙ БАЗЫ 7
3.1 ИСПОЛНИТЕЛЬНЫЙ ЭЛЕМЕНТ ЭЛЕКТРОМЕХАНИЧЕСКОГО ЗАМКА 7
3.2 КЛАВИАТУРА 9
3.3 УСТРОЙСТВО СИГНАЛИЗАЦИИ ОТКРЫТИЯ ДВЕРИ 10
3.4 УСТРОЙСТВО СИГНАЛИЗАЦИИ О ПОПЫТКЕ ПОДБОРА КОДА 11
3.5 ДАТЧИК ОТКРЫТИЯ ДВЕРИ 12
3.6 МИКРОКОНТРОЛЛЕР 12
3.7 СТАБИЛИЗАТОР НАПРЯЖЕНИЯ 18
4 РАЗРАБОТКА ФУНКЦИОНАЛЬНОЙ СХЕМЫ 20
4.1 СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА И КЛАВИАТУРЫ 20
4.2 СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА И ИСПОЛНИТЕЛЬНОГО ЭЛЕМЕНТА ЭЛЕКТРОМЕХАНИЧЕСКОГО ЗАМКА 22
4.3 СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА И УСТРОЙСТВА СИГНАЛИЗАЦИИ ОТКРЫТИЯ ДВЕРИ 23
4.4 СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА И УСТРОЙСТВА ЗВУКОВОЙ СИГНАЛИЗАЦИИ 24
4.5 СОПРЯЖЕНИЕ МИКРОКОНТРОЛЛЕРА И ДАТЧИКА ОТКРЫТИЯ ДВЕРИ 24
4.6 ПОДКЛЮЧЕНИЕ МИКРОКОНТРОЛЛЕРА К ЦЕПЯМ, ОБЕСПЕЧИВАЮЩИМ ЕГО РАБОТУ 25
5 ОПИСАНИЕ СРЕДЫ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 25
6 РАЗРАБОТКА АЛГОРИТМА РАБОТЫ СИСТЕМЫ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ 29
ЗАКЛЮЧЕНИЕ 33
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 34
ПРИЛОЖЕНИЯ 35
ПРИЛОЖЕНИЕ А 35
ПРИЛОЖЕНИЕ Б 39
ent2: ;ввод 2
jb p0.5,ent3
call delay2
mov a,#2h
wait2:
jnb p0.5,wait2
ajmp enter_digit
ent3: ;ввод 3
jb p0.6,ent4
call delay2
mov a,#3h
wait3:
jnb p0.6,wait3
ajmp enter_digit
ent4: ;ввод 4
mov p0,#0fdh
jb p0.4,ent5
call delay2
mov a,#4h
wait4:
jnb p0.4,wait4
ajmp enter_digit
ent5: ;ввод 5
jb p0.5,ent6
call delay2
mov a,#5h
wait5:
jnb p0.5,wait5
ajmp enter_digit
ent6: ;ввод 6
jb p0.6,ent7
call delay2
mov a,#6h
wait6:
jnb p0.6,wait6
ajmp enter_digit
ent7: ;ввод 7
mov p0,#0fbh
jb p0.4,ent8
call delay2
mov a,#7h
wait7:
jnb p0.4,wait7
ajmp enter_digit
ent8: ;ввод 8
jb p0.5,ent9
call delay2
mov a,#8h
wait8:
jnb p0.5,wait8
ajmp enter_digit
code_wrong: ;обработка неверного кода
mov door_code,#30h ;
djnz attempts,ent1 ;если есть ещё попытки, в гл. цикл
setb p2.1 ;включение звукового сигнала
call delay ;задержка 1 с
clr p2.1 ;выключение звукового сигнала
mov attempts,#4h ;восстан. Число попыток
jmp code_wrong
compare: ;сравнение кодов
dec door_code ;переходим к предыдущей цифре
cjne @door_code,#6h,code_wrong ;
dec door_code ;цифры по порядку
cjne @door_code,#5h,code_wrong
dec door_code
cjne @door_code,#4h,code_wrong
dec door_code
cjne @door_code,#3h,code_wrong
dec door_code
cjne @door_code,#2h,code_wrong
dec door_code
cjne @door_code,#1h,code_wrong
clr p2.0 ;открыть замок
setb p2.2 ;включить светодиод
mov attempts,#3h ;восстан. кол-во попыток
wait_open:
jnb p0.7,wait_open ;ждём, пока откроется дверь
call delay2
wait_close:
jb p0.7,wait_close ;ждём, пока заткроется дверь
setb p2.0 ;закрыть замок
clr p2.2 ;выключить светодиод
ajmp ent1 ;переход в гл. цикл
delay: ;задержка 1 с
mov r1,#1fh
loop1:
mov th0,#0h
mov tl0,#0h
setb tcon.4
loop2:
jbc tcon.5,skip
sjump loop2
skip: djnz r1,loop2
clr TCON.4
ret
delay2: ;задержка 5 мс
mov r3,#13h
loop4:
mov r2,#0ffh
loop3:
djnz r2,loop3
djnz r3,loop4
ret
end
Рисунок Б.1 – Функциональная схема