• Yo’q Yo’q
  • 0804 0807 0809 080V 080E 0810 0812 3E 0S D3 80 SD 0009
  • CALL «Pauza» MVI A, OD OUT KA CALL «Pauza» MVI A, 00 OUT KA CALL «Pauza» Boshqarish
  • QSch. 10 ga ơrnatildi TSch. 7 ga ơrnatildi Regis. jufligiga yozish HL ga OVOO yoziladi Xotiradan
  • 082D 082F 3E 00 D3 80 76 MVI A, 00 OUT KA HLT
  • Ikki baytli sonlar ayirmasi. 1816
  • Chiziqli dvigatelni boshqarish algoritmi va programmasi




    Download 2,97 Mb.
    Pdf ko'rish
    bet94/123
    Sana09.02.2024
    Hajmi2,97 Mb.
    #153799
    1   ...   90   91   92   93   94   95   96   97   ...   123
    Bog'liq
    AMV majmua

    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: 

    Boshlanish
    2
    BOni 
    boshlang’ch 
    holatga keltirish 
    3
    Qadamlar 
    schetchigini 
    o’rnatish (QS) 
    4
    Taktlar 
    schetchigini 
    o’rnatish (ТS) 

    Navbatdagi 
    kodga o’tish. 

    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 

    - 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, 

    – 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 

    akkumlyatordagi kamayuvchini 
    kichik baytini teskarisiga 
    aylantirish 
    ADD 
    A,@R0 
    qo’shish 
    CPL 

    natija qiymatini teskarisiga 
    aylantirish 
    INC 
    RO 
    ayirmaning katta baytini adresini 
    shakllantirish 
    XCH 
    A, R2 
    almashish 
    CPL 

    kamayuvchini katta baytini 
    teskarisiga aylantirish 
    ADDC 
    A,@R0 
    ko’chirish bo’yicha qo’shish 
    CPL 

    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, 

    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

    katta baytning siljishi 
    XCH
    A, R2 almashinuv 
    RET
    qaytarish 
    Ikki baytli so’zlarning o’ngga arifmetik siljishi 
    SHIFTAR: 
    CLR 

    siljish alomati 
    CPL 

    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 ni R2 kengaytiriishga 
    RRC 

    siljitish 
    XSN 
    A, R2 almashinuv 
    RRC 

    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 







    CHT 







    ZP 







    A1 







    A0 









    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. 

    Download 2,97 Mb.
    1   ...   90   91   92   93   94   95   96   97   ...   123




    Download 2,97 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Chiziqli dvigatelni boshqarish algoritmi va programmasi

    Download 2,97 Mb.
    Pdf ko'rish