Chiziqli dvigatelni boshqarish algoritmi va programmasi

Chiziqli dvigatelni boshqarish algoritmi va programmasi.
Navbatdagi vazifa boshqarish jarayonini bevosita amalga oshiruvchi
programma tuzish
bơlib, buning uchun avvalo boshqarish algoritmini qurish zarur.
3.6-rasmda boshqarish algoritmining blok-sxemasi keltirilgan.
QS-qadamlar schyotchigi; TS-taktlar schyotchigi.
3.6
– rasm. Boshqarish algoritmining blok-sxemisi.
М2:
М1:
1
Boshlanish
2
BOni
boshlang’ch
holatga keltirish
3
Qadamlar
schetchigini
o’rnatish (QS)
4
Taktlar
schetchigini
o’rnatish (ТS)
5
Navbatdagi
kodga o’tish.
6
Boshqarish
kodini
uzatish.
7
ТS=ТS-1
8
ТS=0
9
QS=QS-1
10
QS=0
11
Boshqarishni
to’htatish.
12
Tamom
Ha
Ha
Yo’q
Yo’q
Bu algoritmni amalga oshiruvchi programmani K580BM80A bir kristalli, 8
razryadli mikroprotsessorning Assembler tilida tuzamiz.
Adres
Komanda
Kodi
Ơtish
belgisi
Komanda
Izox
0800
0802
0804
0807
0809
080V
080E
0810
0812
3E 0S
D3 80
SD 0009
3E 0D
D3 80
SD 0009
3E 00
D3 80
SD 0009
MVI A,OC
OUT KA
CALL «Pauza»
MVI A, OD
OUT KA
CALL «Pauza»
MVI A, 00
OUT KA
CALL «Pauza»
Boshqarish
ob`ektini
dastlabgi xolatga keltirish
«Pauza» podpragrammasi
0900 da boshlangan
0815
0817
0819
081S
081D
081F
0822
0823
0824
0827
0828
06 0A
0E 07
21 000B
7E
D3 80
SD 0009
23
0D
S2 1S08
05
S2 170V
M1:
M2:
MVI B, OA
MVI C, 07
LXI H, 0B00
MOV A, M
OUT KA
CALL «Pauza»
INX H
DCR C
JNZ M2
DCR 8
JNZ M1
QSch. 10 ga
ơrnatildi TSch.
7 ga
ơrnatildi
Regis. jufligiga yozish
HL ga OVOO yoziladi
Xotiradan
akkumulyatorga,
sơngra
kanal Aga boshqarish kodi
uzatiladi
HL=HL+1
C=C-1
082V
082D
082F
3E 00
D3 80
76
MVI A, 00
OUT KA
HLT
Tơxtash signali
Tamom
0900
0902
0903
0906
3E FF
3D
C2 02 09
C9
M1:
MVI A,FF
DCR A
JNZ P1
RET
«PAUZA»
podpragrammasi
UMK da oddiy programmalarni va arifmetik amallarni bajarish; (1 soat)
1816 bitta kristalli mikrokontrolleri uchun programmalarga misollar.
Quyida ko’rib chiqilgan turli hisoblash protsedurasi programma ishlatilishi
misoli mos nomlari bilan berilgan qi
sm programmasi ko’rinishida tashkil qilinadi.
Misollarda, agar alohida shart
qo’yilmagan bo’lsa, R0 va R1 registrlari vositali adres
registrlari sifatida ishlatiladi, R2 registri akkumulyator kengaytiruvchisi
funksiyasini bajaradi (2 baytli so’zlar ustidagi operasiyalarda), R3 registri esa
rogramma sikllari hisobchisi bo’ladi. Ikki baytli sonlar ustidagi operatsiyalarda
vositali adres registri sonning katta baytini k
o’rsatadi. Akkumulyator operandlar va
natijalarni vaqtin
cha yozib qo’yadigan joylardan birining manbasi sifatida
ishlatiladi.
3.1-jadval
DIVU0:
PROC
-
bo’luvchi nolga tengmi?
CMP
BX, 0
JNZ
DVROK
-
ha, bo’lishni inkor qilish
INT
0
- joriy qiymatni saqlash
DVROK:
PUSH ES
-ES stekda saqlash
PUSH DI
-DI ni stekda saqlash
PUSH CX
-SX ni stekda saqlash
MOV DI, 0
-
0 to’xtatish vektorini
tanlash
MOV ES, DI
PUSH ES[DI]
-vektorni stekda saqlash
PUSH ES:[DI+2]
LEA
CX, OVR-
INT
-INTO vektori OVR-INT
belgisiga
MOV ES: [DI],
CX
MOV CX, SEG
OVR-INT
MOV ES:[DI+2],
CX
DIV
BX
-t
o’lib ketish
bo’lmaganda,
SUB
BX, BX
-BX=0
RESTORE: POP
ES:[DI+2]
-INTO vektorini tiklash
POP
ES:[DI]
POP
CX
-registrni
qiymatini tiklash
POP
DI
POP
ES
RET
- qaytish
-Ushbu
to’xtatish dastur fragmenti to’lib ketganda bajariladi
OVR
–
INT:
POP
CX
-
SUB BX, BX buyrug’iga
o’tish uchun qaytish
adresinimodifikasiyalash
LEA
CX,
RESTORE
PUSH SX
PUSH AX
-AX qiymatini stekda
saqlash
MOV AX, DX
-
bo’linuvchini katta
so’zini yuklash
SUB
DX, DX
DIV
BX
- AX ga natijani katta
so’zini,DX ga oraliq
qoldiqni yuklash
POP
CX
- AX ni SX da tanlash
PUSH AX
-
natijaning katta so’zini
saqlash
MOV AX, CX
-
bo’linuvchining kichik
so’zini saqlash
DIV
BX
-
natijaning kichik so’zi
BX da,q
oldig’i DX da
POP
BX
- xususiy BX:AX da
IRET
-
to’xtalishdan Qaytarish
DIVU0
EHDP
Ikki baytli sonlarni qo’shish
3.2-jadval
ADD2B:
DEC
RO
OXQ dagi kichik bayt
adresini shakllanishi
ADD
A,@R0
kichik baytlarni qo’shish
INC
RO
katta bayt adresini
shakllanishi
XCH
A, R2
baytlar almashinuvi
ADDC
A,@R0
katta baytlarni siljish
bilan qo’shilishi
XCH
A, R2
natija (R2
– katta bayt,
A
– kichik bayt)
RET
qaytarish
Ikki baytli sonlar ayirmasi.
1816 MK da ayirish buyru
g’i yo’q va u bitta qo’shiluvchining uning teskari
yoki qo
’shimcha kodi bilan almashuv yig’masi bilan almashtiriladi. Quyidagi
misolda ishorasiz butun sonlar va teskari kod ishlatiladi.
3.3-jadval
SUB2B:
DEC
RO
ayirmaning kichik baytini
adresini shakllanishi
CPL
A
akkumlyatordagi kamayuvchini
kichik baytini teskarisiga
aylantirish
ADD
A,@R0
qo’shish
CPL
A
natija qiymatini teskarisiga
aylantirish
INC
RO
ayirmaning katta baytini adresini
shakllantirish
XCH
A, R2
almashish
CPL
A
kamayuvchini katta baytini
teskarisiga aylantirish
ADDC
A,@R0
ko’chirish bo’yicha qo’shish
CPL
A
natijani qismini teskarisiga
aylanitirish
XCH
A, R2
natijani shakllantirish
RET
qaytarish
Ikki baytli natijalarni OXQ joylashtirish
3.4-jadval
STOR2B:
DEC
RO
kichik baytning OXK dagi
adresi
MOV
@R0,A kichik baytni saqlanishi
INC
RO
katta baytning OXQ dagi
adresi
XCH
A, R2 akkumulyator va
kengaytiruvchi almashinuvi
MOV
@R0,
A
katta bayt saqlanishi
RET
qaytarish
Ikki baytli so’zlar almashinuvi
EXSN2V:
DEC
RO
kichik baytning adresi
XCH
A,
@R0
kichik baytlarni almashinuvi
INC
RO
katta baytning adresi
XCH
A, R2 akkumulyator va
kengaytiruvchi almashinuvi
XCH
A,
@R0
katta baytlar almashinuvi
XCH
A, R2 akkumulyator va
kengaytiruvchi almashinuvi
RET
qaytarish
Ikki baytli so’zlarni chapga mantiqiy
siljishi
SHIFTLL:
RLC
A
kichik baytning siljishi
XCH
A, R2 akkumulyator va
kengaytiruvchi almashinuvi
RLC
A
katta baytning siljishi
XCH
A, R2 almashinuv
RET
qaytarish
Ikki baytli so’zlarning o’ngga arifmetik siljishi
SHIFTAR:
CLR
S
siljish alomati
CPL
S
bir holatda siljishni
o’rnatish
o’rnatish
XSN
A, R2 baytlar almashinuvi
JB7
S+3
agar R2=1 bo’lsa,
unda almashinuv alomatini
tozalash
CLR
S
S ni R2 kengaytiriishga
RRC
A
siljitish
XSN
A, R2 almashinuv
RRC
A
kichik baytni siljitish
RET
qaytarish
Nazorat savollari
1. Buyruq deganda nimani tushunishingizni bayon eting, misollar keltiring.
2. Amallar kodiga tushuncha bering, misollar keltiring.
3. Amallar kodi necha baytli bo’lishi mumkin, misollar keltiring.
4.To’g’ri adreslash usulining amallar kodini baytligi to’g’risida tushuncha bering,
misol keltiring.
5. Bevosita adreslash usulining amallar kodini tushuncha bering, misol keltiring.
6. Vositali adreslash usulining amallar kodini baytligi to’g’risida tushuncha bering,
misol keltiring.
Tajriba ishi №4
MP li boshqarish sistemasining klaviaturasi va displeyini boshqarishni
tadqiq etish; (1 soat)
Tajriba ishining maqsadi: KR580VV55 parallelinterfeysni tadqiq qilish.
4.1-rasm. Periferiya qurilmalari uchun programmalashtiriladigai parallel
interfeys KR580VV55.
KN1 kanali 8-razryadli signallarni tashkil eta oladigan RG1 va RG2 kiritish-
chiqarish registrlaridan tashkil topgan, hamda 0, 1 va 2 rejimlarida ishlashi mumkin.
"0" rejimida ma’lumotni kiritish uzluksiz ravishda amalga oshiriladi, ya’ni kiritish
registri o’zini holatini kirishdagi qiymatlarning o’zgarishi bo’yicha o’zgartiradi "0"
va "1" rejimlarida ma’lumotlarni chiqarish ham chiqishdagi registrning ma’lumoti
almashguniga qadar uzluksiz ravishda amalga oshiriladi.
Kirish registriga 1
va 2 rejimlarida uzluksiz ravishda ma’lumotni kiritish va 2
rejimda ma’lumotni chiqarish/qabul qilishni boshqaruvchi tashqi signal bor paytida
amalga oshadi.
KR580VV55 interfeysining chiqishlarini vazifalari.
4.1-jadval.
Belgilanishi
Nomlari
Eslatma
KNZ
KN2
KN1
SBR
ZP
SHD
CHT
VM
A
1
.A
0
U
ip
3- kanal [0-7]
2- kanal [0
–7]
1- kanal [0-7]
KIS ni boshlangich holatga
keltirish
qiymatlar shinasidan
ma’lumotni qabul qilishga
ruxsat berish
0-7 qiymatlar shinasi
qiymatlar shinasiga
ma’lumotlarni uzatishga ruxsat
berish
Qurilmani tanlashga ruxsat
berish
Umumiy KN1, KN2 va KNZ
kanallariniadresi
+5 V manba
kirish-chiqish
kirish-chiqish
kirish-chiqish
kirish
kirish
kirish-chiqish
kirish
kirish
kirish
kirish
KR580VV55 mikrosxemasi va MP o
rasida ma’lumotlarni almashuvini kirish
signallari holatga bog’liqlik jadvali
4.2-jadval
O’qish
Yozish
Kirish-
larini
nomlari
shkn1
shd
shkn2
shd
Shkn3
3shd
Shd
shkn1
Shd
shkn2
Shd
shkn3
Shd
RGU
VU
0
0
0
0
0
0
0
CHT
0
0
0
1
1
1
1
ZP
1
1
1
0
0
0
0
A1
0
1
0
0
1
0
1
A0
0
1
0
0
1
0
1
4.2-rasm. KR580VV55 interfeysini displey va klaviaturaga ulanish sxemasi.
KN2 kanali 8-razryadli kirituvchi/chiqaruvchi registrdan (RGUZ), tashkil
etuvchilardan (formirovatellardan) tuzilgan hamda "0" va "1" rejimlarida
ma’lumotlarni kiritishda ishlashi mumkin.
Kanalning registri "0" rejimida kanalning kirishidagi holatini o’zgarishiga
tengdosh ravishda o’zini holatini o’zgartiradi. "1" rejimida ma’lumotlarni kiritish,
qabul qilishni boshqaruvchi tashqi signalni ta’miri natijasida amalga oshiriladi.
KNZ kanali ikkita 4-razryadli [0-3] va [4-7] razryadli registrlardan tashkil
topgan. KMZ kanali "0" va "1" rejimlarida ishlashi mumkin. "0" rejimida 4-razryadli
s
o’zni kiritish/chiqarish amalga oshiriladi. "1" rejimida KNZ kanali boshqaruvchi
signallarni qabul qilish va chiqarib berish uchun foydalaniladi (agarda KN1 va KN2
kanallari "1" yoki "2" rejimlarida ishlayotgan b
o’lsa). Kanalning registrlari
birgalikda 8-razryadli holat registri sifatida ham ishlatiladi.
Har bir kanalning ishlash rejimi RGU ga kiritilgan boshqaruvchi s
o’zning
kodini turiga (qanday kod ekanligiga) qarab aniqlanadi. KN1 da KN2 kanallarining
rejimlari ixtiyoriy (bo
g’liqsiz) o’rnatiladi, KNZ kanalining rejimi esa KN1 va KN2
kanallarining ishlash rejimlariga bo
g’liq. Har qanday kanalning ishlash
rejimi
o’zgarganda kirish/chiqish registrlari "0" holatiga keladi. Kanallarni ishlash
rejimlarini kombinatsiyalash parallel interfeysli KIS ni har kanday periferiya
qurilmalari bilan ishlashini ta’minlaydi.
|