Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Djangirov1 / Vfrc1

.doc
Скачиваний:
12
Добавлен:
15.02.2015
Размер:
441.86 Кб
Скачать

Тема: Знакомство с компилятором WinAVR, интегрированной средой разработки AVR Studio и программой-симулятором Proteus

Цель: Познакомиться с интерфейсом WinAVR, AVR Studio и Proteus

Порядок выполнения работы:

  1. Создать проект в программе WinAVR

  2. Загрузить для эмуляции проект, созданный в WinAVR в AVR Studio

  3. Создать и скомпилировать программу в AVR Studio

  4. Реализовать схему, приведённую в работе, в Proteus и проверить правильность работы программы

Задание 1: составить программу на языке С для контроллера Atmega16, осуществляющую бесконечное переключение светодиодов, подключённых к порту со временем задержки указанным в таблице.

Вариант 13, последовательно 2+3+4, 5+6+7 разряды с задержкой 300 мс, порт D

Код программы:

#include<avr/io.h>

#include<util/delay.h>

void Pause(double ms)

{

PORTD=0;

_delay_ms(ms);

}

void P(void)

{

PORTD=0b00011100;

_delay_ms(300);

Pause(300);

}

void D(void)

{

PORTD=0b11100000;

_delay_ms(300);

Pause(300);

}

int main(void)

{

DDRD=0xFF;

while(1)

{

P();D();

//Pause(300);

}

}

Пример работы программы:

Задание 2: реализовать на языке С для Atmega16 программу бесконечного вывода на светодиодную матрицу 8*8 символов с задержкой в 1 секунду :

M, W, v.

Код программы:

#include<avr/io.h>

#include<util/delay.h>

#include<stdio.h>

int i;

void SymM(void)

{

//буква М

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

{

PORTA=0b10111101;

PORTC=0b11111111;

_delay_ms(1);

PORTA=0b11011011;

PORTC=0b00000010;

_delay_ms(1);

PORTA=0b11100111;

PORTC=0b00000100;

_delay_ms(1);

}

}

void SymW(void)

{

//буква W

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

{

PORTA=0b10111101;

PORTC=0b11111111;

_delay_ms(1);

PORTA=0b11011011;

PORTC=0b01000000;

_delay_ms(1);

PORTA=0b11100111;

PORTC=0b00100000;

_delay_ms(1);

}

}

void Symv(void)

{

//буква v

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

{

PORTA=0b11100111;

PORTC=0b10000000;

_delay_ms(10);

PORTA=0b11011011;

PORTC=0b01110000;

_delay_ms(10);

}

}

void ClearScreen(void)

{

PORTA=0b11111111;

PORTC=0b00000000;

_delay_ms(200);

}

int main(void)

{

DDRA=0xFF;

DDRC=0xFF;

while(1)

{

SymM();

ClearScreen();

SymW();

ClearScreen();

Symv();

ClearScreen();

}

}

Пример работы программы:

Соседние файлы в папке Djangirov1