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

В схеме применен ЖКИ 1072 импортного производства, однако можно использовать любой другой семисегментный ЖК-дисплей на три значащих цифры (например, от старого нерабочего калькулятора или от наручных часов). Потребляемый схемой ток — около 5 мА. Работоспособность схемы сохраняется при напряжении 2,8 В [8, 17]. Микроконтроллер работает при напряжении 2,7..5,5 В, а схема LM75A — при напряжении 2,8..5,5 В.

Программа

Блок-схема алгоритма работы устройства показана на рис. 6.5. В начале программы конфигурируются порты управления дисплеем и шиной 12С. Тактовая частота микроконтроллера по умолчанию составляет 1 МГц, чего достаточно для работы термометра. Данные от LM75A

Простой термометр

принимаются микроконтроллером по шине 12С. При этом частота передачи не должна превышать 200 кГц. Для передачи данных автор воспользовался готовой программой [16] с небольшой модернизацией.

^ Начало

Г"

Установка конфигурации Портов

.-»>

124

Глава 6

При сбросе по включению питания регистр-указатель принимает значение $00 и указывает на регистр температуры. Все регистры данных, за исключением "Температура", доступны для чтения и записи. Разряды данных DB8-DB0 представлены в формате дополнения до двух. Один младший разряд соответствует температуре 0,5°С. Разряды D6-D0 младшего полубайта не определены (рис. 6.6).

D15

D14

D13

D12

D11

D10

D9

D8

D7

D6

D5

D4

D3

D2

D1

DO

DB8

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

X

X

X

X

X

X

X

Рис. 6.6. Разряды D6-D0 младшего полубайта не определены

Данные из LM75 могут быть считаны двумя способами [16]. Для передачи адреса и данных используется пакет, в котором участвует только байт адреса с последующим байтом данных для чтения. Считывание байта ведущим устройством 12С подтверждается положительным (лог. 0) или отрицательным (лог.1) квитированием. Сигнал отрицательного квитирования извещает ведущее устройство о том, что оно только что прочитало последний байт.

Полученные данные (см. рис. 6.6) смещают вправо через перенос пять раз, после чего их необходимо преобразовать в положительные числа. Для этого отрицательные значения с помощью дополнительного кода [18] преобразуют в целые положительные значения. Код температуры преобразуется в цифры реальной температуры в десятичном коде. Далее полученные числа необходимо разделить на восемь.

На следующем этапе данные разбиваются поразрядно. Для работы семисегментного индикатора двоично-десятичное значение преобразуется в семисегментный код с помощью табл. 6.1 и табл. 6.2 (размещены в конце программы по адресам ргодЗ и ргод4). Микроконтроллер выводит семисегментные коды на дисплей, после чего программа реализует задержку в 0,5 с и возвращается в начало.

Таблица 6.1. Преобразование двоично-десятичного значения в семисегментный код для старшего разряда

Старший

, PD0

РС5

РС4

РСЗ

РС2

РС1

РСО

Код

разряд

             

0

0

1

1

1

1

1

1

3F

1

0

0

0

0

1

1

0

06

2

1

0

1

1

0

1

1

3

1

0

0

1

1

1

1

4F

4

1

1

0

0

1

1

0

об

Простой термометр


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






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_49.html on line 519

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book8_49.html on line 519

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book8_49.html on line 519