14567

Первый проект на AVR

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа №1 Первый проект на AVR Цель работы: написать для микроконтроллера программу мигания светодиодом на языке программирования С согласно варианта. В каждом языке программирования есть такое понятие Hello World. Это первая программа дающая общие понят...

Русский

2013-06-08

96.5 KB

8 чел.

Лабораторная работа №1

Первый проект на AVR

 Цель работы: написать для микроконтроллера программу мигания светодиодом на языке программирования С согласно варианта.

В каждом языке программирования есть такое понятие «Hello World». Это первая программа, дающая общие понятия о структуре программы. Для микроконтроллеров первая программа мигание светодиода. Это самое простое и наглядное.

Сначала нужно написать программу, используя CodeVision (C avr). Прошить виртуальный микроконтроллер (используя программы симуляторы).

Схема собирается в симуляторе Proteus. Чтобы прошить виртуальный микроконтроллер, нужно указать где у вас на жестком диске хранится файл прошивки.

Схема нашего устройства.

1. В пакете Proteus запускаем ISIS 7. Собираем схему, приведенную выше.

2. Запускаем CodeVisionAVR;

3. В окне мастера настроек, переходим на вкладку Ports и устанавливаем значение Bit 0 = Out. Создаем, сохраняем проект.

   

4. Вычищаем код:

#include <mega8.h>

 

void main(void)

{

PORTB=0x00;

DDRB=0x01;

 

while (1)

{

 

};

}

4. Теперь можно писать наш код.

#include <delay.h>

позволяет использовать временные задержки, например делать паузы между зажиганием светодиода

delay_ms(100);


delay_us(100);

позволяет сделать задержку в программе 100мс, позволяет сделать задержку в программе 100мкс

PORTB.0=1;


PORTB.0=0;

включает ножку 0 порта В (напряжение +5В),

включает ножку 0 порта В (напряжение 0В)

5. Добавляем в наш бесконечный цикл программы мигания светодиодом

#include <mega8.h>

#include <delay.h>

 

void main(void)

{

PORTB=0x00;

DDRB=0x01;

 

while (1)

{

  PORTB.0=1; //включаем 0 ножку порта В

  delay_ms(100); // ждем 100 мс

  PORTB.0=0; //выключаем 0 ножку

  delay_ms(100); //ждем 100 мс

  };

};

Варианты заданий

№ Варианта

Подключение светодиода к выводу МК

Микроконтроллер

Период моргания светодиода, мСек

1

PD0

ATmega16

150

2

PD1

ATmega32

200

3

PD2

ATmega64

250

4

PD3

ATmega128

300

5

PD4

ATmega16

350

6

PD5

ATmega32

400

7

PD6

ATmega64

450

8

PD7

ATmega128

500

9

PC0

ATmega16

550

10

PC1

ATmega32

600

11

PC2

ATmega64

650

12

PC3

ATmega128

700

13

PC4

ATmega16

750

14

PC5

ATmega32

800

15

PB5

ATmega64

850

 

Отчет должен содержать:

  1.  Схему устройства;
  2.  Код программы с пояснениями.