Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

Коммуникации и связь->Реферат
Несмотря на функциональное сходство, цифровые видеоустройства самого разного назначения, такие как камеры видеонаблюдения и веб-камеры, фотоаппаратами...полностью>>
Коммуникации и связь->Книга
В зависимости от отсутствия или наличия элементов па­мяти цифро- вые устройства делятся на комбинационные устройства (КУ) и конечные автоматы (последо...полностью>>
Коммуникации и связь->Курсовая работа
Разработать специализированный процессор, выполняющий арифметическую операцию умножения двух двоичных чисел . Операнды в спецпроцессор поступают в пря...полностью>>
Коммуникации и связь->Книга
3. Определение параметров и характеристик элементом и систем автоматического управления; определения границ возможных изменений параметров и характери...полностью>>

Главная > Курсовая работа >Коммуникации и связь

Сохрани ссылку в одной из сетей:

Рисунок 4.1 - Блок-схема работы программы

- Проверка введённого кода

Когда введены все цифры кода, производится последовательная проверка всех цифр, начиная с последней (метка code_wrong). Здесь для примера выбран шестизначный код “123456” В случае несовпадения цифры кода с заданной проверяется количество оставшихся попыток ввода кода (метка code_wrong).

- Контроль количества попыток ввода кода

Если все попытки ввода израсходованы, включается звуковой сигнал длительностью 1 с. Для формирования задержки используется подпрограмма delay. Во время действия звукового сигнала устройство не реагирует на нажатия клавиш.

- Открытие замка

Открытие замка производится установкой бита p2.0.

- Закрытие замка

Закрытие замка производится сбросом бита p2.0.

- Световая индикация

Световая индикация включается установкой бита p2.2 и выключается его сбросом.

- Звуковой сигнал

Звуковой сигнал включается установкой бита p2.1 и выключается его сбросом.

- Формирование программной временной задержки.

1) Формирование задержки длительностью 5 мс.

Подпрограмма реализации временной задержки использует метод программных циклов. При этом в некоторый рабочий регистр загружается число, которое затем в каждом проходе цикла уменьшается на 1. Так продолжается до тех пор, пока содержимое рабочего регистра не станет равным нулю, что интерпретируется программой как момент выхода из цикла. Время задержки при этом определяется числом, загруженным в рабочий регистр, и временем выполнения команд, образующих программный цикл.

mov r2,#0ffh

loop3:

djnz r2,loop3

Команда mov выполняется за 1 машинный цикл, команда djnz – за 2. При тактовой частоте 24 МГц каждый машинный цикл выполняется за 0,5 мкс. Таким образом, максимальная длительность задержки, реализуемая с помощью одного цикла, составляет (1+255*2)*0,5=255,5 мкс (в регистре r2 значение 255). Задержка большой длительности может быть реализована методом вложенных циклов.

delay2: ;задержка 5 мс

mov r3,#13h

loop4:

mov r2,#0ffh

loop3:

djnz r2,loop3

djnz r3,loop4

ret

Так, максимальная длительность задержки при использовании двух циклов составляет (1+((1+2*255)+2)*255)/2=65408 мкс=65,41 мс. Рассчитаем значение регистра r3 для формирования задержки длительностью 5 мс. Очевидно, что в регистр r2 нужно загрузить максимальное значение 255. При расчёте нужно учесть, что на выполнение команд call и ret требуется по 2 машинных цикла на каждую. (2+2+1+((1+2*255)+2)*X)/2=5000. X=19,42. В регистр заносим значение 13h.

2) Формирование задержки длительностью 1 с.

При формировании задержки длительностью 1 с используется таймер T0.

delay: ;задержка 1 с

mov r1,#1fh

loop1:

mov th0,#0h

mov tl0,#0h

setb tcon.4

loop2:

jb tcon.4,loop2

djnz r1,loop1

ret

В 16-битном режиме (диапазон значений таймера 0-65535) при тактовой частоте 24МГц таймер позволяет формировать задержки длительностью до 32767,5 мкс. Для создания задержки в 1 с таймер должен переполниться 1/ 0,0327675=30,52 раз. Таким образом, в регистр r1 нужно загрузить значение 1fh.

5. Описание среды разработки программного обеспечения

При разработке и отладке программного обеспечения для данного проекта использовался пакет ProView. ProView фирмы Franklin Software Inc. – интегрированная среда разработки программного обеспечения для однокристальных микроконтроллеров семейства Intel 8051 и его клонов. Она включает в себя все компоненты, необходимые для создания, редактирования, компиляции, трансляции, компоновки, загрузки и отладки программ:

    - стандартный интерфейс Windows;

    - полнофункциональный редактор исходных текстов с выделением синтаксических - элементов цветом;

    - организатор проекта;

    - транслятор с языка C;

    - ассемблер;

    - отладчик;

    - встроенную справочную систему.

Среда разработки подобна Visual C++ Microsoft и Borland C++ для Windows. Пользователи, знакомые с любым из этих изделий, будут комфортно чувствовать себя в ProView. Первый этап разработки программы – запись её исходного текста на каком-либо языке программирования. Затем производится компиляция или трансляция его в коды системы команд микроконтроллера, используя транслятор или ассемблер. Трансляторы и ассемблеры – прикладные программы, которые обрабатывают текстовый файл, содержащий исходный текст программы, и создают объектные файлы, содержащие объектный код. После компоновки объектных модулей наступает этап отладки программы, устранения ошибок, оптимизации и тестирования программы. ProView объединяет все этапы разработки прикладной программы в единый рекурсивный процесс, когда в любой момент времени возможен быстрый возврат к любому предыдущему этапу. Далее описаны основные компоненты ProView.

Оптимизирующий кросс-компилятор C51

Язык C - универсальный язык программирования, который обеспечивает эффективность кода, элементы структурного программирования и имеет богатый набор операторов. Универсальность, отсутствие ограничений реализации делают язык C удобным и эффективным средством программирования для широкого разнообразия задач. Множество прикладных программ может быть написано легче и эффективнее на языке C, чем на других более специализированных языках.

C51 - полная реализация стандарта ANSI (Американского национального института стандартов), насколько это возможно для архитектуры Intel 8051. C51 генерирует код для всего семейства микроконтроллеров Intel 8051. Транслятор сочетает гибкость программирования на языке C с эффективностью кода и быстродействием ассемблера.

Использование языка высокого уровня C имеет следующие преимущества над программированием на ассемблере:

  • не требуется глубокого знания системы команд процессора, элементарное знание архитектуры Intel 8051 желательно, но не необходимо;

  • распределение регистров и способы адресации управляются полностью транслятором;

  • обеспечивается лучшая читаемость программы, т.к. используются ключевые слова и функции, которые более свойственны человеческой мысли;

  • сокращается время разработки и отладки программ в сравнении с программированием на ассемблере;

  • наличие библиотечных файлов со стандартными подпрограммами, которые могут быть включены в прикладную программу;

  • существующие программы могут многократно использоваться в новых программах, используя модульные методы программирования.

Макроассемблер A51

Ассемблер A51 совместим с ASM51 Intel для всего семейства микроконтроллеров Intel 8051. Ассемблер транслирует символическую мнемонику в перемещаемый объектный код, имеющий высокое быстродействие и малый размер. Макросредства ускоряют разработку и экономят время, поскольку общие последовательности могут быть разработаны только один раз. Ассемблер поддерживает символический доступ ко всем элементам микроконтроллера и перестраивает конфигурацию для каждой разновидности Intel 8051.

A51 транслирует исходный файл ассемблера в перемещаемый объектный модуль. При отладке или при включенной опции “Include debugging information” этот объектный файл будет содержать полную символическую информацию для отладчика/имитатора или внутрисхемного эмулятора.

Компоновщик L51

Компоновщик объединяет один или несколько объектных модулей в одну исполняемую программу. Компоновщик размещает внешние и общие ссылки, назначает абсолютные адреса перемещаемым сегментам программ. Он может обрабатывать объектные модули, созданные транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel.

Компоновщик автоматически выбирает соответствующие библиотеки поддержки и связывает только требуемые модули из библиотек. Установки по умолчанию для L51 выбраны так, чтобы они подходили для большинства прикладных программ, но можно определить и заказные установки.

Отладчик/симулятор WinSim51

Отладчик/симулятор используется с транслятором C51, ассемблером A51, транслятором PL/M-51 Intel и ассемблером ASM51 Intel. Отладчик/симулятор позволяет моделировать большинство особенностей Intel 8051 без наличия аппаратных средств. Можно использовать его для проверки и отладки прикладной программы прежде, чем будут изготовлены аппаратные средства. При этом моделируется широкое разнообразие периферийных устройств, включая последовательный порт, внешний ввод - вывод и таймеры [6].

Внешний вид главного окна программы представлен на рисунке 5.1.

Рисунок 5.1 – Внешний вид главного окна ProView

Заключение

В данной работе была осуществлена разработка электронного кодового замка, предназначенного для установки на наружную дверь жилого дома.

В ходе выполнения работы был проведён анализ задачи, на основе которого были сформулированы требования к конечной системе. На основе требований была построена структурная схема. На основании структурной схемы были подобраны соответствующие устройства для реализации функций, возложенных на элементы системы. Исходя из экономических и эксплуатационных соображений, для данного устройства был выбран микроконтроллер AT89S51 фирмы Atmel. Особенностью данного замка является наличие звуковой сигнализации, оповещающей владельца о попытке подбора кода. Далее, с использованием выбранных устройств была построена функциональная схема. Разработка завершилась составлением блок-схемы алгоритма и написанием исходного кода программы для микроконтроллера.

Список использованных источников

1. Описания электронных компонентов в каталоге товаров оптовой базы комплектации электронных компонентов и приборов “ПЛАТАН”:

http://www.platan.ru/

2. Описание электромеханического замка ПОЛИС-13:

http://dialog-universal.ru/product_info.php?cPath=109&products_id=173

3. Описание клавиатуры AK-207 на сайте компании Accord: http://www.accordia.com.tw/html/general.htm

4. Описание микроконтроллера AT89S51 на сайте компании Atmel: http://www.atmel.com/dyn/resources/prod_documents/doc2487.pdf

5. Описание микроконтроллера AT89S51: http://www.gaw.ru/html.cgi/txt/ic/Atmel/micros/mcs51/at89s51.htm

6. В.Б. Бродин. Микроконтроллеры: архитектура, программирование, интерфейс: – М.: ЭКОМ, 1999.

7. П. Хоровиц, У. Хилл. Искусство схемотехники М. Мир, 2003.

ПРИЛОЖЕНИЯ

Приложение А

Исходный код программы микроконтроллера

dseg

door_code equ r0 ;массив введённых значений

attempts equ 38h ;переменная – число попыток ввода

cseg

org 00h

ajmp main

org 0bh

ajmp timer0

org 100h

main:

anl p2,#1h ;выключение светодиода и динамика

mov ie,#82h ;разрешаем прерывания от таймера

mov tmod,#1h ;задаём режим таймера – 16 бит

mov door_code,#30h ;задание адреса для вводимых цифр кода

mov attempts,#3h ;количество попыток

sjmp ent1 ;переход к началу главного цикла

enter_digit: ;обработка введённого значения

mov @door_code,a ;запоминаем цифру

inc door_code ;переходим к след. адресу

mov a,door_code

call delay2

cjne a,#36h,ent1 ;проверяем,все ли цифры введены (из 6)

ajmp compare ;переход к сравнению кодов

ent0: ;ввод 0

mov p0,#0f7h

jb p0.5,ent1

call delay2

mov a,#0h

wait0:

jnb p0.5,wait0

ajmp enter_digit

ent9: ;ввод 9

jb p0.6,ent0

call delay2

mov a,#9h

wait9:

jnb p0.6,wait9

ajmp enter_digit

ent1: ;ввод 1

mov p0,#0feh ;устанавливаем 0 на выходе P0.0

jb p0.4,ent2 ;если не нажата кнопка, к след. кнопке

call delay2 ;ждём, пока пройдёт дребезг контактов

mov a,#1h ;запоминаем введённую цифру

wait1:

jnb p0.4,wait1 ; ждём, пока отпустят кнопку

ajmp enter_digit ;переход к обраб. введённого значения

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;проверяем 6-ю цифру и далее все

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 ;переход в гл. цикл

timer0: ;обработка прерывания от T0

clr tcon.4

clr tcon.5

reti

delay: ;задержка 1 с

mov r1,#1fh

loop1:

mov th0,#0h

mov tl0,#0h

setb tcon.4

loop2:

jb tcon.4,loop2

djnz r1,loop1

ret

delay2: задержка 5 мс

mov r3,#13h

loop4:

mov r2,#0ffh

loop3:

djnz r2,loop3

djnz r3,loop4

ret

end

42




Загрузить файл

Похожие страницы:

  1. Электронный кодовый замок

    Курсовая работа >> Коммуникации и связь
    ... 4,8 с. 4. РАЗРАБОТКА ЭЛЕКТРИЧЕСКОЙ ФУНКЦИОНАЛЬНОЙ СХЕМЫ. Электрическая функциональная схема кодового электронного замка представлена на ... напряжением 220В. 8. РАЗРАБОТКА ПЛАТЫ ПЕЧАТНОЙ. Плата печатная кодового электронного замка представлена на чертеже ...
  2. Разработка предложения по защите информации от несанкционированного доступа в сетях ЭВМ объединения

    Дипломная работа >> Информатика
    ... главного файла, изменять кодовые ключи. Программный модуль ... использование аппаратных компонент (в частности, "Электронных замков и ключей"). Эти компоненты выполнены ... "Временное положение по организации разработки, изготовления и эксплуатации программных и ...
  3. Проблемы стабильного функционирования малого предприятия в период экономического кризиса и пути их решения (на примере ЗАО "БелСталь")

    Дипломная работа >> Экономика
    ... вопросам поддержки предпринимательства, осуществляет разработку ежегодных республиканских программ государственной поддержки ... с автоматикой, дистанционным управлением и наличием электронных кодовых замков. Считается, что электронный замок имеет два основных ...
  4. Анализ коммуникационных процессов службы бронирования в гостинице "Москва"

    Дипломная работа >> Физкультура и спорт
    ... обеспечения большей безопасности постояльцев, системой электронно-кодовых замков немецкой фирмы "Messerschmitt". В гостинице Москва ... № и дату договора, сумму 3.9 Заниматься планированием, разработкой маркетинга и программ организации маркетинга, нацеленных ...
  5. Денежные системы и их развитие в процессе формирования электронной финансовой системы РК

    Дипломная работа >> Финансовые науки
    ... во внимание раз­работки и предложения отече­ственных ученых ... коммерции, а электрон­ной экономики. Поэтому XXI век будет веком электронной эконо­мики и электронных расчетов ... (охрана, кодовые замки и т.д.). Шифрование локальной информации ...

Хочу больше похожих работ...

Generated in 0.0018870830535889