Бердак номидаги каракалпок давлат уневерситети


Расм. Узилиш функцияларига мисол келтириш блок – схемаси


Download 1.02 Mb.
bet20/21
Sana16.04.2023
Hajmi1.02 Mb.
#1361375
1   ...   13   14   15   16   17   18   19   20   21
Bog'liq
микропроцессор

Расм. Узилиш функцияларига

мисол келтириш блок – схемаси.




Дастур


Юљоридаги блок схема дастури


8000 IN А, (С)
AND FO
CP (CO)
JP NZ, 8000

RST 08

HALT

  1. DJNZ 800F

Клавиатурада босилган клавиш
белгисининг дисплейга чикиш йўли.

Агар клавиатурадан босилган клавиш белгиси экрангача босиб ўтган йўли ва бу йўлдаги микросхемалар билан танишилса процессорнинг клавиатура ва дисплей билан уланиш масаласи анча ойдинлашади. Бу жараён расмда кўрсатилган.

Клавиатура процессори

Экранга чиљариш узилиши

Клавиатура буфери

Клавиатура узилиши ОХК га ёзилган

Видеобуфер

Рас
м

ASCII коди ва кенгайтирилган кодлар

А)

(В)

(Б)

(С)

(Д)

(Т)

(Е)

(Г)



8255 ташљи курилма интерфейси

Дастур коди

QUЛ

(А) клавиатура процессори ќар бир клавишнинг босилиш белгисини љабул љилади ва А портга скан – кодни узатади.


Скан – код – бу 1 байтли сон бўлиб, кичик 7 бити ќар бир клавиш белгисига љўшилган идентификация номерини билдиради. Коднинг катта бити босилдими (бит =1 босилиш коди )ёки љўйворилдими (бит =0 босмаганлик коди) ќаљида хабар беради. Бирор клавиш босилганда А портига 10110000 коди узатилади, бўшатилганда эса 0011000 коди узатилади. Шундай љилиб ќар бир клавиш

босилганда 8255 микросхемасида 2 марта љайд љилинади. Ќар бир холатда микросхема клавиатура микропроцессорга тасдиљ сигнали жўнатилади.


8255 микросхема интерфейси клавиатурадан маълумот олади ва бир љатор ташљи љурилмаларни бошљаради. Бу микросхема 3 та 8 битли портларга эга.
(В) А портига скан - код берилганда клавиатура узилиши чаљирилади. Процессор тезлик билан ўз ишини тўхтатиб скан – код таќлили билан шуђуланади. Шу пайтда суриш клавишидан код келиб љолса хотирага ёзиб љўйилади.
(С) Љабул љилинган код клавиатура буферига жойлаштирилади. Клавиатура буфери хотира области ќисобланиб дастур ишлов беришга улгуролмай турган пайтда 15 та гача белгини эслаб туриши мумкин.
(Е) Дастур коди кодларни беради. Кодларнинг 2 тури мавжуд. ASCII ва кенгайтирилган кодлар.
ASCII коди бу байтли код бўлиб танланган кодлардан иборат. Бундан ташљари ASCII коди 32 та бошљарувчи кодга эга бўлиб, улар ташљи курилмаларга маълумот жўнатиш учун ишлатилади.
2 чи кодлар тури кенгайтирилган кодлар клавиш ва клавишлар камбинациясини ўз ичига олади. Кенгайтирилган кодлар 2 байт узунликка эга, 1 чи байт ќар доим ASCII 0, 2 чи байт кенгайтирилган код номери бўлади.
Масалан: 0:30 коди ALT-А клавишлар комбинациясини билдиради. Биринчи турган 0 дастурга берилган коднинг љайси љодлар тўпламида ASCII ёки кенгайтирилган кодларга тегишли эканлигини билдиради.

Клавиатура узилишини дастурлаш.

Клавиатура МП ри скан – кодни А портга жойлаганда, 8255 микросхемаси узилишини чиқиради.
Бу узилишнинг вазифаси – скан – кодни белгига айлантириш, ва уни клавиатура буферига жойлаш.
Клавиатура узилиши бўлиши учун 3 та асосий љадам хисобланади.


  1. Скан – кодни ўљиш ва клавиатурага тасдиљ сигналини жўнатиш зарур.

  2. Скан – кодни код номерига айлантириш керак.

  3. Клавиш кодини клавиатура буферига жойлаш керак.

Узилиш чакирилган пайтда скан – код А портида жойлашган булади. Шунинг учун бу кодни ўљиш ва уни стекда саљлаш керак. Кейин В порти (адреси 61 Н) клавиатура МП ига тасдиљ сигнални жўнатиш учун ишлатилади.
Киритилган белги идентификация љилингандан кейин, бу жараён клавиатурадан кириш жараёни ўзига муносиб кодни топиши зарур. ASCII кодими ёки кенгайтирилган код. Умуман олганда скан – код XLAT инструкцияси билан таќлил љилинувчи маълумотлар жадвали элементи билан таљљосланади. XLAT AL да 0 дан 255 гача сонларни љабул љилади ва AL га ДS : ВХ билан кўрсатувчи 256 байтли жадвалдан 1 байтли љиймат жўнатади. Жадвал маълумотлар сегментида жойлашган бўлиши мумкин. Агар AL да 30 скан – коди жойлашган булса, у холда у ерга жадвалдан 30 байти узатилади.
ASCII коди «а» ни бергани учун бу байт жадвалда 97 билан тенг ўрнатилиши керак. Албатта «А» ни олиш учун бошља жадвал керак.

Охир ољибат кодлар номери клавиатура буферида жойлашади. Иш жараёни буферда кейинги белгига жой бор йўљлигини текшириш билан бошланиши керак.


Янги белгилар буфер ячейкасига каттарољ адрес билан жойлаштирилади. Баландги љаторлар тўлгандан кейин навбатдаги белги пастки љисмига жойлаштирилади. Љачонки охирини кўрсаткич бошини кўрсаткичдан 2 марта кам булса буфер тўлган бўлади яъни бошини кўрсаткич 30 га тенг булса (буфер областининг боши) охирини кўрсаткич 60 га тенг булиши керак.




Клавиш узилиш дастури.


Маълумотлар сигментида.




TABLETB 16 dup (0) : 1 чи 16 байтни љўйвориш

DB ‘qwertyuiop’,0,0,0,0, Клавиатуранинг баландки љисми

DB ‘asdfghjkl’,0,0,0,0,0, Клавиатура ўрта љисми

DB ‘zxcvbnm’ Клавиатура пастки љисми

DB ’16 dup (0) Баландки регистргача рухсат

DB ‘QWERTYUIOP’ Баланддаги белгилар

DB ‘ASDFGHJKL’ регистра

DB ‘ZXCVBNM’

Дастур бошланишида узилишни ўрнатиб оламиз.


DI Узилишни ман љилиш


PUSH DS Регистрда саклаймиз
LD AX,SEG-N.KEY Узилимга
LD DS,AX Ишлов бериш тараёнини
LD DX,OFSET N.KEY Кўрсатиш керак
LD AL,9 Узилиш векторнинг номери
LD AH,25H Тизим функция номери
INT 21 Узилиш векторни ўзгартирамиз
POP DS Регистрни тиклаш
EI Узилишга рухсат

Клавиатура узилишининг ўзи


N-KEY PROG FAR Хамма ўзгарувчиларни саљлаш


PUSH AX хамма регистрлар
PUSH BX
PUSH CX
PUSH DX
PUSH ES

Скан кодни љабул љилиш ва тасдиљ


сигналини жўнатиш




IN AL,60H А портдан скан – кодни олиш.

LD AH,AL шунинг ўзини АН га жойлаймиз.

PUSH AX скан – кодни саклаймиз

IN AL,61H В порт холатини ўљиймиз

OR AL,10000000B 7 битини ўрнатамиз

OUT 61H,AL ўзгарган байтни портга шўнатамиз

AND AL,01111111B 7 битини олиб ташлаш

OUT 61H,AL В порт холатига кайтамиз




ES, BIOS маьлумотлар областини курсатиши керак




LD AX,40H сегментни ўрнатамиз

LD ES,AX

POP AX скан – код стекдан љайтди




Download 1.02 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   21




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling