Лабораторная работа 2 / mps_lab2
.docСанкт-Петербургский государственный электротехнический университет
Кафедра ВТ
Микропроцессорные системы
Отчет по лабораторной работе №2
Вариант 1
Выполнили: Попов А.
Таранюк М.
Гр.2372
Проверила: Головина Л.К.
Санкт-Петербург
2006
-
Пересылка массива констант из Code Memory в IDATA
В 1 варианте данные в Code Memory должны начинаться с 0-го сектора 3-ей страницы. Т.к. страница имеет размер 64 байта, то 3 страница начинается с 3*64 = 192, или в 16-ричной форме С0. Используя этот адрес организуем передачу:
punkt1:
mov dptr,#0c0h //addres 3-i stranici
mov r0,#20h
mov r1,#08h
mov r2,#00h
L1:
mov a,r2
movc a,@a+dptr
mov @r0,a
inc r0
inc r2
djnz r1,L1
jmp IDLE
-
Пересылка содержимого регистра специальных функций в РПД
Адреса: DPL – 82h, DPH – 83h, ICRAL –AAh, IP0 – B8h.
punkt2:
mov r0,#0F0h
mov 82h,#01h //DPL
mov 83h,#02h //DPH
mov 0AAh,#03h //ICRAL
mov 0B8h,#04h //IP0
mov @r0,82h
inc r0
mov @r0,83h
inc r0
mov @r0,0AAh
inc r0
mov @r0,0B8h
inc r0
mov @r0,#0FFh
jmp IDLE
-
Обработка измерительной информации
punkt3:
mov r0,#0h
mov dptr,#0c0h
mov r1,#0h
mov r2,#08h
L31:
mov a,r1
inc r1
movc a,@a+dptr // peresilka dannih iz Code Memory v XDATA
movx @r0,a
inc r0
djnz r2,L31
mov r0,#0h
movx a,@r0 //chtenie 1-go elementa massiva
mov r1,a
mov r2,#07h //schetchik cicla
mov r3,#00h //schetchik perenosov v starshii razriad
inc r0
jmp L32
LC:
inc r3 //bil perenos, uvelichivaem schetchik
jmp LCReturn
L32:
movx a,@r0 //schitivaem element massiva
inc r0
add a,r1 //skladivaem ego s summoi predidushih
jc LC //esli bil perenos ...
LCReturn:
mov r1,a //zapisivaem novuiu summu elementov
djnz r2,L32
mov a,r1 //zapisivaem i sdvigaem mladshuiu chast' summi
rr a
rr a
rr a
anl a,#1fh //obnuliaem nenugnie razriadi
mov r7,a
jmp Start
LC1:
mov r4,#20h
jmp LC1R
LC2:
mov r5,#40h
jmp LC2R
LC3:
mov r6,#80h
jmp LC3R
Start:
mov a,r3 // zapisivaem i sdvigaem starshuiu chast' chisla
rrc a
jc LC1
LC1R:
rrc a
jc LC2
LC2R:
rrc a
jc LC3
LC3R:
mov a,#0h
add a,r4
add a,r5
add a,r6
add a,r7 //skladivaem starshuiu chast' s mladshei
mov r7,a
mov dptr,#0c0h
mov a,#08h
movc a,@a+dptr
mov r0,a //schitivaem niznuiu ustavku Qmin
mov a,#09h
movc a,@a+dptr
mov r1,a //schitivaem verhnuiu ustavku Qmax
mov a,r1
subb a,r7 //Qmax - Xsred
jc P11 //esli Qmax<Xsred
mov a,r7
subb a,r0 //Xsred - Qmin
jc P00 //esli Qmin>Xsred
mov p2,#10h // esli Qmin<Xsred<Qmax
jmp IDLE
P11:
mov p2,#11h
jmp IDLE
P00:
mov p2,#00h
jmp IDLE
IDLE:
jmp IDLE
END