НПО Системы Безопасности
(499)340-94-73 График работы:
ПН-ПТ: 10:00-19:00
СБ-ВС: выходной

Главная » Периодика » Безопасность

0 ... 76777879808182 ... 159


DlaySValue = ((&007 DlayieoValue = (163 while (Bit > = 0

If ((DlayieOValue & Value) if (DlayieOBitl == -1) DlayieOBitl = Bit else

If (Dlayie0Bit2 = - -1) Dlay160Bit2 = Bit endif endif

BitCount = BitCount + 1

endif Value = Value >> 1 Bit= Bit - 1

endw

If (BitCount > 2) If ((DlayieOBitl - 1) ==

(Freq/1000)/4000)/7) + 256 (Freq/1000)/4000)/3

, Определение числа битов , и их позиций для переменной DlayieOValue != 0)

Установка старшего бита

; Необходимы максимум два бита Dlayie0Bit2)

DlayieOBitl = Dlay160Bit1 + 1,

Сдвиг на 1 вверх

Dlay160Bit2 = -1

Удаление второго бита

else

Dlay160Bit2 = DlayieOBit2 + 1

endif

endif

DlayS

Задержка 5 мс.

movlw

(DlaySValue & OxOFFOO) >> 8

movwf

Dlay

movlw

DlaySValue & OxOF,

subwf

Dlay, w

xorlw

OxOFF

addwf

Dlay, w

btfsc

STATUS, Z

decfsz

Dlay, f

goto

$ - 5

retu rn

LCDPORTInit ;

Инициализация портов

STATUS, RPO ,

Только для среднего подсемейс

If (DataBit == 0)

movlw

OxOFO

else

movlw

OxOOF

endif

movwf

DataPort

EPort, EPin

RSPort, RSPin

RWPort, RWPin



bcf STATUS, RPO

bcf EPort, EPin

bcf RSPort, RSPin

bcf RWPort, RWPin return LCOIns

movwf LCDTemp

movlw 6

movwf Dlay

bsf ClockPort, ClockPin

bcf ClockPort, ClockPin

decfsz Dlay, f

goto $ - 3

movwf Dlay

movf LCDTemp, w

swapf LCDTemp, f

bsf LCDTemp, 5

bcf LCDTemp, 4

bcf DataPort, DataPin

btfsc LCDTemp, 5

bsf DataPort, DataPin

bsf ClockPort, ClockPin

bcf ClockPort, ClockPin

rlf LCDTemp, f

decfsz Dlay, f

goto $ - 7

bsf DataPort, DataPin

If (Freq > 8000000)

If (Freq < 16000000)

nop else

goto $ + 1 endif endif bcf bsf

DataPort, DataPin Dlay, 2

bsf Dlay, 1

bsf ClockPort, ClockPin

decfsz Dlay, f

goto $ - 3

movwf LCDTemp

bsf Dlay, 2

Передача команды на дисплей Сохранение значения Обнуление регистра сдвига

Содержимое регистра w все еще равно 6. Сдвиг старших 4 битов.

Корректировка значения

LCDTemp для сдвига.

Это бит RS.

Сдвиг на выход.

5 - текущий MSB

Выдача следующего старшего

бита.

Возможно, потребуется задержка.

Значение Dlay для сдвига равно 6.

Обнуление регистра сдвига

Сдвиг младшего полубайта. Значение Dlay для сдвига равно 6



bsf Dlay, 1

bsf LCDTemp, 5

bcf LCDTemp, 4

bcf DataPort, DataPin

btfsc LCDTemp, 5

bsf DataPort, DataPin

bsf ClockPort, ClockPin

bcf ClockPort, ClockPin

rlf LCDTemp, f

decfsz Dlay, f

goto $ - 7

bsf DataPort, DataPin

If (Freq > 8000000)

If (Freq < 16000000)

nop else

goto $ + 1 endif endif

bcf DataPort, DataPin

bsf Dlay, Dlay160Bit1 , If (Dlay160Bit2 1= -1)

bsf Dlay, Dlay160Bit2 endif

decfsz Dlay, f goto

Корректировка значения LCDTemp для сдвига Это бит RS Сдвиг всех разрядов 5 - текущий MSB

andlw OxOFC

btfsc STATUS, Z

call DlayS return LCDChar

movwf LCDTemp

movlw 6

movwf Dlay

Возможно, потребуется задержка

Задержка 160 мкс

Для задержки 5 мс

Передача символа на дисплей Сохранение значения Обнуление регистра сдвига

bsf ClockPort, ClockPin

bcf ClockPort, ClockPin

decfsz Dlay, f

goto $ - 3

movwf Dlay

movf LCDTemp w

swapf LCDTemp, f

bsf LCDTemp, 5

bsf LCDTemp, 4

bcf DataPort, DataPin ,

btfsc LCDTemp, 5

bsf DataPort, DataPin

Регистр w еще равен 6 Сдвиг старших 4 битов

Корректировка значения LCDTemp для сдвига Это бит RS

Выдача следующего старшего бита



0 ... 76777879808182 ... 159