Смекни!
smekni.com

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

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

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

Контрольная (курсовая) работа №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:&bsol;TC&bsol;BGI");

/*initgraph (&dr,&mode,"G:&bsol;lang&bsol;tc&bsol;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:&bsol;TC&bsol;BGI");

/*initgraph (&dr,&mode,"G:&bsol;lang&bsol;tc&bsol;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 AT90S&bsol;LS8535 и 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-разрядный адрес) занимает одну ячейку памяти программ.