PD0 ;линия данных DI .equ SC = PD1 ;тактовая линия SK ;Инициализация: INIT: ldi temp,RAMEND ;инициализация стека out SPL,temp ldi temp,PUPD out PORTD,temp ;инициализация порта D ldi temp,DIRD out DDRD,temp ;задание направления порта D ;Основная программа: ldi temp,3 rcall LCD ;вывод на индикатор числа 3 ......... ;продолжение программы ;Подпрограмма вывода символа на индикатор: ;код символа должен находиться в регистре temp LCD: ldi Cnt,4 ;загрузка счетчика swap temp ;подготовка мл. тетрады к сдвигу LDL: rol temp ;сдвиг brcs LD1 LD0: cbi PORTD,SD ;сброс линии данных, если бит=0 rjmp STR LD1: sbi PORTD,SD ;установка линии данных, если бит=1 STR: sbi PORTD,SC ;установка линии тактирования ldi Del,5 HNG1: dec Del ;задержка на установку данных brne HNG1 cbi PORTD,SC ;сброс линии тактирования ldi Del,10 HNG2: dec Del ;задержка на удержание данных brne HNG2 dec Cnt brne LDL ;цикл, если не последний бит ldi Del,25 HNG3: |