Проектирование электронного кодового замка с фиксированным кодом "00002" на микроконтроллере серии PIC

Создание и разработка электронного кодового замка, имеющего 10 кнопок для ввода кода, обозначенных цифрами от "0" до "9", который разработан на основе микроконтроллера PIC16F84A. Разработка принципиальной электрической схемы в программе SPlaner.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 12.04.2014
Размер файла 556,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

  • ДЕПАРТАМЕНТ ОБРАЗОВАНИЯ ГОРОДА МОСКВЫ
  • КОЛЛЕДЖ ПРЕДПРИНИМАТЕЛЬСТВА №11
  • КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
  • КУРСОВОЙ ПРОЕКТ
  • по дисциплине «Микропроцессоры и микропроцессорные системы»
  • Тема: Проектирование электронного кодового замка с фиксированным кодом «00002» на микроконтроллере серии PIC
  • Выполнил: Груздев К.Е.
  • Студент группы В-42
  • Проверил:
  • Преподаватель: А.С. Манежкин
  • Москва
  • 2013

Содержание

Введение

1. Общие сведенья о семействе PIC микроконтроллеров фирмы Microchip

1.1 Краткая характеристика микроконтроллеров семейства PIC16CXXX

1.1.1 Микроконтроллеры семейства PIC16CXXX

1.1.2 Микроконтроллеры подгруппы PIC16F8X

1.2 Программное обеспечение MPLAB

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

3. Разработка и отладка программного обеспечения

Приложение А. Схема электрическая принципиальная и перечень элементов

Приложение Б. Листинг управляющей программы

Введение

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

Кодовый замок механический открывается с помощью кодовой последовательности, которая хранится в виде установленных в определённое положение колец, штифтов и т. д.

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

Целью курсовой работы является создание и разработка электронного кодового замка имеющий 10 кнопок для ввода кода, обозначенных цифрами от «0» до «9» и при правильном вводе кода должен загораться индикатор. Электронный кодовый замок разрабатывается на основе микроконтроллера PIC16F84A.

Микроконтроллер - микросхема, предназначенная для управления электронными устройствами.

В работе будем разрабатывать электронный кодовый замок на основе Peripheral Interface Controller (сокращенно PIC,расшифровывается это так «Периферийный интерфейсный контроллер») производимый компанией Microchip Technology Inc.

Отличается этот микроконтроллер от других тем, что у него более высокая производительность, и он имеет два блока памяти: память данных и память программ.

1. Общие сведенья о семействе PIC микроконтроллеров фирмы Microchip

PIC -- микроконтроллеры Гарвардской архитектуры, производимые американской компанией Microchip Technology Inc. Название PIC является сокращением от Peripheral Interface Controller, что означает «периферийный интерфейсный контроллер». Название объясняется тем, что изначально PIC предназначались для расширения возможностей ввода-вывода 16-битных микропроцессоров CP1600.[1]

В номенклатуре Microchip Technology Inc. представлен широкий спектр 8-и, 16-и и 32-битных микроконтроллеров и цифровых сигнальных контроллеров под маркой PIC. Отличительной особенностью PIC-контроллеров является хорошая преемственность различных семейств. Это и программная совместимость (единая бесплатная среда разработки MPLAB IDE), и совместимость по выводам, по периферии, по напряжениям питания, по средствам разработки, по библиотекам и стекам наиболее популярных коммуникационных протоколов. Номенклатура насчитывает более 500 различных контроллеров со всевозможными вариациями периферии, памяти, количеством выводов, производительностью, диапазонами питания и температуры и т. д.

8-битные микроконтроллеры

8-битные микроконтроллеры имеют модифицированную гарвардскую архитектуру и делятся на 2 больших семейства: PIC10/12/16 и PIC18.

8-битные микроконтроллеры PIC10/12/16

8-битные микроконтроллеры PIC10/12/16 представлены двумя базовыми архитектурами ядра: BASELINE и MID-RANGE.

Архитектура базового (BASELINE) семейства

Базовая архитектура (BASELINE) состоит из контроллеров семейства PIC10 и части контроллеров семейств PIC12 и PIC16. Основываются они на 12-и разрядной архитектуре слова программ и представлены контроллерами в корпусах от 6 до 28-и выводов. Упрощенная архитектура базового семейства предоставляет наиболее дешевое решение из предлагаемых Microchip. Широкий диапазон напряжений питания, возможность работы при низких напряжениях преследует целью возможность применения микроконтроллеров в батарейных устройствах.

· маловыводные и миниатюрные корпуса

· Flash память программ

· низкое потребление тока

· низкая цена

· легкое освоение, всего 35 команд

Архитектура среднего (MID-RANGE) семейства

Архитектура среднего семейства (Mid-Range) нашла применение в микроконтроллерах серий PIC12 и PIC16, и имеет ширину слова памяти программ 14 бит. Эти микроконтроллеры выпускаются в корпусах от 8 до 64 выводов. Микроконтроллеры с Flash памятью работают в диапазоне напряжений питания от 2.0 до 5.5В, имеют систему прерываний, аппаратный стек и энергонезависимую память данных EEPROM, а также богатый набор периферии, такой как USB, SPI, IІC, USART, LCD, компараторы, АЦП и т. п.

· различные корпуса: 6 -- 64 выводов

· Flash память программ

· малый ток потребления

· богатая периферия

· производительность 5 MIPS

· легкое освоение, всего 35 команд

Расширенное ядро микроконтроллеров среднего семейства

В более новых микроконтроллерах Microchip применяет улучшенную архитектуру 8-битных PIC микроконтроллеров среднего семейства PIC12 и PIC16:

· увеличенный объем памяти программ и данных

· более глубокий и улучшенный аппаратный стек

· дополнительные источники сброса

· расширенная периферия, периферия включает модуль mTouch ™ для создания сенсорных пользовательских интерфейсов

· уменьшенное время входа в прерывание

· производительность увеличена на 50 %, а размер кода снижен на 40 %

· 14 дополнительных инструкций, оптимизированных под С-компилятор -- итого, 49 инструкций

8-битные микроконтроллеры PIC18

Высокопроизводительное семейство 8-битных микроконтроллеров PIC18F представлено широкой гаммой микроконтроллеров, включающих большой набор периферийных модулей: 10бит АЦП, компараторы, ШИМ, захват/сравнение, драйвер ЖКИ; интерфейсы связи USB, CAN, I2C, SPI, USART, Ethernet и т. д.

· быстродействия до 16 MIPS

· объем памяти программ до 128Кб

· корпуса от 18 до 100 выводов.

· эффективное кодирование на C

· NanoWatt технологии

· встроенный программируемый генератор

· 3В и 5В семейства

· продвинутая архитектура (16-и разрядные слова программ)

· гибкость самопрограммирования

· поддержка широко распространенных протоколов связи (CAN, USB, ZigBee™, TCP/IP)

· программная совместимость и совместимость по выводам и периферийным модулям внутри семейства, а также со старшими (16-битными) семействами, предоставляют возможность расширения и увеличения функциональности при развитии разработок.

16-битные микроконтроллеры

Компания Microchip Technology Inc. производит два семейства 16-и разрядных микроконтроллеров (MCU) и два семейства 16-и разрядных цифровых сигнальных контроллеров (DSC), которые дают разработчикам совместимые платформы с обширным выбором типов корпусов, периферийных модулей и быстродействия. Общие атрибуты всех 16-и разрядных семейств -- это совместимость по выводам, общая система команд и, соответственно, общие компиляторы Си и средства разработки. Широкая линейка 16-битных контроллеров включает контроллеры от 18 до 100 выводов с объемом flash памяти от 6 Кб до 536 Кб.

Старшим семейством контроллеров от Microchip Technology является 32-разрядное семейство микроконтроллеров PIC32:

· ядро MIPS32 M4K, частота тактирования 80 МГц, большинство команд выполняются за 1 такт генератора, производительность 1.53 Dhrystone MIPS/МГц

· порты ввода/вывода относятся к основному частотному диапазону, т.о., к примеру, можно дергать портами с тактовой частотой.

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

· 28-, 44-, 64- и 100-выводные корпуса, до 128 кБ SRAM и 512 кБ Flash с кэшем предвыборки

· совместимость по выводам и отладочным средствам с 16-битными контроллерами Microchip

· аппаратный умножитель-делитель с независимым от основного ядра конвейером, оптимизированным по скорости выполнения

· набор расширенных инструкций MIPS16e™ -- набор 16-битных инструкций, позволяющий на некоторых приложениях снизить объем кода на 40 %

· независимый от основного ядра контроллер USB

Семейство 32-разрядных микроконтроллеров PIC32 выделяется значительно увеличенной производительностью и объемом памяти на кристалле по сравнению с 16-разрядными микроконтроллерами и контроллерами цифровой обработки сигналов PIC24/dsPIC. Контроллеры PIC32 также оснащены большим количеством периферийных модулей, включая различные коммуникационные интерфейсы -- те же, что у PIC24, и 16-битный параллельный порт, который может использоваться, например, для обслуживания внешних микросхем памяти и жидко-кристаллических TFT-индикаторов. Семейство PIC32 построено на ядре MIPS32®, с конкурентоспособной комбинацией низкого потребления энергии, быстрой реакции на прерывание, функциональностью средств разработки и лидирующем в своем классе быстродействием 1.53 Dhrystone MIPS/МГц. Такое быстродействие достигнуто благодаря эффективному набору инструкций, 5-ступенчатому конвейеру, аппаратному умножителю с накоплением и несколькими (до 8) наборами 32-разрядных регистров ядра.

16-битные микроконтроллеры PIC24F и PIC24H

Основные особенности:

· выполнение команды за 2 такта генератора

· гарантированное время отклика на прерывание -- 5 командных тактов

· доступ к памяти (в том числе инструкции чтения-модификации-записи) за 1 командный такт

· аппаратный умножитель (за 1 такт)

· аппаратный делитель 32/16 и 16/16 чисел (17 командных тактов)

· диапазон питающих напряжений 1.8…3.6В, один источник питания.

· внутрисхемное и само- программирование

· встроенный генератор с PLL

· расширенная периферия (до 3-х SPI, до 3-х I2C, до 4-х UART (с поддержкой IrDA, LIN), CAN (и расширенный ECAN), USB OTG)

· модуль измерения времени заряда (CTMU), основное применение -- управление емкостными сенсорами

· ток портов ввода/вывода общего назначения -- 18 мА

· порты толерантны к устройствам с 5 В питанием

· до девяти 16-битных таймеров общего назначения

· до восьми модулей захвата

· ряд энергосберегающих режимов

· до двух АЦП (32 канала) с конфигурируемой разрядностью

· до восьми 16-битных модулей сравнения / генерации ШИМ

· программное переназначение выводов (PPS)

· прямой доступ к памяти DMA(у PIC24H)

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

16-битные микроконтроллеры представлены в двух модификациях -- PIC24F и PIC24H, которые отличаются технологией изготовления FLASH программной памяти. Это определяет диапазон питающих напряжений -- для PIC24F -- 2,0…3,6 В, для PIC24H -- 3,0…3,6 В. Первое семейство (PIC24F) производится по более дешевой технологии (0,25 мкм) и работает с максимальной производительностью ядра 16MIPS@32МГц. Второе семейство (PIC24H) производится с использованием более сложного техпроцесса изготовления, что позволяет добиться большей скорости работы (40MIPS@80МГц). Оба семейства поддерживают внутрисхемное программирование (ICSP), а также самопрограммирование (RTSP).

1.1 Краткая характеристика микроконтроллеров семейства PIC16CXXX

PIC16CXX - это 8-pазpядные микроконтроллеры с RISC архитектурой, производимые фирмой Microchip Technology. Это семейство микpоконтpоллеpов отличается низкой ценой, низким энеpгопотpеблением и высокой скоpостью. Микpоконтpоллеpы имеют встpоенное ЭППЗУ пpогpаммы, ОЗУ данных и выпускаются в 18 и 28 выводных коpпусах.

1.1.1 Микроконтроллеры семейства PIC16CXXX

Среднее семейство PICmicro является развитием базового и характеризуется модифицированным ядром процессора. Это семейство является самым многочисленным представителем PICmicro, ему свойственна самая разнообразная номенклатура корпусов и периферии. Среднее семейство имеет 14-битную ширину инструкции, контроллер прерываний и глубокий 8 уровневый стек. Максимальная скорость выполнения команд - 5 MIPS на частоте 20 MHz. Система команд включает в себя 35 однословных инструкции. В качестве периферии микроконтроллеры этого семейства имеют: ОЗУ (до 384 байт), двунаправленные порты ввода/вывода с током нагрузки до 25 мА, таймеры-счетчики, компараторы, 8-битные АЦП, последовательные каналы (I2C, SPI, USART), устройства выборки и сравнения, ШИМ, контроллер ЖКИ, параллельный порт, программируемые источники опорного напряжения, сторожевой таймер и т.д. Микроконтроллеры семейства выполнены в 18, 20, 28, 40, 44 выводных корпусах, типы корпусов - DIP, SOIC, SSOP, LCC, QFP. Допускается широкий диапазон питающих напряжений с нижней границей напряжения - 2.0 В.

Перечень микроконтроллеров среднего семейства представлен в таблице:

Обозначение

Кодовая память OTP (слов)

ОЗУ (байт)

Макс. частота (MГц)

Корпус

PIC14C000

4096

192

20

SP28, SO28, SS28, JW28

PIC16C554

512

80

20

D18, SO18, SS20, JW18

PIC16C556A

1024

80

20

D18, SO18, SS20, JW18

PIC16C558

2048

128

20

D18, SO18, SS20, JW18

PIC16C62A

2048

128

20

SP28, SO28, SS28, JW28

PIC16C63

4096

192

20

SP28, SO28, JW28

PIC16C64A

2048

128

20

D40, L44, PQ44, PT44, JW40

PIC16C65A

4096

192

20

D40, L44, PQ44, PT44, JW40

PIC16C66

8192

368

20

SP28, SO28, JW28

PIC16C67

8192

368

20

D40, L44, PQ44, PT44, JW40

PIC16C620

512

80

20

D18, SO18, SS20, JW18

PIC16C621

1024

80

20

D18, SO18, SS20, JW18

PIC16C622

2048

128

20

D18, SO18, SS20, JW18

PIC16C641

2048

128

20

SP28, SO28, JW28

PIC16C642

4096

176

20

SP28, SO28, JW28

PIC16C662

4096

176

20

D40, L44, PQ44, PT44, JW40

PIC16C710

512

36

20

D18, SO18, SS20, JW18

PIC16C711

1024

68

20

D18, SO18, SS20, JW18

PIC16C715

2048

128

20

D18, SO18, SS20, JW18

PIC16C72

2048

128

20

SP28, SO28, SS28, JW28

PIC16C73A

4096

192

20

SP28, SO28, JW28

PIC16C74A

4096

192

20

D40, L44, PQ44, PT44, JW40

PIC16C76

8192

368

20

SP28, SO28, JW28

PIC16C77

8192

368

20

D40, L44, PQ44, PT44, JW40

PIC16F83

512 (Flash)

68 (64EE)

10

D18, SO18

PIC16F84

1024 (Flash)

68 (64EE)

10

D18, SO18

PIC16C923

4096

176

8

SP64, L68, PT64

PIC16C924

4096

176

8

SP64, CL68, L68, PT64

1.1.2 Микроконтроллеры подгруппы PIC16F8X

Микроконтроллеры подгруппы PIC 16F8X относятся к семейству 8-разрядных КМОП микроконтроллеров группы PIC16CXXX, для которых характерны низкая стоимость, полностью статическая КМОП-технология и высокая производительность.

В состав подгруппы входят МК PIC16F83, PIC16CR83, PIC16F84 и PIC16CR84.

Все микроконтроллеры подгруппы PIC16F8X используют гарвардскую архитектуру с RISC-процессором, обладающую следующими основными особенностями:

· используются только 35 простых команд;

· все команды выполняются за один цикл (400 не при частоте 10 МГц), кроме команд перехода, которые требуют 2 циклов;

· рабочая частота 0 Гц - 10 МГц;

· раздельные шины данных (8 бит) и команд (14 бит);

· 512х14 или 1024х14 память программ, выполненная на ПЗУ или электрически перепрограммируемой Flash-памяти;

· 15 восьмиразрядных регистров специальных функций (SFR);

· восьмиуровневый аппаратный стек;

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

· 36 или 68 восьмиразрядных регистров общего назначения (GPR) или ОЗУ;

· четыре источника прерывания:

· внешний вход RBO/INT;

· переполнение таймера TMRO;

· изменение сигналов на линиях порта В;

· завершение записи данных в память EEPROM;

· 64 х 8 электрически перепрограммируемая EEPROM память данных с возможностью выполнения 1 000 000 циклов стирания/записи;

· сохранение данных в EEPROM в течение как минимум 40 лет.

Параметр

PIC16F83

PIC16CR83

PIC16F84

PIC16CR84

Максимальная частота, МГц

10

10

10

10

Flash-память программ, слов

512

-

IK

-

ПЗУ программ, слов

-

512

-

IK

Память данных, байт

36

36

68

68

Память данных в РПЗУ (EEPROM), байт

64

64

64

64

Таймеры

TMRO

TMRO

TMRO

TMRO

Число источников прерываний

4

4

4

4

Диапазон напряжений питания, В

2.0-6.0

2.0-6.0

2.0-6.0

2.0-6.0

Число выводов и тип корпуса

18 DIP, SOIC

18 DIP, SOIC

18 DIP, SOIC

18 DIP, SOIC

Микроконтроллеры подгруппы PIC16F8X обладают развитыми возможностями ввода/вывода:

· 13 линий ввода-вывода с индивидуальной установкой направления обмена;

· высокий втекающий/вытекающий ток, достаточный для управления светодиодами:

· максимальный втекающий ток - 25 мА;

· максимальный вытекающий ток - 20 мА;

· 8-битный таймер/счетчик TMRO с 8-битным программируемым предварительным делителем.

Специализированные микроконтроллерные функции включают следующие возможности:

· автоматический сброс при включении (Power-on-Reset);

· таймер включения при сбросе (Power-up Timer);

· таймер запуска генератора (Oscillator Start-up Timer);

· сторожевой (Watchdog) таймер WDT с собственным встроенным генератором, обеспечивающим повышенную надежность;

· EEPROM бит секретности для защиты кода;

· экономичный режим SLEEP;

· выбираемые пользователем биты для установки режима возбуждения встроенного генератора;

· последовательное встроенное устройство программирования Flash/EEPROM памяти программ и данных с использованием только двух выводов.

КМОП технология обеспечивает МК подгруппы PIC16F8X дополнительные преимущества:

· статический принцип работы;

· широкий диапазон напряжений питания: 2,0-6,0 В;

· низкое энергопотребление:

· менее 2 мА при 5В и 4МГц;

· порядка 15 мкА при 2В и 32КГц;

· менее 1 мкА для SLEEP-режима при 2В.

Микроконтроллеры подгруппы PIC16F8X различаются между собой только объемом ОЗУ данных, а также объемом и типом памяти программ. Наличие в составе подгруппы МК с Flash-памятью программ облегчает создание и отладку прототипов промышленных образцов изделий.

Особенности архитектуры

Упрощенная архитектура PIC16F8X приведена на рисунке ниже

Архитектура основана на концепции раздельных шин и областей памяти для данных и для команд (гарвардская архитектура). Шина данных и память данных (ОЗУ) - имеют ширину 8 бит, а программная шина и программная память (ПЗУ) имеют ширину 14 бит. Такая концепция обеспечивает простую, но мощную систему команд, разработанную так, что битовые, байтовые и регистровые операции работают с высокой скоростью и с перекрытием по времени выборок команд и циклов выполнения. 14-битовая ширина программной памяти обеспечивает выборку 14-битовой команды в один цикл. Двухступенчатый конвейер обеспечивает одновременную выборку и исполнение команды. Все команды выполняются за один цикл, исключая команды переходов.

Микроконтроллеры PIC16F83 и PIC16CR83 адресуют 512x14 памяти программ, a PIC16F84 и PIC16CR84 - 1Кх14 памяти программ. Вся память программ является внутренней.

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

Назначение выводов МК подгруппы PIC16F8X

Обозначение

Тип

Буфер

Описание

OSC1/CLKIN

I

ТШ/КМОП 3)

Вход кристалла генератора, RC-цепочки или вход внешнего тактового сигнала

OSC2/CLKOUT

O

-

Выход кристалла генератора. В RC-режиме - выход 1/4 частоты OSC1

/MCLR

I/P

ТШ

Сигнал сброса/вход программирующего напряжения. Сброс низким уровнем

RA0

I/O

ТТЛ

PORT A - двунаправленный порт ввода/вывода

RA1

I/O

ТТЛ

RA2

I/O

ТТЛ

RA3

I/O

ТТЛ

RA4/TOCKI

I/O

ТТЛ

RA4/TOCKI может быть выбран как тактовый вход таймера/счетчика TMRO. Выход с открытым стоком

RB0/INT

I/O

ТТЛ/ТШ "

PORT B - двунаправленный порт ввода/вывода. Может быть запрограммирован в режиме внутренних активных нагрузок на линию питания по всем выводам.

RB1

I/O

ТТЛ

Вывод RBO/INT может быть выбран как внешний вход прерывания.

RB2

I/O

ТТЛ

Выводы RB4...RB7 могут быть программно настроены как входы прерывания по изменению состояния на любом из входов.

RB3

I/O

ТТЛ

При программировании МК RB6 используется как тактовый, а RB7 как вход/выход данных

RB4

I/O

ТТЛ

RB5

I/O

ТТЛ

RB6

I/O

ТТЛ/ТШ 2)

RB7

I/O

ТТЛ/ТШ 2)

Vdd

P

-

Положительное напряжение питания

Vss

P

-

Общий провод (земля)

· I - вход;

· О - выход;

· I/O - вход/выход;

· Р - питание;

· - - не используется;

· ТТЛ - ТТЛ вход;

· ТШ - вход триггера Шмитта.

Микроконтроллер содержит 8-разрядное АЛУ и рабочий регистр W. АЛУ является арифметическим модулем общего назначения и выполняет арифметические и логические функции над содержимым рабочего регистра и любого из регистров контроллера. АЛУ может выполнять операции сложения, вычитания, сдвига и логические операции. Если не указано иное, то арифметические операции выполняются в дополнительном двоичном коде.

В зависимости от результата операции, АЛУ может изменять значения бит регистра STATUS: С (Carry), DC (Digit carry) и Z (Zero).

1.2 Программное обеспечение MPLAB

MPLAB - представляет собой единую бесплатную интегрированную среду разработки для контроллеров производства Microchip.

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

*менеджер проектов (Project Manager) для управления различными файлами рабочих групп;

*редактор (Editor), в котором авторы создают свои программы и поправляют их;

*встроенный отладчик микроконтроллеров PIC16F87X MPLAB ICD;

*симулятор MPLAB-SIM, пошагово моделирующий работу программы в микросхеме;

*эмуляторы MPLAB-ICE, PICMASTER-CE и PICMASTER для виртуального представления поведения контроллера на аппаратуре разработчика в режиме реального времени;

*целый ряд компиляторов (MPLAB C-17, MPLAB С-18, MPASM, MPLINK), преобразующих исходный код, написанный на разных языках программирования (ассемблер, Си);

*редактор библиотек MPLIB;

*программаторы PRO MATE и PICSTART plus, обеспечивающие перенос программ во внутреннюю память микроконтроллеров.

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

MPLAB - интегрированная среда разработки (IDE)

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

· MPLAB менеджер проектов (project Manager). Используется для создания проектов и работы со связанными файлами.

· MPLAB редактор (Editor). Используется для создания и редактирования текстовых файлов, таких как исходные и файлы сценариев компоновки.

· MPLAB-SIM симулятор (Simulator). Позволяет моделировать выполнение команд и входные/выходные сигналы микроконтроллеров.

· MPLAB-ICE внутрисхемный эмулятор (Emulator). Позволяет, используя дополнительные аппаратные средства и компьютер, заменять микроконтроллер в разрабатываемом устройстве в реальном времени. MPLAB-ICE самый новый эмулятор от Microchip.

· MPASM универсальный ассемблер.

· MPLINK компоновщик (linker). создает законченное приложение, связывая перемещаемые модули MPASM, MPLAB-C17, и MPLAB-C18

· MPLIB управляет пользовательскими библиотеками.

· MPLAB-CXX компилятор C. Позволяет включать в проект исходные тексты написанные на языке высокого уровня С и на ассемблере.

· PRO MATE II и PICSTART Plus программаторы.

· PICMASTER и PICMASTER-CE внутрисхемные эмуляторы.

· Инструментальные средства других производителей.

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

Принципиальная электрическая схема была разработана в программе SPlaner.

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

3. Разработка и отладка программного обеспечения

Программное обеспечение разрабатывалась в программе MPLAB X IDE.

Исполняемый код является для MPASM выходным кодом по умолчанию. При этом все переменные источника должны быть явно описаны в тексте программы или в файле, подключаемом с помощью директивы INCLUDE <filename>.

Если при ассемблировании не выявляется ошибок, то генерируется выходной .hex-файл, который может быть загружен в МК с помощью программатора.

Исходным файлом для ассемблера MPASM по умолчанию является файл с расширением .ASM.

Каждая линия исходного файла может содержать до четырех типов информации:

· метки (labels)

· мнемоника (mnemonics)

· операнды (operands)

· комментарий (comments)

Порядок и положение каждого типа имеет значение. Метка должна начинаться в колонке номер один. Мнемоника может начинаться в колонке два или далее. Операнды идут за мнемоникой. Комментарий может следовать за операндом, мнемоникой или меткой или может начинаться в любом столбце, если в качестве первого не пустого символа используется * или ;. Максимальная длина строки 255 символов.

В поле метки размещается символическое имя ячейки памяти, в которой хранится отмеченный операнд. Все метки должны начинаться в колонке 1. За ними может следовать двоеточие (:), пробел, табуляция или конец строки. Комментарий может также начинаться в колонке 1, если используется одно из обозначений комментария. Метка может начинаться с символа или нижнего тире (_) и содержать буквенные символы, числа, нижние тире и знак вопроса. Длина метки может быть до 32 символов.

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

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

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

В ассемблере MPASM используются следующие форматы выражений:

· текстовая строка;

· числовые константы и Radix;

· арифметические операторы и приоритеты;

· High / Low операторы.

Текстовая строка - это последовательность любых допустимых ASCII символов (в десятичном диапазоне от 0 до 127), заключенная в двойные кавычки. Строка может иметь любую длину в пределах 132 колонок. При отсутствии ограничения строки она считается до конца линии. Если строка используется как буквенный операнд, она должна иметь длину в один символ, иначе будет ошибка.

Числовая константа представляет собой число, выраженное в некоторой системе счисления. Перед константой может стоять + или -. Промежуточные величины в константах рассматриваются как 32-разрядные целые без знака.

MPASM поддерживает следующие системы счисления (представления значений или Radix): шестнадцатиричную, десятичную, восьмиричную, двоичную и символьную. По умолчанию принимается шестнадцатиричная система.

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

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

Операторы инкремента и декремента могут применяться к переменной только в качестве единственного оператора в строке. Они не могут быть встроенным фрагментом более сложного выражения.

Поле комментария может использоваться программистом для текстового или символьного пояснения логической организации программы. Поле комментария полностью игнорируется ассемблером, поэтому в нем можно применять любые символы. Комментарии, которые используются в строке сами по себе, должны начинаться с символа комментария (* или ;). Комментарии в конце строки должны быть отделены от остатка строки одним или более пробелами или табуляцией.

Листинг представляет собой текстовый файл в формате ASCII, который содержит машинные коды, сгенерированные в соответствии с каждой ассемблерной командой, директивой ассемблера или макрокомандой исходного файла. Файл листинга содержит: имя продукта и версии, дату и время, номер страницы вверху каждой страницы.

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

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

Существует четыре основных типа директив в MPASM:

· директивы данных;

· директивы листинга;

· управляющие директивы;

· макро-директивы.

Директивы данных управляют распределением памяти и обеспечивают доступ к символическим обозначениям данных.

Директивы листинга управляют листингом файла MPASM и форматом. Они определяют спецификацию заголовков, генерацию страниц и другие функции управления листингом.

Директивы управления позволяют произвести секционирование обычного ассемблерного кода.

Макро-директивы управляют исполнением и распределением данных в пределах определений макротела.

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

Мнемокод команды

Название

Изменяемые флаги

Байт-ориентированные команды

ADDWF f,d

Сложение W с f

С, DC, Z

ANDWF f,d

Логическое И W и f

Z

CLRF f

Сброс регистра f

Z

CLRW

Сброс регистра W

Z

COMF f,d

Инверсия регистра f

Z

DECF f,d

Декремент регистра f (-1)

Z

DECFSZ f,d

Декремент f, пропустить команду, если 0

INCF f,d

Инкремент регистра f (+1)

Z

INCFSZ f,d

Инкремент f, пропустить команду, если 0

IORWF f,d

Логическое ИЛИ W и f

Z

MOVF f,d

Пересылка регистра f

Z

MOVWF f

Пересылка W в f

NOP

Холостая команда

RLF f,d

Сдвиг f влево через перенос

с

RRF f,d

Сдвиг f вправо через перенос

с

SUBWF f,d

Вычитание W из f

С, DC, Z

SWAPF f,d

Обмен местами тетрад в f

XORWF f,d

Исключающее ИЛИ W и f

Z

Команды с константами

ADDLW к

Сложение константы с W

С, DC, Z

ANDLW к

Логическое И константы и W

Z

IORLW к

Логическое ИЛИ константы и W

Z

SUBLW к

Вычитание W из константы

MOVLW к

Пересылка константы в W

XORLW к

Исключающее ИЛИ константы и W

Бит-ориентированные команды

BCF f,b

Сброс бита в регистре f

BSF f,b

Установка бита в регистре f

BTFSC f,b

Пропустить команду, если бит = 0

BTFSS f,b

Пропустить команду, если бит = 1

Переходы

CALL k

Вызов подпрограммы

CLRWDT

Сброс Watchdog таймера

GOTO к

Переход по адресу

RETLW к

Возврат из подпрограммы с загрузкой константы в W

RETFIE

Возврат из подпрограммы с разрешением прерываний

RETURN

Возврат из подпрограммы

SLEEP

Переход в режим SLEEP

Каждая команда PIC16F84 - это 14-битовое слово, которое разделено по смыслу на следующие части: - 1. код операции, - 2. поле для одного и более операндов, которые могут участвовать или нет в этой команде. Система команд PIC16F84 включает в себя байт-ориентированные команды, бит-ориентированные, операции с константами и команды передачи управления.

Для байт-ориентированных команд «f» обозначает собой регистр, с которым производится действие; «d» - бит определяет, куда положить результат. Если «d» = 0, то результат будет помещен в W-регистр, при «d» = 1 результат будет помещен в «f», упомянутым в команде.

Для бит-ориентированных команд "b" обозначает номер бита, участвующего в команде, а «f» - это регистр, в котором этот бит расположен.

Для команд передачи управления и операций с константами, "k" обозначает восьми- или одиннадцатибитную константу.

Все команды выполняются в течение одного командного цикла. В двух случаях исполнение команды занимает два командных цикла: -1. - проверка условия и переход, -2. - изменение программного счетчика как результат выполнения команды. Один командный цикл состоит из четырех периодов генератора. Таким образом, для генератора с частотой 4 МГц время исполнения командного цикла будет 1 мкс.

Макрокоманды ассемблера MPASM

Фирмой Microchip разработаны специальные команды для ассемблера MPASM. Эти команды сокращают объем написанной программы и ускоряют процесс написания программ.

Мнемоника

Действие

ADDCF

Прибавление переноса к содержимому регистра

ADDDCF

Прибавление десятичного переноса к содержимому регистра

В

Безусловный переход к адресу

ВС

Переход при переносе

BDC

Переход при десятичном переносе

BNC

Переход при отсутствии переноса

BNDC

Переход при десятичном переносе

BNZ

Переход при отсутствии признака нуля (результат не нулевой)

BZ

Переход при наличии признака нуля

CLRC

Сброс флага переноса

CLRDC

Сброс флага десятичного переноса

CLRZ

Сброс флага равенства нулю

LCALL

Вызов подпрограммы за пределами из блока 256 команд

LGOTO

Переход за пределы блока из 256 команд

MOVFW

Загрузка содержимого регистра в рабочий регистр

NEGF

Изменение знака содержимого регистра

SETC

Установка флага переноса в 1

SETDC

Установка флага десятичного переноса

SETZ

Установка признака нуля

SKPC

Пропустить следующую команду, если перенос

SKPDC

Пропустить следующую команду, если десятичный перенос

SKPNC

Пропустить следующую команду, если нет переноса

SKPNDC

Пропустить команду, если нет вспомогательного переноса

SKPNZ

Пропустить следующую команду, если нет нуля

SKPZ

Пропустить следующую команду, если ноль

SUBCF

Вычитание переноса из содержимого регистра

SUBDCF

Вычитание десятичного переноса из содержимого регистра

TSTF

Проверка (тестирование) регистра на равенство нулю

Приложение А. Схема электрическая принципиальная и перечень элементов

Размещено на http://www.allbest.ru/

Приложение Б. Листинг управляющей программы

;**********************************************************************

; *

; Filename: codelock.asm *

; Date: 27.11.13 *

; File Version: 1.01 *

; *

; Author: Gruzdev K. *

; Company: KP11 *

; *

;**********************************************************************

; *

; Notes: Кодовый замок. *

; Клавиатура - пленочная. *

; Для запоминания кода используется EEPROM *

; *

;**********************************************************************

;

; Программа опрашивает клавиатуру для ввода 6-тизначного кода

; КОД1 - код для открывания замка. Записан в EEPROM

; КОД2 - код открывания замка. Не меняется так как записан в памяти программ

; Пауза между вводами цифр кода не более 3-х секунд.

; Пауза после введения неверного кода - 10 секунд.

; У исполнительного устройства есть два стационарных состояний: открыто

; и закрыто. Для открывания необходимо набрать КОД1 или КОД2.

; Для закрывания нужно нажать любую кнопку. На переднюю панель также

; выведена кнопка аппаратного сброса. Цифровые кнопки для ввода цифр кода,

; кнопка "#" для сброса введенного кода.

list p=16F84 ; list directive to define processor

#include <p16F84.inc> ; processor specific variable definitions

__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC

; Типовая задержка таймера сброса составляет 72 мс

; *********************************************************************

; ***** ОПРЕДЕЛЕНИЕ ПЕРЕМЕННЫХ ****************************************

; *********************************************************************

w_temp EQU 0x0C ; variable used for context saving

status_temp EQU 0x0D ; variable used for context saving

cblock 0x0E

cnt0, cnt1, cnt2 ; счетчики для программируемой задержки

key_tmp,scan ; для хранения кода нажатой клавиши

cnt_body0,cnt_body1 ; счетчики числа проходов

cnt_adc ; счетчик измерения АЦП

flags ; внутренние флаги (см ниже)

cod0,cod1,cod2 ; вводимый код

endc

razr equ 0 ; флаг разряда батареи (1-разряжена) flags

sost equ 1 ; состояние замка (1-закрыт)

; *********************************************************************

; *********** РАСПРЕДЕЛЕНИЕ ПАМЯТИ ЕЕ *********************************

; *********************************************************************

addr_cod equ 0 ; начало кода открывания

addr_razr equ 0x10 ; граница напряжения разряда

; *********************************************************************

; ********** РАСПРЕДЕЛЕНИЕ ПОРТОВ *************************************

; *********************************************************************

psnd equ PORTA ; выход светодиода

snd equ 4

prele equ PORTA ; управления реле

rele0 equ 0

rele1 equ 1

padc equ PORTA ; псевдоАЦП

adc equ 2

tris_adc equ TRISA

pkey equ PORTB ; порт клавиатуры

clop equ 7 ; кнопка на внутренней стороне ОТКР/ЗАКР

line0 equ 0 ; линия сканирования 0

line1 equ 1 ; линия сканирования 1

line2 equ 2 ; линия сканирования 2

line3 equ 3 ; линия сканирования 3

otkl0 equ 4 ; линия отклика 0

otk...


Подобные документы

  • Описание схемы электрической принципиальной. Разработка монтажа элементов электронного блока. Компоновка элементов на печатной плате. Проектирование сборочного чертежа электронного блока, разработка спецификации и проведение моделирования его работы.

    курсовая работа [2,2 M], добавлен 16.10.2012

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

    контрольная работа [21,8 K], добавлен 18.10.2013

  • Концептуальные основы разработки электронного учебника на основе гипертекстовых технологий. Архитектура учебного пособия. Этапы построения электронного учебника "Информатика" и его структура. Анализ практического использования электронного учебника.

    дипломная работа [104,9 K], добавлен 02.05.2012

  • Структурные элементы электронного учебника. Основные этапы разработки электронного учебника. Варианты структуры электронного образовательного издания. Подготовка электронного издания к эксплуатации. Методическое обеспечение электронного учебника.

    презентация [506,5 K], добавлен 28.12.2014

  • Функционально-модульная структура программного обеспечения контроллера домофона. Электронная схема электронного замка, модуля микрофона и динамика. Выбор комбинированного источника питания. Разработка программного модуля. Программа управления домофоном.

    курсовая работа [484,7 K], добавлен 29.03.2017

  • Создание одной из форм обучения с использованием средств новых информационных технологий - электронного учебника. Администрирование электронного учебного пособия на тему "Линейное программирование". Проектирование структуры электронного учебника.

    курсовая работа [1,7 M], добавлен 09.06.2010

  • Разработка структурной и принципиальной схемы. Блок-схема основной программы и подпрограмм обработки прерываний. Имена переменных, используемых в них. Результаты моделирования работы устройства в программе ISIS пакета Рroteus. Разработка печатной платы.

    курсовая работа [1,5 M], добавлен 13.11.2016

  • Особенности электронных учебных пособий и основные принципы их создания. Сбор и подготовка исходного материала для электронного учебного пособия. Разработка структуры электронного пособия. Выбор программ и разработка интерфейса электронного учебника.

    дипломная работа [738,5 K], добавлен 27.06.2012

  • Разработка принципиальной электрической схемы электронного устройства ЭВМ. Построение модуля памяти ПЗУ на основе Intel 80286. Описание микросхемы, основных узлов и блоков. Расчет максимальной мощности, потребляемой устройством в рабочем режиме.

    курсовая работа [944,8 K], добавлен 26.12.2012

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

    курсовая работа [1,7 M], добавлен 25.12.2011

  • Отличительные признаки электронного учебника от печатного. Преимущества и недостатки компьютерных систем обучения. Аспекты применения информационных технологий в образовании. Типы педагогических программных средств. Этапы создания электронного практикума.

    курсовая работа [3,0 M], добавлен 28.05.2015

  • Создание библиотеки элементов электрической схемы и настройка редактора схем Schematic. Разработка топологии печатной платы в программе P-СAD PCB; построение символов и корпусов микросхем. Создание компонентов в программе P-CAD Library Executive.

    методичка [4,4 M], добавлен 12.09.2011

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

    курсовая работа [577,8 K], добавлен 24.06.2013

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

    курсовая работа [2,1 M], добавлен 08.02.2015

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

    курсовая работа [3,4 M], добавлен 15.01.2010

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

    курсовая работа [3,5 M], добавлен 26.08.2014

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

    контрольная работа [47,8 K], добавлен 14.10.2012

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

    курсовая работа [412,8 K], добавлен 24.06.2013

  • Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.

    курсовая работа [527,1 K], добавлен 27.09.2014

  • Обзор систем дистанционного образования. Разработка электронного практикума по созданию Flash-приложений на основе системы дистанционного обучения Moodle. Общая структура электронного практикума. Построение логической модели данных информационной системы.

    дипломная работа [3,0 M], добавлен 19.01.2017

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.