8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

Рефераты по информатике и программированию » 8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

Южно-Уральский государственный университет

Заочный инженерно - экономический факультет

Контрольная (курсовая) работа №3

По Информатике

Выполнил студент- заочник 2го курса

Шифр – ЭПА-04-588

Группа – 247

«____»___________2009г. «____»___________2009г.

Срок предоставления работы по графику Дата отправки работы

№_____________ по журналу «____»___________2009г.

___________________ Хусаинов Р.З.

отметка о зачете работы

Преподаватель

____________________

Подпись преподавателя

«____»_____________2009г.


1. Построить два графика в одной координатной сетке: функция f(x)=Sin(x)+Sin(3x)/3 и F(x)=Sin(x)+Sin(3x)/3+Sin(5x)/5+Sin(7x)/7. Диапазон изменения переменной х Є[0;6.28]. На графике вывести обозначение масштабов переменных вывести название графика.

Программа:

/* Программа построения графиков функции*/

/* F(x)=Sin(x)+Sin(3x)/3+Sin(5x)/5+Sin(7x)/7*/

/* и f(x)=Sin(x)+Sin(3x)/3*/

#include <conio.h>

#include <graphics.h>

#include <math.h>

void main()

{

/* Инициализация графического режима и переменных*/

int i a bf=220 bF=220;

float x db;

double dx;

int dr=VGA mode=VGAHI;

initgraph(&dr &mode "c:\TC\BGI");

/*initgraph (&dr &mode "G:\lang\tc\bgi");*/

/* Прорисовкаосей*/

setbkcolor(BLACK); setlinestyle(0 0 2);

line (20 220 640 220); /*X*/

moveto (630 218);lineto(640 220);lineto(630 222);lineto(630 218);

line (20 0 20 440); /*Y*/

moveto (20 0);lineto(18 10);lineto(22 10);lineto(20 0);

/*Разметкаосей*/

setcolor (WHITE);

for(i=20;i<440;i=i+20)

{outtextxy (20 i-3 "-");}

outtextxy (30 420 "-1");

outtextxy (30 20 "1");

outtextxy (32 2 "Y");

outtextxy (630 205 "X");

/* Названиеграфика*/

setfillstyle (1 GREEN);

bar (50 435 68 445);

settextstyle (6 0 1);

outtextxy (80 429 "-Функция f(x)=Sin(x)+Sin(3x)/3");

setfillstyle (1 RED);

bar (50 455 68 465);

outtextxy (80 450 "-Функция F(x)=Sin(x)+Sin(3x)/3+Sin(5x)/5+Sin(7x)/7");

/*Определение приращения (x) и координат по осям*/

dx=6.28/580; /*dx с шагом в 1 пиксель по х*/

db=(460-20)/2;

/*Построение графика Sin(x)+(Sin(3x))/3*/

moveto (20 220);

for (i=0;i<=580;i++)

{

setlinestyle(0 0 4);

setcolor(GREEN);

x=dx*i;

a=20+i;

bf=220-db*(sin(x)+(sin(3*x))/3);

lineto(a bf); /*Рисуем f(х)*/

moveto(a bF); /*Переходим к F(x)*/

/*Построение графика Sin(x)+(Sin(3x))/3+(Sin(5x))/5+(Sin(7x))/7*/

setcolor(RED);

bF=220-db*(sin(x)+(sin(3*x))/3+(sin(5*x))/5+(sin(7*x))/7);

lineto(a bF); /*Рисуем F(х)*/

moveto(a bf); /*Переходим к f(x)*/

/*Ставим метку по оси Х*/

if(i%(580/10)==0)

{

setcolor(WHITE);

outtextxy(a 217 "|");

moveto(a bf);

gotoxy(a/8+2 15);

printf ("%3.2f" x );

}

}

getch();

closegraph();

}


Пример исполнения:


2.Выполнить расчет определенного интеграла функцииf (x)=Sin(x)+(Sin(3x))/3 методом трапеции. Диапазон изменения переменной х=[0;6.28]. Построить график зависимости погрешности расчета интеграла от количества точек расчета N=20…150. Истинное значение рассчитывается с помощью формулы Ньютона-Лейбница.

Программа:

/*Программа построения графика зависимости погрешности расчета интеграла*/

/* функции f(x)=Sin(x)+(Sin(3x))/3 при х=[0;6.28] методом трапеции */

/* от количества точек расчета 'n'=20...150 */

#include <conio.h>

#include <math.h>

#include <graphics.h>

void main()

{

/* Инициализация графического режима и переменных*/

int i n nn nx=150-20 a a1 b b1;

float w da db k ny=4.45;

double st sl y x dx;

int dr=VGA mode=VGAHI;

initgraph(&dr &mode "c:\TC\BGI");

/*initgraph (&dr &mode "G:\lang\tc\bgi");*/

/* Прорисовкаосей*/

textcolor(7); setcolor(7); setbkcolor(BLACK); setlinestyle(0 0 2);

line (50 380 640 380); /*X*/

moveto (630 382);lineto(640 380);lineto(630 378);lineto(630 382);

line (50 0 50 380); /*Y*/

moveto (50 0);lineto(48 10);lineto(52 10);lineto(50 0);

/*Разметка осей*/

/*По оси 'Y'*/

for(i=380 k=0;i>=60;i=i-(380-60)/10 k+=ny/10)

{

outtextxy (45 i-3 "-");

gotoxy (1 i/16+1);

printf ("%3.2f" k);

}

/*Пооси 'X'*/

for(i=50 k=20;i<=570;i=i+(570-50)/13 k+=10)

{

outtextxy (i-3 380 "|");

gotoxy(i/8+1 25);

printf ("%3.0f" k);

}

outtextxy (62 8 "%");

outtextxy (630 360 "n");

/*Названиеграфика*/

settextstyle(6 0 2); setcolor(7);

outtextxy(10 420 "График зависимости погрешности расчета интеграла методом");

outtextxy(10 438 "трапеции функции f(x)=Sin(x)+(Sin(3x))/3 при х=[0;6.28]");

outtextxy(10 456 "от количества точек расчета.");

outtextxy(160 8 "Количество точек расчета?(20...150)-");

gotoxy(70 2); scanf("%d" &nn);

/*Определение приращения по осям*/

da=(570-50)/nx;

db=(380-60)/ny;

/*Расчет итеграла f(x)=Sin(x)+(Sin(3x))/3*/

for(n=20;n<=150;n++)

{

dx=6.28/n;

st=0;sl=0;

for(i=0;i<n;i++)

{

x=dx*i;

/*методомтрапеции*/

st+=(((sin(x)+(sin(3*x))/3)+(sin(x+dx)+(sin(3*(x+dx)))/3))/2)*dx;

/*методом Ньютона-Лейбница*/

y=sin(x)+(sin(3*x))/3;

y+=3*(sin(x+dx/3)+(sin(3*(x+dx/3)))/3);

y+=3*(sin(x+dx*2/3)+(sin(3*(x+dx*2/3)))/3);

y+=(sin(x+dx)+(sin(3*(x+dx)))/3);

sl+=y/8*dx;

}

/*Расчет погрешности*/

w=(sl-st)/sl*100;

if(n==nn)

{

setcolor(7);

outtextxy(160 24 "Погрешность");

gotoxy(56 3);

printf("- %6.4f%" w);

outtextxy(80 24*2 "Значение интеграла:");

outtextxy(160 24*3 "метод трапеции");

gotoxy(53 6);

printf("- %+20.18f" st);

outtextxy(160 24*4-8 "метод Ньютона-Лейбница");

gotoxy(53 7);

printf("- %+20.18f" sl);

}

/*Вывод в график*/

setlinestyle(0 1 1);setcolor(GREEN);

a=50+da*(n-20);

b=380-db*w;

if(n==20){a1=a;b1=b;}

else {line(a b a1 b1); a1=a; b1=b;}

if(n==nn)

{

setlinestyle(1 1 1);setcolor(7);

moveto(a b);lineto(a 380);moveto(a b);

lineto(50 b);moveto(a b);

}

}

getch();

closegraph();

}

Пример исполнения:

Алгоритм:

1. Высокопроизводительные 8-разрадные RISC микроконтроллеры семейства AT90S AT90SLS8535 и ATmega8535 фирмы AtmelCorporation: параметры архитектура система команд.

AT mega8535

AT mega8535L


8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

Общие сведения

Как и все микроконтроллеры AVR фирмы «Atmel» микроконтроллеры семейства Mega являются 8-разрядными микроконтроллерами предназначенными для встраиваемых приложений. Они изготавливаются по малопотребляющей КМОП-технологии которая в сочетании с усовершенствованной RISC - архитектурой позволяет достичь наилучшего соотношения быстродействие/энергопотребление. Контроллеры описываемого семейства являются наиболее развитыми представителями микроконтроллеров AVR.

Отличительные особенности

К числу особенностей микроконтроллеров AVR семейства Mega относятся:

• FLASH-память программ объемом 8 Кбайт (число цикле стирания/записи не менее 1000);

• оперативная память (статическое ОЗУ) объемом 512 байт;

• память данных на основе ЭСППЗУ (EEPROM) объем 512 байт (число циклов стирания/записи не мене 100000);

• возможность защиты от чтения и модификации памяти программ и данных;

• возможность программирования непосредственно в системе через последовательные интерфейсы SPI и JTAG;

• возможность самопрограммирования;

• возможность внутрисхемной отладки в соответствии со стандартом IEEE 1149.1 (JTAG);

• различные способы синхронизации: встроенный RC-генератор с внутренней или внешней времязадающей RC-цепочкой или с внешним резонатором (пьезокерамическим или кварцевым); внешний сигнал синхронизации;

• наличие нескольких режимов пониженного энергопотребления;

• наличие детектора снижения напряжения питания (brown-outdetector BOD);

• возможность программного снижения частоты тактового генератора.

Характеристики процессора

Подавляющее большинство основных характеристик процессора микроконтроллеров семейства Mega такие же что и у микроконтроллеров других семейств — Classic и Tiny:

• полностью статическая архитектура; минимальная тактовая частота равна нулю;

• АЛУ подключено непосредственно к регистрам общего назначения;

• многоуровневая система прерываний; поддержка очереди прерываний.

В то же время процессор микроконтроллеров семейства Mega имеет рядхарактеристик присущих именно этому семейству:

• 130 команд большинство команд выполняются за один машинный цикл;

• 17 внутренних+3 внешних источников прерываний;

• наличие программного стека во всех моделях семейства;

• наличие аппаратного умножителя.

Характеристики подсистемы ввода/вывода

Все характеристики подсистемы ввода/вывода микроконтроллеров семейства Mega такие же как и у микроконтроллеров других семейств:

• программное конфигурирование и выбор портов ввода/вывода;

• выводы могут быть запрограммированы как входные или как выходные независимо друг от друга;

• входные буферы с триггером Шмитта на всех выводах;

• возможность подключения ко всем входам внутренних подтяги­вающих резисторов (сопротивление резисторов составляет 35...120кОм).

Периферийные устройства

Микроконтроллеры семейства Megaимеют наиболее богатый набор периферийных устройств (ПУ). При этом в большинстве моделей имеются все ПУ которые вообще встречаются в составе микроконтроллеров AVR. Этими устройствами являются:

• 2а 8-разрядных таймера/счетчика (таймеры ТО и Т2

• 16-разрядный таймер/счетчик (таймер ТЗ);

• 4 генератора сигнала с ШИМ разрядностью 8 бит (один из режимов работы 8-разрядных таймеров/счетчиков ТО и Т2);

• аналоговый компаратор;

• многоканальный 10-разрядный АЦП как с несимметричными так и с дифференциальными входами;

• полнодуплексный универсальный синхронный/асинхронный приемопередатчик (USART);

• последовательный синхронный интерфейс SPI;

• последовательный двухпроводный интерфейс TWI (аналог интерфейса 12 С).

Архитектура ядра

Ядро микроконтроллеров AVR семейства Mega выполнено по усовершенствованной RISC-архитектуре (enhancedRISC). Арифметико-логическое устройство (АЛУ) выполняющее все вычисления подключено непосредственно к 32-м рабочим регистрам объединенным в регистровый файл. Благодаря этому АЛУ выполняет одну операцию (чтение содержимого регистров выполнение операции и запись результата обратно в регистровый файл) за один машинным цикл. Практически каждая из команд (за исключением команд у которых одним из операндов является 16-разрядный адрес) занимает одну ячейку памяти программ.

AT90S8535

AT90LS8535

8-разрядные КМОП RISC

микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

Отличительные особенности

• AVRRISC архитектура - архитектура высокой производительности и малого потребления

• 118 команд большинство которых выполняется за один машинный цикл

• 8 Кбайт Flash ПЗУ программ с возможностью внутрисистемного перепрограммирования и загрузки через SPIпоследовательный канал 1000 циклов стирание/запись

• 512 байтов ЭСППЗУ данных с возможностью внутрисистемного перепрограммирования и загрузки через SPIпоследовательный канал 100000 циклов стирание/запись

• 512 байтов встроенного СОЗУ

• 32 x 8 бит регистра общего назначения

• 32 программируемые линии ввода/вывода

• 8-канальный 10-разрядный аналого-цифровой преобразователь

• 16-разрядный и 32-разрядный формат команд

• Программируемый полный дуплексный UART

• Диапазон напряжений питания от 2 7 В до 6 0 В (AT90LS8535) и от 4 0 В до 6 0 В (AT90S8535)

• Полностью статический прибор - работает при тактовой частоте от 0 Гц до 8 МГц

(AT90S8535) и при тактовой частоте от 0 Гц до 4 МГц (AT90LS8535)

• Производительность до 8 MIPS при частоте 8 МГц

• Два 8-разрядных таймера/счетчика с отдельным прескалером и режимом сравнения

• 16-разрядный (с режимами сравнения и захвата) таймер/счетчик с отдельным прескалером

• Три ШИМ канала

• Внешние и внутренние источники сигналов прерывания

• Программируемый сторожевой таймер с собственным встроенным генератором

• Встроенный аналоговый компаратор

• Встроенные часы реального времени с собственным встроенным генератором и режимом счетчика

• Блокировка режима программирования

• Режимы энергосбережения: пассивный (idle) экономичный (powersave) и стоповый(powerdown)

• Встроенная схема сброса по подаче питания

• Промышленный (-40°C...85°C) и коммерческий (0°C...70°C) диапазоны температур

• 40-выводной корпус PDIP и 44-выводные PLCC и TQFP

Архитектура микроконтроллеров семейства Mega

Микроконтроллеры AVR семейства Mega являются 8-разрядными микроконтроллерами с RISC-архитектурой. Они имеют электрически стираемую память программ (FLASH) и данных (EEPROM) а также разнообразные периферийные устройства. Следует отметить что микро контроллеры семейства Mega имеют самый богатый набор периферийных устройств по сравнению с микроконтроллерами других семейств. Более того состав этих устройств от модели к модели практически не меняется (меняются только их функциональные возможности). К устройствам присутствующим не во всех моделях семейства относятся АЦП модуль двухпроводного интерфейса TW1 (TwoWireInterface аналог шины 12 С) а также модуль интерфейса JTAG. Структурная схема микроконтроллеров семейства Mega приведена на Рис.

Организация памяти

В микроконтроллерах AVR реализована Гарвардская архитектура в соответствии с которой разделены не только адресные пространства памяти программ и памяти данных но также и шины доступа к ним. Способы адресации и доступа к этим областям памяти также различны. Такая структура позволяет центральному процессору работать одновременно как с памятью программ так и с памятью данных что существенно ограничивает производительность. Каждая из областей памяти данных (ОЗУ и EEPROM) также расположена в своем адресном пространстве.

Память программ

Память программ предназначена для хранения команд управляющих функционированием микроконтроллера. Память программ также часто используется для хранения таблиц констант не меняющихся во время работы программы.

Как уже было сказано память программ представляет собой электрически стираемое ППЗУ (FLASH-ПЗУ). В связи с тем что длина всех команд кратна одному слову (16 бит) память программ имеет 16-разрядную организацию. Соответственно объем памяти микроконтроллеров семейства составляет 8К (8x1024) 16-разрядных слов. Логически память программ разделена на две неравные части — область прикладной программы и область загрузчика. В последней может располагаться специальная программа (загрузчик) позволяющая микроконтроллеру самостоятельно управлять загрузкой и выгрузкой прикладных программ. Если же возможность самопрограммирования микроконтроллера не используется прикладная программа может располагаться и в области загрузчика.

Для адресации памяти программ используется счетчик команд (PC — ProgramCounter). Размер счетчика команд составляет 12разрядов

По адресу $0000 памяти программ находится вектор сброса. После инициализации (сброса) микроконтроллера выполнение программы начинается с этого адреса (по этому адресу должна размещаться коман­да перехода к инициализационной части программы). Начиная с адреса $001 памяти программ располагается таблица векторов прерываний. Размер этой области 20 байт ($001…$014).

При возникновении прерывания после сохранения в стеке текущего значения счетчика команд происходит выполнение команды расположенной по адресу соответствующего вектора. Поэтому по этим адресам располагаются команды перехода к подпрограммам обработки прерываний. В качестве этих команд используются команды относительного перехода (RJMP.

Если прерывания в программе не используются либо таблица векторов прерываний располагается в области загрузчика то основная программа может начинаться непосредственно с адреса $0001.

Как известно память программ может использоваться не только для хранения кода программы но также и для хранения различных констант. Для пересылки байта из памяти программ в память данных имеется специальная команда — LPM.

Страницы: 1 2 3