.EQU P1.0 ;линия clock LOAD .EQU P1.1 ;линия load DATA .EQU P1.2 ;линия data ;Основная программа: MAIN: LCALL CLEAR ;очистка индикатора MOV A,#00H LCALL WR_A ;загрузка адреса первого знакоместа MOV A,#3 LCALL WR_S ;отображение числа 3 .......... ;продолжение программы ;Подпрограммы: ;Очистка индикатора: CLEAR: MOV A,#0FH ;адрес регистра BLK LCALL WR_A ;запись адреса MOV A,#0FH ;код разрешения шины LCALL WR_N ;запись тетрады MOV A,#00H ;адрес знакоместа SG1 LCALL WR_A ;запись адреса MOV R0,#10 ;загрузка счетчика CL1: CLR A LCALL WR_D ;очистка знакомест SG1 - SG10 DJNZ R0,CL1 RET ;Вывод символа на индикатор: ;A – код символа (ACC.7 - точка) WR_S: MOV DPTR,#FONT ;загрузка адреса начала знакогенератора MOV C,ACC.7 ;сохранение признака точки CLR ACC.7 MOVC A,@A+DPTR ;перекодировка MOV H,C ;восстановление признака точки LCALL WR_D ;запись данных RET ;Запись байта данных: ;A – байт данных WR_D: PUSH ACC ;сохранение байта |