Разработка алгоритма функционирования микропроцессорного устройства

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

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

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

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

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

Содержание

1. Разработка алгоритма функционирования МП-устройства

2. Разработка структурной схемы

3. Описание всех операций выполняемых проектируемым устройством

4. Выбор МП и ВУ

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

6. Разработка алгоритма и программы управления устройством

7. Разработка руководства пользователя

1. Разработка алгоритма функционирования МП-устройства

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

2. Разработка структурной схемы

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

3. Описание всех операций выполняемых проектируемым устройством

микропроцессор программа пользователь вычислительный

При первом включении часов на индикаторе выводятся значения нулей (00:00). Есть 3 кнопки (первая - переключение режимов, вторая - переход с минут на часы и обратно, третья - изменение значений часов и минут). Проверяется значение кнопки 1.Если она нажата, инкрементируется значение регистра “1” и происходит переход в режим настройки времени. После чего проверяется состояние кнопки “2” . Если она не нажата, то значение второго регистра обнуляется, что говорит о том, что мы будем изменять минуты, иначе в данный регистр записывается “1” , что говорит о том, что мы будем менять значение часов. Если мы меняем значение минут, то возле них загорается точка, иначе она загорается возле значения часов. При нажатии кнопки “3” ,инкрементируется значение либо часов, либо минут, что определяется значением второго регистра. Если кнопка “3” не была нажата, осуществляется переход к проверке регистра, хранящего значение первой кнопки. Если кнопка не была повторна, нажата, то система повторяет все вышеперечисленные операции, иначе (при повторном нажатии кнопки “1”) , мы переходим в нулевой режим, т.е. режим индикации времени.

Одновременно работает счетный таймер, который должен генерировать прерывания каждые 0,125 секунды. При обработке прерываний должно изменяться значение времени и значение индикатора. Значение индикатора обновляется каждые 0,5 секунды. Если число срабатываний меньше 4-ех, происходит выход в основную программу. При каждом 4-ом срабатывании таймера, значения точек изменяются на противоположные, т.е. 0,5 секунды они горят, и 0,5 секунды они выключены. Перед новым включением точек инкрементируется регистр секунд и проверяется его значение на равенство 60-ти. Если значение не равно 60-ти, происходит выход в основную программу, иначе значение регистра секунд обнуляем, инкрементируем значение регистра минут и проверяем его на равенство 60-ти. Если не равен, выходим в основную программу. Иначе инкрементируем регистр часов. Проверяем его на равенство 24-ем. Если его значение меньше 24-ех - выходим в основную программу, если равно 24-ем - обнуляем регистр часов и выходим в основную программу.

4. Выбор МП и ВУ

Особенности

* Высокоэффективный, Низкая мощность AVR® 8-битный Микроконтроллер

* RISC Архитектура

- 130 Команд

- 32 x 8 Рабочих регистра

- На-чипе Множитель с 2 циклами

- Размер FLASH памяти 8 КБ

Выдерживает 10 000 Циклов перезаписи

- 512-байтовый EEPROM

Выдерживает 100 000 Циклов перезаписи

- 512-байтовый Внутренний SRAM

- Объем Дополнительной Внешней Памяти до 64 КБ

* Периферийные Особенности

- Один 8-битовый Таймер/Счетчик с предделителем

- Один 16-битовый Таймер/Счетчик с предделителем, функцией захвата, сравнения и сбора данных

- Три Канала PWM

- Программируемый последовательный интерфейс USART

- Последовательный интерфейс SPI

- Программируемый сторожевой Таймер

- Аналоговый Компаратор

* Специальные Особенности Микроконтроллера

- Внешние и Внутренние Источники Прерывания

- Есть функция режима Sleep

* Рабочее напряжение

- 2.7 - 5.5V для ATmega8515L

- 4.5 - 5.5V для ATmega8515

* Степени Скорости

- 0 - 8 МГц для ATmega8515L

- 0 - 16 МГц для ATmega8515

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

К155ИД4 - два дешифратора двухразрядного кода А0…А1. У них разные полярности входов разрешения (Вход Еа- прямой, остальные инверсные). Оба дешифратора кроме обычного включения можно использовать как демультиплексоры (один вход - четыре выхода Y1 … Y4 или один вход Еа+ - 8 выходов Y1 … Y8) и как дешифратор с 8-ю выходами: соедините Е а и - теперь этот вход старшего разряда А2 для входного слова, замкните с - вход разрешения.

К155ЛН1-шесть логических элементов НЕ(инверторов). Питание: 7-общий, 14-+5В.

Схема включения инверторов:

Рис.15. Принципиальная схема К155ЛН1.

7914G-1-000E , кнопка без фиксации, Производитель: DECA SwitchLab

Индикатор СС56-11 обладает следующими характеристиками:

К555ИЕ19-два четырёхразрядных асинхронных счётчика. Питание: 7-общий, 14-+5В. Счёт ведётся по отрицательным фронтам импульсов. При R=1 происходит сброс счётчика в 0. Пунктирной линией указан пример объединения счётчиков.

Схема включения счётчика:

Рис.7. Принципиальная схема К555ИЕ1.

6. Разработка алгоритма и программы управления устройством

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

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

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

Тактовая частота МК=7,3728 МГц

.device at90s2313

.nolist

.include "C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\2313def.inc"

.list

.def min=R16

.def min1=R17

.def ras=R18

.def ras1=R19

.def reg1=R20 ;рабочий регистр

.def reg2=R21 ;часы/минуты при их изменении

.def reg_vih=R22 ;рабочий регистр в индикации

.def reg3=R23 ;номер индикатора

.def reg4=R24 ;режим индикации времени/изменения времени

.def sec1=R25

.def sec11=R26

rjmp Init

reti

reti

reti

rjmp Indicatia

reti

reti

reti

reti

reti

reti

Indicatia:

dec reg3 ;уменьшаем значние reg3 на еденицу

cpi reg3,3 ;если его значение равно 3,

brne F1

ldi reg_vih,0b00000000 ;то выводим на 1-ый индикатор

add reg_vih,R11 ;со значением точек

out PortD,reg_vih ;значение десятков часов

mov ZL,ras ;используя косвенную адресацию

ld reg_vih,Z

out PortB,reg_vih

rjmp F4

F1:

cpi reg3,2 ;если значение reg3 равно 2

brne F2 ;то выодим на индикатор

ldi reg_vih,0b00001000 ;то выводим на 2-ой индикатор

tst reg4

breq T0

add reg_vih,R11 ;со значением точек

T0:

out PortD,reg_vih ;значение десятков часов

mov ZL,ras1 ;значение единиц часов

ld reg_vih,Z ;используя косвенную адресацию

eor reg_vih,R12

out PortB,reg_vih

rjmp F4

F2:

cpi reg3,1 ;если значение reg3 равно 1

brne F3 ;то выводим на индикатор

ldi reg_vih,0b00010000 ;то выводим на 3-ий индикатор

add reg_vih,R11 ;со значением точек

out PortD,reg_vih ;значение десятков часов

mov ZL,min ;значение десятков минут

ld reg_vih,Z ;используя косвенную адресацию

out PortB,reg_vih

rjmp F4

F3:

ldi reg_vih,0b00011000 ;то выводим на 4-ый индикатор

tst reg4

breq T1

add reg_vih,R11 ;со значением точек

T1:

out PortD,reg_vih ;значение десятков часов

mov ZL,min1 ;иначе выводим значение единиц минут

ld reg_vih,Z

eor reg_vih,R12

out PortB,reg_vih

ldi reg3,4

F4:

cpi reg3,0 ;если значение reg3 равно 0

breq F5 ;идем к F5

reti ;иначе выходим из обработчика прерывания

F5:

ldi reg3,4 ;загружаем в reg3 значение 4

dec reg2 ;уменьшаем значение R2 на единицу

ldi reg_vih,0b01000000 ;включаем две точки

mov R11,reg_vih

tst reg2 ;проверяем значение R2 на 0

breq F6 ;есил в 0, то идем к F6

reti ;иначе выходим из обработчика прерывания

F6:

clr reg_vih ;очищаем reg_vih

mov R11,reg_vih ;и записываем в R11

inc sec1 ;увеличиваем значение единиц секунд на 1

cpi sec1,10 ;сравниваем с 10

brne F7

clr sec1 ;если равно, то очищаем этот регистр

inc sec11 ;инкриминтируем регистр 10-ов секунд

cpi sec11,6 ;сравниваем его значение с 6

brne F7

clr sec11 ;если равно, то очищаем этот регистр

inc min1 ;инкриминтируем значение единиц минут

cpi min1,10 ;сравниваем с 10-ой

brne F7

clr min1 ;если равно, то очищаем этот регистр

inc min ;инкриминтируем значение регстра десятков минут

cpi min,6 ;сравниваем с 6

brne F7

clr min ;если равны, то очищаем регстр десятков минут

inc ras1 ;инкриминтируем регистр едениц часов

cpi ras,2 ;сравниваем значение с 2

breq F8 ;если равно, то идем к F8

cpi ras1,10 ;сравниваем значение единиц часов с десяткой

brne F7

inc ras ;инкриминтируем значение регистра десятков часов

cpi ras,3 ;сравниваем с 3

brne F7

clr ras ;если равно, то очищаем регистр десятков часов

reti

F8: ;если значение ras равно 2, то

cpi ras1,4 ;если значение единиц часов равно 4

brne F7

clr ras1 ;очищаем значение регистров часов

clr ras

F7: ;выходим из обработчика прерываний

reti

Init: ;записываем значения цифр для инидикации

ldi reg1,0b11111100 ;0

mov R0,reg1

ldi reg1,0b01100000 ;1

mov R1,reg1

ldi reg1,0b11011010 ;2

mov R2,reg1

ldi reg1,0b11110010 ;3

mov R3,reg1

ldi reg1,0b01100110 ;4

mov R4,reg1

ldi reg1,0b10110110 ;5

mov R5,reg1

ldi reg1,0b10111110 ;6

mov R6,reg1

ldi reg1,0b11100000 ;7

mov R7,reg1

ldi reg1,0b11111110 ;8

mov R8,reg1

ldi reg1,0b11110110 ;9

mov R9,reg1

ldi reg1,0b11111000 ;устанавливаем ножки порта D

out DDRD,reg1 ;0-3 - входы, остальные выходы

ser reg1 ;все ножки порта B - выходы

out DDRB,reg1

clr reg1

out PortB,reg1 ;очищаем порты

out PortD,reg1

out TCCR1A,reg1

ldi reg1,0b00001101 ;разрешаем прерывания по совпадению

out TCCR1B,reg1 ;задаем чавтоту, равную СК/1024

ldi reg1,0x03 ;записываем в регистры сравнения

out OCR1AH,reg1 ;значения 0Х0384

ldi reg1,0x84

out OCR1AL,reg1

ldi reg1,0b01000000 ;разрешаем прерывания по совпадению

out TIMSK,reg1

clr R10

ldi ZL,11 ;косвенная очистка всех рабочих

TT0: ;регистров начиная с 11-го

st Z+,R10

cpi ZL,27

brne TT0

ldi reg3,4 ; записываем в reg3 четверку

Start:

sei ;разрешаем глобальное прерывание

in reg1,PortD ;проверяем нажата ли кнопка режимов

sbrs reg1,0

rjmp L2 ;если нет, то идем в L2, иначе

dec R10 ;декриминтируем значение регистра 10

breq L1

ser reg4 ;если R10 в нуле, то устанавливаем reg4 в FF

rjmp L2 ;идем в L2

L1:

clr reg4 ;если R10 равен единице, то очищаем reg4

L3:

in reg1,PortD ;проверяем кнопку режима

sbrc reg1,0 ;ждем ее отпускания

rjmp L3

L2:

tst reg4 ;проверяем на нуль reg4

breq Start ;если в нуле, то идем в start

in reg1,PortD ;проверяем кнопку режимов

sbrc reg1,1 ;если она не нажата, то переходим в L5

rjmp L5

ldi reg2,1 ;иначе в reg2 записываем 1

ldi reg1,0b00000001 ;в R12 записываем значение точки

mov R12,reg1

L4: ;дожидаемся отпускания кнопки переходов

in reg1,PortD

sbrc reg1,1

rjmp L4

rjmp L6

L5:

clr reg2 ;очищаем reg2

ldi reg1,0b00000001 ;записываем в R12 значение поределенной точки

mov R12,reg1

L6:

in reg1,PortD ;проверяем кнопку инкриментирования

sbrs reg1,2

rjmp Start ;если она отпущена, то возвражаемся в start

tst reg2 ;проверяем reg2

breq L7 ;если он в 0, то идем в L7

inc ras1 ;иначе инкриментируем значения часов

cpi ras1,4 ;проверяем, стало ли из значение больше 23

brne L9 ;если да, то очищаем регистры часов

cpi ras,2

brne L9

clr ras1

clr ras

rjmp L8

L9:

cpi ras1,10 ;проверяем если значения часов меньше 20

brne L8 ;и не произошло ли переполнение значения

clr ras1 ;единиц часов, если да, то очищаем ras1

inc ras ;увеличиваем на 1 значение ras

L7:

inc min1 ;инкриментируем значение минут

cpi min1,10 ;проверяем не стало ли значения единиц минут больше 9

brne L8

clr min1 ;если да, то очищаем min1

inc min ;инкриментируем min

cpi min,6 ;проверяем не стало ли значения десятков минут больше 5

brne L8

clr min ;если да, то очищаем min

L8:

in reg1,PortD ;дожидаемся отпускания кнопки инкриментирования

sbrc reg1,2

rjmp L8

rjmp Start ;возвращаемся в Start

7. Разработка руководства пользователя

Часы работают от 3 батареек по 1,5 В. После подключения батареек часы включаются и на индикаторах высвечивается время 00:00. Часы начали работать. У них есть 2 режима: Режим индикации текущего времени и ежим установки времени. По умолчанию часы находятся в первом режиме. При нажатии на кнопку РЕЖИМ , часы переходят в режим установки времени. В данном режиме можно менять минуты, о чем свидетельствует точка, включенная под минутами. При нажатии на кнопку ИНКРЕМЕНТ, мы изменяем, значение минут. Чтобы изменить значение часов, необходимо нажать кнопку ПЕРЕХОД. При этом загорится точка под значением часов. Теперь, нажимая на кнопку ИНКРЕМЕНТ, будет изменяться значение часов. При повторном нажатии на кнопку ПЕРЕХОД происходит возврат к изменению минут. При повторном нажатии на кнопку РЕЖИМ, часы переходят в режим индикации времени. В режиме индикации времени точки не горят ни под значением часов, ни под значение минут. Данные часы обладают высокой точностью.

Размещено на Allbest.ru


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

  • Разработка функциональной и принципиальной схемы. Выбор управляющего контроллера. Описание МК PIC16F626, МК AVR, МК 51. Выбор элементной базы. Разработка управляющей программы. Описание алгоритма работы программы. Схема устройства, листинг программы.

    курсовая работа [492,9 K], добавлен 28.12.2012

  • Проектирование микропроцессорного устройства, которое преобразует интерфейс RS-232 (COM-порт) в IEEE 1284 (LPT-порт). Структурная схема устройства. Преобразование последовательного интерфейса в параллельный интерфейс на микроконтроллере ATMega 8.

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

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

    курсовая работа [95,4 K], добавлен 25.10.2009

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

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

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

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

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

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

  • Актуальность задачи. Разработка функциональной схемы устройства. Радиолокационная установка (РЛУ). Микропроцессорная часть. Обоснование алгоритма работы устройства. Разработка управляющей программы устройства. Схема алгоритма. Пояснения к программе.

    курсовая работа [193,9 K], добавлен 18.10.2007

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

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

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

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

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

    курсовая работа [709,3 K], добавлен 22.12.2010

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