Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

На сортировку / 5 / 77730 / Adaev4laba

.docx
Скачиваний:
10
Добавлен:
12.12.2017
Размер:
530.11 Кб
Скачать

Некоммерческое акционерное общество

«АЛМАТИНСКИЙ УНИВЕРСИТЕТ ЭНЕРГЕТИКИ И СВЯЗИ»

Кафедра «Инженерной кибернетики»

Лабораторная работа № 4

По дисциплине Программирование цифровой техники и микроконтроллеров управления

Специальность «5В070200 – Автоматизация и управление»

Выполнил Адаев А. . Группа АУТ-15-5

(Ф.И.О.)

Принял доцент Федоренко И.А.

(ученая степень, звание, Ф.И.О.)

__________ ________________ «_____»________________2017 г.

(оценка) (подпись)

Алматы 2017

Задание: Даны четыре двоичных числа. Найти сумму1 и количество1 среди чисел, меньших константы К, и сумму2 и количество2, больших константы К.

R1 = ‘00000001’; 1; R2 = ‘00000010’; 2; R3 = ‘00000100’; 4; R4 = ‘00001000’; 8; K = ‘000000011’; 3

РУЧНОЙ СЧЕТ: Меньше K1 R1 и R2 количество 2 сумма равна 3

Больше K R3 и R4 количесвто 2 сумма равна 12

Начало

Блок-схема:

MOVLW B’00000011’

MOVWF K

MOVLW B’00000001’

MOVWF R1

MOVLW B’00000010’

MOVWF R2

MOVLW B’00000100’

MOVWF R3

MOVLW B’00001000’

MOVWF R4

CLRF SUM

CLRF I

CLRF IK

А

MOVF R1,0

B

MOVWF FSR

MOVF K,0

SUBWF INDF,0

C=0 K>INDF

C=1 K<INDF

BTFSS STATUS,C

MOVF INDF,0

MOVF INDF,0

ADDWF S2,1

ADDWF S1,1

INCF K1,1

INCF K2,1

INCF FSR,1

INCF I,1

MOVF I,0

SUBWF K,0

BTFSS STATUS,Z

Z=0 I≠IK

Z=1 I=IK

Конец

Программа:

include<p16F877.inc>

R1 EQU h'20'

R2 EQU h'21'

R3 EQU h'22'

R4 EQU h'23'

K EQU h'24'

KOL1 EQU h'25'

KOL2 EQU h'26'

SUM1 EQU H'27'

SUM2 EQU H'28'

I EQU h'29'

IK EQU h'30'

org 0x00

nop

nop

nop

START

CLRF STATUS

BSF STATUS,RP0

CLRF TRISC

CLRF STATUS

CLRF PORTC

CLRF R1;

CLRF R2;

CLRF R3;

CLRF R4;

CLRF KOL1;

CLRF KOL2;

CLRF SUM1;

CLRF SUM2;

MOVLW B'00000001'

MOVWF R1

MOVLW B'00000010'

MOVWF R2

MOVLW B'00000100'

MOVWF R3

MOVLW B'00001000'

MOVWF R4

MOVLW B'00000011'

MOVWF K

CLRF I

CLRF IK

MOVLW B'00000100'

MOVWF IK

MOVLW R1

MOVWF FSR

LOOP

MOVF K,0

SUBWF INDF,0

BTFSS STATUS,C

GOTO M1;

BTFSS STATUS,Z

GOTO M2

GOTO L1

M1

INCF KOL1,1

MOVF INDF,0

ADDWF SUM1,1

GOTO L1

M2

INCF KOL2,1

MOVF INDF,0

ADDWF SUM2,1

L1

INCF FSR,1

INCF I,1

MOVF I,0

SUBWF IK,0

BTFSS STATUS,Z

GOTO LOOP

GOTO $

END

WatchWindow:

Задание: Даны четыре двоичных числа. Найти минимум в диапазоне чисел, больших К1 и меньших или равных К2, где К1<K2.

R1='01100110' 102; R2='11111111' 255; R3='10101110' 174; R4='10111001' 185

MIN='11111111' 255; K1='00000001' 1; K2='11111110' 254

Min= B01100110’; 102

Начало

Блок-схема:

MOVLW B’01100110’

MOVWF R1

MOVLW B’11111111’

MOVWF R2

MOVLW B’10101110’

MOVWF R3

MOVLW B’10111001’

MOVWF R4

MOVLW B’00000001’

MOVWF K1

MOVLW B’11111110’

MOVWF K2

MOVLW B’11111111’

MOVWF MIN

CLRF I

CLRF IK

MOVLW B’00000100’

MOVWF IK

А

MOVF R1,0

B

MOVWF FSR

MOVF INDF,1

SUBWF K1,0

C=1 INDF>K1

C=0 INDF<K1

BTFSC STATUS,C

MOVF INDF,1

SUBWF K2,0

BTFSS STATUS,C

C=1 INDF>K2

C=0 INDF<K1

MOVF INDF,0

SUBWF MIN

BTFSS STATUS,C

C=1 INDF<MIN

C=0 INDF>MIN

INCF FSR,1

MOVF INDF,0

INCF I,1

MOVWF MIN

MOVF I,0

SUBWF K,0

BTFSS STATUS,Z

Z=0 I≠IK

Z=1 I=IK

Конец

Программа:

include<p16f877.inc>

R1 EQU h'20'

R2 EQU h'21'

R3 EQU h'22'

R4 EQU h'23'

K1 EQU h'24'

K2 EQU h'25'

MIN EQU h'26'

I EQU h'27'

IK EQU h'28'

org 0x000

nop

nop

nop

START

CLRF STATUS

BSF STATUS, 5

CLRF TRISC

CLRF STATUS

CLRF PORTC

MOVLW B'11111111'

MOVWF MIN

MOVLW B'01100110'

MOVWF R1

MOVLW B'11111111'

MOVWF R2

MOVLW B'10101110'

MOVWF R3

MOVLW B'10111001'

MOVWF R4

MOVLW B'00000001'

MOVWF K1

MOVLW B'11111110'

MOVWF K2

CLRF I

CLRF IK

MOVLW B'00000100'

MOVWF IK

MOVLW R1

MOVWF FSR

LOOP

MOVF INDF,0

SUBWF K1,0

BTFSC STATUS,C

GOTO PEREXOD

MOVF INDF,0

SUBWF K2,0

BTFSS STATUS,C

GOTO PEREXOD

MOVF INDF,0

SUBWF MIN,0

BTFSS STATUS,C

GOTO PEREXOD

MOVF INDF,0

MOVWF MIN

PEREXOD

INCF FSR,1

INCF I,1

MOVF I,0

SUBWF IK,0

BTFSS STATUS,Z

GOTO LOOP

GOTO $

END

WatchWindow:

7

Соседние файлы в папке 77730