- •1 Ответы на контрольные вопросы заданий и их краткое содержание
- •Тема 1.1. Что такое микроконтроллер.
- •Тема 1.2.Схемотехника современных микроконтроллеров
- •Тема 1.3.Обзор языков программирования для микроконтроллеров
- •Тема 1.4.Среды программирования
- •Тема 1.5. Отладка и запуск программы для мк
- •Тема 2.1.Виды команд в процессоре. Ортогональная архитектура.
- •Тема 2.2.Адресное пространство мк msp430
- •Тема 2.3. Внутренняя структура mk msp430
- •Тема 3.1.Битовые операции
- •Тема 3.2. Аналогово-цифровой преобразователь
- •2 Описание выполнения учебного проекта
- •Программная часть
- •3 Результат выполнения учебного проекта
Тема 1.2.Схемотехника современных микроконтроллеров
Рисунок 1.4.Корпус ДИП24
Регистр PxREN А этот регистр отвечает за включение/отключение подтяжки вверх/вниз.
Код, переключающий порт Р2.1 из низкого состояния в высокое и наоборот.
#include "io430.h"
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
// Выводы P1.0 и P1.6 работают в качестве выходов
P2DIR = BIT5 | BIT0;
// Обнуляем значение регистра P1OUT и все светодиодики гаснут
P2OUT = 0x00;
// Как видно из схемы кнопка у нас замыкает вывод на землю,
// поэтому активируем для вывода P1.3 подтяжку вверх
P2REN |= BIT3;
P2OUT |= BIT3;
while(1)
{
// Проверяем состояние кнопки
if ((P2IN & BIT3) == 0)
{
// Зажигаем зеленый, гасим красный, если нажата
P2OUT |= BIT6;
P2OUT &= ~BIT0;
}
else
{
// Не нажата - гасим зеленый, зажигаем красный
P2OUT |= BIT0;
P2OUT &= ~BIT5;
}
}
return 0;
}
Тема 1.3.Обзор языков программирования для микроконтроллеров
Директивы препроцессора ассемблера:
BYTE |
Зарезервировать байт под переменную |
|
CSEG |
Сегмент кодов |
|
DB |
Задать постоянным(и) байт(ы) в памяти |
|
DEF |
Задать символическое имя регистру |
|
DEVICE |
Задать для какого типа микроконтроллера компилировать |
|
DSEG |
Сегмент данных |
|
|
|
|
DW |
Задать постоянное(ые) слово(а) в памяти |
|
|
|
|
EQU |
Установите символ равный выражению |
|
|
|
|
ESEG |
Сегмент EEPROM |
|
|
|
|
EXIT |
Выход из файла |
|
|
|
|
INCLUDE |
Включить исходный код из другого файла |
|
|
|
|
LIST |
Включить генерацию .lst - файла |
|
|
|
|
NOLIST |
Выключить генерацию .lst - файла |
|
|
|
|
ORG |
Начальный адрес программы |
|
|
|
|
SET |
Установите символ равный выражению |
|
CSEG - Code segment. Директива CSEG указывает на начало сегмента кодов. Ассемблируемый файл может иметь несколько кодовых сегментов, которые будут объединены в один при ассемблировании.
DSEG - Data Segment. Директива DSEG указывает на начало сегмента данных. Ассемблируемый файл может содержать несколько сегментов данных, которые потом будут собраны в один при ассемблировании. Обычно сегмент данных состоит лишь из директив BYTE и меток.
ESEG - EEPROM Segment. Директива ESEG указывает на начало сегмента EEPROM памяти. Ассемблируемый файл может содержать несколько EEPROM сегментов, которые будут собраны в один сегмент при ассемблировании. Обычно сегмент EEPROM состоит из DB и DW директив (и меток). Сегмент EEPROM памяти имеет свой собственный счетчик. Директива ORG может использоваться для размещения переменных в нужной области EEPROM.
ORG - Установить адрес начала программы. Директива ORG присваивает значения локальным счетчикам. Используется только совместно с директивами .CSEG, .DSEG, .ESEG.
ORG - Установить адрес начала программы. Директива ORG присваивает значения локальным счетчикам. Используется только совместно с директивами .CSEG, .DSEG, .ESEG.
DW – Определить слово(а) в программной памяти или в EEPROM. Директива DW резервирует ресурсы памяти в программной памяти или в EEPROM. Директиве должна предшествовать метка. DW задает список выражений, и должна содержать по крайней мере одно выражение. Размещать директиву следует в сегменте кодов или в EEPROM сегменте.
DEF – Присвоить имя регистру. Директива DEF позволяет присвоить символическое имя регистру. Регистр может иметь несколько символических имен.
EQU – Присвоить имя выражению. Директива EQU присваивает значение метке. Эта метка может быть использована в других выражениях. Значение этой метки нельзя изменить или переопределить.
INCLUDE –вставить другой файл. Директива INCLUDE говорит Ассемблеру начать читать из другого файла. Ассемблер будет ассемблировать этот файл до конца файла или до директивы EXIT. Включаемый файл может сам включать директивы INCLUDE.
EXIT – выйти из файла. Директива EXIT позволяет ассемблеру остановить ассемблирование текущего файла. Обычно ассемблер работает до конца файла. Если он встретит директиву EXIT, то продолжит ассемблировать со строки, следующей за директивой INCLUDE.
DEVICE - Указать для какого микроконтроллера ассемблировать. Директива позволяет пользователю сообщить ассемблеру, для какого типа устройства пишется программа. Если ассемблер встретит команду, которая не поддерживается указанным типом микроконтроллера, то будет выдано сообщение. Также сообщение появится в случае, если размер программы превысит объем имеющейся в этом устройстве памяти.
Код, записывающий значение переменной а в ячейку памяти 0х000EB
Пример:
.DSEG ; Начало сегмента данных
vartab: .BYTE 4 ; Резервируется 4 байта в СОЗУ
.CSEG ; Начало сегмента кодов
const: .DW 2 ; Записать 0x0002 в программной памяти
mov r1,r0 ; Что-то делать
Sub Price()
Application.Workbooks.Item("050407Прайсы Excel.xls").Worksheets("Прайс").Activate
Dim code As String
Range("P28").Activate
For i = 1 To 270
Application.Workbooks.Item("050407Прайсы Excel.xls").Worksheets("Прайс").Activate
Range("P28").Select
ActiveCell.Cells(i).Activate
'r = ActiveCell.Cells.Address 'передача в переменную r адреса ячейки для дальнейшей записи
code = ActiveCell.Cells.Value
Application.Workbooks.Item("Остаток на 090407_091858.xls").Worksheets("Остатки товаров").Activate
'Cells.Find("code").Activate
Debug.Print code
Next i
End Sub
Processing дает возможность быстро и легко создавать мультимедиа приложения (в терминологии processing — скетчи). Под словом мультимедиа я подразумеваю средства языка, которые позволяют разрабатывать графику, анимацию, разнообразную визуализацию, интерактивные приложения…
Processing — это подязык программирования, основанный на java с простым и понятным си-подобным синтаксисом.
Скетч, выводящий на экран несколько различных окружностей:
void setup() {
size(400, 400);
stroke(255);
background(192, 64, 0);
}
void draw() {
ellipse(WIDTH/2, HEIGHT/2, 50, 50);
}
Grace (Graphical Peripheral Configuration Tool) — это надстройка над фирменной средой для программирования Code Composer Studio (CCS), которая в свою очередь создана на основе Eclipse. CSS с ограничением размера прошивки на 16Кб можно скачать бесплатно.
