Данная подпрограмма осуществляет передачу значений буферных регистров индикации IND_0, IND_1, IND_2, IND_3 и регистра управления децимальной точкой POINT во внутренние регистры драйвера LCD.
Драйвер MAX6958 поддерживает автоинкрементирование адреса при записи значений в регистры. Поэтому при передаче данных достаточно указать начальный адрес (0х20), а затем последовательно передавать данные без предварительной передачи адреса следующего регистра. Адрес драйвера на шине I2C 0x38.
Ниже приведен листинг программы, осуществляющей вывод на индикацию.
;-_LED
; ПОДПРОГРАММА ВЫВОДА НА ИНДИКАЦИЮ SSPCON2, SEN ; СГЕНЕРИРОВАТЬ БИТ START SSPCON2, SEN ; ОЖИДАТЬ ОКОНЧАНИЯ ГЕНЕРАЦИИ БИТА START $-1 0x38 ; ПЕРЕДАТЬ АДРЕС ДРАЙВЕРА SSPBUF SSPCON2, ACKSTAT ; ОЖИДАТЬ ФОРМИРОВАНИЕ БИТА ПОДТВЕРЖДЕНИЯ $-1 0x20 ; ПРЕРЕДАТЬ АДРЕС ПЕРВОГО РЕГИСТРА ДАННЫХ SSPBUF SSPCON2, ACKSTAT ; ОЖИДАТЬ ФОРМИРОВАНИЕ БИТА ПОДТВЕРЖДЕНИЯ $-1 IND_3, W ; ПЕРЕДАТЬ СОДЕРЖИМОЕ 3-ГО РАЗРЯДА ИНДИКАЦИИ
BANC1 SSPBUF SSPSTAT, BF
GOTO $-1 IND_2, W ; ПЕРЕДАТЬ СОДЕРЖИМОЕ 2-ГО РАЗРЯДА ИНДИКАЦИИ
BANC1 SSPBUF SSPSTAT, BF
GOTO $-1 IND_1, W ; ПЕРЕДАТЬ СОДЕРЖИМОЕ 1-ГО РАЗРЯДА ИНДИКАЦИИ
BANC1 SSPBUF SSPSTAT, BF
GOTO $-1 IND_0, W ; ПЕРЕДАТЬ СОДЕРЖИМОЕ 0-ГО РАЗРЯДА ИНДИКАЦИИ
BANC1 SSPBUF SSPSTAT, BF
GOTO $-1 POINT, W ; ПЕРЕДАТЬ СОСТОЯНИЕ ДЕЦИМАЛЬНОЙ ТОЧКИ SSPCON2, ACKSTAT $-1 SSPCON2, PEN ; СГЕНЕРИРОВАТЬ БИТ STOP END_INT ; ПЕРЕХОД НА НАЧАЛО ПРОГРАММЫ
;-
Самое читаемое:
Разработка методики поверки датчика определения расстояния и датчика касания
Слово
«робот» прочно вошло в современный обиход, современную речь и современную
жизнь. Трудно представить себе мир XXI века без «умных» машин. Они проникли
всюду: от заводских сборочных цехов и медицины до арсеналов наиболее развитых
армий мира. Ну и, конечно, редкий фантастический фильм или роман не обходится
без автономных думающ ...