Предыдущая Следующая

Для повышения точности и стабильности были выполнены четыре преобразования. Полученные данные были просуммированы и разделены на четыре (среднее арифметическое). Это дает гораздо более точные и стабильные результаты измерений. Длительность паузы и импульсов дешифратора равны, что говорит о хорошей повторяемости данных, получаемых от АЦП.

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

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

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

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

Создание световых эффектов с помощью АЦП

55

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

с 12:00: 3, 9, 8, 7, 4, 2, 1, 6, 5, 10

Светодиоды

10

9

8

7

6

5 . 4

3

2

1

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

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

порта В

Программа

Шаг

   

1

1

0

0

0

0

0

0 I 0

1

о 10

0010

02

1

2

0

1

0

0

0

о ! о

0

о I 0

1000

08

1

3

0

0

1

0

0

0 j 0

0

0

0

0111

07

1

4

0

0

о! 1

0

0 i 0

0

0

0

0110

06

1

5

0

0

0 | 0

0

о ! 1

0

0

0

0011

03

1

6

0

0

о ! о

0

0

0

0

1 l 0

0001

01

1

7

0

0

0

0

0

0

0

0

о ! 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

0100

04

1

10

1

0

0

0

0

0 i 0

0

0

0

1001

09

2

1

0

1

0

0

0

0 I 0

0

0

0

1000

08

2

2

0

0

0

0

0

1 i 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

1

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

1

0000

00

2

7

0

0

0

0

0

о : 1

0

0

0

0011

03

2

8

0

0

0

0

0

0 j 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 jo

0

0 , 0

0

о ! о

0111

07

2

12

0

0

0

0

1

о: о

0

0 I 0

0101

05

2

13

0

1

0 i 0

0

0 ! 0

0

0

0

1000

08

2

14

0

0

0 I 0

0

1 : 0

0

о i 0

0100

04

2

15

0

0

0

0

0

о ■■ 0

1

о I 0

0010

02

2

16

1

о I о

0

0

0 0

0

0 I 0

1001

09

3 I 1

0

0 ! 0

0

0

0 0

1

0 ; 0

0010

02

з ; 2

0

о ! о | о

0

1 0

0

0 I 0

0100

04

з : з

1

о ! о | о

0

0 0

0

о ! о

1001

09

3 I 4

0

0 I 0 | 0

1

0 0

0

0 I 0

0101

05

Глава 2

Таблица 2.1. Окончание

Светодиоды

10

9

8

7

6

5

4

3

2

1

Порт В,

Шестна-

                       

двоич-

дцатерич-

Про-

Шаг

                   

ный

ные коды

грам-

                   

I

код

прошивки

ма

                   

I

 

порта В

3

5

0

0

0

0

о

1

0

0

0

0

0100

04

3

6

0

0

0

0

0

0

0

0

0

11

0000

00

3

7

0

0

0

0

1

0

0

0

0

о '

0101

05

. 3

8

0

0

0

о

о

0

0

о

1

о!

0001

01

3

9

0

0

0

0

0

0

0

0

0

1 I

0000

00

3

10

0

0

0

0

0

0

1

0

0

о !

0011

03

3

11

0

0

0

0

0

0

0 | 0

1

0 i

0001

01

3

12

0

0

0

1

0

0

о

о

0

о !

0110

06

3

13

0

0

0

0

0

0

1

0

0

о !

0011

03

3

14

0

0

1

0

0

0

0

0

0

о !

0111

07

3

15

0

0

0

1

0

0

0

0

0

о !

0110

06

3

16

0

1

0

0

0

0

0

0

0

о I

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 I

0010

02

Примечание: В таблице для простоты чтения даны инверсные значения


Предыдущая Следующая



НА ГЛАВНУЮ | ЧТО ТАКОЕ PIC ? | ПРОГРАММАТОР | ПРОЕКТЫ | СТАТЬИ | ССЫЛКИ | КАРТА САЙТА
Hosted by uCoz