Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ Микроконтроллеры.doc
Скачиваний:
43
Добавлен:
20.11.2019
Размер:
3.79 Mб
Скачать

6.4 Примеры программирования на языке ассемблера для микроконтроллеров avr

При установке интегрированной среды разработки AVR Studio в папке Appnotes размещён ряд подпрограмм на языке ассемблера часто встречающихся при решении практических задач. Все исходные тексты приведенных программных фрагментов разработаны специалистами фирмы Atmel corp. и достаточно подробно откомментированы на английском языке. Перечень названий файлов с исходными текстами и их назначение приведены в приложении 4. Для углублённого изучения программирования для микроконтроллеров семейства AVR можно обратиться к руководящим техническим материалам (Application Notes) размещенным на сайте Atmel corp. (www.atmel.com).

Библиографический список

К разделу 1

    1. Кривченко И.В AVR - микроконтроллеры: очередной этап на пути развития/ "Компоненты и технологии" N3, М., 2002г. С 5 14.

1.2 AVR RISC Microcontroller Data Book. Atmel Corp. 1999

К разделу 2

2.1Микроконтроллер архитектуры AVR AT90S2313./ Пер. с англ. Ю. Андриенко. Atmel corp. 2002г.

К разделу 3

3.1 Справка по Ассемблеру для AVR / Пер. с англ Руслан Шимкевич, Atmel corp. 2000г

К разделу 4

4.1 Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel.-M.: ИП Радиософт, 2002 -176с.:ил

4. 2. Золотухо Р.Н. Аппаратно-программные средства поддержки разработок на основе микроконтроллеров AVR фирмы Atmel / Электронная версия: http://atmel.ru/Articles/Atmel20.htm#n1

К разделу 5

5.1 А. Редчук AVReAl -- программирование AVR через LPT ver1.23rev4/

Электронная версия: http://www.ln.com.ua/~real/avreal/index.html

Приложение 1

Основные параметры микроконтроллеров семейства avr

Таблица 1. Cемейство "tiny"

Наименование

Flash ROM

EEPROM

RAM

ISP (I), Self-Prog (S)

I/O (Pins)

UART

8/16-bit Timer

N-канальный ШИМ

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

N-канальный АЦП 10-bit

Сторожевой таймер

Количество инструкций

Vcc (V)

Тактовая частота, МГц

Тип корпуса

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

ATtiny11L*

1 KB

I****

6

1/-

+

+

90

2.7-5.5

0-2

DIP8, SOIC8

ATtiny11*

1 KB

I****

6

1/-

+

+

90

4.0-5.5

0-6

DIP8, SOIC8

ATtiny12V*

1 KB

64B

I

6

1/-

+

+

90

1.8-5.5

0-1

DIP8, SOIC8

ATtiny12L*

1 KB

64B

I

6

1/-

+

+

90

2.7-5.5

0-4

DIP8, SOIC8

ATtiny12*

1 KB

64B

I

6

1/-

+

+

90

4.0-5.5

0-8

DIP8, SOIC8

ATtiny13**

1 KB

64B

64B

I

6

1/-

2

+

+

120

1.8-5.5

0-24

DIP8, SOIC8

ATtiny15L

1 KB

64B

I

6

2/-

+

4

+

90

2.7-5.5

1,6

DIP8, SOIC8

ATtiny26L

2 KB

128B

128B

I

16

2/-

+

11

+

118

2.7-5.5

0-8

DIP20, SOIC20

ATtiny26

2 KB

128B

128B

I

16

2/-

+

11

+

118

4.5-5.5

0-16

DIP20, SOIC20

ATtiny28V

2 KB

20

1/-

+

+

90

1.8-5.5

0-1

DIP28, TQFP32

ATtiny28L

2 KB

20

1/-

+

+

90

2.7-5.5

0-4

DIP28, TQFP32

ATtiny2313**

2KB

128B

128B

I

18

1

1/1

2

+

+

120

1.8-5.5

0-16

DIP20, SOIC20, MLF32

Таблица 2. Cемейство "classic"

Наименование

Flash ROM

EEPROM

RAM

Дополнительная внешняя RAM

ISP (I), Self-Prog (S)

I/O (Pins)

UART

SPI

I2C

8/16-bit Timer

N-канальный ШИМ

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

N-канальный АЦП 10-bit

Внутренний RC-генератор

Сторожевой таймер

Апп. перемножитель

Количество инструкций

Vcc (V)

Тактовая частота, МГц

Тип корпуса

Дальнейшее развитие

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

AT90S1200*

1 KB

64B

I

15

1/-

+

+

+

89

2.7-6.0

0-12

DIP20, SOIC20, SSOP20

ATtiny2313

AT90S2313*

2 KB

128B

128B

I

15

1

1/1

+

+

118

2.7-6.0

0-10

DIP20, SOIC20

ATtiny2313

AT90LS2323

2 KB

128B

128B

I

3

1/-

+

118

2.7-6.0

0-4

DIP8, SOIC8

AT90S2323

2 KB

128B

128B

I

3

1/-

+

118

4.0-6.0

0-10

DIP8, SOIC8

AT90LS2343

2 KB

128B

128B

I

5

1/-

+

+

118

2.7-6.0

0-4

DIP8, SOIC8

AT90S2343

2 KB

128B

128B

I

5

1/-

+

+

118

4.0-6.0

0-10

DIP8, SOIC8

AT90LS4433*

4 KB

256B

128B

I

20

1

1

1/1

+

6

+

118

2.7-6.0

0-4

DIP28, TQFP32

ATmega8

AT90S4433*

4 KB

256B

128B

I

20

1

1

1/1

+

6

+

118

4.0-6.0

0-8

DIP28, TQFP32

ATmega8

AT90S8515*

8 KB

512B

512B

до 64 КВ

I

32

1

1

1/1

+

+

118

2.7-6.0

0-8

DIP40, PLCC44, TQFP44

ATmega8515

AT90LS8535*

8 KB

512B

512B

I

32

1

1

+

2/1

+

8

+

118

2.7-6.0

0-4

DIP40, PLCC44, TQFP44

ATmega8535

AT90S8535*

8 KB

512B

512B

I

32

1

1

+

2/1

+

8

+

118

4.0-6.0

0-8

DIP40, PLCC44, TQFP44

ATmega8535

Таблица 3. Cемейство "mega"

Наименование

Flash ROM

EEPROM

RAM

Дополнительная внешняя RAM

ISP (I), Self-Prog (S)

I/O (Pins)

UART

SPI

I2C

8/16-bit Timer

N-канальный ШИМ

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

N-канальный АЦП 10-bit

Сторожевой таймер

Апп. перемножитель

Количество инструкций

Vcc (V)

Тактовая частота, МГц

Тип корпуса

Дальнейшее развитие

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

Atmega48***

4 KB

256

512B

I, S

23

1

2

+

2/1

6

+

8

+

+

130

1.8-5.5

0-16

PDIP28, TQFP32, MLF32

ATmega8L

8 KB

512B

1КB

I, S

23

1

1

+

2/1

3

+

6/8

+

+

130

2.7-5.5

0-8

DIP28, TQFP32, MLF32

ATmega8

8 KB

512B

1КB

I, S

23

1

1

+

2/1

3

+

6/8

+

+

130

4.0-5.5

0-16

DIP28, TQFP32, MLF32

ATmega88***

8 KB

512

1КB

I, S

23

1

2

+

2/1

6

+

8

+

+

130

1.8-5.5

0-16

PDIP28, TQFP32, MLF32

ATmega8515L

8 KB

512B

512B

до 64 KB

I, S

35

1

1

1/1

3

+

+

+

130

2.7-5.5

0-8

PDIP40, TQFP44, PLCC44, MLF44

ATmega8515

8 KB

512B

512B

до 64 KB

I, S

35

1

1

1/1

3

+

+

+

130

4.5-5.5

0-16

PDIP40, TQFP44, PLCC44, MLF44

ATmega8535L

8 KB

512B

512B

I, S

35

1

1

+

2/1

4

+

8

+

+

130

2.7-5.5

0-8

PDIP40, TQFP44, PLCC44, MLF44

ATmega8535

8 KB

512B

512B

I, S

35

1

1

+

2/1

4

+

8

+

+

130

4.5-5.5

0-8

PDIP40, TQFP44, PLCC44, MLF44

ATmega16L

16 KB

512B

1КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

2.7-5.5

0-8

DIP40, TQFP44

ATmega16

16 KB

512B

1КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

4.0-5.5

0-16

DIP40, TQFP44

ATmega161L*

16 KB

512B

1КB

I, S

35

2

1

2/1

+

+

+

130

2.7-5.5

0-4

DIP40, TQFP44

ATmega162

ATmega161*

16 KB

512B

1КB

I, S

35

2

1

2/1

+

+

+

130

4.0-5.5

0-8

DIP40, TQFP44

ATmega162

ATmega162V

16 KB

512B

1КB

до 64 КВ

I, S

35

2

1

2/2

6

+

+

+

131

1.8-5.5

0-8

PDIP40, TQFP44, MLF44

ATmega162

16 KB

512B

1КB

до 64 КВ

I, S

35

2

1

2/2

6

+

+

+

131

2.7-5.5

0-16

PDIP40, TQFP44, MLF44

ATmega163L*

16 KB

512B

1КB

I, S

32

1

1

+

2/1

3

+

8

+

+

130

2.7-5.5

0-4

DIP40, TQFP44

ATmega16L

ATmega163*

16 KB

512B

1КB

I, S

32

1

1

+

2/1

3

+

8

+

+

130

4.0-5.5

0-8

DIP40, TQFP44

ATmega16

ATmega168***

16 KB

512

1КB

I, S

23

1

2

+

2/1

6

+

8

+

+

131

1.8-5.5

0-16

PDIP28, TQFP32, MLF32

ATmega169

16 KB

512B

1КB

I, S

54

1

1

+

2/1

4

+

8

+

+

130

1.8-5.5

0-16

TQFP64, MLF64

ATmega329***

32 KB

1КB

2КB

I, S

54

1

1

+

2/1

tba

+

8

+

+

130

1.8-5.5

0-16

TQFP64, MLF64

ATmega323L*

32 KB

1КB

2КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

2.7-5.5

0-4

DIP40, TQFP44

ATmega32L

ATmega323*

32 KB

1КB

2КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

4.0-5.5

0-8

DIP40, TQFP44

ATmega32

ATmega32L

32 KB

1КB

2КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

2.7-5.5

0-8

DIP40, TQFP44

ATmega32

32 KB

1КB

2КB

I, S

32

1

1

+

2/1

4

+

8

+

+

130

4.0-5.5

0-16

DIP40, TQFP44

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

ATmega64L

64 KB

2КB

4KB

до 64 КВ

I, S

53

2

1

+

2/2

8

+

8

+

+

130

2.7-5.5

0-8

TQFP64

ATmega64

64 KB

2КB

4KB

до 64 КВ

I, S

53

2

1

+

2/2

8

+

8

+

+

130

4.0-5.5

0-16

TQFP64

ATmega128L

128 KB

4KB

4KB

до 64 КВ

I, S

53

2

1

+

2/2

8

+

8

+

+

133

2.7-5.5

0-8

TQFP64, MLF64

ATmega128

128 KB

4KB

4KB

до 64 КВ

I, S

53

2

1

+

2/2

8

+

8

+

+

133

4.0-5.5

0-16

TQFP64, MLF64

ATmega128CAN 11***

128 KB

4KB

4KB

до 64 КВ

I, S

53

2

1

+

2/2

8

+

8

+

+

133

2.7-5.5

0-16

TQFP64, QFN64, CA-BGA64

ATmega256***

256 KB

4KB

8KB

до 64 КВ

I, S

53

2

1

+

2/2

tba

+

8

+

+

133

2.7-5.5

0-16

TQFP64, MLF64

* позиции, не рекомендованные для новых разработок

**доступны инженерные образцы, серийное производство планируется в начале 2004 года

*** позиции, запланированные к выпуску во 2-й половине 2004 года

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

Обозначения принятые в таб. 1-3

  • Flash ROM - объем энергонезависимой памяти программ (в килобайтах);

  • EEPROM - объем энергонезависимой памяти данных (в байтах);

  • RAM - объем статической памяти данных (в байтах);

  • External RAM - возможность подключения к микроконтроллеру дополнительной микросхемы внешней статической памяти данных (в килобайтах);

  • ISP - возможность программирования микроконтроллера в системе (на целевой плате) при основном напряжении питания;

  • SPM - функция самопрограммирования Flash ROM памяти микроконтроллера в системе без участия внешнего программатора;

  • JTAG - встроенный JTAG - интерфейс;

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

  • Timer(s) 8/16 bit - количество и разрядность таймеров/счетчиков;

  • USI - универсальный коммуникационный интерфейс;

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

  • ADC (channels) - количество каналов аналого-цифрового преобразования;

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

  • WDT - сторожевой таймер;

  • BDC - аппаратный программируемый блок защиты от сбоев при внезапном (в том числе и кратковременном) пропадании напряжения питания микроконтроллера;

  • UART - асинхронный последовательный приемопередатчик;

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

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

  • RTC - система реального времени;

  • PWM (channels) - количество независимых каналов широтно - импульсной модуляции;

  • Command Set - количество различных инструкций в системе команд микроконтроллера;

  • Vcc - диапазон рабочих напряжений питания (в Вольтах);

  • Clock - диапазон рабочих частот (в мегагерцах);

  • Packages - типы корпусов, в которые опрессовывается микроконтроллер, и общее количество выводов.