![]() | |
НПО Системы Безопасности (499)340-94-73 График работы: ПН-ПТ: 10:00-19:00 СБ-ВС: выходной ![]() ![]() |
Главная » Периодика » Безопасность 0 ... 78798081828384 ... 159 goto endif endif DataPort, DataPin Dlay, DlayieOBitl if (Dlay160Bit2 1= -1) bsf endif decfsz goto movlw call movlw call movlw call movlw call movlw call return endm Dlay, Dlay160Bit2 Dlay $ - 1 0x028 LCDIns 0x010 LCDIns 0x001 LCDIns 0x006 LCDIns OxOOE LCDIns Задержка 160 мкс , Задание формата , Выключение дисплея Стирание памяти Определение перемещения курсора Включение дисплея/курсора ИНТЕРФЕЙС \К В РЕЖИМЕ MASTER Ниже приведена макрокоманда управления обменом по интерфейсу IC в режиме MASTER. Для нормальной работы интерфейса требуется подключить линии SDA и SCL через внешние резисторы сопротивлением от I до 10 кОм к напряжению питания. I2CSetup Macro ClockPort Frequency Variable Dlay Fraction ClockPin, DataPort, DataPin, Rate Величина временной задержки в командных циклах Dlay ((Frequency . 110)/(800 • Rate))/1000 Fraction = ((Frequency * 110)/(800 * Rate))/1000 - (Dlay • If Fraction > 499) Dlay = Dlay + 1 endif , Подготовка шины VC для работы STATUS, RPO ClockPort, ClockPin DataPort, DataPin STATUS, RPO ClockPort, ClockPin 1000) I2CbitSetup bsf bcf bcf bcf bsf Инициирование выходов На всех выходах высокие уровни DlayMacro Dlay Уровни сигналов на линиях должны быть высокими достаточное время return l2Cstart bsf bsf DlayMacro Bcf DlayMacro bcf DlayMacro retu rn I2Cstop DlayMacro bsf DlayMacro bsf return I2Cread btfsc bsf bcf movlw I2CR100P bsf DlayMacro bcf btfsc , Формирование стартовой , последовательности (старт-условие) ClockPort, ClockPin DataPort, DataPin Dlay - 2 DataPort, DataPin Dlay ClockPort, ClockPin Dlay - 2 Dlay ClockPort, ClockPin Dlay DataPort, DataPin I2CTemp, 0 STATUS, С I2CTemp, 0 STATUS, RPO , Низкий уровень , на линии данных (SDA) , Низкий уровень на , линии , синхронизации (SCL) , Специфицированная , задержка Выход с SDA = SCL = О Формирование стоповой последовательности (стоп-условие) , Высокий уровень , на линии , синхронизации (SCL) Выход с SDA = SCL = 1 Прием 8 бит по шине и повтор приема с выдачей подтверждения АСК Если перенос, посылается подтверждение АСК Предоставление устройству возможности выдать данные на линию DataPort, DataPin STATUS, RPO 0x010 - 8 ClockPort, ClockPin (Dlay/2) - 1 STATUS, С DataPort, DataPin Цикл приема SCL = 1 Прием бита данных
I2Csend mov-wf I2CTemp movlw 0x010 - 8 I2CSloop rlf I2CTemp, f Посылка 8 бит данных из регистра w, нужно получить подтверждение АСК. Цикл передачи. Сдвиг буфера и выдача данных в линию через бит переноса. btfsc goto goto goto DlayMacro bcf STATUS, С $ + 4 DataPort, DataPin $ + 3 DataPort, DataPin $ + 1 ClockPort, ClockPin Dlay ClockPort, ClockPin ; SDA = 0, ; SDA = 1. ; Выдача синхроимпульса ; (SCL = 1). 0 ... 78798081828384 ... 159 |