Программирование МК на ассемблере ASM-51 и AVR Pascal. Китаев Ю.В. - 68 стр.

UptoLike

Составители: 

68
LCDchar acc;== если нет - вывести на ЖКД очередной символ
inc cnt;== перейти к следующему символу
jmp povtor;== и повторить вывод
vyhod:
ENDM
;================================================
LCDxy MACRO x,y;== макрос позиционирования курсора ЖКД
LOCAL up;== метка up - верхняя строка
mov a,#y;== Y-координата строки 0-верхняя, 1-нихжняя
jz up;== если Y=0, значит строка верхняя и ее адрес=0
mov a,#40h;== если Y=1, строка нижняя и ее адрес = 40h
up: add a,#x;== прибавляем позицию в строке к ее
адресу
add a,#80h;== старш. бит упр. байта адреса позиции=1
Write acc, DATA_LCD;== переводим курсор
StrobE 0x00;== в указанную поз-ю
ENDM
;================================================
CSEG at 0;== начало сегмента программы
jmp Tochka_Vhoda;== переход к началу программы
ORG Tochka_Vhoda;== с этого адреса располагается код программы
;====main====main====main====main====main====main
main_prog: ;== точка входа в основную программу
mov sp,#dno_steka;== записываем адрес начала стека в регистр sp
Delay 30,229;== задержка на 15мсек после включения ЖКД
call InitALL;== начальная настройка
call menu;== текст меню действийна экран дисплея
_88888888:;== начало бесконечного цикла
jmp _88888888;== конец бесконечного цикла
;====endmain====endmain====endmain====endmain====
;== ДАЛЕЕ РАЗМЕЩАЮТСЯ ПОДПРОГРАММЫ ==
InitALL:;== п/п инициализации всего и вся
mov DPP,#DPP_page_addr;== адрес страницы, на кот. находятся ВУ
LCDinit;== настройка ЖКД
ret
;================================================
menu:;== подпрограмма вывода меню действий
LCDxy 0,0;== xy=00 - верхняя строка, слева
LCDstrn menu1;== выводим на ЖКД первую
строку меню
LCDxy 0,1;== xy=01 - нижняя строка, слева
LCDstrn menu2;== выводим на ЖКД вторую строку меню
ret
;================================================
LCDclear:;== очистка экрана ЖКД
LCDctrl 1