Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МУ Прог ЦТ лаб_каз_2012_последн вариант.doc
Скачиваний:
18
Добавлен:
01.05.2015
Размер:
4.19 Mб
Скачать

1 Зертханалық жұмыс. Байттық және биттік командалар. Логика

Жұмыс мақсаты: қосу, алу және логикалық функцияларды орындау үшін BSF, BCF, ADDWF, ANDWF, IORWF, XORWF, SUBWF нұсқауларын оқып үйрену.

1.1 Зертханалық жұмыс тапсырмасы

Л1 программасын оқыңыз, теориялық мәліметтерді 1.3 тармақтан оқыңыздар. Ол екі тұрақтыға әртүрлі амалдар қолданады және нәтижесін REZ регистріне жазады. Қолданылған регистрлер қай банктерде орналасқанын анықтаңыздар. Программада ORGh’00’ нұсқауы– ассемблер көрсеткіші,ол осы өрнектен кейін жазылатын код электрлік қайта программаланатынсақтау құрылғысының (ЭППЗУ) нөлдік адресінен бастап жазылатынын көрсетеді.EQU нұсқауыequal(ағыл.) сөзінен–тең дегенді білдіреді.

Л1 программасы.

Include <p16F877.inc>; бұл файлда РСН символдық аттары сипатталған.

R1 EQU h'21' ; R1 - h'21' регистрінің символдық аты.

R2 EQU h'22' ; R2 - h'22' регистрінің символдық аты.

R3 EQU h'23' ; R3 – h'23' регистрінің символдық аты.

REZ EQU h'24' ; REZ – нәтиже жазуға арналған регистр аты.

; МБ жұмысын реттеуге арналған нұсқаулар

ORG h'00' ; келесі NOP нұсқауы h'00' адресіне жазылады.

NOP ; үзу және қайта қосу векторларының орнын қызметі бар

NOP ; командалармен NOP толтырмау үшін

ORG h'05' ; келесі CLRF нұсқауы h’05’ адресіне жазылады.

CLRF STATUS ; регистрді тазартып, нөлдік банкті таңдаймыз.

BSF STATUS, 5 ; бірінші банкке ауысамыз,онда TRISC регистрі бар.

CLRF TRISC; PORTC регистрінің барлық биттерін мәлімет шығаруға орнатамыз.

BCF STATUS, 5; нөлдік банкке қайта ораламыз.

; Программаның жұмысшы бөлігі. Мәліметтері енгізу

MOVLW D'240' ; константаны аккумуляторға W жазу.

MOVWF R1 ; W құрамын R1 регистріне жазу.

MOVLW D'130' ; константаны аккумуляторға W жазу.

MOVWF R2 ; W құрамын R2 регистріне жазу.

MOVLW D'5' ; константаны аккумуляторға W жазу.

MOVWF R3 ; W құрамын R3 регистріне жазу.

; Есептеулерді орындау

MOVF R1, W ; константаны R1 регистрінен W аккумуляторға жазу.

SUBWF R2, W ; азайту W=R2-W=R2- R1.Нәтижесін W-да қалтырамыз.

MOVWF REZ ; W құрамын REZ регистріне жіберу.

MOVF R2, W ; константаны R2 регистрінен W аккумуляторға жазу.

ADDWF R1, W ; W=R2+W=R1+R2.

MOVWF REZ

MOVF R2, W ; R2 құрамын W аккумуляторға жазу.

SUBWF R1, W ; азайту W=R1-W=R1-R2. Нәтижесін W-да қалтырамыз.

MOVWF REZ ; W құрамын REZ регистріне жіберу.

MOVF R2, W ; константаны R2 регистрінен W аккумуляторға жазу.

ADDWF R3, W ; W=R3+W=R2+R3.

MOVWF REZ

MOVF R2, W ; константаны R2 регистрінен W аккумуляторға жазу.

SUBWF R2, W

MOVWF REZ

MOVF R2, W ; константаны R2 регистрінен W аккумуляторға жазу.

ANDWF R1, W ; W=R1 AND W(R2) операциясы, нәтижесі W.

MOVWF REZ

GOTO $

END ; программа соңы.

Программаны өздігіңізше R2+R3,R1ORR2,R1XORR2 операцияларын орындайтын командалармен жалғастырыңыздар.

Нұсқау бойынша мәліметтерді 1.1 кестеден алыңыздар.

1.1кесте –Тапсырма нұсқалары

Нұсқа

R1, R2, R3 адрестеріне жазылатын мәндер

Нұсқа

R1, R2, R3 адрестеріне жазылатын мәндер

1

81h, 12h, 1h

6

86h, 67h, 6h

2

82h, 23h, 2h

7

87h, 68h, 7h

3

83h, 34h, 3h

8

88h, 69h, 8h

4

84h, 45h, 4h

9

89h, 6Ah, 9h

5

85h, 56h, 5h

10

8Ah, 6Bh, Ah