Разработка сетевого контроллера
Структура микропроцессора ATmega169 и архитектура его вычислительного ядра. Описание работы портов. Программирование необходимой логики контроллера семейства AVR. Исходный код программы с пояснениями. Пошаговая процедура работы микроконтроллера.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.11.2016 |
Размер файла | 3,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
"Казанский национальный исследовательский технический университет
им. А.Н. Туполева - КАИ" (КНИТУ - КАИ)
Кафедра компьютерных систем
Пояснительная записка к курсовому проекту
по дисциплине: "Микропроцессорные системы"
на тему: "Разработка сетевого контроллера"
Казань, 2013 г.
Содержание
- 1. Формулировка задания
- 2. Описание работы схемы
2.1 Необходимые средства разработки
2.2 Схема микроконтроллера
2.2.1 Описание работы порта А
2.2.2 Описание работы порта В
3. Исходный код программы
- Список литературы
Приложение
1. Формулировка задания
К общей шине (ОШ) подключены несколько абонентов, каждый из которых функционирует автономно в соответствии с управляющей информацией, полученной от специального устройства - арбитра общей шины. Эта шина включает 3 линии связи: одну информационную и 2 синхронизирующие. Передача информации ведется в последовательном коде. При этом синхроимпульсы С 1 отмечают начало каждого байта, а С 2 синхронизируют подачу отдельных битов. Основная тактовая частота 1 МГц. Длительность синхроимпульсов 0,25 мкс.
При необходимости связи арбитр вырабатывает общий для всех абонентов сигнал ВНИМАНИЕ и затем - АДРЕС нужного абонента. Этот абонент, после идентификации своего адреса, выдает в шину сигнал ГОТОВ либо ЗАНЯТ в зависимости от своего состояния. Получив сигнал готовности, арбитр сразу же формирует непрерывную многобайтную посылку - информационное сообщение, которое замыкается сигналом КОНЕЦ-ПЕРЕДАЧИ. Приняв эту посылку, абонент отвечает сигналом КОНЕЦ-ПРИЁМА, при отсутствии ошибок передачи, либо сигналом ПОВТОРИТЬ-ПЕРЕДАЧУ, если обнаружена ошибка. В последнем случае арбитр повторяет весь цикл связи заново.
Информационное сообщение имеет символьный характер. Каждый символ занимает 1 байт (8 разрядов). Алфавит сообщений содержит всего 200 символов. Оставшиеся 56 символов могут быть использованы в качестве сигналов связи: ГОТОВ, ВНИМАНИЕ и др.
Для реализации связи каждому абоненту передаётся интерфейсный модуль-контроллер связи. Сигналы ГОТОВ и ПОВТОРИТЬ-ПЕРЕДАЧУ вырабатываются контроллером по получении от своего абонента сигналов конца работы (КР) и ошибки передачи (ОП) соответственно.
Таблица кодов сигналов
Сигнал |
Десятичный код |
Двоичный код |
|
Адрес |
73 |
01001001 |
|
Внимание |
119 |
01110111 |
|
Готов |
102 |
01100110 |
|
Занят |
219 |
11011011 |
|
Конец - передачи |
255 |
11111111 |
|
Конец - приема |
206 |
11001110 |
|
Повторить - передачу |
116 |
01110100 |
2. Описание работы схемы
2.1 Необходимые средства разработки
В качестве программируемого микроконтроллера возьмём ATmega169. Выбор обусловлен тем, что данное устройство поддерживает необходимые для выполнения курсового проекта характеристики, хотя и является избыточным.
Рисунок 1. Микросхема ATmega 169
Микропроцессоры семейства AVR содержат высокоскоростное вычислительное ядро RISC архитектуры, развитую периферию и функцию внутрисистемного программирования. Кроме того, микропроцессоры этого семейства имеют производительность 1 MIPS при тактовой частоте 1 МГц, т.е. выполняют большинство команд за 1 цикл.
Модель |
Flash(Кб) |
СППЗУ, кБ |
ОЗУ (байт) |
I/O |
Fmax,Мгц |
Vcc, В |
Таймер 1б_бит |
Таймер 8_бит |
ШИМ, каналов |
RTC |
SPI |
UART |
TWI |
ISP |
10_бит АЦП, кан. |
Компараторы (ан.) |
Детектор Vc |
WD |
Osc. |
Hardware Multiplier |
Корпус |
|
ATmega169 |
16 |
0,5 |
1024 |
54 |
16 |
4,5-5,5 |
1 |
2 |
4 |
+ |
1+USI |
1 |
+ |
+ |
8 |
+ |
+ |
+ |
+ |
+ |
TQFP64 |
Микропроцессор ATmega169 является первым низкопотребляющим членом семейства AVR, который содержит встроенный контроллер ЖКИ. AVR ядро объединяет богатый набор команд и 32 рабочих регистра, которые могут быть напрямую подключены к АЛУ, что позволяет выполнять действия с двумя регистрами одновременно одной командой. Вычислительное ядро построено по Гарвардской архитектуре с разделенными памятью и шинами программы и данных. Процессор имеет одноуровневый конвейер, позволяющий при выполнении команды выбирать следующую. Такая архитектура вычислительного ядра позволяет выполнять команды в каждом цикле. Архитектура вычислительного ядра микропроцессора приведена на рисунке 2.
Микропроцессор содержит 16 кбайт программной Flash памяти, 512 байт EEPROM памяти, 1 кбайт SRAM, 53 линии портов ввода-вывода общего назначения, 32 рабочих регистра общего назначения, JTAG интерфейс, встроенные автоматы отладки и программирования, законченный контроллер ЖКИ с преобразователем напряжения, три гибких независимых таймера/счетчика, внешние и внутренние источники прерывания, последовательный программируемый USART, универсальный последовательный интерфейс с детектором стартового состояния, 8- канальный 10- битный АЦП, программируемый сторожевой таймер со встроенным генератором и последовательный SPI порт.
Рисунок 2. Архитектура вычислительного ядра микропроцессора ATmega169
Предназначенный для использования в аппаратуре с автономным питанием, микропроцессор имеет превосходные мощностные характеристики. Во-первых, он выпускается в трех модификациях с различными диапазонами напряжения питания: ATmega169 имеет диапазон напряжения питания от 4,5 до 5,5 В, ATmega169L - от 2,7 до 5,5 В, а ATmega169V - от 1,8 до 5,5 В. При этом модификации имеют различные диапазоны рабочих частот тактового генератора: ATmega169 - от 0 до 16 МГц, ATmega169L - от 0 до 8 МГц, а ATmega169V - от 0 до 1 МГц. При работе на частоте 1 МГц, т.е. с производительностью 1 MIPS, микропроцессор потребляет всего 400 мкА при 1,8 В питании! Во-вторых, имеется возможность программного изменения частоты работы вычислительного ядра. Для выполнения сложных вычислительных функций или других действий, требующих высокого быстродействия вычислительного ядра, разработчик может установить высокую тактовую частоты, а при выполнении простых управляющих функций тактовая частота вычислительного ядра может быть существенно снижена. При работе с частотой 32 кГц микропроцессор потребляет всего 20 мкА (40 мкА при активизированном драйвере ЖКИ). В-третьих, микропроцессор имеет пять программно инициализируемых режимов пониженного потребления: Idle, Power-down, Power-save, ADC Noise Reduction и Standby.
Объединяя в себе 8-битное RISC ядро и внутри системно само программируемую Flash память в одном корпусе, микропроцессор ATmega169 является мощным прибором, который даст Вашим устройствам более высокие гибкость и стоимостную эффективность.
Микропроцессор ATmega169 AVR поддерживается различными программными и системными средствами разработки, такими как С- компиляторы, макроассемблеры, отладчиком/симулятором (AVR Studio версий 3.5 и 4.0), внутрисхемными эмуляторами (ATICE50 и AVR JTAG ICE) и внутрисистемным программатором AVR ISP. Для ускорения разработки новых устройств на базе микропроцессора ATmega169 и снижения затрат на разработку выпущены отладочная плата STK502 и демонстрационный набор AVR Batterfly.
Работу программы будем проверять в эмуляторе AVR Studio 4.13.528.
Компилировать программу будем в WinAVR 20071221.
AVR Studio - интегрированная среда проектирования программ для микроконтроллеров.
WinAVR - программный пакет, содержащий в себе интересующий нас компилятор GNU GCC для C.
2.2 Схема микроконтроллера
Для программирования необходимой логики работы мы будем использовать 3 из 8 выводов порта А и все 8 выводов порта B
2.2.1 Описание работы порта А
- На вывод 0 поступает сигнал синхронизации С 1.
- На вывод 1 поступает сигнал синхронизации С 2.
- Вывод 2 используется для посылки и приёма Арбитру управляющих сигналов ("Внимание", "Готов" и т.д.), а также для приёма информационного сообщения.
Выводы 3-7 не используются и поэтому не показаны на схеме.
2.2.2 Описание работы порта В
8 выводов порта B используются для параллельной передачи и приёма Абоненту управляющих сигналов ("Ошибка передачи", "Конец работы" и т.д.), а также для пересылки информационного сообщения, которое идёт от Арбитра.
Рисунок 3. Схема микроконтроллера
3. Исходный код программы
/*
Подключение заголовочного файла io.h, который в свою очередь подключит iom169.hiom169.h - заголовочный файл, который ставит в соответствие константам PORTA и PORTB реальные адреса выводов конкретного контроллера (в нашем случае ATmega169). Таким образом io.h позволяет работать с портами ввода-вывода*/#include <avr/io.h>// Подключение заголовочного файла, который позволяет объявлять булевские переменные
#include <stdbool.h>
// Определение пользовательского типа данных byte
typedef unsigned char byte;
// Константы, определённые для обращения к выводам порта А
#define C1 (PINA & 0x01) /* 0-вой вывод порта А, на который приходит сигнал С 1 */
#define C2 (PINA & 0x02) /* 1-вой вывод порта А, на который приходит сигнал С 2 */
#define DATAIN ((PINA & 0x04) " 2) /* 2-вой вывод порта А, на который приходит информация.
Чтение информации из порта */
#define DATAOUT(x) PORTA = (PORTA & ~(0x04)) | (x " 2) /* 2-вой вывод порта А, на который приходит информация. Ввод информации в порт */
#define ATTENTION 236 // Внимание
#define ADDRESS 43 // Адрес
#define READY 252 // Готов
#define BUSY 203 // Занят
#define END_OF_TRANSFER_SEQUENCE 113 // Конец передачи
#define END_OF_RECEIVE 153 // Конец приёма
#define REPEAT_TRANSFER 83 // Повторить передачу
// Символы сигналов связи от Абонента
#define END_OF_WORK 1 // Конец работы
#define TRANSFER_ERROR 2 // Ошибка передачи
// Глобальные переменные
byte frameFromArbiter = 0;
bool abonentStateReceived = false;
bool frameCameFromArbiter = false;
bool AddressCameFromArbiter = false;
bool frameToAbonentWasSent = false;
bool requestToAbonentWasSent = false;
bool stateOfAbonentWasSentToArbiter = false;
bool DataMessageRefered = false;
int abonentState = 0;
// Получаем побитово байт от Арбитра
void ReceiveFrameFromArbiter()
{ static int C2Count = 0;
static bool C1Came = false;
static bool C2Out = true;
if(C1) // Если пришёл сигнал С 1,
{
C1Came = true; // запоминаем что сигнал С 1 приходил
}
if(C1Came) // Если сигнал С 1 приходил
{ if(C2 && C2Out) // Если сигнал С 2 пришёл,
{frameFromArbiter = (frameFromArbiter & ~(1 " C2Count)) | (DATAIN " C2Count); // считываем
очередной бит с информационной линии
/*(1 " C2Count) даст нам байт с единицой, установленной на том бите, который мы должны установить
~(1 " C2Count) инвертирование даст нам байт с нулём, установленным на том бите, который мы должны установить
(frameFromArbiter & ~(1 " C2Count)) даст нам исходный frameFromArbiter с нулём, установленным на том бите, который мы должны установить (DATAIN " C2Count) даст нам бит со значением пришедшим по информационной линии, который установлен в байте на том бите, который мы должны установить Итоговое поразрядное ИЛИ даст нам исходный frameFromArbiter со значением пришедшим по информационной линии, которое установится в frameFromArbiter на номере бита, равном номеру сигнала С 2*/
C2Count++; // Считаем номер пришёдшего сигнала С 2
C2Out = false; // Запоминаем, что С 2 пришёл, но ещё не уходил
}
if(C2Count == 8) // Если пришло 8 сигналов С 2, значит мы приняли целиком байт
{C2Count = 0; // Обнуляем количество сигналов С 2
C1Came = false; // Запоминаем что пришёдший после С 1 байт уже обработан, ждём следующий С 1
C2Out = true;
frameCameFromArbiter = true; // Запоминаем что байт пришёл
}
if(!C2){ // Если сигнал С 2 ушёл
C2Out = true; // Запоминаем, что сигнал С 2 ушёл
}
}
}
// Ждём поступления от Арбитра адреса микроконтроллера
void WaitAddressFromArbiter()
{ DDRA = 0x00; // Указываем микроконтроллеру настроить все выводы на приём информации
bool attentionCame = false;
ReceiveFrameFromArbiter(); // Получить байт от Арбитра
if(frameCameFromArbiter) // Если байт от Арбитра пришёл
{ if(attentionCame) // Если сигнал Внимание уже приходил
{ if(frameFromArbiter == ADDRESS) // И пришедший байт равен адресу микроконтроллера
{AddressCameFromArbiter = true; // Запоминаем, что адрес пришёл
}
attentionCame = false;
}
if(frameFromArbiter == ATTENTION) // Если пришёл байт равный сигналу Внимание
{attentionCame = true; // Запоминаем, что приходил сигнал Внимание
}
frameCameFromArbiter = false; // Записываем, что мы уже обработали пришедший байт
}
}
// Посылаем параллельно байт Абоненту
void SendFrameToAbonent(byte sendFrame)
{ static bool C1Came = false;
if(C1) // Если пришёл сигнал С 1,
{C1Came = true; // запоминаем что сигнал С 1 приходил
}
if(C1Came) // Если сигнал С 1 приходил
{PORTB = sendFrame; // Выдаём на выводы порта B байт
}
if(!C1 && C1Came) // Если сигнал С 1 ушёл и приходил
{ frameToAbonentWasSent = true; // Запоминаем что байт был отослан
C1Came = false;
}
}
// Посылаем Абоненту запрос о его состоянии
void SendToAbonentRequestAboutAbonentState()
{ DDRB = 0xFF; // Указываем микроконтроллеру настроить все выводы порта B на вывод информации
SendFrameToAbonent(READY); // Посылаем байт ГОТОВ Абоненту
if(frameToAbonentWasSent) // Если байт был послан
{requestToAbonentWasSent = true; // Запоминаем, что запрос Абоненту был послан
}
}
// Получаем от Абонента его состояние
void ReceiveFromAbonentAbonentState()
{ DDRB = 0x00; // Указываем микроконтроллеру настроить все выводы порта B на приём информации
static bool C1Came = false;
if(C1) // Если пришёл сигнал С 1,
{C1Came = true; // запоминаем что сигнал С 1 приходил
}
if(C1Came) // Если сигнал С 1 приходил
{abonentState = PINA; // Выдаём на выводы порта B байт
}
if(!C1 && C1Came) // Если сигнал С 1 ушёл и приходил
{ abonentStateReceived = true; // Запоминаем что получили состояние Абонента
C1Came = false;
}
}
// Посылаем Арбитру состояние Абонента
void SendToArbiterAbonentState(byte frame)
{ DDRA = 0x04;
static int C2Count = 0;
static bool C1Came = false;
static bool C2Out = true;
if(C1) // Если пришёл сигнал С 1,
{C1Came = true; // запоминаем что сигнал С 1 приходил
}
if(C1Came) // Если сигнал С 1 приходил
{ if(C2 && C2Out) // Если сигнал С 2 пришёл,
{DATAOUT((frame & (1 " C2Count)) " C2Count); // Записываем очередной бит на информационную линию
C2Count++; // Считаем номер пришёдшего сигнала С 2
C2Out = false; // Запоминаем, что С 2 пришёл, но ещё не уходил
}
if(C2Count == 8)
{C2Count = 0; // Обнуляем количество сигналов С 2
C1Came = false; // Запоминаем что пришёдший после С 1 байт уже обработан, ждём следующий С 1
C2Out = true;
stateOfAbonentWasSentToArbiter = true; // Запоминаем, что состояние Абонента было отослано Арбитру
}
if(!C2){ // Если сигнал С 2 ушёл
C2Out = true; // Запоминаем, что сигнал С 2 ушёл
}
}
}
// Получаем информационное сообщение от Арбитра и пересылаем Абоненту
void ReceiveDataMessageFromArbiterAndReferToAbonent()
{ DDRA = 0x00; // Указываем микроконтроллеру настроить все выводы на приём информации
ReceiveFrameFromArbiter(); // Получить байт от Арбитра
if(frameCameFromArbiter) // Если байт от АРбитра пришёл
{ SendFrameToAbonent(frameFromArbiter); // Посылаем байт Абоненту
frameCameFromArbiter = false; // Запоминаем, что мы обработали байт, пришедший от Арбитра
if(frameFromArbiter == END_OF_TRANSFER_SEQUENCE) // Если пришёдший байт совпадает с символом КОНЕЦ ПЕРЕДАЧИ
{ DataMessageRefered = true; // Запоминаем что информационное сообщение переслали
}
}
}
int main (void)
{ while(1) // Запускаем бесконечный цикл
{ if(!AddressCameFromArbiter) // Если адрес МК ещё не пришёл от Арбитра,
{ WaitAddressFromArbiter(); // ждём
}
if(AddressCameFromArbiter) // Если от Арбитра пришёл адрес МК
{ SendToAbonentRequestAboutAbonentState(); // посылаем Абоненту запрос о его состоянии
if(requestToAbonentWasSent) // Если запрос о состоянии Абонента был послан
{ReceiveFromAbonentAbonentState(); // получаем ответ
}
if(abonentStateReceived) // Если получили состояние Абонента,
{ if(abonentState == END_OF_WORK) // и состояние равно КОНЕЦ РАБОТЫ,
{SendToArbiterAbonentState(READY); // посылаем Арбитру сигнал ГОТОВ
if(stateOfAbonentWasSentToArbiter) // Если состояние Абонента отослалось Арбитру
{ReceiveDataMessageFromArbiterAndReferToAbonent(); // Начинаем
принимать информационное сообщение от Арбитра и пересылать его Абоненту
if(DataMessageRefered) // Если информационное сообщение было отослано
{SendToAbonentRequestAboutAbonentState(); // Посылаем Абоненту
запрос о его состоянии
if(requestToAbonentWasSent) // Если запрос о состоянии Абонента был послан,
{ReceiveFromAbonentAbonentState(); // ждём ответ
}
if(abonentStateReceived) // Если получили состояние Абонента,
{if(abonentState == TRANSFER_ERROR) // Если состояние
Абонента равно ОШИБКА ПЕРЕДАЧИ
{SendToArbiterAbonentState(REPEAT_TRANSFER);
// Посылаем Арбитру сигнал ПОВТОРИТЬ ПЕРЕДАЧУ
}
else // Если ошибки не произошло
{SendToArbiterAbonentState(END_OF_RECEIVE); //
Посылаем Арбитру сигнал КОНЕЦ ПРИЁМА
}
}
}
}
}
else // Если состояние не равно КОНЕЦ РАБОТЫ
{SendToArbiterAbonentState(BUSY); // Посылаем Арбитру, что Абонент ЗАНЯТ
}
}
}
}
}
Список литературы
1. Конспект лекций по курсу "Микропроцессоры".
2. Голубцов М.С., Кириченкова А.В. Микроконтроллеры AVR: от простого к сложному. - М.: "Солон-Пресс", 2004.
3. Шпак Ю.А. Программирование на языке C для AVR и PIC микроконтроллеров. - М.: "МК-Пресс", 2006.
4. Фрунзе А.В. Микроконтроллеры? Это же просто! - K.: "Додэка XXI", 2007.
5. Белов А.В. Самоучитель разработчика устройств на микроконтроллерах AVR. - М.: "Наука и техника", 2008.
6. Хартов В.Я. Микроконтроллеры AVR. Практикум для начинающих. -М.: МГТУ им. Н.Э. Баумана, 2007.
7. Джон Мортон Микроконтроллеры AVR. Вводный курс AVR: An Introductory Course. - К.: "Додэка XXI", 2006.
8. Евстифеев А.В. Микроконтроллеры AVR семейства Tiny. Руководство пользователя. - К.: Додэка XXI, 2007.
Размещено на Allbest.ru
...Подобные документы
Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Программируемый логический контроллер, его структура и внутреннее устройство, принцип действия и функциональные возможности, описание электрооборудования. Разработка программы работы логического контроллера, экономическое обоснование его создания.
дипломная работа [802,4 K], добавлен 25.04.2015Разработка принципиальной схемы и описание работы контроллера клавиатуры/дисплея КР580ВД79. Схема сопряжения микроконтроллера с фотоимпульсным датчиком. Расчет потребляемого тока от источника питания. Блок-схема программы вывода информации на индикацию.
курсовая работа [736,9 K], добавлен 18.02.2011Разработка микроконтроллера для контроля ритма дыхания больного в реанимационной палате. Структурная и принципиальная схемы микропроцессорного контроллера. Модули процессора, памяти, ввода и вывода, режимы индикации. Описание работы, принципиальная схема.
курсовая работа [197,6 K], добавлен 06.12.2013Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010Схема линии связи и подключения абонентов. Ведение передачи информации в последовательном коде. Использование интерфейсного модуля-контроллера связи для ее реализации. Схема микроконтроллера, описание работы портов. Создание проекта в AVR Studio.
контрольная работа [82,6 K], добавлен 24.02.2014Техническая характеристика микроконтроллера ADuC812 – интегральной 12-разрядной системы сбора информации, включающей в себя прецизионный многоканальный АЦП с самокалибровкой, два 12-разрядных ЦАП. Описание алгоритма работы устройства и листинг программы.
курсовая работа [442,3 K], добавлен 25.12.2012Алгоритм функционирования контроллера имитатора навигационного сигнала, его упрощенная структурная схемы. Спецификация входных и выходных сигналов. Разработка аппаратной части заданного блока контроллера и программного обеспечения. Исходный код программы.
курсовая работа [1,1 M], добавлен 13.10.2017Разработка программно-аппаратного комплекса (микропроцессорного контроллера) для тестирования интегральных микросхем. Функциональный контроль по принципу "годен" - "не годен". Параметры микроконтроллера КМ1816ВЕ51. Блок-схема алгоритма работы контроллера.
курсовая работа [307,1 K], добавлен 16.07.2009Разработка контроллера прибора, обеспечивающего реализацию функций оцифровки аналоговых данных с выводом результата в виде графического вида сигнала. Выбор контроллера и элементов схемы, их описание. Общий алгоритм работы и листинг программы управления.
курсовая работа [1,1 M], добавлен 26.12.2012Характеристика микропроцессора Z80, его достоинства и система команд. Проектирование интерфейса, структурной схемы и алгоритма работы управляющей микро-ЭВМ. Разработка модулей памяти, генератора тактового импульса, контроллера, ввода/вывода и индикатора.
курсовая работа [1,7 M], добавлен 17.02.2014Разработка контроллера управления цифровой частью системы, перечень выполняемых команд. Описание алгоритма работы устройства, его структурная организация. Синтез принципиальной электрической схемы, особенности аппаратных затрат и потребляемой мощности.
курсовая работа [318,8 K], добавлен 14.06.2011Структурная схема цифрового термометра. Выбор микропроцессорного комплекта. Описание и расчет схемы электрической принципиальной. Нагрузочная способность портов ввода/вывода. Сопротивления делителя напряжения. Программирование в готовом устройстве.
курсовая работа [139,4 K], добавлен 30.08.2012Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Разработка специализированного контроллера, обеспечивающего контролируемый доступ к персональному компьютеру по определенным ключам доступа. Выбор типа электронного ключа Touch Memory и микропроцессора АТ89S8252 серии MSC-51. Описание работы устройства.
курсовая работа [799,5 K], добавлен 23.12.2012Преобразование релейно-контактной схемы управления механизмом подъема крана с использованием силового кулачкового контроллера ККТ 69А. Условие работы установки: датчики, режимы работы, требования к защите и сигнализации, виды управления установкой.
курсовая работа [992,6 K], добавлен 09.04.2012Обзор характеристик контроллера по сбору аналоговой информации и преобразовании ее в цифровую, типы корпусов и исполнений, функциональное назначение выводов. Описание регистров PIC, тактовых генераторов. Система команд, блок ввода аналоговых данных.
курсовая работа [338,0 K], добавлен 05.09.2011Структурная схема микропроцессорного устройства для определения частоты сигнала. Выбор микроконтроллера, описание алгоритма нахождения частоты. Алгоритм работы программы управления микропроцессорным устройством. Программа работы микропроцессора.
курсовая работа [605,7 K], добавлен 24.11.2014Разработка микропроцессорной системы на основе микроконтроллера, основные этапы и особенности данного процесса. Принципы работы шагового двигателя. Аппаратные средства микроконтроллеров серии AT90S2313. Расчет стоимости сборки и отладки устройства.
дипломная работа [1,4 M], добавлен 11.07.2010Алгоритм работы схемы микропроцессорного устройства и протокол обмена информацией между ним и объектом управления. Составление карты памяти для микропроцессора. Разработка программы на языке Ассемблера для выбранного микропроцессора и микроконтроллера.
контрольная работа [207,8 K], добавлен 29.06.2015