ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.01.2026

Просмотров: 179

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

1.2 Система команд

В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISC и RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения Complex Instruction Set Computer. Аналогично термин RISC означает сокращенную систему команд и происходит от английского Reduce Instruction Set Computer. Систему команд МК 8051 можно отнести к типу CISC. Однако, не смотря на широкую распространенность этих понятий, необходимо признать, что сами названия не отражают главного различия между системами команд CISC и RISC. Основная идея RISC архитектуры - это тщательный подбор таких комбинаций кодов операций, которые можно было бы выполнить за один такт тактового генератора. Основной выигрыш от такого подхода - резкое упрощение аппаратной реализации ЦП и возможность значительно повысить его производительность.

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

Однако в настоящее время грань между CISC и RISC архитектурой стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций, что соответствует типу CISC. Однако большинство из них выполняется за один такт, что является признаком RISC архитектуры. Сегодня принято считать, что признаком RISC архитектуры является выполнение команд за один такт тактового генератора. Число команд само по себе значения уже не имеет.

    1. Типы памяти мк.

Можно выделить три основных вида памяти, используемой в МК:

а) память программ;

б) память данных;

в) регистры МК.

Память программ представляет собой постоянную память, предназначенную для хранения программного кода и констант. Эта память не изменяет содержимого в процессе выполнения программы. Память данных предназначена для хранения переменных в ходе выполнения программы. Регистры МК - этот вид памяти включает внутренние регистры процессора и регистры, которые служат для управления периферийными устройствами.

Для хранения программ обычно служит один из видов постоянной памяти: ROM (масочные ПЗУ), PROM (однократно программируемые ПЗУ), EPROM (электрически программируемые ПЗУ с ультрафиолетовым стиранием) или EEPROM (ПЗУ с электрической записью и стиранием, к этому виду также относятся современные микросхемы Flash-памяти). Все эти виды памяти являются энергонезависимыми - это означает, что содержимое памяти сохраняется после выключения питания МК.


Многократно программируемые ПЗУ - EPROM и EEPROM (Electrically Erasable Programmable Memory) подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением (выпускаются в корпусах с окном), и МК с электрически перепрограммируемой памятью, соответственно.

В настоящее время протоколы программирования современной EEPROM памяти позволяют выполнять программирование МК непосредственно в составе системы, где он работает. Такой способ программирования получил название - ISP (In System Programming). И теперь можно периодически обновлять программное обеспечение МК без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе МК или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.

Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способности стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляется целыми блоками.

ОЗУ (RAM) - оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.


2 Arduino

Arduino- аппаратная вычислительная платформа, основными компонентами которой являются простая плата ввода-вывода и среда разработки на языке Processing/Wiring. Arduino может использоваться как для создания автономных интерактивных объектов, так и подключаться к программному обеспечению, выполняемому на компьютере (например, Adobe Flash, Processing, Max (англ.), Pure Data, SuperCollider). Рассылаемые в настоящее время версии могут быть заказаны уже распаянными. Информация об устройстве платы (рисунок печатной платы) находится в открытом доступе и может быть использована теми, кто предпочитает собирать платы самостоятельно. Микроконтроллеры ATmega328 дёшевы и стоят около 10$.

Проект Arduino был удостоен почётного упоминания при вручении призов Prix Ars Electronica 2006 в категории Digital Communities.

2.1 Аппаратная часть

Плата Arduino состоит из микроконтроллера Atmel AVR (ATmega328P и ATmega168 в новых версиях и ATmega8 в старых), а также элементов обвязки для программирования и интеграции с другими схемами. На многих платах присутствует линейный стабилизатор напряжения +5В или +3,3В. Тактирование осуществляется на частоте 16 или 8 МГц кварцевым резонатором (в некоторых версиях керамическим резонатором[4]). В микроконтроллер предварительно прошивается загрузчик BootLoader, поэтому внешний программатор не нужен.

На концептуальном уровне все платы программируются через RS-232 (последовательное соединение), но реализация этого способа отличается от версии к версии. Плата Serial Arduino содержит простую инвертирующую схему для конвертирования уровней сигналов RS-232 в уровни ТТЛ, и наоборот. Текущие рассылаемые платы, например, Diecimila, программируются через USB, что осуществляется благодаря микросхеме конвертера USB-to-Serial FTDI FT232R. В версии платформы Arduino Uno в качестве конвертера используется микроконтроллер Atmega8 в SMD-корпусе. Данное решение позволяет программировать конвертер так, чтобы платформа сразу определялась как мышь, джойстик или иное устройство по усмотрению разработчика со всеми необходимыми дополнительными сигналами управления. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется подключение отдельной платы USB-to-Serial или кабеля.

Платы Arduino позволяют использовать большую часть I/O выводов микроконтроллера во внешних схемах. Например, в плате Diecimila доступно 14 цифровых входов/выходов, 6 из которых могут выдавать ШИМ сигнал, и 6 аналоговых входов. Эти сигналы доступны на плате через контактные площадки или штыревые разъемы. Также доступны несколько видов внешних плат расширения, называемых «англ. shields» (дословно: «щиты»), которые присоединяются к плате Arduino через штыревые разъёмы.


2.2 Программное обеспечение

Интегрированная среда разработки Arduino — это кроссплатформенное приложение на Java, включающее в себя редактор кода, компилятор и модуль передачи прошивки в плату.

Среда разработки основана на языке программирования Processing и спроектирована для программирования новичками, не знакомыми близко с разработкой программного обеспечения. Язык программирования аналогичен используемому в проекте Wiring[5]. Строго говоря, это C++, дополненный некоторыми библиотеками. Программы обрабатываются с помощью препроцессора, а затем компилируется с помощью AVR-GCC.

Существует перевод документации по Arduino на русский язык.


3 Переключатель светодиодов

 В схеме имеется два светодиода и две кнопки, а также кнопка сброса. Задача устройства — изменять состояние светодиодов при нажатии и отпускании кнопок. Проект имеет такое название потому, что вводит вас в мир микроконтроллеров tinyAVR. Данная схема собрана на микроконтроллере ATtiny13, который питается от двух батареек АА-типа.

 

Рисунок 1- Принципиальная схема

Рассмотрим элементы схемы. Схема питается от двух щелочных батареек размера АА. Как упоминалось ранее, такие батареи имеют номинальное напряжение на выводах 1,5 В. Две батареи дают напряжение 3 В. Рабочее напряжение Tiny13V составляет от 1,8 до 5,5 В, так что 3 В вполне подходит. По мере разряда батарей напряжение будет падать, но схема будет продолжать работать до тех пор, пока напряжение питания не снизится до 1,8 В. Светодиоды видимого света (в отличие от инфракрасных) имеют определенное напряжение включения, которое зависит от цвета (1,8В— для красного и 3,5 В— для белого). Таким образом, для этого проекта следует выбрать красные светодиоды. На рисунке показана компоновка платы со стороны компонентов и со стороны пайки. Вы видите, что плата в основном разведена в слое пайки (со стороны компонентов есть только одна перемычка). Ее легко изготовить при помощи фрезерования, описанного в предыдущем разделе. Внешний вид собранного образца устройства показан на фото.

   Рисунок 2- Печатная плата Рисунок 3- Внешний вид прибора Код программы был написан таким образом, что левая кнопка включает левый светодиод, а правая — правый. То есть если правый светодиод выключен, и вы нажимаете и отпускаете правую кнопку, то она включает правый светодиод.

3.1 Программа

Код программы для микроконтроллера Tiny13V на языке С:

01.//Include Files

02.#include<avr/io.h>

03.#define F_CPU 128000UL

04.#include<util/delay.h>

05.int main(void)

06.{

07.DDRB |= 1<<2|1<<3;//сделать выходами

08.PORTB |= 1<<2|1<<3;

09.//Switch off the LEDs

10.DDRB &= ~(1<<0|1<<1);//Сделать входами

11.PORTB |= (1<<0|1<<1);//Включить подтяжку к + питания

12.while(1)

13.{

14.//Первое условие

15.if(!(PINB&(1<<0))) //Если нажата, то...