6.1. SIMULYATISH QURILMA Sxemasini QURISh
MCS-51 bazasi subfamiliyasining klassik arxitekturasi anchagina funktsional
ko'rsatmalar tizimi tufayli akkumulyator tipidagi CISC arxitekturalariga yaqinroqdir,
garchi u Garvard arxitekturasi va RISC tizimlari uchun xos bo'lgan alohida
ma'lumotlar va ko'rsatmalar xotirasi vositalariga ega.
sport zali ishlab chiqaruvchilari.
hisoblash jarayonini tartibga solish, tizim shinasiga yangi almashinuv protokollarini
joriy etish, bu ularni boshqalar bilan raqobatbardosh qiladi.
INTEL MCS-51 OILASI
6. MIKRONATROLLERLAR ASOSIDAGI TIZIMLARNI SIMULAYASIYA
xotira vositalariga ortogonal kirish operatsiyalari bilan buyruq tizimlari;
Machine Translated by Google
55
Guruch.
26.
Klaviatura
va
indikatorning
qo'shma
ulanishi
Machine Translated by Google
Guruch. 27. Kodni o'zgartirish
56
3
A := [BATP + (A)]
F7 := 0; F1 := 1
Ha
ProcScan
P1 := (A)
6.2. SIMULYATISH QURILMANING FOYDALANISH DASTURI
A := [BABD + SMBD]
3
RS := SCL(RS)
INT0 ni o‘chirib qo‘ying
P0.3-0 := (RS)
F6=1
O'chirish
bitta
P0 := (Kompyuter)
4
RPS := ((RPS) + 1) mod4
Shaklda ishlatiladigan qisqartmalar. 27 oldingi shaklda ko'rsatilganlarga mos keladi. 23 port nomlari
80C51 uchun haqiqiyga o'zgartirilganligi bilan farq qiladi. Yangi F7 bayrog'i ham joriy etildi, uning yagona
qiymati dasturiy ta'minot taymerining (PRT) faol holatini bildiradi. PRT-ni qayta o'rnatish klaviatura
kontaktining qaytish vaqtining kechikishi tugashi haqida xabar beradi va F1 bayrog'ini o'rnatishga olib
keladi, bu orqali protsedura fon tsiklidan chaqiriladi.
F3 := 0
Yo'q
INT0 ga ruxsat bering
bitta
Klaviaturani 4×4 o'lchamdagi uzilish rejimida so'rov qilish
indad equ r1; bilvosita manzil registrini skanerlash equ 02;
skanerlash kodi registrini pos equ 03; skanerlash kodidagi
nol pozitsiyasi registrlari
klaviatura so'rovi.
2
Yo'q
PRT = 0
4
F7=1
Ha
PRT := (PRT) - 1
Yo'q
Ha
Velosipedni o'tkazib yuborish
2
Chiqish
Machine Translated by Google
57
keybuf 00 ga teng; ma'lumotlar bazasi bufer
registri keyoff equ 04; ma'lumotlar buferidagi ofset
registr com equ 05; buyruq kodi registr ptim equ 06;
dastur taymer hisoblagichi klav equ 07; kalit kodi
registrlari bayroqlari equ 20h; jarayon bayroqlari
hujayra hflags equ 21h; ma'lumotlar va buyruq
bayroqlari hujayra bufpos equ 30h; pozitsiya kodi
bufer bufscan equ 31h; skanerlash kodi bufer tempi
32 soat; vaqtinchalik ro'yxatga olish
.KOD
; konvertatsiya jadvali .dw
3F06h,5B4Fh,666Dh,7D07h,7F6Fh,777Ch,395Eh,7971h org
30h; strt ishga tushirish: mov DPTR, #table mov bayroqlari,#0;
mov skanerlash, # 077h; mov pos kodini
skanerlash, #3; skanerlash kodidagi nol holati mov keybuf,
#70h; ma'lumotlar bufer bazasi mov keyoff, #0 mov tmod,#11h;
tartib 16 bit T/C0 va T/C1 mov sp, # 78h; stek ko'rsatkichini
o'rnatish setb et0; T/C0 setb et1 da uzilishni yoqish; T/C1
to'plamida uzilishni yoqish; umumiy uzilishni yoqish setb
bayroqlari.6; uzilish javobini yoqish INT0 mov TL0,#0d0h;
dastlabki sozlash T/C0 mov TH0,#0ffh setb TR0; T/C0 fonini
boshlash: ; fon loop jb flags.0, dreb ; zarba testi
org0; trigger vektor
jmp strt org 3;
klaviatura uzilish vektori jmp klint org 0bh; toshib
ketish vektori T/C0 jmp rtim org 1bh; toshib ketish
uzilish vektori T/C1 jmp timeop org 20 soat jadvali:
Machine Translated by Google
58
jc m
dec temp
mov a,temp
orl a,klav;
mov klav, a; kalit kodini saqlang a qo'shing,
# 06; > 09 jb a.4,comm mov a,keybuf
mavjudligini tekshiring; ma'lumotlar
buferining asosiy manzili add a,keyoff; ma'lumotlar
buferining bajarilish manzili mov indad,a mov a,klav mov
@indad, a; kalit kodini data buffer inc keyoff-ga kiritish;
ofset modifikatsiyasi mov a,keyoff anl a,#3 mov keyoff, a
setb hflags.1; ma'lumotlar bayrog'ini o'rnatish: mov tl1,#0d0h;
start T/C1 mov th1,#0ffh setb TR1
mov klav,a;
mov P0, bufscan; klaviaturani skanerlash mov
P1,#0ffh mov a,P1; klaviatura kiritish m: inc
temp; kalit kodlari soni
mf1: jb flags.1,opro; bounce timer overflow check mf2: jb flags.2, oper;
T/C1 overflow tekshiruvi mf3: jb flags.3, procscan; jmp fon dreb
skanerlash modifikatsiyasi: clr flags.0; mov ptim,#0d0h; yuklash dasturi
bounce timer setb flags.7; dasturiy ta'minotni ishga tushirish taymerini
jmp mf1 opros: clr flags.1 mov a,bufpos; kalit kodini yaratish rl a
rl a
rrc a
Machine Translated by Google
59
mov p0,#0ffh; indikatorni bo'shatish mov a,
skanerlash; modifikatsiyani skanerlang
; 01 indikatoriga chiqish;
bilvosita registrni saqlash mov a, keybuf; ma'lumotlar buferidan
olish manzilini shakllantirish add a, pos mov indad, a; bilvosita registrni yuklash
mov a, @indad; ma'lumotlar buferidan belgini olish movc a,@a+dptr; mov p2, a
qidiruv jadvaliga kirish; etti segmentli kod chiqishi mov p0, skanerlash; skanerlash
kodi chiqishi (indikatorni yoqish) pop 01; bilvosita manzil registrini tiklash clr
flags.3 jmp fon progtim: djnz ptim, test; kamaytirish dasturiy ta'minot bekor qilish
taymer
nop
clr ex0; INT0 modifikasida uzilishni o'chirish:
mov pos, a
; o'zgartirish va ko'rsatish tartibi procscan: jb
flags.7,progtim; dasturiy ta'minot taymerini oshirish testiga o'tish:
jnb flags.6,modif; setb ex0 skanerlash kodining modifikatsiyasiga o'tish; INT0
mov p0 da uzilishni yoqish, skanerlash; P0 da skanerlash
mov a, pos;
anl a,#03; yaxlitlash pos mod4
mov com, a; buyruq kodini saqlash setb hflags.0;
jmp top oper buyrug'i bayrog'ini o'rnatish: clr
flags.2; clr tr1; T/C1 setb bayroqlarini to'xtatish.6;
INT0 jmp mf3 da reaksiya o'lchamlari
mov skanerlash,
a; inc pos; pos modifikatsiyasi
jmp mf2
comm: mov a, klav
Machine Translated by Google
60
oxiri
mov th0,#0ffh
jmp testi
klint: setb flags.0; klaviaturani bosish uchun bayroqni o'rnatish mov
bufscan, P0; joriy skanerlash kodini saqlash
setbtr0; real vaqt taymerini ishga tushiring
setb flags.1; dasturiy ta'minot taymerining bayrog'ini o'rnatish
rtim: setb flags.3; real vaqtda taymerni to'ldirish bayrog'ini o'rnatish
mov tl0,#0d0h; real vaqt taymerini qayta yuklang
clr bayroqlari.7; dasturiy ta'minot taymerini ishga tushirish bayrog'ini tiklang
timeop: setb flags.2; toshib ketish bayrog'ini o'rnating T/C1
MCS-51 mikrokontroller dasturlarini kompilyatsiya qilish uchun ISIS muhiti sozlamalarida
ASEM51 assembler ko'rsatilishi kerak.
reti
mov bufpos, pos; joriy nol pozitsiya kodini saqlang
reti
reti
clr bayroqlari.6; bosish javobini yoqish belgisini tozalash
Machine Translated by Google
61
Step motorlar protsessor tomonidan ularning ish rejimlarining eng
funktsional raqamli nazoratini ta'minlaydi. Simulyatsiya qilingan qurilma (28-
rasm) uch juft rotorli qutbli ikkita o'ralgan bipolyar motordan foydalanadi.
Dvigatelning tasviriy diagrammalari shaklda keltirilgan. 29. 1a va 1b indekslari
birinchi stator o'rashining qutblarini, 2a va 2b indekslari ikkinchi stator sargisining
qutblarini ko'rsatadi. Diametrli qismlarning qarama-qarshi uchlaridagi N va S
belgilari step motor rotori va stator sariqlarining juft qutblariga mos keladi.
Rotorning qutblari juftlari bir-biriga nisbatan 60 ° ga, stator o'rashlarining juft
qutblari esa 90 ° ga siljiydi.
Dvigatelni boshqarish algoritmi rasmda ko'rsatilgan. 31. Vaqt diagrammasi
tahlili (30-rasm) shuni ko'rsatadiki, dvigatelni bir kvadrant bilan aylantirish uchun
faqat to'rt xil nazorat kodlari talab qilinadi, to'rtta ketma-ket tsiklda o'z navbatida
o'rnatiladi va bu kombinatsiya har bir inqilobda to'rt marta takrorlanadi.
ATmega 128. Boshqaruv kodlarini chiqarish uchun PORTD portining pastki
tetradasidan foydalaniladi. U2 mikrosxemasining buferlari/kuchaytirgichlari Q1-
Q8 dala effektli tranzistorlarida yaratilgan qo'shimcha tranzistorli ko'prik juftlarini
moslashtirish uchun ishlatiladi. Q1, Q2 va Q3, Q4 juftlarining o'rta nuqtalari mos
ravishda 1a va 1b o'rash terminallariga, Q5, Q6 va Q7, Q8 juftlarining o'rta
nuqtalari 2a va 2b o'rash terminallariga ulangan.
Do'stlaringiz bilan baham: |