LCD_WD ;очистка индикатора dec Del brne cl1 ret ;Вывод символа на индикатор: ;temp – код символа (temp.7 – точка) LCD_WS: bst temp,7 ;сохранение признака точки в T andi temp,0x7F ;temp.7 <- 0 ldi ZL,low (FONT*2) ;начало таблицы знакогенератора ldi ZH,high(FONT*2) add ZL,temp ;добавить смещение (Z + temp) brcc wc1 inc ZH wc1: lpm ;чтение таблицы в temp0 mov temp,temp0 bld temp,H ;восстановление признака точки rcall LCD_WD ;запись данных ret ;Запись данных: LCD_WD: push temp ;сохранение данных rcall LCD_WN ;запись младшей тетрады pop temp ;восстановление данных swap temp ;обмен тетрад rcall LCD_WN ;запись старшей тетрады ret ;Запись тетрады: LCD_WN: andi temp,0x0F ;обнуление неиспользуемых битов ori temp,0x10 ;A=1 rjmp wa1 ;Запись адреса: LCD_WA: andi temp,0x0F ; обнуление неиспользуемых битов wa1: lsl temp lsl temp lsl temp ldi Cnt,5 ;загрузка счетчика w5: cbi PORTB,CLK ;CLK=0 rol temp brcs w51 w50: cbi |