Программирование микроконторллера
Микроконтроллер (МК) – компьютер, разместившийся в одной микросхеме. Малые габариты; высокие производительность, надежность и способность быть адаптированным для выполнения самых различных задач. Разработка программу на языке ASSEMBLER. Алгоритм работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 05.02.2017 |
Размер файла | 488,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Программирование микроконторллера
Введение
Микроконтроллеры используются во всех сферах жизнедеятельности человека, в устройствах, которые окружают его. С помощью программирования микроконтроллера можно решить многие практические задачи аппаратной техники.
Можно считать, что микроконтроллер (МК) - это компьютер, разместившийся в одной микросхеме. Отсюда и его основные привлекательные качества: малые габариты; высокие производительность, надежность и способность быть адаптированным для выполнения самых различных задач.
Микроконтроллер содержит центральный процессор (ЦП) память и многочисленные устройства ввода/вывода: аналого-цифровые преобразователи, последовательные и параллельные каналы передачи информации, таймеры реального времени, широтно-импульсные модуляторы (ШИМ), генераторы программируемых импульсов и т.д. Его основное назначение - использование в системах автоматического управления, встроенных в самые различные устройства: кредитные карточки, фотоаппараты, сотовые телефоны, стиральные машины, микроволновые печи, системы охранной сигнализации, системы зажигания бензиновых двигателей, электроприводы локомотивов, ядерные реакторы и многое, многое другое. Встраиваемые системы управления стали настолько массовым явлением, что фактически сформировалась новая отрасль экономики, получившая название Embedded Systems (встраиваемые системы).
Достаточно широкое распространение имеют МК фирмы ATMEL, которые располагают большими функциональными возможностями.
Применение МК можно разделить на два этапа: первый - программирование, когда пользователь разрабатывает программу и прошивает ее непосредственно в кристалл, и второй - согласование спроектированных исполнительных устройств с запрограммируемым МК. Значительно облегчают отладку программы на первом этапе - симулятор, который наглядно моделирует работу микропроцессора. На втором этапе для отладки используется внутрисхемный эмулятор, который является сложным и дорогим устройством, зачастую недоступным рядовому пользователю.
В тоже время в литературе мало уделено внимания вопросам обучения программированию некоторых недорогих МК, в сочетании с реальными исполнительными устройствами.
Назначение и архитектура МК
Микроконтроллер - компьютер на одной микросхеме. Предназначен для управления различными электронными устройствами и осуществления взаимодействия между ними в соответствии с заложенной в микроконтроллер программой. В отличие от микропроцессоров, используемых в персональных компьютерах, микроконтроллеры содержат встроенные дополнительные устройства. Эти устройства выполняют свои задачи под управлением микропроцессорного ядра микроконтроллера.
К наиболее распространенным встроенным устройствам относятся устройства памяти и порты ввода/вывода (I/O), интерфейсы связи, таймеры, системные часы. Устройства памяти включают оперативную память (RAM), постоянные запоминающие устройства (ROM), перепрограммируемую ROM (EPROM), электрически перепрограммируемую ROM (EEPROM). Таймеры включают и часы реального времени, и таймеры прерываний. Средства I/O включают последовательные порты связи, параллельные порты (I/O линии), аналого-цифровые преобразователи (A/D), цифроаналоговые преобразователи (D/A), драйверы жидкокристаллического дисплея (LCD) или драйверы вакуумного флуоресцентного дисплея (VFD). Встроенные устройства обладают повышенной надежностью, поскольку они не требуют никаких внешних электрических цепей.
Микроконтроллеры можно встретить в огромном количестве современных промышленных и бытовых приборов: станках, автомобилях, телефонах, телевизорах, холодильниках, стиральных машинах. и даже кофеварках. Среди производителей микроконтроллеров можно назвать Intel, Motorola, Hitachi, Microchip, Atmel, Philips, Texas Instruments, Infineon Technologies (бывшая Siemens Semiconductor Group) и многих других. Для производства современных микросхем требуются сверхчистые помещения.
Основным классификационным признаком микроконтроллеров является разрядность данных, обрабатываемых арифметико-логическим устройством (АЛУ). По этому признаку они делятся на 4-, 8-, 16-, 32 - и 64-разрядные. Сегодня наибольшая доля мирового рынка микроконтроллеров принадлежит восьмиразрядным устройствам (около 50 % в стоимостном выражении). За ними следуют 16-разрядные и DSP-микроконтроллеры (DSP - Digital Signal Processor - цифровой сигнальный процессор), ориентированные на использование в системах обработки сигналов (каждая из групп занимает примерно по 20 % рынка). Внутри каждой группы микроконтроллеры делятся на CISC - и RISC-устройства. Наиболее многочисленной группой являются CISC-микроконтроллеры, но в последние годы среди новых чипов наметилась явная тенденция роста доли RISC-архитектуры.
Тактовая частота, или, более точно, скорость шины, определяет, сколько вычислений может быть выполнено за единицу времени. В основном производительность микроконтроллера и потребляемая им мощность увеличиваются с повышением тактовой частоты. Производительность микроконтроллера измеряют в MIPS (Million Instruсtions per Second - миллион инструкций в секунду).
Контроллеры требуются не только для больших систем, но и для малогабаритных устройств, таких как радиоприёмники, радиостанции, магнитофоны или сотовые аппараты. В таких устройствах к контроллерам предъявляются жёсткие требования по стоимости, габаритам и температурному диапазону работы. Этим требованиям не могут удовлетворить даже промышленные варианты универсального компьютера. Приходится вести разработку контроллеров на основе однокристальных ЭВМ, которые в свою очередь получили название микроконтроллеры. Любые устройства, в том числе и устройства связи, радиоавтоматики или аудиовизуальной аппаратуры требуют присутствия в своем составе устройства управления (контроллера). Контроллеры требуются практически во всех предметах и устройствах, которые окружают нас. Наиболее распространёнными в настоящее время являются микроконтроллеры семейства MCS-51. Это семейство поддерживается рядом фирм - производителей микросхем. Не менее распространёнными в мире являются микроконтроллеры фирмы Motorola. Это такие семейства как HC05, HC07, HC11 и многие другие. Пожалуй, не менее популярными микроконтроллерами являются микроконтроллеры семейства AVR фирмы Atmel. Если представить все типы современных микроконтроллеров (МК), то можно поразиться огромным количеством разнообразных приборов этого класса, доступных потребителю. Однако все эти приборы можно разделить на следующие основные типы: встраиваемые (embedded) 8-разрядные МК; 16 - и 32-разрядные МК; цифровые сигнальные процессоры. Промышленностью выпускаются очень широкая номенклатура встраиваемых МК. В них все необходимые ресурсы (память, устройства ввода-вывода и т.д.) располагаются на одном кристалле с процессорным ядром [3]. Если подать питание и тактовые импульсы на соответствующие входы МК, то можно сказать, что он как бы "оживет" и с ним можно будет работать. Обычно МК содержат значительное число вспомогательных устройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количества дополнительных компонентов. В состав этих МК входят:
Схема начального запуска процессора (Reset);
Генератор тактовых импульсов;
Центральный процессор;
Память программ (E (E) PROM) и программный интерфейс;
Средства ввода/вывода данных;
Таймеры, фиксирующие число командных циклов.
Общая структура МК показана на (Рис.1.1.) Эта структура дает представление о том, как МК связывается с внешним миром. Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:
Встроенный монитор/отладчик программ;
Внутренние средства программирования памяти программ (ROM);
Обработка прерываний от различных источников;
Аналоговый ввод/вывод;
Последовательный ввод/вывод (синхронный и асинхронный);
Параллельный ввод/вывод (включая интерфейс с компьютером);
Подключение внешней памяти (микропроцессорный режим).
Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.
Рис.1.1 Структура микроконтроллера.
Некоторые МК (особенно 16 - и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода. Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт). Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.
Цифровые сигнальные процессоры (DSP) - относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.
Задание
Разработать программу на языке ASSEMBLER для микропроцессорного устройства, выполнить отладку в симуляторе ProW32. Алгоритм работы: компьютер микроконтроллер программа
D1 и D2 не замкнуты - на каждый импульс по входу Р 3.5 идет посегментное включение цифр от 0 до 5 на первом индикаторе, при этом с поступлением каждого импульса включается светодиод, D1-замкнут - идет посегментное включение букв с A по F на 2 индикаторе, D2- замкнут зажигание цифр от 5 до 9 на первом индикаторе с интервалом 2 сек. D3 -замкнут - прерывание, зажигание цифр от 0 до 9 с интервалом 1 сек на втором индикаторе.
Алгоритм работы
Рис.1. Алгоритм основной программы
Рис.2. Алгоритм прерываний
На рис.3 показано устройство и внутренняя схема индикатора с общим анодом.
Рис. 3. Устройство семисегментного индикатора с общим анодом
В качестве примера индикаторов с общим анодом можно привести такие, как АЛC 333, АЛС 324, АЛС 335 (с буквами Б,Г). Индикаторы с общим катодом - АЛС 333, АЛС 324, АЛС 335 (с буквами А,В).
Если подавать сигналы на соответствующие светодиоды, можно получать изображение нужных символов. Так, например, чтобы получить цифру 0, необходимо пропустить ток через светодиоды а, b, c, d, e, f. Таким образом, каждой цифре и букве соответствует свой код индикатора.
Рассмотрим коды цифр и букв для семисегментного индикатора, представленные в табл. 1.
Таблица 1
Цифра |
H |
g |
f |
E |
D |
c |
b |
a |
Код |
|
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
3FH |
|
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
06H |
|
2 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
5BH |
|
3 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
4FH |
|
4 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
66H |
|
5 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
6DH |
|
6 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
7DH |
|
7 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
07H |
|
8 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
7FH |
|
9 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
6FH |
|
A |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
77H |
|
B |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
7CH |
|
C |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
39H |
|
D |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
5EH |
|
E |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
79H |
|
F |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
71H |
Программа
ORG 0000H;Основная программа
JMP INIT
ORG 0003H
INIT:
MOV IE,#01H; Настраиваем таймер и счетчик импульсов - T/C0-счетчик, T/C1- таймер
MOV TMOD,#00010101B
SETB TR0; Включение счетчика
SETB TR1; Включение таймера
SETB EA
START:
MOV TL0, #00H; Очистка TL0
D1 и D2 не замкнуты - на каждый импульс по входу Р 3.5 идет посегментное включение цифр от 0 до 5 на первом индикаторе, при этом с поступлением каждого импульса включается светодиод
TABLE: DB 0EEH, 60H, 2FH, 6DH, 0E1H, 0CDH; коды цифр для ЖК дисплея 0,1,2,3,4,5,6,7,8,9.
CLR P2.7, DB; посегментное включение цифр
MOV R5, #1
MOV P2.3, #0FH; включаем светодиод
WAIT_D: JNB TF1, WAIT_D
DJNZ R5,WAIT_D
MOV R5,#5; Загрузка счетчика для отсчета 5
JMP START; Возврат в основной цикл
RET
DAT0:;Обработчик прерывания
JB P1.1, PR_D1;если D1 замкнут
JB P1.4, PR_D2;если D2 замкнут
JB P3.2, PR_D3;если D3 замкнут
JMP DAT0_END;иначе - выход
PR_D1: ; D1 замкнут - идет посегментное включение букв с A по F на 2 индикаторе
WAIT_OV1:
TABLE: DB 77H, 7CH, 39H, 5EH, 79H, 71H
CLR P2.0, DB ; посегментное включение букв
MOV R5, #1
WAIT_D: JNB TF1, WAIT_D
DJNZ R5,WAIT_D
MOV R5,#6; Загрузка счетчика для отсчета 6
JMP END_PULSE1
END_PULSE1: JNB TF1, WAIT_OV1
JMP DAT0_END
PR_D2:
MOV R5, #2; D2 -замкнут - зажигание цифр от 5 до 9 на первом индикаторе с интервалом 2 сек.
TABLE: DB,0CDH,0CFH,68H,0EFH, 0EDH;
MOV P2.7, DB; включаем цифры
WAIT_D21: JNB TF1, WAIT_D21
DJNZ R5,WAIT_D21
MOV R5,#2; Загрузка счетчика для отсчета 5 секунд
JMP DAT0_END
PR_D3: ;D3 замкнут - прерывание - зажигание цифр от 0 до 9 с интервалом 1 сек на втором индикаторе
WAIT_OV1:
CLR P2.0,#0FH; посегментное включение цифр
MOV R5, #1
WAIT_D: JNB TF1, WAIT_D
DJNZ R5,WAIT_D
MOV R5,#1; Загрузка счетчика для отсчета 1с
END_PULSE1: JNB TF1, WAIT_OV1
JMP DAT0_END
DAT0_END:
RETI
Заключение
Трудно представить сферу современной деятельности человека, где не использовались бы данные устройства. Телефоны, телевизоры, жидкокристаллические мониторы, кондиционеры, холодильники, компьютеры и многое другое не могут работать без микроконтроллеров. Микроконтроллеры намного лучше своих предшественников: ламп и полупроводников. Они намного меньших размеров и обладают большей производительностью.
В процессе выполнения работы был рассмотрен практический пример программирования микроконтроллера.
Применение микроконтроллеров в технике очень актуально. Так как они существенно ускоряют работу поставленной им задачи. Отсюда и важность их изучения и применения в устройствах.
В ходе работы была разработана программу на языке ASSEMBLER для микропроцессорного устройства, составлены алгоритмы программы, выполнена отладка в симуляторе ProW32.
Список литературы
1. К.А. Харахнин. Учебное пособие " Основы проектирования микропроцессорных устройств автоматики на однокристальных микроконтроллерах". - Череповец, 2007год.
2. А.В. Фрунзе - Микроконтроллеры 2002 год
Размещено на Allbest.ru
...Подобные документы
Си - стандартизированный процедурный язык программирования. Алгоритм и программа на языке Си для формирования двух матриц с определенной размерностью и значением элементов. Применение матриц в математике. Исходный текст программы и результаты выполнения.
реферат [1,4 M], добавлен 23.12.2010Описание языка программирования Java: общие характеристики, главные свойства, краткий обзор. Надежность и безопасность, производительность и базовая система программы. Разработка программы поиска по словарю, алгоритм её работы. Общий вид кода программы.
курсовая работа [20,3 K], добавлен 28.10.2012Методика разработки и листинг программы для управления динамиком системного блока, обеспечения установки частоты и длительности формируемых сигналов. Алгоритм и этапы работы проектируемого приложения, анализ полученных результатов. Пример его работы.
лабораторная работа [79,0 K], добавлен 17.12.2015Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.
курсовая работа [879,8 K], добавлен 11.02.2016Микроконтроллер — компьютер на микросхеме, предназначенный для управления электронными устройствами. Структурная схема типичного современного микроконтроллера. Архитектурная особенность построения портов ввода/вывода. Принципиальная схема устройства.
курсовая работа [2,1 M], добавлен 26.11.2013Исследование общих принципов программирования на языке Assembler для 32-х разрядных и 64-х разрядных процессоров. Изучение основных отличий архитектур i686 и amd64. Работа со стеком. Передача параметров в функции. Смена способа адресации внутри программы.
контрольная работа [118,2 K], добавлен 10.02.2015Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.
отчет по практике [83,8 K], добавлен 08.06.2010Разработка на программируемой логической интегральной микросхеме арифметико-логического устройства для выполнения операций над числами. Описание его функционирования. Коды команд АЛУ. Реализация действия RS триггера. Структура, тело и работа программы.
курсовая работа [697,1 K], добавлен 16.12.2014Структурная схема микроконтроллера, процесс разработки принципиальной схемы и программного обеспечения. Конфигурирование регистров аналого-цифрового преобразователя. Код программы на языке Assembler, конфигурирование регистров внешних прерываний.
курсовая работа [267,5 K], добавлен 08.06.2019Программирование логических игр с помощью подходов СИИ. Методы работы с Windows Forms в языке С#, алгоритм поиска в пространстве состояний. Формализация дерева состояний. Описание использованных алгоритмов. Иерархическая схема и блок-схемы программы.
курсовая работа [1,7 M], добавлен 01.12.2015Создание программы для вычисления значения функции на основе определённой формулы. Уточнение структуры входных и выходных данных и определение ассемблерного формата их представления. Разработка алгоритмов для реализации работы программного обеспечения.
курсовая работа [240,6 K], добавлен 17.06.2013Разработка алгоритмов методом пошаговой детализации. Типы данных и операции в Turbo-Pascal. Организация работы с подпрограммами. Составление алгоритмов и программ задач с использованием конечных сумм. Организация работы с динамическими переменными.
учебное пособие [1,4 M], добавлен 26.03.2014Язык программирования как система обозначений, применяемая в описании алгоритмов для ЭВМ. Разработка программы на языке программирования Бейсик. Освоение приемов работы с электронными таблицами MS Excel. Создание базы данных с помощью СУБД MS Access.
контрольная работа [2,6 M], добавлен 15.02.2010Разработка программы для работы с последовательностью прописных латинских букв. Алгоритм программы, результаты ее работы и вывод о работоспособности. Поиск количества вхождений элементов одной строки в другую. Тестирование программы, ее результаты.
лабораторная работа [858,0 K], добавлен 23.11.2014Описание микроконтроллера и периферийных устройств. Распределение битов регистра. Выбор элементной базы. Основные части и алгоритм работы основной программы. Архитектура микроконтроллера AduC812 и построение на его основе бортового компьютера автомобиля.
курсовая работа [210,2 K], добавлен 23.12.2012Разработка компаратора аналоговых сигналов. Устройство реализовано на однокристальном микроконтроллере типа PIC16C71. Технические характеристики спроектированного устройства. Программа для управления МК на языке Assembler, отлажена в среде MPLAB.
курсовая работа [765,2 K], добавлен 06.01.2009Выбор элементной базы. Разработка системы управления отопительного котла на основе семейства восьмибитных микроконтроллеров фирмы Atmel с архитектурой AVR на языке Assembler. Усилитель сигнала датчика температур. Схема подключения шагового двигателя.
курсовая работа [2,5 M], добавлен 26.11.2012Разработка программы на языке Assembler, отсчитывающую время от заданного значения до 0. Осуществление ввода с помощью стандартной шестнадцатикнопочной терминальной клавиатуры, подключаемой к параллельному порту (P1). Логика построения программы.
курсовая работа [188,8 K], добавлен 15.08.2009Разработка алгоритма и программы на языке Assembler для подсчёта функции. Возможность ввода данных в шестнадцатеричной системе счисления и формы представления чисел при выводе. Использование в программе набора команд арифметического сопроцессора.
курсовая работа [195,0 K], добавлен 04.05.2015Характеристика этапов решения задач на электронных вычислительных системах. Разработка алгоритма и основы программирования. Язык Ассемблера, предназначенный для представления в удобочитаемой символической форме программ, записанных на машинном языке.
контрольная работа [60,5 K], добавлен 06.02.2011