Разработка алгоритма функционирования микропроцессорного устройства
Алгоритм функционирования и структурная схема микропроцессора. Описание всех операций, выполняемых проектируемым устройством. Разработка алгоритма и программы управления устройством. Выбор вычислительных устройств. Составление руководства пользователя.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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