Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Рахимов курсовая работа.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
106.2 Кб
Скачать

1.3Програмирование микроконтроллера.

В каждом банке по первым 32-м адресам (с 0000h по 0020h) расположены служебные регистры. Их называют регистрами специального назначения (SFR- special function register). Через эти регистры, собственно, и осуществляется управление работой всех составных частей контроллера (управление различными функциями, как самого ядра, так и периферийных модулей).

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

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

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

Например, регистр TRISA расположен по адресу 85h. Этот адрес находится в первом банке - адрес начала банка 80h. То есть, для обращения к этому регистру в программе нужно сначала выбрать первый банк, а потом обращаться к регистру по адресу 85h-80h=05h.

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

Некоторые регистры имеют сквозную адресацию и доступны из всех банков (например, регистр STATUS доступен по смещению 03h в любом банке).

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

Полный список всех регистров (с адресами и банками, в которых они расположены) называется картой памяти.

2. Специальная часть

  • 2.1 Принцип работы

Ядром схемы является микроконтроллер PIC16F628A. Прибор управляется одной кнопкой. Нажатием на кнопку добиваются последовательной смены режимов работы прибора. Звуковое сопровождение нажатия кнопки обеспечивает пьезоизлучатель звука. Для визуального отображения информации служит дисплей со встроенным контроллером. Микроконтроллер DD1 имеет функциональные выводы RA0, RB0 – RB7, CCP1, которые служат для ввода и вывода информации. Микроконтроллер DD1 не имеет функции принудительного сброса, вывод для сброса подключен через резистор R1 к положительному потенциалу питания. Для генерации тактовой частоты используется встроенный RC-генератор на кристалле. К выводу RA0 через токоограничивающий резистор R3 подключена тактовая кнопка SB1. В отжатом положении тактовой кнопки SB1 резистор R7 имитирует низкий логический уровень. Микроконтроллер DD1 распознаёт три состояния тактовой кнопки SB1:

1. Не нажата;

2. Нажата кратковременно (менее 1 с);

3. Нажата и удерживается (более 1 с).

Пьезоизлучатель звука P1 помогает различать состояния тактовой кнопки SB1. Так при 1 состоянии генерации звука не происходит, при 2 состоянии звук генерируется до того момента пока микроконтроллер не распознает 3 состояние, а в 3 состоянии генерации звука не происходит. Для отображения информации используется жидкокристаллический дисплей HG1. Техническую спецификацию дисплея можно найти на сайте [3]. Он имеет контроллер, в котором реализована функция знакогенерации. Отображает две строки по шестнадцать символов в каждой. Управление дисплеем осуществляется через выводы микроконтроллера RB0, RB1, RB4 – RB7. Загрузка данных происходи полубайтами, через выводы RB4 – RB7. «Защёлка» - RB1. Выбор регистра сигнала формируем на выводе RB0. Резисторами R5 и R6 устанавливаем контрастность дисплея HG1. Подсветка дисплея подключена к питанию через токоограничивающий резистор R4. Дисплей HG1 прикручивается к плате 3 x 15 мм латунными стойками и 3 x 6 мм винтами формированием логики на RB2 добиваются открытия или закрытия полевого транзистора VT1 [4], который включает и выключает подключенный к клеммнику X1 электрический замок. Электрический замок должен быть рассчитан на рабочее напряжение 9-15 В и потреблять ток не более 1 А. При подачи напряжения на электрический замок должен открываться, при отсутствии напряжения блокируется (закрывается).

К выводу CCP1 (аппаратная реализация ШИМ, частота 4 кГц, скважность 2) через токоограничивающий резистор R2 подключен пьезоизлучатель звука P1 с рабочей частотой генерации звука 4 кГц. Прибор запитывается от переменного или постоянного источника напряжения, подключаемого к разъему X2. Номинальное напряжение источника питания 9 – 15 В. Номинальный ток источника питания 1 А. Для стабилизации питания используется обычная схема из диодного моста VD1, линейного стабилизатора DA1, фильтрующих конденсаторов C1 – C4. Прибор может эксплуатироваться в диапазоне температур от –20 °С до +70 °С.

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

  • 1) При включении прибора происходит чтение энергонезависимой памяти данных EEPROM, где происходит выгрузка данных состояния замка и кода. Прибор открывает или закрывает электрический замок согласно прочитанному регистру состояния замка. Прибор переходит в состояние где отображает статистику кодирования, т.е. 2.

  • 2) В данном состоянии прибор в верхней строке выводит на дисплее надпись «Stat. Стат.» и в нижней строке отображает статистику кодирования, а именно число кодирований и число декодирований*. После кратковременного или удерживаемого нажатия тактовой кнопки прибор руководствуясь регистром о состоянии замка переходит в состояние кодирования если замок открыт, т.е. 3 и переходит в состояние декодирования если замок закрыт, т.е. 4.

  • 3) Прибор выводит в верхней строке на дисплее надпись «Code Код» и переходит в состояние где происходит ввод кода (подпрограмма «Ввод кода»), т.е. 5. Происходи инкрементирование счётчика числа кодирований. Прибор переходит в состояние где меняет состояние замка, закрывая его, т.е. 9.

  • 4) Прибор выводит в верхней строке на дисплее надпись «Decode Д.код» и переходит в состояние где происходит ввод кода (подпрограмма «Ввод кода»), т.е. 5. Происходи инкрементирование счётчика числа декодирований. Прибор сравнивает введённый код с кодом сохранённым в энергонезависимой EEPROM памяти. Если код совпадает тогда прибор переходит в состояние где меняет состояние замка, открывая его, т.е. 10, а если код не совпадает переходит в состояние где выводит информацию о ошибке, т.е. 11.

  • 5) В нижней строке дисплея квадратными скобками выделяется первая цифра четырехзначного кода. Кратковременным нажатием на тактовую кнопку происходит инкрементирование регистра вводимой цифры**. Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние где происходит выбор второй цифры кода, т.е. 6.

  • 6) В нижней строке дисплея квадратными скобками выделяется вторая цифра четырехзначного кода. Кратковременным нажатием на тактовую кнопку происходит инкрементирование регистра вводимой цифры**. Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние, где происходит выбор третей цифры кода, т.е. 7.

  • 7) В нижней строке дисплея квадратными скобками выделяется третья цифра четырехзначного кода. Кратковременным нажатием на тактовую кнопку происходит инкрементирование регистра вводимой цифры**. Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние, где происходит выбор четвёртой цифры кода, т.е. 8.

  • 8) В нижней строке дисплея квадратными скобками выделяется четвёртая цифра четырехзначного кода. Кратковременным нажатием на тактовую кнопку происходит инкрементирование регистра вводимой цифры**. Если тактовая кнопка нажата и удерживается более 1 с, то прибор переходит в состояние на то место откуда запрашивалась подпрограмма «Ввод кода», т.е. 3 или 4.

  • 9) Прибор закрывает замок и сохраняет состояние замка и код. В верхней строке выводит на дисплее надпись «Saving Сохран.» и в нижней строке четырёхзначный код. Далее прибор переходит в состояние, где отображает статистику кодирования, т.е. 2.

  • 10) Прибор открывает замок и сохраняет состояние замка и код. В верхней строке выводит на дисплее надпись «Saving Сохран.» и в нижней строке четырёхзначный код. Далее прибор переходит в состояние, где отображает статистику кодирования, т.е. 2.

  • 11) В верхней строке выводит на дисплее надпись «Error Ошибка» и в нижней строке четырёхзначный код. (Фото 4) После кратковременного или удерживаемого нажатия тактовой кнопки прибор переходит в состояние, где отображает статистику кодирования, т.е. 2.

2.2 Электрическая схема