Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- cseg
- jmp start
- org 40h
- start:
- call lcdini
- call dataa
- aa: nop
- jmp aa
- dataa:
- push acc
- push b
- mov a, #0E1h ; Ц
- call write_data
- mov a,#61h ; а
- call write_data
- mov a,#70h ; р
- call write_data
- mov a,#0C4h ; ь
- call write_data
- mov a,#0BAh ; к
- call write_data
- mov a,#6Fh ; о
- call write_data
- mov a,#0B3h ; в
- call write_data
- mov a,#61h ; а
- call write_data
- mov a,#11000000b ; перенос на 2ую строку
- call write_command
- mov a, #0E0h ;
- call write_data
- mov a,#16h ;
- call write_data
- mov a,#0DBh ;
- call write_data
- mov a, #5Ah ;
- call write_data
- mov a,# 0BBh ;
- call write_data
- mov a,#0F6h ;
- call write_data
- mov a,#3Bh ;
- call write_data
- pop b
- pop acc
- ret
- lcdini:
- mov a,#00101100b ; 4 бита, 2 строки, 5х8 точек
- call write_command
- mov a,#00001101b ; отображение символов, курсор - мерцающее знакоместо
- call write_command
- mov a,#00000110b ; сдвиг вправо
- call write_command
- mov a,#00000001b ; очистка экрана
- call write_command
- clr p1.0
- ret
- wait_bf: ; проверка бита занятости
- push acc
- wait_ll:
- mov p1,#11110010b ; C/D=0, R/W=1,E=0
- setb p1.2 ; E=1
- mov a,p1 ; чтение старшей тетрады регистра IR
- clr p1.2 ; E=0
- mov b,a ;временное хранение старшей тетрады
- setb p1.2
- mov a,p1 ;чтение младшей тетрады
- mov a,b
- jb acc.7,wait_ll ; проверка бита занятости BF
- pop acc
- ret
- write_command:
- push acc
- push b
- call wait_bf
- mov b,a ; сохраняем код команды в B
- anl a,#11110000b ; С/D=0,R/W=0,E=0
- mov p1,a ; вывод старшей тетрады
- setb p1.2 ; Е=1
- nop
- clr p1.2 ; Е=0
- mov a,b ; исходная команда
- swap a ; меняем местами тетрады
- anl a,#11110000b ; С/D=0,R/W=0,E=0
- mov p1,a ; вывод младшей тетрады
- setb p1.2 ; Е=1
- nop
- clr p1.2 ; Е=0
- pop b
- pop acc
- ret
- write_data:
- push acc
- push b
- call wait_bf
- mov b,a ; сохраняем данные в B
- anl a,#11110000b ; С/D=0,R/W=0,E=0
- orl a,#00000010b ; C/D=1
- mov p1,a ; старшая тетрада данных
- setb p1.2 ; Е=1
- nop
- clr p1.2 ; Е=0
- mov a,b ; исходные данные
- swap a ; меняем местами тетрады
- anl a,#11110000b ; С/D=0,R/W=0,E=0
- orl a,#00000010b ; C/D=1
- mov p1,a ; вывод младшей тетрады
- setb p1.2 ; Е=1
- nop
- clr p1.2 ; Е=0
- mov p1, #11110000b ; высокий уровень
- pop b
- pop acc
- ret
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement