Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ОГЛАВЛЕНИЕ
Введение
С появлением однокристальных микро-ЭВМ связывают начало эры массового применения компьютерной автоматизации в области управления.
В связи со спадом отечественного производства и возросшим импортом техники, в том числе вычислительной, термин «микроконтроллер» вытеснил из употребления ранее использовавшийся термин «однокристальная микро-ЭВМ» [1, стр.10].
Первый патент на однокристальную микро-ЭВМ был выдан в 1971 году инженерам Кочрену и Буну, сотрудникам американской Texas Instruments. Именно они предложили на одном кристалле разместить не только процессор, но и память с устройствами ввода-вывода.
В 1976 году американская фирма Intel выпускает микроконтроллер i8048. В 1978 году фирма Motorola выпустила свой первый микроконтроллер MC6801, полностью совместимый с системой команд выпущенного ранее микропроцессора MC6800. Через 4 года, в 1980 году, Intel выпускает следующий микроконтроллер: i8051. Удачный набор периферийных устройств, возможность гибкого выбора внешней или внутренней программной памяти и приемлемая цена обеспечили этому микроконтроллеру успех на рынке. С точки зрения технологии микроконтроллер i8051 являлся для своего времени очень сложным изделием в кристалле было использовано 128 тысяч транзисторов, что в 4 раза превышало количество транзисторов в 16-разрядном микропроцессоре i8086 [2, стр.15].
На сегодняшний день существует более 200 модификаций микроконтроллеров, совместимых с i8051, выпускаемых двумя десятками компаний, и большое количество микроконтроллеров других типов. Популярностью у разработчиков пользуются 8-битные микроконтроллеры PIC фирмы Microchip Technology и AVR фирмы Atmel, 16-битные MSP430 фирмы TI, а также 32-битные микроконтроллеры, архитектуры ARM, которую разрабатывает фирма ARM Limited и продаёт лицензии другим фирмам для их производства [3, стр.20].
Одно и то же устройство, которое раньше собиралось на традиционных элементах, будучи собрано с применением микроконтроллеров, становится проще, не требует регулировки и меньше по размерам. Кроме того, с применением микроконтроллеров появляются практически безграничные возможности по добавлению новых функций и возможностей к уже существующим устройствам.
При проектировании микроконтроллеров приходится соблюдать баланс между размерами и стоимостью с одной стороны и гибкостью и производительностью с другой. Для разных приложений оптимальное соотношение этих и других параметров может различаться очень сильно. Поэтому существует огромное количество типов микроконтроллеров, отличающихся архитектурой процессорного модуля, размером и типом встроенной памяти, набором периферийных устройств, типом корпуса и т. д. В отличие от обычных компьютерных микропроцессоров, в микроконтроллерах часто используется гарвардская архитектура памяти, то есть раздельное хранение данных и команд в ОЗУ и ПЗУ соответственно.
Микроконтроллер микросхема, предназначенная для управления электронными устройствами. Типичный микроконтроллер сочетает в себе функции процессора и периферийных устройств, может содержать ОЗУ. Кроме ОЗУ, микроконтроллер может иметь встроенную энергонезависимую память для хранения программы и данных. Наиболее дешёвые типы памяти допускают лишь однократную запись. Другие модификации контроллеров обладают возможностью многократной перезаписи энергонезависимой памяти [2, стр.44].
Целью данной курсовой работы является создание приемника команд RC5 для ПК, изучение работы микроконтроллера. Задачей данной курсовой работы является создания файла прошивки устройства, сборки собственной схемы и симулирование полученного устройства.
1 Теоретическая часть
1.1 Постановка задачи
Реализовать работу приемника команд RC5 для ПК основе микроконтроллера ATmega8, провести симуляцию, получить результаты, проанализировать их. При выполнении данной задачи должны использоваться средства разработки:
Вышеперечисленные программы являются удобными и многофункциональными в своем классе решаемых задач.
1.2 Теоретические сведения
В данной курсовой работе используется микроконтроллер семейства ATmega.
Микроконтроллер это компьютер на одной микросхеме, предназначенный для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в него программой.
Как и все микроконтроллеры AVR фирмы «Atmel», микроконтроллеры семейства ATmega являются 8-разрядными микроконтроллерами, предназначенными для встраиваемых приложений. Они изготавливаются по малопотребляющей CMOP-технологии, которая в сочетании с усовершенствованной RISC-архитектурой позволяет достичь наилучшего соотношения быстродействия/энергопотребления [3, стр.71].
Микроконтроллеры являются сердцем многих современных устройств и приборов. Самой главной особенностью микроконтроллеров является то, что с их помощью легче и зачастую гораздо дешевле реализовать различные схемы.
На рисунке 1.1 изображена структурная схема типичного современного микроконтроллера.
Рисунок 1.1 Структурная схема микроконтроллера
Внешний вид современного микроконтроллера фирмы ATmega показан на рисунке 1.2.
Рисунок 1.2 Микроконтроллер фирмы ATmega
К числу особенностей микроконтроллера AVR семейства ATmega относятся:
Подавляющее большинство основных характеристик процессора микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров других семейств:
В то же время процессор микроконтроллеров семейства ATmega имеет ряд характеристик, присущих именно этому семейству:
Все характеристики подсистемы ввода/вывода микроконтроллеров семейства ATmega такие же, что и у микроконтроллеров других семейств:
Порты ввода/вывода AVR имеют число независимых линий "Вход/Выход" от 3 до 53. Каждый разряд порта может быть запрограммирован на ввод или на вывод информации. Мощные выходные драйверы обеспечивают токовую нагрузочную способность 20 мА на линию порта (втекающий ток) при максимальном значении 40 мА, что позволяет, например, непосредственно подключать к микроконтроллеру светодиоды и биполярные транзисторы. Общая токовая нагрузка на все линии одного порта не должна превышать 80 мА (все значения для напряжения питания 5 В) [4, стр.112].
Интересная архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.). Упрощенная структурная схема элемента ввода/вывода AVR микроконтроллера приведена на рисунке 1.3. Здесь DDRx бит контроля направления передачи данных и привязки вывода к шине питания (VCC), PORTx бит привязки вывода к VCC и бит выходных данных, PINx бит для отображения логического уровня сигнала на физическом выводе микросхемы.
Рисунок 1.3 Структурная схема элемента ввода/вывода AVR
Микроконтроллеры семейства ATmega имеют наиболее богатый набор периферийных устройств (ПУ). При этом в большинстве моделей имеются все ПУ, которые вообще встречаются в составе микроконтроллеров AVR. Этими устройствами являются:
Ядро микроконтроллеров AVR семейства ATmega выполнено по усовершенствованной RISC-архитектуре (enhanced RISC). Арифметико-логическое устройство (АЛУ), выполняющее все вычисления, подключено непосредственно к 32-м рабочим регистрам, объединенным в регистровый файл. Благодаря этому АЛУ выполняет одну операцию (чтение содержимого регистров, выполнение операции и запись результата обратно в регистровый файл) за один машинный цикл. Практически каждая из команд (за исключением команд, у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программы.
В микроконтроллеры AVR реализована Гарвардская архитектура, которая характеризуется раздельной памятью программ и данных, каждая из которых имеет собственные шины доступа к ним. Такая организация позволяет одновременно работать как с памятью программ, так и с памятью данных. Разделение шин доступа позволяет использовать для каждого типа памяти шины различной разрядности, причем способы адресации и доступа к каждому типу памяти также различны.
Еще одним решением, направленным на повышение быстродействия, является использование технологии конвейеризации. Конвейеризация заключается в том, что во время исполнения текущей команды производится выборка из памяти и дешифрация кода следующей команды. Причем, поскольку длительность машинного цикла микроконтроллеров AVR составляет всего один период тактового генератора, они могут обеспечивать ту же производительность, что и RISС-микроконтроллеры других фирм, но при более низкой тактовой частоте [7, стр.214].
2 Практическая часть
2.1 Принципиальная схема устройства
Принципиальная схема устройства изображена на рисунке 2.1.
Рисунок 2.1 Схема устройства приемника RC5 для ПК
Схема приемника команд RC5 для ПК включает в себя:
Блок-схема работы устройства показана на рисунке 2.2.
Рисунок 2.2 Блок-схема работы устройства
2.3 Текст программы
Исходный код прошивки написан в среде CodeVisionAVR C Compiler и находится в приложении. Основная функция программы представлена ниже.
while(1){
ADCSRA=0b11001011; // включаем непреривное АЦП преобразование
if(owf_flag)
{
while(buf_cnt){
buf_cnt--;
printf("%d ",buff[buf_cnt]); // печатаем в УАРТ значение
putchar(0x0D); // на новую строку УАРТА
}
owf_flag = 0;
}
}
2.4 Результаты тестирования (симулирования) устройства
Для эмулирования работы программы микроконтроллера использовались: среда разработки Proteus, где была собрана схема устройства, программа VSPD (соединение ПК с приемником), программа терминал (вывод полученных команд). Начальное состояние схемы приемника RC5 для ПК в эмуляторе представлено на рисунке 2.3.
Рисунок 2.3 Начальное состояние устройства часов
Запускается программа VSPD, где соединяются виртуальные COM порты ПК и Proteus для демонстрации работы устройства (Рисунок 2.4).
Рисунок 2.4 программа VSPD
Запускается программа Terminal для показа принятых команд с приемника RC5 (рисунок 2.5).
Рисунок 2.5 программа Terminal
В симуляторе Proteus в виртуальном терминале вводим данные. После чего нажимается Enter, после чего эти данные отправляются на ПК и отображаются в программе Terminal.
Демонстрация работы устройства показана на рисунках 2.6 2.9.
Рисунок 2.6 Отправка данных
Рисунок 2.7 Прием данных
Рисунок 2.8 Отправка данных
Рисунок 2.9 Прием данных
2.5 Анализ полученных результатов
В ходе выполнения курсовой работы, была разработана схема и программа работы приемника команд для ПК. Использовались программы, такие как CodeVisionAVR C compiler (на основе микроконтроллера ATMega8), Proteus, Terminal, VSPD. Для возможности отправки команд был подключен виртуальный терминал в Proteus, для отображения результатов была задействована программа Terminal.
В ходе анализа программа не давала сбоев. Выполняла правильные действия в зависимости от запроса пользователя.
Заключение
В настоящее время микроконтроллеры играют большую роль в современном мире. В нашу жизни все больше внедряются электронные устройства с микроконтроллерами, которые можно программировать. Благодаря одному из таких микроконтроллеров (ATmega8) был создан курсовой проект. В результате проделанной работы, была реализовано устройство «часы» в CodeVisionAVR C compiler фирмы Atmel и проанализировано в программе Proteus. Эта симуляция часов может расцениваться как один из примеров использования микроконтроллеров в быту, так как обладает высокой надежностью, за счёт простоты схемы, и не требует больших материальных затрат.
Микроконтроллер это компьютер на одной микросхеме, предназначенный для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в него программой.
AVR единственный 8-разрядный микроконтроллер, набор команд которого оптимизирован под языки высокого уровня. Код на языке C делает данную разработку легко адаптируемой и модифицируемой.
Интересная архитектурная особенность построения портов ввода/вывода у AVR заключается в том, что для каждого физического вывода существует 3 бита контроля/управления, а не 2, как у распространенных 8-разрядных микроконтроллеров (Intel, Microchip, Motorola и т.д.).
Как результат выполнения курсовой работы можно выделить получение опыта работы с микроконтроллерами в сборке схем и их наладке.
В данном курсовом проекте поставленные цели по созданию приемника команд RC5 для ПК и задачи в написании файла прошивки устройства, симулировании устройства, выполнены. Были получены достойные, интересные, а главное полезные знания.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ
#include <mega8.h>
#include <delay.h>
#include <stdio.h>
#define ADC_VREF_TYPE & 0xff;
#define BUF_SIZE 512 // необходимое число точек
unsigned char buff[BUF_SIZE];
unsigned int buf_cnt=0;
unsigned char owf_flag =0;
interrupt [ADC_INT] void adc_isr(void){
if(!owf_flag){
buff[buf_cnt]=ADCW;
buf_cnt++;
if(buf_cnt == BUF_SIZE)owf_flag=1;
}
}
void init(void){
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud Rate: 57600
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
ADMUX=0x0b00000000; // вибираем 0-й канал АЦП
ADCSRA=0x0b10001011; // конфигурация АЦП
#asm ("sei"); // разрешить все переривания
}
void main(void)
{
init(); // визов функции int (инициализация всего)
while(1){
ADCSRA=0b11001011; // включаем непреривное АЦП преобразование
if(owf_flag)
{
while(buf_cnt){
buf_cnt--;
printf("%d ",buff[buf_cnt]); // печатаем в УАРТ значение
putchar(0x0D); // на новую строку УАРТА
}
owf_flag = 0;
}
}
}
PAGE 25
Включён таймер
есконечный цикл
ADCSRA=0b11001011;
buf_cnt--;
printf("%d ",buff[buf_cnt]);
putchar(0x0D);
Выход
Начало
5
3
2
1
4
owf_flag
buf_cnt
owf_flag = 0;
6
7
ДА