|
МК
Система
команд МК PIC16C7X (Отчет по лабе)
Цель работы: изучение системы команд микроконтроллера (МК) PIC16C7X; получение навыков
программирования МК на языке Ассемблер.
Номер
варианта задания: Var1;
Номер
нажатой клавиши: N=1.
Графическая
схема алгоритма
Листинг
программы
Title “Lab1.asm”
list p=16c74
errorlevel 1,
-(305)
#include “p16c74.inc”
Buf1 equ
20
Cnt equ
23
RxBuf equ 24
org 0
movlw 0
movwf PCLATH
goto Start
org 100
Start
Call ConstInit
Priem call Receiv
movlw 2
xorwf PORTA, f
movlw 3
movwf Cnt
movlw Buf1
movwf FSR
bsf STATUS, C
movf RxBuf, w
Var1 movwf
INDF
rlf INDF, w
addwf INDF, f
iorwf INDF, f
incf FSR, f
decfsz Cnt, f
goto
Var1
End1
movwf INDF
incf FSR, f
movf STATUS, w
movwf INDF
movlw 5
movwf Cnt
movlw Buf1
movwf FSR
…
|
4)Результаты
выполнения вручную операций с 8-разрядными двоичными числами в соответствии с
текстом программы.
С
|
bin
|
hex
|
Команда
|
W
|
|
1
|
00110001
|
31
|
movwf INDF
|
31
|
31
|
0
|
01100011
|
63
|
rlf INDF,w
|
63
|
31
|
0
|
10010100
|
94
|
addwf INDF,f
|
63
|
94
|
0
|
11110111
|
F7
|
iorwf INDF,f
|
63
|
F7
|
С
|
bin
|
hex
|
Команда
|
W
|
|
0
|
01100011
|
63
|
movwf INDF
|
63
|
63
|
0
|
11000110
|
C6
|
rlf INDF,w
|
C6
|
63
|
1
|
00101001
|
29
|
addwf INDF,f
|
C6
|
29
|
1
|
11101111
|
EF
|
iorwf INDF,f
|
C6
|
EF
|
С
|
bin
|
hex
|
Команда
|
W
|
|
1
|
11000110
|
C6
|
movwf INDF
|
C6
|
C6
|
1
|
10001101
|
8D
|
rlf INDF,w
|
8D
|
C6
|
1
|
01010011
|
53
|
addwf INDF,f
|
8D
|
53
|
1
|
11011111
|
DF
|
iorwf INDF,f
|
8D
|
DF
|
5)
Сводная таблица результатов
Команда
|
Ячейка
|
W
|
20
|
W
|
21
|
W
|
22
|
Пересылка
|
31
|
31
|
63
|
63
|
C6
|
C6
|
Сдвиг
|
63
|
31
|
C6
|
63
|
8D
|
C6
|
Арифметическая
операция
|
63
|
94
|
C6
|
29
|
8D
|
53
|
Логическая
операция
|
63
|
F7
|
C6
|
EF
|
8D
|
DF
|
|
|