Порядок выполнения работы
-
Ознакомиться со схемой стенда.
-
Написать программу, считывающую состояние тумблеров (порт Р2) и выводящую информацию о положении тумблеров на светодиоды (порт Р1).
-
Написать программу, которая зажигает светодиоды по очереди.
-
Представить программу в .HEX формате.
-
Соединить стенд с COM-портом компьютера.
-
Запустить программу Loader 420.
-
Подать напряжение питания на стенд(+9В).
-
В программе открыть порт, к которому подключен лабораторный стенд.
-
Очистить память микропроцессора.
-
Загрузить в процессор программу.
-
Запустить программу.
-
Проверить функционирование стенда на соответствие требованиям задания, при необходимости откорректировать программу и повторить пп. 2-10.
Требования к отчету
Отчет должен содержать описание функциональной схемы контрольно-измерительного стенда, тексты программ.
Назначение команд процессора
|
Команда |
Кол-во байт |
Описание операции |
|
Арифметические действия |
||
|
ADD A, Rn |
1 |
(A) = (A)+(Rn) |
|
ADDA, direct |
2 |
(A) = (A) + (direct) |
|
ADD A, ®Ri |
1 |
(A) = (A)+((Ri)) |
|
ADD A, #data |
2 |
(A) = (A) + #data |
|
ADDOA, Rn |
1 |
(A) = (A) + (C) + (Rn) |
|
ADDC A, direct |
2 |
(A) = (A) + (C) + (direct) |
|
ADDC A, ®Ri |
1 |
(A) = (A)+(C) + ((Ri)) |
|
ADDC A,#data |
2 |
(A) = (A) + (C) + #data |
|
SUBBA, Rn |
1 |
(A) = (A) - (C) - (Rn) |
|
SUBB A, direct |
2 |
(A) = (A)-(C)-(direct) |
|
SUBBA, @Ri |
1 |
(A) = (A)-(C)-((Ri)) |
|
SUBB A. #data |
2 |
(A) = (A)-(C)-#data |
|
INC A |
1 |
(A) = (A) + 1 |
|
INC Rn |
1 |
(Rn)=(Rn) + 1 |
|
INC direct |
2 |
(direct) = (direct)+ 1 |
|
INC $Ri |
1 |
((Rill = ((Ri)) + 1 |
|
INC DPTR |
1 |
(DPTR)=(DPTR)+ 1 |
|
DEC A |
1 |
(A) = (A) - 1 |
|
DEC Rn |
1 |
(Rn)= (Rn) - 1 |
|
DEC direct |
2 |
(direct) = (direct)-1 |
|
DEC ®Ri |
1 |
((Ri)) = ((Ri)) - 1 |
|
MUL AB |
1 |
(B15-8),(A7-0) = (A)x(B) |
|
DIV AB |
1 |
(A15-8),(A7-0) = (A)/(B) |
|
DJNZ A, n |
2 |
(A) = (A) - 1 Прыгает на метку n |
|
DJNZ R, n |
2 |
(R) = (R) - 1 Прыгает на метку n |
|
DAA |
1 |
Contents of accumulator are BCD, IF[[(A3-0)>9] OR [(AC)= 1]]THEN (A3-0) = (A3-0) + 6 AND IF[[(A7-4)>9] OR [(C)=1]] THEN (A7-4) = (A7-4) + 6 |
|
Логические операции |
||
|
ANL A, Rn |
1 |
(A) = (A) AND (Rn) |
|
ANL A, direct |
2 |
(A) = (A) AND (direct) |
|
ANL A, ®Ri |
1 |
(A) = (A)AND((Ri)) |
|
ANL A, #data |
2 |
(A) = (A) AND #data |
|
ANL diract, A |
2 |
(direct)= (direct)'AND A |
|
ANL direct, #data |
3 |
(direct)= (direct) AND #data |
|
ORL A, Rn |
1 |
(A) = (A) OR (Rn) |
|
ORL A, direct |
2 |
(A) =(A) OR (direct) |
|
ORLA, @Ri |
1 |
(A) = (A) OR ((Ri)) |
|
ORL A, #data |
2 |
(A) = (A) OR #data |
|
ORL direct, A |
2 |
(direct)= (direct) OR (A) |
|
ORL direct, #data |
3 |
(direct) = (direct) OR #data |
|
XRL A, Rn |
1 |
(A) = (A) XOR ((Ri)) |
|
XRL A, direct |
2 |
(A) = (A) XOR (direct) |
|
XRL A, @ Ri |
1 |
(A) = (A) XOR ((Ri)) |
|
XRL A, #data |
2 |
(direct) = (A) XOR #data |
|
XRL direct, A |
2 |
(direct) = (direct) XOR (A) |
|
XRL direct, #data |
3 |
(direct) = (direct) ХОР #data |
|
CLR A |
1 |
(A) = 0 |
|
CPL A |
1 |
(A)
= ( |
|
RL A |
1 |
Содержание аккумулятора сдвигается влево на 1 бит |
|
RLC A |
1 |
Сдвигается влево через перенос 1 битом |
|
RR A |
1 |
Содержание аккумулятора сдвигается вправо на 1 бит |
|
RRC A |
1 |
Сдвигается вправо через перенос 1 битом |
|
SWAP A |
1 |
(A3-0)_(A7-4) |
|
Передача данных |
||
|
MOV A, R n |
1 |
(A) = (Rn) |
|
MOV A, direct |
2 |
(A) = (direct) |
|
MOV A, @Ri |
1 |
(A) = ((Ri)) |
|
MOV A, #data |
2 |
(A) = #data |
|
MOV Rn, A |
1 |
(Rn)=(A) |
|
MOV Rn, direct |
2 |
(Rn) = (direct) |
|
MOV Rn, #data |
2 |
(Rn) = #data |
|
MOV direct, A |
2 |
(direct) =(A) |
|
MOV direct, Rn |
2 |
(direct) =(Rn) |
|
MOV direct1, direct2 |
3 |
(directi) = (direct2) (source) (destinstion) |
|
MOV direct, @Ri |
2 |
(direct) =((Ri)) |
|
MOVdirect, #data |
3 |
(direct) = #data |
|
MOV @Ri,A |
1 |
((Ri)) = A |
|
MOV @Ri, direct |
2 |
((Ri)) = (direct) |
|
MOV @Ri, #data |
2 |
((Ri)) = #data |
|
MOV DPTR, #data16 |
3 |
(DPTR) =#data15-0 (DPH) = #data15-8 (DPL)=#data7-0 |
|
MOVC A, @A + DPTR |
1 |
(A) = ((A) + (DPTR)) |
|
MOVC A, @ A + PC |
1 |
(A) = ((A) + (PC)) |
|
MOVXA, @Ri |
1 |
(A) = ((Ri)) |
|
MOVX @DPTR |
1 |
(A) = ((DPTR)) |
|
MOVX @Ri, A |
1 |
((Ri)) = (A) |
|
MOVX @DPTR, A |
1 |
((DPTR)) = (A) |
|
PUSH direct |
2 |
(SP) = (SP) +1 ((SP)) = (direct) |
|
POP direct |
2 |
(direct) = ((SP)) (SP) = (SP) -1 |
|
XCH A, Rn |
1 |
(A) = (Rn) |
|
XCH A, direct |
2 |
(A) = (direct) |
|
XCH A, @Ri |
1 |
(A) = ((Ri)) |
|
XCHD A, @Ri |
1 |
(A3-o) = ((Ri3-o)l |
|
Логическая переменная обработка |
||
|
CLR C |
1 |
(C) = 0 |
|
CLR bit |
2 |
(bit) = 0 |
|
SETB C |
1 |
(C) = 1 |
|
SETB bit |
2 |
(bit) = 1 |
|
CPL C |
1 |
(C)
= ( |
|
CPL bit |
2 |
(bit)
= ( |
|
ANL C, bit |
2 |
(C) = (C)AND(bit) |
|
ANL
C,
|
2 |
(C)
= (C) AND ( |
|
ORL C, bit |
2 |
(C) = (C)OR(bit) |
|
ORL
C,
|
2 |
(C)
= (C) OR ( |
|
MOV С, bit |
2 |
(C) = (bit) |
|
MOV bit, С |
2 |
(bit) = (C) |
|
Программный переход |
||
|
ACALL addr 11 |
2 |
(PC) = (PC) + 2 (SP)=(SP) + 1 ((SP)) = (PC7-0) (SP) = (SP) + 1 ((SP)) = (PC15-8) (PC) = page address |
|
LCALL addr 16 |
3 |
(PC) = (PC) + 3 (SP)=(SP) + 1 ((SP)) = (PC7-0) (SP) = (SP) + 1 ((SP)) = (PC15-8) (PC) = addr15-0 |
|
RET |
1 |
(PC15-8) =((SP)) (SP) = (SP) – 1 (PC7-0) = ((SP)) (SP) = (SP) - 1 |
|
RETI |
1 |
(PC15-8 ) =((SP)) (SP) = (SP) – 1 (PC7-0) = ((SP)) (SP) = (SP) - 1 |
|
AJMP addr 11 |
2 |
(PC) = (PC) + 2 (PC10-0 ) = page address |
|
LJMP addr 16 |
3 |
(PC) = addr15-0 |
|
SJMP rel |
2 |
(PC) = (PC) + 2 (PC) = (PC) + rel
|
|
JMP @A + DPTR |
1 |
(PC) = (A) + (DPTR) |
|
JZ rel |
2 |
(PC) = (PC) + 2 IF (A) = 0 THEN (PC) = (PC) + rel |
|
JNZ rel |
2 |
(PC) = (PC) + 2 IF
(A)
|
