Кодовый замок на микроконтроллере

Автор работы: Пользователь скрыл имя, 24 Мая 2012 в 14:15, курсовая работа

Описание работы

Разработка принципиальной схемы кодового замка. В работе представлена инженерная интерпретация поставленной задачи с выбором и описанием алгоритма программы. Дано формирование текста исходной программы и таблицы прошивки РПЗ.

Содержание работы

Введение...............................................................................................................4
1. Анализ поставленной задачи…………………………………………………
2. Инженерная интерпретация поставленной задачи.........................................
3. Разработка принципиальной схемы кодового замка......................................
4. Выбор и описание алгоритма программы.......................................................
4.1 Общая блок-схемы алгоритма
работы кодового замка………………………………………………….....
5. Разработка текста исходной программы...................................................
6. Расчет коэффициентов в программе задержки……………………………
Заключение. Таблица «прошивки»РПЗУ………………………………….…….
Список литературы.................................................................................................

Файлы: 1 файл

курсовик ВТ.doc

— 138.50 Кб (Скачать файл)

 

 

 

 

 

 

 

RA0-кнопка выхода изнутри

RA1-подключение исполнительного механизма

RA2-подключение светодиода

RB1-RB4-считывание кода

 

;------------------------------------------------------------------------------------------------------

#include p16f84a.inc

;---------------------------------------------------------------------------------------------------

ETALON    equ 8h              ;значение эталонного кода             

cnt0    equ 10h                            ;счетчик задержки 0.5 мс

;счетчики задержки 1 сек

cnt1    equ  11h                           

cnt2    equ 12h                           

 

 

 

 

;------------------------------------------------------------------------------------------------------------------

;Инициализация

;-------------------------------------------------------------------------------------------------------------------

 

              bsf STATUS,RP0              ; выбор 1-го банка

              movlw b'00000001'              ;

              movwf TRISA              ; RB3-RB6 - входы

              movlw b'01111000'              ; RA0 – вход

              movwf TRISB               ; RA1-RA2 - выходы

              clrf STATUS               ; возврат в банк 0

              goto Start              ;вход в основную программу

;=========================================================

;Подпрограммa задержки на 400мс-определяет частоту звука

;===================================================================

 

Delay0.4  ;movlw    .2              ; Записать в регистр W константу 2

        ; movwf     Cnt2       ; Скопировать .10 из W в регистр Cnt2

Gama   ;movlw     .200          ; Записать в регистр W константу .10

       ;movwf     Cnt1       ;cкопировать .100 из W в регистр Cnt1

Beta   ;movlw     .200            ; Записать в регистр W константу .20

              ;movwf     Cnt0      ; Скопировать .200 из W в регистр Cnt0

Alfa    nop                         ; холостая команда

        nop                           ;

       ;decfsz    Cnt0,f       ; Декремент Cnt0 и переход

      ;goto      Alfa           ; к Alfa, если ноль

       ;decfsz    Cnt1,f       ; Декремент Cnt1 и переход

        ;goto      Beta           ; к Beta, если не не ноль

        ;decfsz    Cnt2,f       ; Декремент Cnt1 и переход

        ;goto      Gama         ; к Gama, если не ноль

        return         ;  конец программы

OPEN                           

              bsf    PORTB,2                   ;открыть дверь

              call delay0.4              ;задержка

              bcf    PORTB,2                   ;закрыть дверь

              goto   START                     ;к началу

        return

            

;------------------------------------------------------------------------------------------------------------------

 

;Основная программа

;===================================================================

START                           

              btfsc PORTB,0              ; кнопка нажата?

              Goto  OPEN

              Bsf portB,3

              Call delay0.4              ;да, перейти к ОPEN

              movf  PORTB,W

              Bcf portB,3

              Call delay0.4              ;нет, код в аккумулятор

              btfsc STATUS,Z              ;код введен?

              Goto  START              ;нет, к началу

              sublw  ETALON              ;да, вычитаем ETALON-W

              btfss STATUS,Z                   ;коды не равны?

              call open

        Goto start                ;нет. Перейти к Start

;===================================================================

              end             

;===================================================================

 

 

 

 

 

16

 



Информация о работе Кодовый замок на микроконтроллере