76086

Проект аудиодомофона

Курсовая

Коммуникация, связь, радиоэлектроника и цифровые приборы

Домофон - это устройство, предназначенное для связи входящего в помещение и лица находящегося в помещении. Домофон является своеобразным устройством контроля и управления входной двери. Устанавливаются они, как правило, на входе в помещение, на частную территорию.

Русский

2015-01-28

295 KB

4 чел.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

МАРИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Факультет информатики и вычислительной техники

                                                                                                                               Кафедра ИВС

Пояснительная записка

к курсовому проекту

по курсу “Микропроцессорные системы”

Выполнил: студент группы ВМ-41 Шимеев А.Ю.____________

Проверил: Мясников В.И.________________________________

Йошкар-Ола, 2005 г.

Аннотация

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

Содержание

Техническое задание

Требуется спроектировать домофон точнее аудиодомофон. Для обеспечения большей безопасности жильцов дома. Устройство должно выполнять следующие функции:

  •  вызов жильца квартиры, не входя в подъезд
  •  голосовая связь между посетителем и жильцом дома
  •  открывание замка с помощью устройства установленного в квартире
  •  открывание замка изнутри подъезда
  •  открывание замка при помощи электронного ключа
  •  контроль за вводом  номера квартиры

Введение

Домофон - это устройство, предназначенное для связи входящего в помещение и лица находящегося в помещении. Домофон является своеобразным устройством контроля и управления входной двери. Устанавливаются они, как правило, на входе в помещение, на частную территорию. Состоит из переговорной панели (устанавливается снаружи) и переговорной трубки, (внутри). В самом простом варианте домофон передает аудиоинформацию на расстояние. Видеодомофон, передает кроме аудиоинформации - видеоизображение, от встроенной в переговорную панель видеокамеры, либо от выносной видеокамеры. При помощи домофона можно управлять электрическим замком, и соответственно дистанционно открывать дверь. В простом варианте обеспечивается связь между двумя абонентами, в более сложных - это уже возможность соединения от двух до 1000 абонентов и управление различными замками (многоквартирные домофоны).

1. Функциональная спецификация

  1.  Список функций выполняемых системой.

  •  Вызов квартирного абонента с помощью нажатия соответствующих клавиш на клавиатуре установленной на панели устройства.
    •  Обеспечить голосовую связь между посетителем и жильцом с помощью микрофона и динамика.
    •  Дистанционное открывание двери из квартиры жильца путем нажатия  соответствующей кнопки на устройстве находящемся внутри квартиры жильца.
    •  Отпирание двери из нутрии подъезда путем нажатия кнопки установленной для этой цели  
    •  Отпирание двери путем отпирания встроенного замка, использующего в качестве ключей так называемые таблетки.
    •  Контроль за вводом символов с помощью встроенного ЖКИ дисплея.

Векторы

Дверь открыта

Дверь закрыта

X1

+

X2

+

  1.  Описание интерфейса между системой и пользователем

  •  Клавиатура, содержащая 12 кнопок для ввода нужного номера квартиры.
    •  ЖКИ дисплей для отображения вводимых символов.
    •  Динамик и микрофон для обеспечения голосовой связи
    •  Замок с ключом “Таблетка” для открывания двери.

Представление функциональной спецификации в виде документа по категориям входы, выходы и функции.

  1.  Входы
  2.  Кнопки клавиатуры
  3.  Микрофон
  4.  Замок
  5.  Выходы
  6.  Динамик
  7.  ЖКИ дисплей

С. Функции

  •  Система начинает функционировать при подключении ее к сети переменного напряжения
    •  При включение система устанавливается в начальное состояние.
    •  Система восстанавливается при зависаниях.
    •  При поступление сигнала система открывает дверь.

2. Проектирование системы

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

На основании анализа функциональной спецификации можно выделить следующие блоки, которые необходимо реализовать аппаратным способом:

ВХОДЫ:

  •  Модуль кнопок
  •  Модуль микрофона
  •  Модуль электронного замка

ВЫХОДЫ:

  •  Модуль динамика
  •  Модуль ЖКИ дисплея

ФУНКЦИИ:

  •  Модуль защиты от зависания контроллера (охранный таймер)

СТАНДАРТНЫЕ МОДУЛИ СИСТЕМЫ:

  •  Модуль контроллера
  •  Модуль сброса и синхронизации
  •  Модуль питания

Программные модули также определяются на основе анализа функциональной спецификации, из которого следует, что система может быть разделена на три части: ВХОД, ВЫХОД и ФУНКЦИИ.

ВХОДНОЙ и ВЫХОДНОЙ модули реализуют функции взаимодействия с аппаратной частью системы и представляют нижний уровень модульной структуры.

Часть спецификации ФУНКЦИИ может быть разделена на три различных модуля:

1. Входное состояние кнопок и электронного замка считывается с помощью процедуры ВХОДНОГО модуля. Однако прежде, чем должно быть предпринято какое-либо действие, необходимо проверить состояние этих входов. Все процедуры, выполняющие проверку и определяющие, какие действия должны быть предприняты по результатам проверки, необходимо сгруппировать вместе в модуле ПРОВЕРКИ.

2. Модуль обслуживания охранного таймера.

3. Если результат проверки одной из процедур модуля ПРОВЕРКИ указывает на то, что произошло нажатие кнопки, должна быть вызвана процедура для последовательного установления ВЫХОДНЫХ состояний. Дополнительно к этим модулям необходимо добавить, так называемые, стандартные модули: главный модуль MAIN и модуль ИНИЦИАЛИЗАЦИИ СИСТЕМЫ.

Модули, которые могут быть реализованы как аппаратным, так и программным способом:

- модуль ТАЙМЕРА, для формирования временных интервалов;

- модуль ПОДАВЛЕНИЯ ДРЕБЕЗГА контактов кнопок.

В настоящее время большинство микроконтроллеров имеют встроенные аппаратные узлы такие как, таймеры, контроллеры прерывания и т.д. Использование встроенных аппаратных частей повышает производительность системы за счет параллельности их работы по отношению к процессору микроконтроллера. Вследствие этого, следует использовать встроенный модуль ТАЙМЕРА, а программный модуль ТАЙМЕРА будет осуществлять управление аппаратным узлом. В этой же связи, можно объединить входные сигналы от всех кнопок (т.к. реакции на их сработку функционально не отличаются) и подать входной сигнал на встроенный контроллер прерываний. Такое решение позволит уменьшить количество используемых выводов микроконтроллера и уменьшит время реакции на внешнее событие. Модуль ПОДАВЛЕНИЯ ДРЕБЕЗГА контактов кнопок лучше реализовать программным способом.

В результате разработки проекта системы, можно построить ее структурную схему, взяв за основу, общую модульную структуру аппаратных средств (рис.2.1). Структурная схема домофона представлена на рис.2.1.    

Рис. 2.1 Структурная схема

Функционально-модульная структура программной части системы приведена на рис.2.2. Каждый из модулей размещается на одном из уровней нисходящей иерархии.

Рис. 2.2. Функционально-модульная структура ПО контроллера домофона.

3. Проектирование аппаратной части устройства

3.1 Разработка функциональной схемы.

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

Модуль кнопок реализуем в виде контактов с нормально разомкнутым состоянием. При нажатии на кнопку, произойдет замыкание соответствующего контакта. Для фиксации события, на кнопки должно быть подано от контроллера через резистор напряжение (рис.3.1). Величина напряжения, снимаемая с резистора, может принимать два значения, соответствующих событиям сработка/отпускание.

Рис. 3.1. Схема модуля кнопок.

Модуль электронного замка. На входной двери снаружи располагается только панелька для iButton и светодиод открывания дверей. Открывание дверей изнутри осуществляется с помощью кнопки. В качестве исполнительного механизма используется стандартная защелка с электромагнитом, который рассчитан на напряжение 12В. Коды ключей хранятся в внутренней памяти контроллера и могут стираться и добавляться пользователем. Для защиты от несанкционированного перепрограммирования замка используется мастер-ключ.

Модуль микрофона должен обеспечивать возможность голосового общения между посетилем и жильцом дома. И так как нет ни каких ограничений по его выбору можно взять любой микрофон которой используется в телефонных трубках.

Модуль динамика так же необходим при общении между посетилем и жильцом квартиры. Так же будет выбран динамик который используется в телефонных трубках.

Модуль индикатора в нашем случае это знакосентизирующий индикатор, который используется для отображения номера вводимого посетителем с помощью кнопок на передней панели устройства. Для этих целей подходит любой однострочный индикатор с количеством символов от 8 до 16. Так как для домофона наличие 2-х и более многострочных индикаторов ведет к замаграждению передней панели устройства и бесполезного их использования в виду малого количества вводимой информации.

Для модуля микроконтроллера необходимо определить требования на его архитектуру, в соответствии с заданием и структурной схемой. Так, в нашем случае микроконтроллер должен содержать таймер, контроллер обработки внешних прерываний, желательно наличие охранного таймера (чтобы не реализовать его в виде отдельной микросхемы). Все современные микроконтроллеры имеют встроенный тактовый генератор с внешней времязадающей цепью. Использование варианта с полностью встроенным тактовым генератором также привлекательно, однако номенклатура таких устройств ограничена. На основании анализа структурной схемы получим, что количество внешних линий ввода/вывода должно быть не менее 32 (14 – управления ЖКИ, 7 – выводов управления клавиатурой,

3 – вывода управления замком, 3 –  вывода управления динамиком и микрофоном, 2 – вывода под переговорное устройство).

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

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

Модуль питания в нашем случае преобразует переменное напряжение  ~220 В в напряжение питания для схемы контроллера и в напряжение питание схемы электронного замка. Остановимся на комбинированном источнике питания.

Таким образом, функциональная схема контроллера домофона будет иметь вид, изображенный на рис. 3.7.

3.2 Разработка принципиальной схемы.

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

Выбор кнопок для набора номера квартиры определяется эргономическими требованиями, условиями эксплуатации, преемственностью, рекомендациями министерств и т.д. Для курсового проекта определимся только с типом – они представляют собой обычную пленочную клавиатуру с 12 кнопками.   

В качестве электронного замка выберем схему которая показана на рис 3.2.

Внешняя панелька для iButton подключается к порту микроконтроллера через разъем XP2 и элементы защиты VD4, R3, VD5 и VD6. Подтягивающий резистор R4 выбран согласно спецификации однопроводной шины. Параллельно внешней панельке подключена еще и внутренняя панелька XS1, которая используется для программирования ключей. Кнопка открывания двери подключена к порту микроконтроллера через разъем XP1 и такие же элементы защиты, как и для iButton. Исполнительным устройством замка является электромагнит, подключенный через терминал XT1. Электомагнитом управляет ключ VT3, в качестве которого используется мощный МОП-транзистор типа IRF540. Диод VD7 защищает от выбросов самоиндукции. Ключом VT3 управляет транзистор VT2, который инвертирует сигнал, поступающий с порта микроконтроллера и обеспечивает управляющие уровни 0/12В на затворе VT3. Инверсия нужна для того, чтобы исполнительное устройство не срабатывало во время сброса микроконтроллера, когда на порту присутствует уровень логической единицы. 12-вольтовые управляющие уровни позволили применить обычный МОП-транзистор вместо более дефицитного низкопорогового. Для индикации открытия замка используется светодиод, который управляется тем же портом, что и электромагнит, но через транзисторный ключ VT1. Светодиод подключается через тот же разъем, что и iButton..

Рис 3.2

В качестве модуля микрофона и динамика выберем схему, которая показана на рис 3.3

Образован микрофонным усилителем на транзисторах VT10, VT11 и электронным ключом на транзисторах VT12, VT13, подключающим головку ВА2 к линии связи.

Рис 3.3

Индикатор выберем PC 1601–L  фирмы PowerTip. Данный индикатор является одно строчным , шестнадцати символьным. ЖКИ имеет 14 выводов, 8 – под данные, один для сигнала чтения/записи, сигнала разрешения, питания и др. Этот индикатор показана на рис. 3.4 

Рис 3.4

На основании анализа требований, предъявляемых к микроконтроллеру, и учитывая, что в задании на разработку нет рекомендации по его выбору, остановимся на микроконтроллере AVR –  АТMega32. Его характеристики: 40-выводной корпус – 32 программируемых линий ввода/вывода с выходными буферами, обеспечивающими 40-мА втекающий ток; 8-разрядный и 16-разрядный таймеры/счетчики; два внешних и четырнадцать внутренних источников сигнала прерывания; программируемый сторожевой таймер и др.

Схема синхронизации наиболее просто реализуется путем использования внутреннего тактового генератора с подключенным внешним кварцевым резонатором. 1МГц

При выборе схемы сброса (супервизора питания) необходимо обратить внимание на то, чтобы длительность импульса, генерируемого схемой по включению питания, была больше длительности, требуемой для сброса микроконтроллера. Кроме того, у разных микроконтроллеров сброс  осуществляется или высоким или низким уровнем (у АТmega32 сброс низким уровнем). Тип выхода схемы сброса может быть или двухтактным или открытым коллектором, в последнем случае необходим нагрузочный резистор.

АТmega32 имеет встроенную схему сброса по включению питания, которая вырабатывает импульс при достижении питания уровня ≈2В. Соответственно, при снижении напряжения питания ниже 2В также произойдет сброс микроконтроллера. Во многих ответственных приложениях работа устройства при напряжении ниже 4,2В не гарантируется. В этих случаях используют внешние схемы сброса, порог срабатывания которых имеет требуемый порог срабатывания. Зададимся уровнем срабатывания схемы сброса в 4,4В.

Выберем супервизор фирмы Dallas – DS 1813-5, удовлетворяющий указанным условиям. Типовая схема его включения приведена на рис 3.5.

Рис.3.5. Типовая схема подключения супервизора питания.

В качестве источника питания, как отмечалось выше, выберем комбинированный источник питания. Входное напряжение равно ~220В, выходное +5В и +12В.

Рис 3.6

Напряжение, которое должен обеспечить модуль, зависит от мощности потребления контроллера домофона. Определим приблизительно мощность потребления контроллером домофона.

Так, ток потребления микросхем составляет:

-  АТmega32 – 4,5 мА на частоте 1 МГц;

-  DS 1813-5 – 40 мА;

-  PC 1601-L – 2,5 мА;

-  электронный замок –       ;

-  переговорное устройство – 40 мА;                

Итого потребляемый ток составит около       , при      питании потребляемая мощность равна          Вт.

Функциональная окончательная схема устройства представлена на рис.3.7.

По данной функциональной схеме построение принципиальной схемы не представляет трудностей, так как определены все ее элементы.

Схема питания устройства

Рис 3.7 Функциональная схема

4. Проектирование программной части 

4.1. Разработка структуры программного обеспечения

В разделе проектирования системы была определена функционально-модульная структура ПО контроллера (рис. 2.2).

Эта структура должна быть дополнена еще двумя модулями, которые не могут быть выведены из функциональной спецификации – модуль ИНИЦИАЛИЗАЦИИ и модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ. Когда система включается, она должна быть инициализирована, таким образом данный модуль должен находиться на втором уровне нисходящей иерархии – сразу за главным модулем. Разрешение общего прерывания не будем включать в модуль ИНИЦИАЛИЗАЦИИ, с целью лучшей читаемости программы.

В соответствии с функционально модульной структурой процедура MAIN будет иметь вид:

MAIN()

{

   ИНИЦИАЛИЗАЦИЯ СИСТЕМЫ();

   РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ();

   while (1)          

     {

ПРОВЕРКА ();

СБРОС WDT();

      }

}

Первая операция процедуры MAIN обращается к процедуре ИНИЦИАЛИЗАЦИЯ, далее к процедуре РАЗРЕШЕНИЕ ОБЩЕГО ПРЕРЫВАНИЯ. После выхода из этой процедуры осуществляется переход к другим процедурам, которые содержаться внутри бесконечного цикла while. Таким образом в системе обеспечивается проверка нажатия кнопки, проверка состояния датчика температуры и сброс охранного таймера. Эти операции выполняются до тех пор, пока система подключена к источнику питания.

Модуль ИНИЦИАЛИЗАЦИИ должен содержать процедуры, которые выполняют функции инициализации и восстановления после зависания. При включении питания необходимо настроить следующие узлы микроконтроллера: порты, таймеры, систему прерываний, охранный таймер. Порты настраиваются на ввод или вывод информации. Таймер служит для отсчета временных интервалов и  для часов реального времени. Настройка системы прерывания заключается в определении источников прерывания и их разрешения. У охранного таймера настраивается время задержки до его срабатывания, если не будет к нему обращения. Данный модуль является не сложным, поэтому не имеет смысла разбивать его на отдельные процедуры:

ИНИЦИАЛИЗАЦИЯ()

   {   

установка портов на ввод/вывод и задание выходного вектора;

настройка постоянной времени охранного таймера;

настройка системы прерывания, разрешение отдельных прерываний;

    }

Модуль РАЗРЕШЕНИЯ ОБЩЕГО ПРЕРЫВАНИЯ разрешает системе реагировать на прерывания. Для контроллера это внешнее прерывание от кнопка и внутреннее от таймера. Разрешение индивидуальных прерываний выполнено в модуле ИНИЦИАЛИЗАЦИЯ.

Модуль ПРОВЕРКИ проверяет состояние флага занятости индикатора. Если флаг не установлен, то запускается одна из процедур в выходном модуле. Эти процедуры содержатся в ВЫХОДНОМ модуле, такие как запись команды, запись данных и вывод информации на ЖКИ.

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

ПРОВЕРКА()

  {        

           Если  флаг занятости не установлен, то выполнить

{

ВЫХОДНОЙ (параметры);      

    }

    }

Модуль СБРОС WDT устанавливает охранный таймер в исходное состояние, не позволяя ему сбросить всю систему. Это библиотечная функция языка.

ВХОДНОЙ модуль должен реагировать на поступления данных которые необходимо вывести на экран. Реализуем данный модуль в виде подпрограммы записи команды и данных на индикатор и вывода их на экран. При установлении занятости индикатора необходимо выставить флаг занятости.

ВХОДНОЙ()

   {

 Посылка команды

       Вывод данных

    }

 

ВЫХОДНОЙ модуль устанавливает выходной вектор на выходной порт микроконтроллера. Данные сигналы управляют ЖКИ т.е. выводят информацию на индикатор.   

   

 ВЫХОДНОЙ(параметры)

   {        /* начало процедуры*/

установка на порту выходного вектора;  

    }            /* возврат

4.2. Разработка заданного программного модуля

Для реализации выберем модуль ВХОДНОЙ. Представим его в графическом виде при помощи блок-схемы алгоритма.  

Для реализации выберем модуль ВХОДНОЙ. Представим его в графическом виде при помощи блок-схема алгоритма.

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

Приведём представление архитектуры ПО контроллера инкубатора в виде графа состояний системы.

4.3. Руководство программиста

Программа управления домофоном, написанная на языке С.

Программа содержит следующие процедуры: процедура MAIN которая описана ниже ,процедуру инициализации – INIT(), процедуру ожидания готовности индикатора – WaitReady(), процедуру записи команды – WriteComm(), процедуру вывода символов на экран – WriteData().

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

Пояснения к программе приведены в самом листинге.

#include <io2313.h>                           //файл описания регистров  АТ90S2313

#include <ina90.h>                             //файл  процедур семейства АТ90Sxxxx

                  

#define DispBASE   0x010000/* 1 - указание компилятору на расположение индикатора во внешней

                                                              памяти данных, DispBASE его базовый адрес =0000  */                                                                  

#define ReadStateAddr   (*(char *) (DispBASE+0x800))  /*адрес регистра состояния=0200h*/
#define WriteCommAddr   (*(char *) (DispBASE+0x000)) /* адрес регистра команд =0000h*/

#define ReadDataAddr    (*(char *) (DispBASE+0xC00))   /* адрес регистра данных по чтению                        =0300h*/

#define WriteDataAddr   (*(char *) (DispBASE+0x400))/* адрес регистра данных по записи =0100h*/

char DispPos;                                          /* переменная  - текущая позиция маркера*/

/*********************************************************************************/

 void main(void)

 {

    INIT();                 //инициализация контроллера

    _SEI();                // Общее разрешение прерываний

   

                     // Бесконечный цикл

   while (1)

     {

       _WDR();         // Сброс охранного таймера

     }

  }

/*********************************************************************************/

void INIT(void)                                   // инициализация контроллера

 {

   TCCR1A = 0x00;

   TCCR1B = 0x14;                                 

   TIMSK |= Bit(MskTIE1);                   // Таймер 1 - разрешение прерываний

   GIMSK |= Bit(MskInt0);                    // INT0 - разрешение прерывания

  WDTCR = 0x0F;       // Настройка WATCHDOG

   

                 // Настройка портов

DDRА = 0xFF;                                 //11111111 – РА0...РА7-на выход – данные на ЖКИ

   PORTD = 0x00;  //все на вход и в третье состояние

   

   

}

/****************************************************************************/

                       /* Ожидание готовности дисплея */

 void WaitReady(void)

 {

   while (ReadStateAddr & 0x80);                      /* Ожидать сброса бита занятости */

 }

/****************************************************************************/

                        /* Запись команды в дисплей */

 void WriteComm(char Cmd)

 {

   WaitReady();

   WriteCommAddr = Cmd;                                     /* Запись команды */

 }

 /*Таблица кодировки выводимых символов из таблицы */

                                                   code const char Table[128] =  (0x41,0xA0,0x42,0xA1,0xE0,0x45,0xA3,0xA4,                      0xA5,0xA6,0x4B,0xA7,0x4D,0x48,0x4F,0xA8,

                                                                                                     0x50,0x43,0x54,0xA9,0xAA,0x58,0xE1,0xAB,                     0xAC,0xE2,0xAD,0xAE,0x62,0xAF,0xB0,0xB1,

                                                                                                     0x61,0xB2,0xB3,0xB4,0xE3,0x65,0xB6,0xB7,               0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0x6F,0x6E,

                                                                                                     0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,         0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,

                                                                                                     0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,         0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,

                                                                                                     0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,          0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,

                                                                                                     0x70,0x63,0xBF,0x79,0xE4,0x78,0xE5,0xC0,              0xC1,0xE6,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,

                                                                                                     0xA2,0xB5,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,

                                                                                                     0xEA,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF);                                                                                              

 /****************************************************************************/

                               /* Вывод символов */

 void WriteData(char Sym)   /* Sym  - выводимый символ в коде ASCII */

 {

   if (Sym < 0x20)                                               /* Служебные символы */

     {

       switch (Sym)

         {

       case 0x0C:                                                  /* Очистка дисплея */

            WriteComm(0x01);                               /* Команда очистки дисплея */

            DispPos=0;                                           /* Обнулить позицию курсора */

            break;

       case 0x0D:                                                 /* Возврат каретки */

            DispPos &= 0x10;                                /* Обнулить позицию в строке */

            WriteComm((DispPos<<2)|0x80);       /* Установить курсор в начало строки */

            break;

         }

     }

  

else                                                                   /* Обычные символы */

     {

     

  if (Sym >0x7F)                                    /* Вторая половина ASCII таблицы ? */

       Sym = Table[Sym & 0x7F];                /* Перекодировать через таблицу */

       WaitReady();                                       /* Ожидать готовности */

       WriteDataAddr = Sym;                       /* Вывести символ на экран */

       DispPos++; DispPos &= 0xF;            /* Коррекция положения курсора –  диапазон его

                                                                       значений 0…15, т.е. переход из 15 позиции в  0*/                                                        

     }

   else                                                                   /* Цифры */

     {

       if (Sym >0x30 && Dat <0x39)                      /* Код символа входит в диапазон ? */

       WaitReady();                                                /* Ожидать готовности */

       WriteDataAddr = Sym;                                  /* Вывести символ на экран */

       DispPos++; DispPos &= 0xF;                /* Коррекция положения курсора – диапазон

                                                                           его значений 0…15, т.е. переход из 15 позиции в  0 */                                 

     }

}

Заключение

Проработав соответствующий материал и применив полученные знания по дисциплине МПС было спроектировано устройство домофон и соответствующее программное обеспечение для него.

Литература

  1.  Мясников В.И. Микропроцессорные системы. Учебное пособие по курсовому проектированию.- Йошкар-Ола: МарГТУ, 2003.
  2.  Предко М. Руководство по микроконтроллерам. В 2-х томах. – М.: Постмаркет, 2001.
  3.  Евстифеев А.В. Микроконтроллеры AVR семейства Classic фирмы “ATMEL”.  М.: “Додэка–XXI” 2002 .


2

Лист

3

Лист

4

Лист

КНФУ.ХХХХХХ.001 ПЗ

6

КНФУ.ХХХХХХ.001 ПЗ

7

КНФУ.ХХХХХХ.001 ПЗ

8

КНФУ.ХХХХХХ.001 ПЗ

10

Лист

Дата

Подпись

КНФУ.ХХХХХХ.001 ПЗ

14

Модуль замка

Модуль микрофона

КНФУ.ХХХХХХ.001 ПЗ

Схема сброса и синхронизации

Модуль питания

Модуль индикатора

Модуль микроконтроллера

Модуль динамика

КНФУ.ХХХХХХ.001 ПЗ

Модуль кнопок

9

№ докум.

Лист

Изм.

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Лист

Дата

Подпись

№ докум.

ист

Изм.

Лист

Дата

Подпись

№ докум.

Лист

Изм.

ВМ-41 МарГТУ

Листов

Лит.

Домофон

Пояснительная записка

 Утверд.

Н. Контр.

Реценз.

Мясников  В. И

Провер.

Шимеев А. Ю.

Разраб.

КНФУ.ХХХХХХ.001 ПЗ

5

Лист

Дата

Подпись

№ докум.

Лист

Изм.

№ докум.

Лист

Изм.

DOWN

OPEN

DOWN

DOWN – по этому сигналу происходит открытие двери либо нажатием кнопки внутри подъезда либо кнопки из квартиры

OPEN – по этому сигналу происходит открытие двери при помощи ключа таблетки

Вкл.

КНФУ.ХХХХХХ.001 ПЗ

11

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Лист

Дата

Подпись

№ докум.

Лист

Изм.

   SP

+ 5В

RESET

GND

DS1813-5

КНФУ.ХХХХХХ.001 ПЗ

13

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Выход

DispPos &= 0xF

DispPos++

WriteDataAddr = Sym

WaitReady()

Sym = Table[Sym & 0x7F]

Sym >0x7F

WriteComm((DispPos<<2)|0x80)

КНФУ.ХХХХХХ.001 ПЗ

16

Лист

Дата

Подпись

№ докум.

Лист

Изм.

19

Лист

Дата

Подпись

OPEN

Дверь закрыта

КНФУ.ХХХХХХ.001 ПЗ

15

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Дверь открыта

Ожидание

КНФУ.ХХХХХХ.001 ПЗ

18

Лист

Дата

Подпись

№ докум.

КНФУ.ХХХХХХ.001 ПЗ

17

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

21

Лист

Дата

Подпись

№ докум.

Лист

Изм.

Микрофон

Динамик

Reset

+5V

SP

ЖКИ

Электронный замок

Клавиатура

CPU

12

Лист

Дата

Подпись

К  микроконтроллеру

+5В

Vss

Vdd

Vo

RS

R/W

E

DB0

DB1

DB2

DB3

DB4

DB5

DB6

DB7

№ докум.

Лист

Изм.

Лист

Изм.

DispPos &= 0x10

Sym=0x0D

DispPos=0

Очистка дисплея

Sym=0x0C

Sym<0x20

КНФУ.ХХХХХХ.001 ПЗ

23

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

КНФУ.ХХХХХХ.001 ПЗ

ВЫХОДНОЙ модуль

ВХОДНОЙ модуль

Вход

Модуль СБРОС WDT

Модуль ПРОВЕРКИ

Главный модуль MAIN

20

Лист

Дата

Подпись

№ докум.

Лист

Изм.

КНФУ.ХХХХХХ.001 ПЗ

22

Лист

Дата

Подпись

№ докум.

Лист

Изм.


 

А также другие работы, которые могут Вас заинтересовать

38601. ФОРМИРОВАНИЕ КОММУНИКАТИВНОЙ КОМПЕТЕНЦИИ МЛАДШИХ ШКОЛЬНИКОВ ВО ВНЕУЧЕБНОЙ ДЕЯТЕЛЬНОСТИ 361.5 KB
  Отечественные ученые, определяя младший школьный возраст как важный этап социализации и развития коммуникативных умений, считают, что ключом к успешной деятельности, ресурсом эффективности и благополучия будущей жизни ребенка, является коммуникативная компетенция
38602. Актуальные налоговые теории. Промысловое налогообложение 40.62 KB
  Под налоговыми теориями следует понимать ту или иную систему научных знаний о сути и природе налогов, их месте, роли и значении в экономической и социально-политической жизни общества. Иными словами налоговые теории представляют собой различные модели построения налоговых систем государства в зависимости от признания за налогами того или иного назначения.
38603. Технологические основы социальной профилактики наркозависимости в образовательных учреждениях 492.5 KB
  Методические основы выявления эпизодов потребления наркотиков детьми и подростками. Ковальчук выделили причины влияющие на употребление наркотиков детьми и подростками: социальноэкономические конституциональнобиологические социальные индивидуальнопсихологические. До начала XX века практически не существовало ограничений на производство и потребление наркотиков. Но тем не менее распространение наркотиков продолжалось.
38604. Состояние и перспективы развития молочного скотоводства в КСУП «Добрушское» Добрушского района Гомельской области 340.5 KB
  4 Резервы повышения экономической эффективности производства молока 30 Безопасность жизнедеятельности 35 4 Экологическое обоснование работы 37 Выводы...
38605. Види взаємодії людини з природним середовищем та їх наслідки у звязку з забрудненнями стічними водами ПАТ Сєверодонецьке Обєднання Азот 946.5 KB
  Головна ж теоретична і практична задача екології розкрити загальні закономірності організації життя і на цій основі розробити принципи раціонального використання природних ресурсів в умовах все зростаючого впливу людини на біосфер Взаємодія людського суспільства і природи стало однією з найважливіших проблем сучасності оскільки положення яке складається у відносинах людини з природою часто стає критичним: вичерпуються запаси прісної води і корисних копалин нафти газу кольорових металів тощо погіршується стан ґрунтів водного і...
38606. Разработка метода синтеза третбутилзамещенных хиноксалинопорфиразинов 580.5 KB
  В дипломе представлен обзор литературы об особенностях комплексных соединений природных и синтетических порфиринов, о строении и спектральных свойствах, а также о способах синтеза фталоцианина и его структурных аналогов, экспериментальная часть и обсуждение результатов.
38607. ВПЛИВ ТРИВОЖНОСТІ НА ПРОЯВИ ОБМАНУ У ДОШКІЛЬНОМУ ВІЦІ 2.28 MB
  У нашому дослідженні під тривогою розуміється психічний стан, що виникає в ситуаціях невизначеної небезпеки, функціональне попередження про можливу небезпеку і спонукання людини до дослідження оточуючої дійсності з метою виявлення загрозливих об’єктів (за В. Вікторовою).
38608. ТЕХНИЧЕСКАЯ ПОДГОТОВКА ЮНЫХ ОРИЕНТИРОВЩИКОВ 12 – 13 ЛЕТ 3.77 MB
  С помощью карты начальник дистанции планирует трассы оборудует их на местности. Все спортивные карты должны оформляться в условных знаках и обладать определенными качествами: точность информативность объективность читаемость и полнота содержания Зубков С. У спортивной карты можно выделить две функции. Его применение служит двум целям – ориентирование карты и выдерживание направления на местности.