В схеме применен ЖКИ 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 |
5В |
|
3 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
4F |
|
4 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
об |
Простой термометр
| Реклама: |
| Участок земли 1,7 Га п. Солнечное: недвижимость сочи. Недвижимость в Сочи для Вас. |
| новый цветной лазерный принтер а3 сейчас. |
| Эксклюзивные часы наручные купить недорого можно в каталоге tkat.ru |