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

2.2 Жұмысты орындау тәртібі

Көрсетілген фрагменттерді қолдана отырып,2.2 кесте бойыншапрограмма дайындаңыз.Программа кодын МБ-ға жазыңыз.Программада қолданылатын регистрлерді көрсетіп бақылау терезесін құрыңыз.Қажетті регистрлер 2.2 суретте көрсетілген.

2.1 кестедегідей программаны қадамдық режимде кестеге толтырыңыз.

2.2 сурет–Бақылау терезесі

2.1 кесте – Массив суммасыжәне массив орташасы

Нұсқа

FSR-де көрсетілетін массив регистрінің адресі

Массив регистріндегі сан

W регистріндегі қосынды немесе SREDNEE регистрінің мәні

Регистр индексі

H формасы

D формасы

В формасы

11

1

40h

D ‘11’

11

00001011

11

2

41h

D ‘13’

24

00011000

11

3

42h

D ‘15’

39

00100111

11

4

43h

D ‘17’

56

00111000

SREDNEE регистрін оңға жылжытып, 56-ны 2-ге бөлеміз

28

00011100

SREDNEE-ні тағы оңға жылжытып, 56-ны 4-ке бөлеміз

14

00001110

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

Нұсқа

Бірінші регистрдің мәні

Массив регистрлерінің адрестері

Нұсқа

Бірінші регистрдің мәні

Массив регистрлерінің адрестері

1

D’21’

21h – 24h

6

D’26’

26h – 29h

2

D’22’

22h – 25h

7

D’27’

27h – 30h

3

D’23’

23h - 26h

8

D’28’

28h – 31h

4

D’24’

24h - 27h

9

D’29’

29h – 32h

5

D’25’

25h - 28h

10

D’30’

30h – 33h

Ескерту – Массивті толтыру қадамы 2-ге тең болғаны ыңғайлы.

2.3 Жұмыс тақырыбы бойынша қысқаша теориялық ақпарат

Маскалау кезінде бастапқы сан мен маска арасында әрбір битбойынша логикалықоперациялар орындалады. Ол бір мезетте бірнеше разрядтарды өзгерту немесе сандардың теңдігін тексеру мақсатында орындалады:

  • AND логикалық операциясы бастапқы санның керекті разрядтарын маска санының көмегімен тазартады, яғни маска-санында 0 тұрса сәйкес разряд тазарады, маска-санында 1 тұрса өзгермейді;

  • OR логикалық операциясы бастапқы санның керекті разрядтарына маска санының көмегімен 1 орнатады, яғни маска-санынды 1 тұрса сәйкес разрядқа 1 орнайды, маска-санында 0 тұрса өзгермейді;

  • XOR логикалық операциясының көмегімен көп жағдайда бастапқы сан мен маска санының теңдігін тексерген ыңғайлы. Егер екі санның сәйкес разрядтарының кем дегенде біреуінің мәні әртүрлі болса оның нәтижесі 1 болады, яғни XOR нәтижесінің кем дегенде бір разрядының 1 болғаны екі санның тең емес екендігін көрсетеді, сондықтан нәтижесі 0 болса екі сан тең.

Маскалау операциясының мысалдары 2.3 кестеде келтірілген.

2.3 кесте– Маскалау нәтижелері

Объекттер

Операция

OR (4-тен 7 дейін 1 орнату)

AND (0-ден 3 дейін тазарту)

XOR (екі сан тең емес)

XOR (екі сан тең)

Сан

10101010

10101010

10101010

11011101

Маска

11110000

11110000

11110000

11011101

Нәтиже

11111010

10100000

01011010

00000000

Циклды шарттық операторлар және ауысу көмегімен орындау керек.

Шартты өту нұсқауларыBTFSCжәнеBTFSSкез келген регистрдегі берілген биттің күйін тексереді, нәтижеге сәйкес программаның келесі нұсқауын аттап кетеді немесе орындайды. BTFSC нұсқауы берілген бит 0-ге тең болса аттап кетеді. BTFSS нұсқауы берілген бит 1-ге тең болса аттап кетеді. Осының негізінде басқаруды программаның басқа бөлігіне беру арқылы цикл ұйымдасады, 2.4 кестені қараңыздар.

2.4 кесте - Шартты өту нұсқауларының жұмысы

CARRY (C) битін қолдану

BTFSS STATUS, C

GOTO METKA

MOVWF R2

Carry биті 1-ге тең болса, онда программаның келесі нұсқауы GOTO МЕТКА орындалмай аттап кетіледі, MOVWF R2 нұсқауы орындалады

Carry биті 0-ге тең болса келесі нұсқау GOTO METKA орындалады

ZERO (Z) битін қолдану

BTFSS STATUS, Z

MOVF R2, W

MOVWF PORTC

Z 1-ге тең болса, онда программаның келесі нұсқауы MOVF R2, W орындалмай аттап кетіледі, MOVWF PORTC нұсқауы орындалады

Z биті 0-ге тең болса келесі нұсқау MOVF R2, W нұсқауы орындалады, содан кейін MOVWF PORTC нұсқауы орындалады

Нақты программаларда 2.4 кестеде көрсетілген нұсқаулар орнына алгоритмге сәйес нұсқаулар орналастыру керек.

Алдыңғы зертханалық жұмыстарда абсолютті адрестеу қолданылды, онда регистр адресі нұсқауда жазылады. Бұл зертханалық жұмыста жанама адрестеу қолданылады, онда нұқсауға адрес көрсеткіші жазылады, ол программа барысында өзгеруі мүмкін [2, 3, 6].