Проверил программу на «железе». Конечно без косяков не обошлось. Но это от неопытности. Но зато милое дело непосредственно проверять на «железе», так как сразу видишь где накосячил. Теперь о самой программе. В устройстве есть 5 кнопок, кнопка «ОК», «Вверх», «Вниз», «Влево», «Вправо». Имеем 4 датчика DS18B20, значение температуры выводится на ЖКИ дисплей МТ16S2D (2 строки по 16 символов). Вот пока как это выглядит.
1.JPG [ 114.64 КБ | Просмотров: 9335 ]
Программа опрашивает датчики согласно их ROM кодов с проверкой CRC. ROM код хранится в EEPROM МК. Но вначале каждый ROM датчика необходимо записать. Чтобы не усложнять программу по изучению кода ROM четырёх датчиков находящихся одновременно на шине, решил сделать алгоритм записи только одного ROM датчика, то есть записываем ROM, когда на шине установлен только один датчик. Алгоритм организован таким образом, вначале опрашиваются все 4 датчика потом информация выводится на дисплей. Если произошла ошибка при опросе датчика, на ЖКИ выводится надпись Err №. № = от 1 до 4. Цифра: 1 – Нет высокого уровня на шине, 2 – Нет импульса присутствия от датчика, 3 – Не восстановлен высокий уровень, 4 – Не совпадает код ROM в EEPROM МК с ROMом опрашиваемого датчика.
Теперь последовательность записи ROM датчика.
Установили датчик на шину и включили питание (я не отключал питание, так как мне было удобно убирать и устанавливать датчики на шину. Но это неправильно). На ЖКИ все датчики показывают ошибку 4.
2.JPG [ 37.48 КБ | Просмотров: 9335 ]
Нажимаем и отпускаем (далее просто нажимаем) кнопку «ОК». На дисплее появляется надпись «Поиск датчика», после опроса шины на дисплее появляется надпись «Новый датчик» и его считанная температура.
3.JPG [ 35.95 КБ | Просмотров: 9335 ]
Если опрос шины произошёл с ошибкой, в место температуры будет надпись «Error» и цифра ошибки. Что бы вернутся назад, необходимо нажать кнопку «Вверх».
Продолжение на следующей странице.