Mikrokontrollerek. Tihanyi Attila 2007. május 8



Hasonló dokumentumok
1. Az utasítás beolvasása a processzorba

Bevezetés a méréstechnikába és jelfeldolgozásba. Tihanyi Attila április 24.

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

A MiniRISC processzor

Az integrált áramkörök kimenetének kialakítása

Balaton Marcell Balázs. Assembly jegyzet. Az Assembly egy alacsony szintű nyelv, mely a gépi kódú programozás egyszerűsítésére született.

A számítógép alapfelépítése

Bevezetés a számítástechnikába

Egyszerű RISC CPU tervezése

Bevezetés a számítástechnikába

Assembly utasítások listája

Assembly Utasítások, programok. Iványi Péter

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés]

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Bevezetés az assembly nyelvbe

Digitális rendszerek. Utasításarchitektúra szintje

INTEL 8085 gépi utasításkészlete

Mikrovezérlık története (nagyon) röviden

1. ábra: Perifériára való írás idődiagramja

A Számítógépek felépítése, mőködési módjai

A mikroszámítógép felépítése.

Számítógép Architektúrák

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Intel x86 utasításkészlet + disassembler működése

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

16F628A megszakítás kezelése

Máté: Assembly programozás

Bevezetés az assembly nyelvbe

1. Bevezetés. 2. A mikroszámítógépek felépítése

Aritmetikai utasítások I.

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése

HARDVERKÖZELI PROGRAMOZÁS1

Bevezetés az informatikába

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Archi2 Gyak. (Processzorok Utasításszintű Kezelése) 2014 ősz

A 6502 mikroprocesszor

Assembly programozás levelező tagozat

Processzorok Utasításszintű Kezelése tavasz

Máté: Számítógép architektúrák

Adatok ábrázolása, adattípusok. Összefoglalás

Mechatronika és mikroszámítógépek

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Mechatronika és mikroszámítógépek

Programozás 3. Dr. Iványi Péter

Programozás I gyakorlat

Assembly. Iványi Péter

Aritmetikai utasítások

DSP architektúrák dspic30f család

A 32 bites x86-os architektúra regiszterei

Máté: Számítógép architektúrák

A Számítógépek hardver elemei

Mechatronika és mikroszámítógépek

Számítógépek felépítése, alapfogalmak

Adatelérés és memóriakezelés

A regiszterek az assembly programozás változói. A processzor az egyes mőveleteket kizárólag regiszterek közremőködésével tudja végrehajtani.

Máté: Számítógép architektúrák

Vezérlés és irányítástechnológia (Mikroprocesszoros irányítás)

Máté: Számítógép architektúrák

Információs Technológia

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

GÁBOR DÉNES FŐISKOLA PREZENTÁCIÓ. Vezetőtanár: Ágoston György 2002/ szemeszter. 222 lap

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

Assembly. Iványi Péter

Intel x86 utasításkészlet

8. Fejezet Processzor (CPU) és memória: tervezés, implementáció, modern megoldások

1. Digitális integrált áramkörök

MISKOLCI EGYETEM MIKROPROCESSZOROK ÉS ALKALMAZÁSUK

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Architektúra, megszakítási rendszerek

SZÁMÍTÓGÉPARCHITEKTÚRÁK

Számítógépek felépítése

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Stack Vezérlés szerkezet Adat 2.

Programozás 5. Dr. Iványi Péter

Mérési utasítás Mikrokontroller programozás 2.sz. mérés

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter

Bevezetés az elektronikus mérésekbe

Előszó avagy Murphy és az optimizmus. Tartalomjegyzék

Informatika 1 2. el adás: Absztrakt számítógépek

VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Operációs rendszerek Memóriakezelés 1.1

A számítógép alapfelépítése

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Az i8080 és az i8085 utasításai

Using the CW-Net in a user defined IP network


Hardverközeli programozás oktatása a DIY Calculator segítségével Teaching hardware programming with DIY Calculator

Máté: Számítógép architektúrák

Programozott soros szinkron adatátvitel

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Számítógép Architektúrák (MIKNB113A)

Bevezetés a programozásba 2

Számrendszerek közötti átváltások

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

Máté: Számítógép architektúrák

Aritmetikai és logikai műveletek. Adattömb kezelése.

Információs Technológia

A PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere

Jelfeldolgozás a közlekedésben

Átírás:

Mikrokontrollerek Tihanyi Attila 2007. május 8

!!! ZH!!! Pótlási lehetőség külön egyeztetve Feladatok: 2007. május 15. Megoldási idő 45 perc! Feladatok: Első ZH is itt pótolható Munkapont számítás Munkapont számítás Mikrokontroller program írása Mikrokontroller program írása Érdemjegy nagyzh-k eredményének átlaga mérési jegyekkel és gyakorlatvezetők véleményével kerekítve

Bitek kezelése Bit (adat bitek; flag bitek ) Tetszőleges regiszter adatbitje nulladik. dbit 0,R00 elso. dbit 1,R00 masodik. dbit 2,R00 Ezek állítását a programozó végzi Carry, Zero, Negatív, Overflow, Interrupt Enable (1,2) Ezek állítását a műveletek végzik

Bitműveletek SBIT0 name ; 0 name SBIT1 name ; 1 name JBIT0 name,címke8 JBIT1 name,címke8 BTJO s1,s2,címke8 ;s1 & s2 BTJZ s1,s2,címke8 ;s1 & s2 SETC CLRC ; 1 Cy ; 0 Cy

Rotate RL Rd ;rotate left RLC Rd ; Rotate Left Through Carry

Rotate RR Rd ;rotate left RRC Rd ; Rotate Left Through Carry

Flag bitek Bit 7 C. Carry. This status bit is set by arithmetic instructions as a carry bit or as a noborrow bit. It is also affected by the rotate instructions. Bit 6 N. Negative. The CPU sets this bit to the value of the most significant bit (sign bit) of the result of the previous operation. Bit 5 Z. Zero. This bit is set by the CPU if the result of the previous operation was 0; cleared otherwise. Bit 4 V. Overflow. This bit is set by the CPU if a signed arithmetic overflow condition is detected during the previous instruction. The value of this flag is significant at the completion of the following instructions: ADC, ADD, INC, INCW, CMP, DEC,SUB, SBB, and DIV.

Összeadás signed int i; signed int j; j = j + i; vagy j += i; signed long i; signed long j; j = j + i; vagy j += i;

Példák 2 byte-os összeadás Felső byte A1 Alsó byte A0 Egyik operandus + Felső byte B1 Alsó byte B0 Másik operandus ADD A0,B0 Cy Alsó byte B0 ADC A1,B1 Felső byte B1 Cy Felső byte B1 Alsó byte B0 Eredmény

Példák 4 byte-os összeadás Felső byte A3 3. byte A2 2. byte A1 Alsó byte A0 + Felső byte B3 3. byte B2 2. byte B1 Alsó byte B0 Cy Alsó byte B0 Cy 3. byte B2 Cy 2. byte B1 ADD A0,B0 ADC A1,B1 Cy Felső byte B3 ADC A2,B2 ADC A3,B3

Kivonás signed int i; signed int j; j = j - i; vagy j -= i; signed long i; signed long j; j = j - i; vagy j -= i;

Példák 2 byte-os kivonás Felső byte A1 Alsó byte A0 Egyik operandus + Felső byte B1 Alsó byte B0 Másik operandus SUB A0,B0 Cy Alsó byte B0 SBB A1,B1 Felső byte B1 Cy Felső byte B1 Alsó byte B0 Eredmény

Példák 4 byte-os kivonás Felső byte A3 3. byte A2 2. byte A1 Alsó byte A0 + Felső byte B3 3. byte B2 2. byte B1 Alsó byte B0 Cy Alsó byte B0 Cy 3. byte B2 Cy 2. byte B1 SUB A0,B0 SBB A1,B1 Cy Felső byte B3 SBB A2,B2 SBB A3,B3

Összehasonlítás unsigned char l; // boolean l; if ( l ) ; if (!l ) ; signed int i; signed int j; if (j == i) ; signed long i; signed long j; if (j == i) ;

Példák 2 byte-os összehasonlítás Felső byte A1 Alsó byte A0 Egyik operandus + Felső byte B1 Alsó byte B0 Másik operandus CMP A0,B0 Cy Alsó byte B0 JNZ nemegyenlo CMP A1,B1 JNZ nemegyenlo Felső byte B1 egyenlo: Cy Felső byte B1 Alsó byte B0 Eredmény nemegyenlo:

Példák 4 byte-os összehasonlítás Felső byte A3 3. byte A2 2. byte A1 Alsó byte A0 + Felső byte B3 3. byte B2 2. byte B1 Alsó byte B0 Cy Alsó byte B0 Cy Felső byte B3 Cy 3. byte B2 Cy 2. byte B1 Feltételes vezérlés átadás CMP A0,B0 JNZ neq CMP A1,B1 JNZ neq CMP A2,B2 JNZ neq CMP A3,B3 JNZ neq

Feltételek

Program counter Mutató a következő programsorra TMS 370-nél 2 byte előjel nélküli szám Maximális címezhető terület 64K azaz 65536 db byte Összefüggés, különbség az elhelyezés számlálóval

Példa PC = 2000H 2000 52 60 mov #60h,A PC = 2002H 2002 fd ldsp PC = 2003H Feltétel nélküli vezérlés átadás 2003 8c 20 69 br init ; ez lehet jmp is PC = 2069H 2006 ide nem adódik a vezérlés ITT CIMKÉNEK kell állni!!!!!!!

függvény void fv(void) fv: { }; rts { fv(); call fv fv(); call fv }

Függvények szubrutinok cimke: rts Igénybevétele call cimke ; akár többször is call cimke ; ez egy másik hely

STACK FILO megvalósítás

Példa PC = 2000H SP =???? 2000 52 60 mov #60h,A PC = 2002H SP =???? 2002 fd ldsp PC = 2003H SP = 0060H 2003 8e 20 69 call init Stack 0061 20H 0062 06H PC = 2069H SP = 0062H 2006 ide visszatér a vezérlés

Példa Wait2: call Wait call Wait rts jmp Wait ; rts ott Wait: mov #0ffh,C Wait_l: djnz C,Wait_l rts

Címzési módok Abszolút Indexelt abszolút Indirekt abszolút Offszet indirekt abszolút PC relatív Direkt relatív Indexelt relatív Indirekt relatív Offszet indirekt relatív

Relatív Közvetlen címzés Abszolút

Indexelt címzés Abszolút Relatív

Indirekt címzés Abszolút Relatív

PC relatív

Adatok kezelése változók unsigned int i; = i; Cím kiszámítása: &i *(&i)

Adatok kezelése tömbök unsigned int i[10]; = i[index]; Cím kiszámítása: sizeof(unsigned int) * index sizeof(unsigned int) * index + &i *(sizeof(unsigned int) * index + &i)

Adatok kezelése strutúrák Struct test { unsigned int i; signed char c; }t[10]; = t[index].c; Cím kiszámítása: sizeof(struct test) * index sizeof(struct test) * index + &t *(sizeof(struct test) * index + &t + offset(c))

Közvetlen címzés Közvetlenül kezelhető változók

Indirekt címzés Az adat címét egy regiszter tartalmazza Pl.: mov *R099,A [((Rp-1:Rp)) (A)]

Offset indirekt címzés mov *2h[R099],A [(off8 + (Rp-1):Rp)) (A)]