Разработка микропроцессорной системы

 















Курсовая работа

"Разработка микропроцессорной системы"



Введение


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

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

микропроцессорный система микросхема


Задание на курсовой проект


Исходные данные: спроектировать микропроцессорное устройство, содержащее: МП ATmega64.

Дополнительные требования: клавиатура, индикация - индикатора JE-AN16202.



1. Структура микроконтроллера ATMega


.1. Назначение выводов


На рис.1.1 изображен корпус и приведено назначениевыводов микроконтроллера. В скобках указана альтернативная функция вывода.

Микроконтроллер ATmega64 включает следующие функциональные блоки:

8-разрядное арифметическо-логическое устройство ( АЛУ );

внутреннюю флэш-память программ объемом 64 Кбайт с возможностью внутрисистемного программирования через последовательный интерфейс;

32 регистра общего назначения;

внутреннюю EEPROM память данных объемом 4 Кбайт;

внутреннее ОЗУ данных объемом 4 Кбайт;

6 параллельных 8-разрядных портов;

4 программируемых таймера-счетчика;

10-разрядный 8-канальный АЦП и аналоговый компаратор;

последовательные интерфейсы UART0, UART0, TWI и SPI;

блоки прерывания и управления (включая сторожевой таймер).



Рис.1. Вид корпуса и обозначение выводов микроконтроллера ATmega64.

A (PA7..PA). 8-разрядный двунаправленный порт. К выводам порта могут быть подключены встроенные нагрузочные резисторы (отдельно к каждому разряду). Выходные буферы обеспечивают ток 20 мА и способность прямо управлять светодиодным индикатором. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт А при наличии внешней памяти данных используется для организации мультиплексируемой шины адреса/данных.B (PB7..PB0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенных нагрузочных резисторах. Порт В используется также при реализации специальных функций.C (PC7..PC0). ПортС является 8-разрядным выходным портом. Выходные буферы обеспечивают ток 20 мА. Порт C при наличии внешней памяти данных используется для организации шины адреса.D (PD7..PD0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, ток будет вытекать только при подключенных встроенныхнагрузочных резисторах.Е (PЕ7..PЕ0). 8-разрядный двунаправленный порт со встроенными нагрузочными резисторами. Выходные буферы обеспечивают ток 20 мА. При использовании выводов порта в качестве входов и установке внешнего сигнала в низкое состояние, вытекающий через них ток обеспечивается только при подключенных встроенных нагрузочных резисторах. Порт E используется также при реализации специальных функций.F (PF7..PF0). 8-разрядный входной порт. Входы порта используются также как аналоговые входы аналого-цифрового преобразователя.

#RESET. Вход сброса. Для выполнения сброса необходимо удерживать низкий уровень на входе более 50 нс., XTAL2. Вход и выход инвертирующего усилителя генератора тактовой частоты., TOSC2. Вход и выход инвертирующего усилителя генератора таймера/счетчика.

#WR, #RD. Стробы записи и чтения внешней памяти данных.. Строб разрешения фиксации адреса внешней памяти. Строб ALE используется для фиксации младшего байта адреса с выводов AD0-AD7 в защелке адреса в течение первого цикла обращения. В течение второго цикла обращения выводы AD0-AD7 используются для передачи данных.. Напряжение питания аналого-цифрового преобразователя. Вывод подсоединяется к VCC через низкочастотный фильтр.. Вход опорного напряжения для аналого-цифрового преобразователя. На этот вывод подается напряжение в диапазоне между AGND и AVCC. AGND. Это вывод должен быть подсоединен к отдельной аналоговой земле, если она есть на плате. В ином случае вывод подсоединяется к общей земле.

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

VСС, GND. Напряжение питания и земля.


1.2 Организация памяти и портов ввода/вывода


Микроконтроллеры AVR имеют раздельные пространства адресов памяти программ и данных (гарвардская архитектура). Организация памяти МК ATMega64 показана на рис. 1.2.


Рис.2. Организация памяти микроконтроллера ATmega64


Высокие характеристики семейства AVR обеспечиваются следующими особенностями архитектуры:

В качестве памяти программ используется внутренняя флэш-память. Она организована в виде массива 16-разрядных ячеек и может загружаться программатором, либо через порт SPI;

16-разрядные память программ и шина команд вместе с одноуровневым конвейером позволяют выполнить большинство инструкций за один такт синхрогенератора (50 нс при частоте FOSC=20 МГц);

память данных имеет 8-разрядную организацию. Младшие 32 адреса пространства занимают регистры общего назначения, далее следуют 64 адреса регистров ввода-вывода, затем внутреннее ОЗУ данных объемом до 4096 ячеек. Возможно применение внешнего ОЗУ данных объемом до 60 Кбайт;

внутренняя энергонезависимая память типа EEPROM объемом до 4 Кбайт представляет собой самостоятельную матрицу, обращение к которой осуществляется через специальные регистры ввода-вывода.

Как видно из рис. 1.2 и 1.3, 32 регистра общего назначения (РОН) включены в сквозное адресное пространство ОЗУ данных и занимают младшие адреса. Хотя физически регистры выделены из памяти данных, такаяорганизация обеспечивает гибкость в работе. Регистры общего назначения прямо связаны с АЛУ. Каждый из регистров способен работать как аккумулятор. Большинство команд выполняются за один такт, при этом из регистров файла могут быть выбраны два операнда, выполнена операция и результат возвращен в регистровый файл. Старшие шесть регистров могут использоваться как три 16-разрядных регистра, и выполнять роль, например, указателей при косвенной адресации.



Рис.3. Регистры общего назначения микроконтроллера ATmega64


Следующие 64 адреса за регистрами общего назначения занимают регистры ввода-вывода (регистры управления/состояния и данныхПри использовании команд IN и OUT используются адреса ввода-вывода с $00 по $3F. Но к регистрам ввода-вывода можно обращаться и как к ячейкам внутреннего ОЗУ. При этом к непосредственному адресу ввода-вывода прибавляется $20. Адрес регистра как ячейки ОЗУ приводится далее в круглых скобках. Регистры ввода-вывода с $00 ($20)по $1F ($3F) имеют программно доступные биты. Обращение к ним осуществляется командами SBI и CBI, а проверка состояния - командами SBIS и SBIC. В таблице B1 приведен список регистров ввода-вывода.


Таблица 1. Некоторые регистры ввода-вывода микроконтроллера ATmega64

НазваниеФункцияPORTGРегистр данных порта GDDRGРегистр направления данных порта GPINGВыводы порта GPORTFРегистр данных порта FDDRFРегистр направления данных порта FSREGРегистр состоянияSPHУказатель стека, старший байтSPLУказатель стека, младший байтTIMSKРегистр маски прерываний от таймеров/счетчиковTIFRРегистр флагов прерываний от таймеров/счетчиковMCUCRРегистр управления микроконтроллеромMCUCSRРегистр управления и состояния микроконтроллераTCCR0Регистр управления таймером/счетчиком Т0TCNT0Счетный регистр таймера/счетчика Т0OCR0Регистр совпадения таймера/счетчика Т0ASSRРегистр состояния асинхронного режимаTCCR1AРегистр управления А таймера/счетчика Т1PORTAРегистр данных порта АDDRAРегистр направления данных порта АPINAВыводы порта АPORTBРегистр данных порта ВDDRBРегистр направления данных порта ВPINBВыводы порта ВPORTCРегистр данных порта СDDRCРегистр направления данных порта СPINCВыводы порта СPORTDРегистр данных порта DDDRDРегистр направления данных порта DPINDВыводы порта DSPDRРегистр данных SPISPSRРегистр состояния SPISPCRРегистр управления SPIACSRРегистр управления и состояния аналогового компаратораADMUXРегистр управления мультиплексором АЦПADCSRAРегистр управления и состояния АЦПADCHРегистр данных АЦП, старший байтADCLРегистр данных АЦП, младший байтPORTEРегистр данных порта ЕDDREРегистр направления данных порта ЕPINEВыводы порта ЕPINFВыводы порта F

Рис.4 - Блок-схема микроконтроллера Atmega64




2. Микросхемы памяти


Микросхема ОЗУ приведена на рис. 13.


Рис. 13 УГО микросхемы КР565РУ1А


Назначение выводов

1 - напряжение питания (-Uп3);

, 3, 4, 8, 9, 10, 13, 14, 15, 19, 20, 21 - входы адресные А0...А11;

- вход сигнала выбора микросхемы;

- вход информационный;

- выход информационный;

- напряжение питания (Uп2);

- вход сигнала выбор режима;

- свободный;

- вход сигнала разрешения;

- напряжение питания (Uп1);

- общий.

ИС имеет три источника питания, первым подключают и последним отключают источник питания Uп3 = -5В, так как он подается на подложку (кристалл), в противном случае может произойти тепловой пробой под воздействием двух других источников питания Uп1 и Uп2. Режим регенерации осуществляют по циклу считывания или считывания-модификации-записи при выполнении условия CS = 1, обеспечивающего блокировку информационных входов и выходов микросхемы и возможность работать ей «на себя». Выход микросхемы в это время находится в Z-состоянии. После включения питания нормальный режим функционирования устанавливается через восемь циклов.

Микросхема ПЗУ приведена на рис. 14.


Рис. 14 УГО микросхемы КР1601РР1


A0 ¸ A9 - входы адреса

D0 ¸ D3 - входы / выходы данных- выбор кристалла- вход сигнала считывания- вход сигнала программирования- вход сигнала стиранияPR -вход напряжения программирования

Режимы работы микросхемы представлены в таблице 1.

Таблица 1

CSERPRRDA0¸A9UPRD1/0Режим0XXXXXRoffХранение1010X-33¸-31 BXОбщее стирание1000A-//-XИзбирательное стирание1100A-//-D1Запись данных1111A-33¸5 BD0Считывание

2.1 Карта распределения адресного пространства памяти


B000hПЗУA000h9FFFhОЗУ9ВFFhРис. 15. Карта распределения адресного пространства


Согласно приведенной карте адресного пространства 1 Кб ОЗУ расположен c адреса 9BFFh, а 4 Кб ПЗУ с адреса A000h.


2.2 Селектор ОЗУ


Таблица. Микросхема ОЗУ, объёмом 1Кбайт, будет занимать ячейки памяти с 9BFFдо 9FFF, что соответствует адресу 1001 1ххх хххх хххх.

A15A14A13А12А11А10А9А8А7А6А5А4А3А2А1А0010011011111111110010011111111111110010011ХХХХХХХХХХХ01в остальных случаях1

2.3 Селектор ПЗУ


ПЗУ объёмом 4Кбайт занимает ячейки памяти с A000 до B000, что соответствует адресу 101x xххх хххх хххх.

Таблица

A15A14A13А12А11А10А9А8А7А6А5А4А3А2А1А00101000000000000000101100000000000000101XXХХХХХХХХХХХ0

Адресное пространство ОЗУ и ПЗУ удобно сделать на дешифраторе 3 в 8 К555ИД7.


Рис. 16. Адресный селектор памяти


Где на входы подаются сигналы PC5, PC6, PC7. Так как по ним можно точно определить какая именно микросхема будет задействована: вывод 11 - микросхема ОЗУ ; вывод 10 - микросхема ПЗУ.



3. Индикация


JE-AN 16202

Характеристики ? Режим отображения: STN / TN, прямой / обратный тип отображения ? Формат экрана: 16 символов * 2 строки ? Метод передачи: 1/16 Duty, 1/4 Bias ? Направление обзора: 6 O `clock/12 O'clock ? Заднее освещение: LED / EL блок


Таблица. Механические характеристики

ПараметрСпецификацияЕд. изм.Размер модуля (Ш х В х Г)80.0 x 36.0 x 15.0(10) Max.ммВидимая область (Ш х H/)64.5 x 13.8ммРазмер шрифта (Ш х В)5.0 x 7.0точкаРазмер символа (Ш х В)2.95 x 3.8ммРазмер шага (Ш х В)3.65 x 5.05ммРазмер точки (Ш х В)0.55 x 0.5ммВесОколо 100 гг

Таблица. Назначение контактов

Номер контактаСимволУровеньФункция1VSS (GND)0 VЗемля2VDD (VCC)+ 5VНапряжение питания логики3V0-Напряжения питания ЖК4RSH / LH: Ввод данных L: Ввод инструкций5R / WH / LH: Чтения данных L: Запись данных6EH, H à LСигнал разрешения7DB0H / L Шина данных8DB1H / L9DB2H / L10DB3H / L11DB4H / L12DB5H / L13DB6H / L14DB7H / L15NC-16NC-Блок схема

Рис


Схема подключения питания

Рис. VDD - VO : Напряжение питания LCD


Таблица. Наборы инструкций

Инструкция Код Описание Время запуска (макс.) RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0Очистка дисплея 0 0 0 0 0 0 0 0 0 1 1.52 мсСброс 0 0 0 0 0 0 0 0 1 *Возвращает дисплей при переключении 1.52 мсРежим записи 0 0 0 0 0 0 0 1 I/D SH37 мксУправление дисплеем Вкл / Выкл 0 0 0 0 0 0 1 D C B 37 мксОтображение курсора или дисплея 0 0 0 0 0 1 S/C R/L * * 37 мксНачало работы 0 0 0 0 1 DL N F * *37 мксУстановить CG Ram адрес 0 0 0 1 ACG37 мксУстановить DD RAM адрес 0 0 1 ADD37 мксЧтение флага «занят» и адреса 0 1 BF 0 мксЗапись данных в CG или DD RAM 1 0 AC 43 мксЧтение данных из CG или DD RAM 1 1 чтение 43 мкс

Таблица

ЗамечанияI/D1увеличение0уменьшениеSH1включить полный сдвиг0выключить полный сдвигS/C1Сдвиг дисплея0Установка курсораR/L1сдвиг вправо0сдвиг влевоDL1Биты0БитыN1Линии0ЛинииF15 х 11 Точек05 х 8 точекBF1Действующий внутренне0Может принимать инструкцииRAM Отображение данных оперативной памяти CG RAM: Генератор символов RAM: CG RAM Адрес ADD: CG RAM Адрес: Соответствует адресу курсора AC: Используется счетчик адреса для DD и CG RAM адреса ?: никакого эффекта.


Таблица. Символы шрифта


Рис


4. Расчет потребляемой устройством мощности


Таблица

МикросхемаТок потребления, мАПотребляемая мощность, мВтКоличествоATmega641К555ИД79,7511КР1601РР13701КР565РУ1А4501JE-AN162021.45001КР580ИР821608002КР580ВА86904501К155ЛЕ12764,82К500ЛЕ106Е2134,231

Для определения мощности, потребляемой устройством, необходимо просуммировать мощности, потребляемые каждым элементом в отдельности:


.


Максимальная мощность (клавиши нажаты), рассеиваемая на резисторах R1-R3, сопротивлением кОм:


мВт.


Значит мощность, потребляемая устройством:

мВт.

В качестве источника питающего напряжения можно применить любые маломощные трансформаторы на напряжения 220 / 3.3 V с использованием микросхемы-стабилизатора напряжения Б5-43, обеспечивающую максимальный ток на выходе до 1,99 А и позволяющей подключить нагрузку потребляющую до 150 Вт, что покрывает необходимые потребности.


Таблица. Спецификация

Поз. обозначениеНаименованиеDD1ATmega641DD5К555ИД71DD6КР1601РР11DD7КР565РУ1А1DD8JE-AN162021DD2,DD3КР580ИР822DD4КР580ВА861Элементы 2ИЛИ-НЕК155ЛЕ12Элементы ИЛИ-НЕК500ЛЕ106Е1R1-R3С2-23-0,25-1 кОм ± 5 % А-В-В3


5. Текст подпрограмм


Текст подпрограмм

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

Рассмотрим примеры инициализации и работы с устройствами ввода-вывода разработанного устройства.

;ATmega64

.include "m64def.inc"

.def out_fig_code = r21 ;код выводимого символа для индикатора

.def out_seg = r22 ;номер текущего сегмента

.def d1 = r4

.def d2 = r5

.def d3 = r6d1 = r7

.def d2 = r8

.def d3 = r9d1 = r10

.def d2 = r11

.def d3 = r12d1 = r13

.def d2 = r14

.def d3 = r15d1 = r16

.def d2 = r17d1 = r18

.def d2 = r19

.equ out_seg16 = 7

.dseg

.org 0x100

.cseg

.org 0reset

;-------------

; начало программы

reset:out_fig_codeout_seg

ldi r20, out_seg16

; программирование портов F и С на вывод

ldi r20, 7ddrc, r20r20, $ffddrf, r20:out_seg, 1 ; на сегмент 1out_fig_code, LLHLHHHL ; вывод . out_pp ; вызов подпрограммы вывода

ldi out_seg, 2 ; на сегмент 2out_fig_code, LLHLHHHL; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 3 ; на сегмент 3out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 4 ; на сегмент 4out_fig_code, LLHLHHHL; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 5 ; на сегмент 5out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 6 ; на сегмент 6out_fig_code, LLHLHLHL; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 7 ; на сегмент7out_fig_code, LHLLHLLL ; вывод H

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 8 ; на сегмент 8out_fig_code, LHLLLHLH; вывод E

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, 9 ; на сегмент 9out_fig_code, LHLLHHLL ; вывод L

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, A ; на сегмент 10out_fig_code, LHLLHHLL; вывод L

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, B ; на сегмент 11out_fig_code, LHLLHHHH ; вывод O

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, C ; на сегмент 12out_fig_code, LLHLHLHL ; вывод *

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, D ; на сегмент 13out_fig_code, LLHLHHHL; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, E ; на сегмент 14out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

ldi out_seg, F ; на сегмент 15out_fig_code, LLHLHHHL; вывод .

rcall out_pp ; вызов подпрограммы вывода

rcall delay05out_seg, 10 ; на сегмент 16out_fig_code, LLHLHHHL ; вывод .

rcall out_pp ; вызов подпрограммы вывода

;-------------

; подпрограмма вывода на индикатор

out_pp:

out PORTC, r20PORTF, out_fig_code

out PORTC, out_seg



Рис.


Курсовая работа "Разработка микропроцессорной системы" Введение Целью дан

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ