Описание алгоритма работы системы

При включении питания все параметры обнуляются. В начале программы опрашиваются выводы порта В микроконтроллера, после чего АЦП считывает введенную константу для задержки включения. Последовательно выполняются подпрограммы задержки включения и выбора светового эффекта и светодиода, а затем происходит возврат в начало программы с обнулением параметров.

Работа АЦП микроконтроллера ATtiny12 отличается от правил, установленных более развитых моделей семейства AVR. На первом этапе необходимо выполнить коммутацию аналогового входа АЦП с помощью встроенного аналогового мультиплексора. Для этого в разрядах 0-2 регистра ADMUX устанавливается соответствующая комбинация нулей и единиц. Кроме того, необходимо установить источник опорного напряжения с помощью разрядов 6и 7 регистра ADMUX.

На втором этапе с помощью разрядов 0-2 регистра ADCSR задается тактовая частота АЦП путем деления тактовой частоты микроконтроллера. Затем разрешается работа АЦП, выбирается режим его работы.

(в данном случае - одиночное преобразование), и активизируется преобразование.

По завершении преобразования, которое длится 25 тактов АЦП, данные записываются в регистры ADCL и ADCH. Чтение этих регистров выполняют в строгой последовательности: вначале ADCL, затем ADCH.

В таком виде считывания данных АЦП программа работает нестабильно из-за наводок и шумов от питающей сети (переключение светодиодов происходит хаотически, с разной скоростью). Во время чтения АЦП автор не использовал «спящего» режима, поскольку эксперименты показали, что это необязательно.

Подпрограмма задержки выполнена в виде трех вложенных циклов (их количество определяется числом, считанным из АЦП). На данном этапе можно изменить программу и использовать встроенный в микроконтроллер таймер

При этом работа АЦП будет более наглядно проявляться паузами между моментами включения светодиодов (в представленной программе не реализовано).

Подпрограмма опроса реализована с применением команды загрузки данных из памяти программ LPM. При этом данные сохраняются в регистре R0. Считанные данные поступают в порт В на выводы PB0-PB3. Двоичный код с порта В микроконтроллера поступает на двоично-десятичный дешифратор VI. Он преобразует двоичный код в единичный сигнал (активный уровень - нулевой) на одном из выводов.

Первый световой эффект - бегущая единица, второй - поочередное мигание светодиодов по кругу, третий - чередующееся последовательное мерцание с реверсом по одному (таблица 2). [8]

В памяти программ микроконтроллера осталось еще много свободного места, поэтому можно придумать дополнительные световые эффекты.

Таблица 2 - Порядок размещения светодиодов по часовой стрелке

Светодиоды

10

9

8

7

6

5

4

3

2

1

Порт В, двоичный код

Шестна-дцатерич-ные коды прошивки порта В

Программа

Шаг

1

1

0

0

0

0

0

0

0

1

0

0

0010

02

1

2

0

1

0

0

0

0

0

0

0

0

1000

08

1

3

0

0

1

0

0

0

0

0

0

0

0111

07

1

4

0

0

0

1

0

0

0

0

0

0

0110

06

1

5

0

0

0

0

0

0

1

0

1

0

0011

03

1

6

0

0

0

0

0

0

0

0

0

0

0001

01

1

7

0

0

0

0

0

0

0

0

1

1

0000

00

1

8

0

0

0

0

1

0

0

0

0

0

0101

05

1

9

0

0

0

0

0

1

0

0

0

0

0100

04

1

10

1

0

0

0

0

0

0

0

0

0

1001

09

2

1

0

1

0

0

0

0

0

0

0

0

1000

08

2

2

0

0

0

0

0

1

0

0

0

0

0100

04

 

2

3

0

0

1

0

0

0

0

0

0

0

0111

07

 

2

4

0

0

0

0

1

0

0

0

0

0

0101

05

 

2

5

0

0

0

1

0

0

0

0

0

0

0110

06

 

2

6

0

0

0

0

0

0

0

0

0

1

0000

00

 

2

7

0

0

0

0

0

0

1

0

0

0

0011

03

 

2

8

0

0

0

0

0

0

0

0

1

0

0001

01

 

2

9

0

0

0

1

0

0

0

0

0

0

0110

06

 

2

10

0

0

0

0

0

0

0

0

0

1

0000

00

 

2

11

0

0

1

0

0

0

0

0

0

0

0111

07

2

12

0

0

0

0

1

0

0

0

0

0

0101

05

2

13

0

1

0

0

0

0

0

0

0

0

1000

08

2

14

0

0

0

0

0

1

0

0

0

0

0100

04

2

15

0

0

0

0

0

0

0

1

0

0

0010

02

2

16

1

0

о

0

0

0

0

0

0

0

1001

09

3

1

0

0

0

0

0

0

0

1

0

0

0010

02

3

2

0

0

0

0

0

1

0

0

0

0

0100

04

3

3

1

0

0

0

0

0

0

0

0

0

1001

09

3

4

0

0

0

0

1

0

0

0

0

0

0101

05

3

5

0

0

0

0

0

1

0

0

0

0

0100

04

3

6

0

0

0

0

0

0

0

0

0

1

0000

00

3

7

0

0

0

0

1

0

0

0

0

0

0101

05

3

8

0

0

0

0

0

0

0

0

1

0

0001

01

3

9

0

0

0

0

0

0

0

0

0

1

0000

00

3

10

0

0

0

0

0

0

1

0

0

0

0011

03

3

11

0

0

0

0

0

0

0

0

1

0

0001

01

3

12

0

0

0

1

0

0

0

0

0

0

0110

06

3

13

0

0

0

0

0

0

1

0

0

0

0011

03

3

14

0

0

1

0

0

0

0

0

0

0

0111

07

3

15

0

0

0

1

0

0

0

0

0

0

0110

06

3

16

0

1

0

0

0

0

0

0

0

0

1000

08

3

17

0

0

1

0

0

0

0

0

0

0

0111

07

3

18

0

0

0

0

0

0

0

1

0

0

0010

02

Перейти на страницу: 1 2

Читайте также

Проектирование сетевого оборудования NGN
В настоящее время всё чаще встречаются публикации, посвящённые коренному преобразованию ТфОП и переходу к сети следующего поколения (NGN). Она позиционируется как универсальная сеть, спо ...

Модуль дистанционного запуска двигателя автомобиля
Назначение устройства - производить запуск двигателя с помощью SMS сообщения. Курсовая работа состоит из 5 частей: В первой части работы на основе технического задания описывается ...

Проектирование систем автоматизации электрических железных дорог
Последнее десятилетие характеризуется существенным совершенствованием систем телемеханики и расширением областей их применения. Это обусловлено новейшими достижениями микроэлектроники и ...

Основные разделы

Все права защищены! (с)2019 - www.generallytech.ru