Mikrovezérlők Alkalmazástechnikája

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Mikrovezérlők Alkalmazástechnikája"

Átírás

1 Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 1

2 Intel MCS-51 utasításkészlettel kompatibilis Módosított 8051 mag: CIP órajel/gépi ciklus 1 órajel/gépi ciklus 12MHz akár 100MHz on-chip debug alacsony fogyasztású módok sokkal több megszakítás sokkal több periféria sokkal jobb perifériák valódi önálló számítógép 2

3 3

4 Tápfeszültség: 2V..5V Tápszűrés: kondenzátorok Programozó/debug csatlakozó A RESET vonalon opcionális R 4

5 PSW ALU TMP1 TMP2 ACC RAM ADDRESS RAM PROGRAM ADDRESS REGISTER DATA POINTER PROGRAM COUNTER PC INCREMENTER BUFFER FLASH/PGM MEMORY STACK POINTER INTERRUPT CONTROLLER MEMORY INTERFACE SFR INTERFACE INTERNAL BUS INSTRUCTION REGISTER I/O PORTS PERIPHERALS 5

6 Registers Reset value A, ACC accumulator, ALU results 0 B general purpose register and register for multiplication, division 0 R0..R7 general purpose registers, also used for indirect addressing 0 PSW Bit 7: CY carry bit (ADDC, SUBB) 0 Bit 6: AC aux carry (at 3rd bit, 4-bit arithmetics) 0 Bit 5: F0 user flag 0 Bit 4: RS1 R0..R7 at R0..R7 at R0..R7 at R0..R7 at 0 Bit 3: RS0 00: 0x00 01: 0x08 10: 0x10 11: 0x18 0 Bit 2: OV overflow (MUL, DIV, ADD, SUBB) 0 Bit 1: F1 user flag 0 Bit 0: PAR parity bit: 1, if sum of bits in A is 1 0 DPH, DPL DPTR, data pointer, 16-bit indirect addressing 0 SP stack pointer 7 6

7 Harvard architektúra külön adat- és programmemória a programmemória nem írható a programmemória adatokat is tárolhat (csak olvasás) Adatamemória: RAM, XRAM Programmemória: flash Silicon Laboratories módosítás a programmemória (flash) speciális módban írható 7

8 Felső 128 byte Csak indirekt címzéssel MOV R0, #0B0h MOV Alsó 128 byte Direkt/indirekt címzéssel MOV A, 10 MOV A, 71h MOV 0B0h, a 0x80 0x00 0x80-0xFF 0x00-0x7F 8

9 0x20-0x2F 128 bit egyedileg elérhető Bitváltozók számára MOV C,22.3h carry a 22h című byte 3. bitje 0x30-0x7F 0x00-0x1F Az R0..R7 regiszterbank helye változtatható (PSW: RS1,RS0) Figyelembe kell vennünk a programozásnál Hasznos a regiszterek tartalmának őrzéséhez Tipikusan interrupt rutinokban BIT ADDRESSABLE RS1,RS0=11 RS1,RS0=10 RS1,RS0=01 RS1,RS0=00 0x20-0x2F 0x18-0x1F 0x10-0x17 0x08-0x0F 0x00-0x07 9

10 RESET után: a veremmutató értéke 0x07 R0..R7: 0x00-0x07 A veremmutató növekszik, ha használjuk A veremmutató átmehet a felső 128 byte-ra is! Szokásos stílus: boot után SP=adatok utáni cím A verem méretét a programozó dönti el! (?)-0xFF general RAM 0x08-(?) stack (after RESET) 0x00-0x07 R0..R7 10

11 Az integrált perifáriák, regiszterek elérése: memory mapping memória írás/olvasás műveletekkel direkt címzés a 0x80-0xFF belső RAM területen ADD A,240 ; B regiszter SFR elérése MOV A,PSW ; Az ACC, B, DPH, DPL, SP regiszterek is elérhetők 11

12 Address xB8 IP 0xB0 0xA8 IE 0xA0 P2 0x98 SCON SBUF 0x90 P1 0x88 TCON TMOD TL0 TH0 TL1 TH1 0x80 P0 SP DPL DPH Column 0 is bit addressable 12

13 Cím xF8 0xF0 B 0xE8 0xE0 ACC 0xD8 0xD0 PSW 0xC8 0xC0 Az 0. oszlop bitcímezhető 13

14 16-bit címtartomány maximum 64kbyte eredeti 8051: XRAM külön chipen mai 8051 architektúrákon: integrált (512 byte-8kbyte) integrált+külső Elérés: movx (indirekt) 16-bites cím MOV MOVX 8-bites cím MOV MOVX DPTR,#0A000H R0,#10H felső 8-bit egy SFR-ben (pl. EMI0CN) 14

15 Külön chip-en van a RAM SRAM áramkörök csatlakoztathatók Lehet sebességkorlát (pl. 100ns elérési idő) Lehet akár külső periféria is, ami SRAM-szerű: ADC, DAC, UART, Később részletezzük a hardver működését 15

16 Program tárolására Régebben külső UV-EPROM, EEPROM Ma: flash, áramkörben programozható Programozó adapterrel írható Flash: tápfeszültség nélkül megőrzi tartalmát Endurance: hányszor írható ( 10k-100k) Data retention: az adatokat meddig őrzi ( év) Biztonsági bitek: titkosítás lehetséges a flash olvasása tiltható (törölhetőség) 16

17 Programot és konstansokat is tárol Például: ADD A,#10 ; 10-et ad a-hot, a 10 konstans MOV A,PSW ; a PSW egy SFR cím, 0D0h, konstans Közvetlenül is elérhető: CLR A MOV DPTR,#LOOKUPTABLE MOVC A,@A+DPTR ; lookuptable+a címről olvas Hasznos lookup táblázatok, egyéb paraméterek tárolására 17

18 A CIP-51 mag olvassa (PC program counter) Kiosztás: 0000h: RESET-kor ide kerül a vezérlés 0003h: 0. megszakítás címe 000Bh: 1. megszakítás címe A tényleges program az interrupt tábla után van A fordító és a linker osztja el assemblernél különösen figyelnünk kell! 18

19 Addressing mode MNEMONIC Description register MOV A,B A B immediate constant MOV A, #10 direct MOV A, 10 MOV A, P0 A 10 (value) A byte at address 10 A bits at port P0 (SFR) indirect MOV A byte at address pointed by R0 19

20 0x00-0xFF 0x00-0x7F SFR 0x80-0xFF (direct) 0x80-0xFF (indirect) 0x30-0x7F 0x00-0x7F (direct, indirect) BIT ADDRESSABLE RS1,RS0=11 RS1,RS0=10 RS1,RS0=01 RS1,RS0=00 0x20-0x2F 0x18-0x1F 0x10-0x17 0x08-0x0F 0x00-0x07 20

21 XRAM ON-CHIP 0x0100- (16-bit indirect) 0x0000-0x00FF (8-bit indirect) OFF-CHIP 0x0100-0xFFFF (16-bit indirect) 0x0000-0x00FF (8-bit indirect) 21

22 n: a legnagyobb használt megszakítás sorszáma FLASH RESERVED (C8051F410: 512 bytes) PROGRAM/DATA (0x0003+n x 8) INTERRUPT VECTORS 0x0003 (0x0003+n x 8 1) 0x0000 0x0002: RESET VECTOR 22

23 MNEMONIC OPERATION ADDRESSING FLAG DIR IND REG IMM CY AC OV P ADD A,<byte> A = A + <byte> ADDC A,<byte> A = A + <byte> + C SUBB A,<byte> A = A <byte> C INC A A = A + 1 INC <byte> <byte> = <byte> + 1 INC DPTR DPTR = DPTR + 1 only DPTR DEC A A = A 1 only A DEC <byte> <byte> = <byte> 1 MUL AB B:A = B x A only A és B 0 DIV AB A = Int[A/B] B = Mod[A/B] only A és B 0 DA A Decimal Adjust only A 23

24 MNEMONIC OPERATION ADDRESSING FLAG DIR IND REG IMM P ANL A,<byte> A = A.AND. <byte> ANL <byte>,a <byte> = <byte>.and.a ANL <byte>,#data <byte> = <byte>.and.#data ORL A,<byte> A = A.OR.<byte> ORL <byte>,a <byte> = <byte>.or.a ORL <byte>,#data <byte> = <byte>.or.#data XRL A,<byte> A = A.XOR. <byte> XRL <byte>,a <byte> = <byte>.xor.a XRL <byte>,#data <byte> = <byte>.xor.#data 24

25 MNEMONIC OPERATION ADDRESSING FLAG CY AC OV P CRL A A = 00H only A CPL A A =.NOT.A only A RL A Rotate ACC Left 1 bit only A RLC A Rotate Left through Carry only A RR A Rotate ACC Right 1 bit only A RRC A Rotate Right through Carry only A SWAP A Swap Nibbles in A only A 25

26 MNEMONIC ANL C,bit C = C.AND.bit ANL C,/bit C = C.AND..NOT.bit ORL C,bit C = C.OR.bit ORL C,/bit C = C.OR..NOT.bit MOV C,bit C = bit MOV bit,c bit = C CLR C C = 0 CLR bit bit = 0 SETB C C = 1 SETB bit bit = 1 CPL C C =.NOT.C CPL bit bit =.NOT.bit OPERATION 26

27 MNEMONIC OPERATION ADDRESSING DIR IND REG IMM MOV A,<src> A = <src> MOV <dest>,a <dest> = A MOV <dest>,<src> <dest> = <src> MOV DPTR,#data16 DPTR = 16-bit immediate constant PUSH <src> INC POP <dest> MOV :DEC SP XCH A,<byte> ACC and <byte> exchange data XCHD A,@Ri ACC exchange low nibbles 27

28 MNEMONIC MOVX MOVX MOVC MOVC OPERATION A A A A A + DPTR) A + PC) 28

29 MNEMONIC JMP <addr> ACALL <addr> LCALL <addr> Jump to <addr> PC <addr> Jump to A + DPTR PC A + DPTR OPERATION Call subroutine at 11-bit <addr> SP SP-1) PC PC <addr> Call subroutine at 16-bit <addr> SP SP-1) PC PC <addr> 29

30 MNEMONIC RET RETI NOP Return from subroutine SP-1) SP SP-2 OPERATION Return from interrupt SP-1) SP SP-2 az interrupt logika visszaállítása No operation 30

31 MNEMONIC OPERATION ADDRESSING DIR IND REG IMM JZ rel Jump if A = 0 only A JNZ rel Jump if A!=0 only A DJNZ <byte>,rel Decrement and jump if not zero CJNE A,<byte>,rel Jump if A p <byte> CJNE <byte>,#data,rel Jump if <byte> p #data JC rel Jump if C = 1 JNC rel Jump if C = 0 JB bit,rel Jump if bit = 1 JNB bit,rel Jump if bit = 0 JBC bit,rel Jump if bit = 1; CLR bit 31

32 Utasítások: 1-3 byte hossz, 1-8 ciklus cycles 1 2 2/4 3 3/ /6 6 8 instructions Példák instruction 1. byte 2. byte 3. byte cycles ADD A, Rn nnn 1 ADD A, # ANL 15,# DIV AB JZ <rel address> rel address 2/4 32

33 Előre nem ismert időben bekövetkező esemény beavatkozást igényel Belső áramkörök vagy külső események gombnyomás számláló átfordul adat érkezett egy külső eszköztől Esemény kezelése: alprogram (szubrutin) Meghívása: hardver (interrupt controller) Többféle megszakítás lehet, mindhez más rutin 33

34 Detect ( t) LCALL (5 t) Interrupt handler RETI (6 t) main program paused t t t t Instruction #1 Instruction #2 Instruction #3 latency: 7 t -19 t IRQ 34

35 A főprogram fut, bárhol előfordulhat megszakítás Megszakításkor: a főprogram éppen folyamatban levő művelete lefut a vezérlés átkerül a megfelelő megszakítási rutinra a rutin lefut a vezérlés visszakerül a főprogram következő utasítására A megszakítási rutin is a regisztereket, RAM-ot használja el kell menteni a rutin elején vissza kell állítani a rutin végén A megszakítások tilthatók/engedélyezhetők EA: globális engedélyezés/tiltás bit Számos egyedi engedélyező bit 35

36 Megszakítási kérelemkor az eseményhez tartozó flag 1-re vált A rutin végén a programnak törölnie kell (néhány automatikusan törlődik) Ha nem töröljük, a rutin befejezésekor újra megszakítás történik tipikus hiba! A flag bármikor lekérdezhető A flag akár állítható is, ez eseményt szimulál! hasznos a program tesztelésekor 36

37 /INT0 és /INT1, külső logikai jelek Állítható: 0 vagy 1 aktív Állítható: állapotvezérelt: a flag maga a bemenő jel élvezérelt: le/felfutó él a flag-et aktívvá teszi 37

38 ha egy állapotra kell reagálni folyamatosan megszakítás generálódik, ha aktív a rutinnak meg kell szüntetnie a kiváltó okot bizonyos külső perifériák ilyen viselkedésűek ha túl rövid ideig aktív, elmaradhat a megszakítás port pin polarity IRQ enable XOR AND IRQ flag IRQ rutin IRQ rutin IRQ rutin IRQ rutin 38

39 39

40 ha egyes események bekövetkeztére kell reagálni csak az aktív váltás generál megszakítást egyébként nem számít a jelszint akkor is megszakítás, ha igen rövid az impulzus (2 óraciklus a garantált detektálási minimum) port pin polarity IRQ enable XOR D C Q IRQ flag IRQ rutin IRQ rutin IRQ rutin 40

41 41

42 Ha fut egy megszakítás és beérkezik egy másik? ha a másik prioritása nagyobb, akkor újabb megszakítás történik, de további már nem lehet egyébként előbb befejeződik az előző, aztán indul a másik ha futás közben ugyanolyan esemény több is generálódik, csak egy hajtódik végre, a többi elvész! 42

43 A rutin elvileg beállíthat perifériákat, portbiteket Figyelni kell a következetes használatra! Ne keverjük a főprogram és megszakítási rutin által végzett feladatokat! Amit tipikusan el kell menteni/vissza kell állítani: PSW ACC illetve minden használt regisztert, amit a főprogram is használ Hova mentsük el? Hogyan állítsuk vissza? 43

44 Példa esemény: soros porton adat érkezett RI: flag, ami 1-re állítódik RI-t a hardver nem törli, ha a megszakítási rutinra kerül a vezérlés SBUF: a beérkezett adat SFR-je 44

45 Példa esemény: soros porton adat érkezett: push ACC ; ACC (az A SFR-je) a verembe push PSW ; a státuszbitek a verembe clr RI ; a flag törlése mov A,SBUF ; adat beolvasása, A módosul anl A, #1 ; A és PSW is módosul mov P0,A ; az A tartalma a P0 portra pop PSW ; PSW helyreállítása ; fordított sorrend! pop ACC ; ACC (A) helyreállítása reti ; visszatérés és ; megszakítások alapállapotba 45

46 Regiszterbank váltása a PSW RS1,RS0 bitjeivel A regiszterbankot a POP PSW visszaállítja Vigyázat: a verem RESET alapértékét módosítani kell! push ACC ; ACC (az A SFR-je) a verembe push PSW ; a státuszbitek a verembe mov PSW,#8 ; regiszterbank #1 használata ; PSW módosul clr RI ; flag törlése mov R0,#1 ; R0 módosul anl A, R0 ; A és PSW módosul mov P0,A ; pop PSW ; PSW és regiszterbank helyreállítása ; fordított sorrend! pop ACC ; ACC (A) helyreállítása reti ; visszatérés és ; megszakítások alapállapotba 46

47 Mikrovezérlők: valós idejű rendszerekben Fontos a precíz időzítés Mennyire pontos a megszakítások indulása? Az esemény detektálása 1 ciklus Az utasítások hossza 1-8 ciklus lehet A megszakítás meghívása 5 ciklus (LCALL) Ha RETI közben kérés jön, 1 művelet még végrehajtódik az újabb meghívásig 47

48 A leggyorsabb reagálás: 7 ciklus 1: detektálás 1: főprogram utasítása lefut 5: a rutin meghívása A leglassabb: 19 ciklus 1: detektálás 5: RETI közben aktíválódik a kérelem 8: DIV AB a leghosszabb utasítás 5: a rutin meghívása 48

49 Detect ( t) LCALL (5 t) Interrupt handler RETI (6 t) main program paused t t t t Instruction #1 Instruction #2 Instruction #3 latency: 7 t -19 t IRQ 49

50 Feladat: 100kHz-es logikai jel generálása (10us periódusidő) A processzor órajele: 25MHz (40ns ciklusidő) Egy időzítő megszakítást generál 5us időnként A megszakítás késleltetési bizonytalansága 19-7=12 ciklus, azaz 12x40ns=480ns Így a jelváltási idők bizonytalansága 480ns/5us = 480/5000 = 0,096 = 9,6%! 50

51 A késleltetés 7-19 ciklus között lehet Leggyakrabban 8-9 ciklus Elég véletlenszerű is lehet a reagálási idő A szoftveres időzítés így nem tökéletesen precíz A legtöbbször ez nem gond, de mérlegelni kell Ha nagyon precíz időzítésű jelek szükségesek: például adott frekvenciájú jelek, PWM jelek hardveres megoldás, nem szoftveres! PCA (programmable counter array) Több megszakítás esetén további késleltetés lehet 51

52 Csak rövid idejű feladatokra Felszabadítja a főprogramot az eseménykezeléstől Egyszerűbbé, megbízhatóbbá teszi a programot Gondosan kell tervezni: engedélyezés előtt az eseményforrás konfigurálása a főprogrammal ne ütközzön (mentés, visszaállítás) nem atomi műveletek a főprogramban (pl. 16-bit) a verem igénybevételének megfontolása túl gyakori kérések/a rutin futási ideje fontos elveszhetnek kérések flag-ek kezelése, törlése, több flag egy megszakítás több megszakítási forrás kezelése, extra késleltetés! a prioritás figyelembe vétele 52

53 Cím: 0x0003+8*megszakítási sorszám A RESET csak 3 byte LJMP a főprogramhoz A többi 8 byte, így a rutinhoz is LJMP kell 53

54 Source Address Number Flag Cleared by hardware Reset 0x yes /INT0 external 0x IE0 yes Timer 0 overflow 0x000B 1 TF0 yes /INT1 external 0x IE1 yes Timer 1 overflow 0x001B 3 TF1 no UART0 0x RI0, TI0 no Timer 2 overflow 0x002B 5 TF2H, TF2L no SPI0 0x SPIF, WCOL,MODF, RXOVRN no SMB0 0x003B 7 SI no 54

55 Source Address Number Flag Cleared by hardware smartclock 0x ALRM, OSCFAIL no ADC0 Window Comparator 0x004B 9 AD0WINT no ADC0 End of Conversion 0x AD0INT no Programmable Counter Array 0x005B 11 CF, CCFn no Comparator 0 0x CP0FIF, CP0RIF no Comparator 1 0x006B 13 CP1FIF, CP1RIF no Timer 3 overflow 0x TF3H, TF3L no Voltage regulator dropout 0x007B 15 - no PORT match 0x no 55

56 Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 56

57 a processzor, hardver alapos ismerete erőforrások pontos ismerete C kód ellenőrzése a fordító optimalizálása gondot okozhat a perifériáknál jobban kell figyelni, mint általános C programozásnál a C fordító által generált assembler megértése profiling, optimalizálás hatékonyabb hibakeresés a hardverismeret alapján assembler library rutinok megértése, felhasználása 57

58 teljes programozói szabadság, hatékonyság a hardverhez legközelebbi programozás C fordító limitációinak kikerülése optimalizálás, gyorsítás regiszterváltozók megszakítás-kezelő rutinok ciklusok C-ből hiányzó matematikai műveletek (példa: 24-bites aritmetika) inline-szerű C függvények írása (prolog, epilog optimalizálás) 58

59 Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 59

60 Nem a nyelv elemei A fordítónak adnak információkat Neveket adhatunk konstansoknak, memóriarészeknek Helyet foglalhatunk adatoknak Kezdőértéket adhatunk adatoknak A programrészek helyét megadhatjuk 60

61 Adatok és kód elhelyezésének definiálása Abszolút a programozó rögzíti a helyet Áthelyezhető a compiler/linker rögzíti Öt típus CODE programmemória DATA direkt címzésű adatmemória (RAM: 0-127, SFR ) IDATA indirekt címezhető adatmemória (0-255) XDATA külső RAM (XRAM, lehet on-chip is) BDATA vagy BIT bitmemória (20h-2Fh) 61

62 Egy szegmens definiálása VARIABLES SEGMENT DATA A szegmens használatba vétele RSEG VARIABLES egész addig érvényes, amíg nincs újabb RSEG direktíva 62

63 DSEG at 030h CSEG at 0100h XSEG at 0000h 63

64 DSEG ORG 030h X: DS 1 ; 030h Y: DS 1 ; 031h Z: DS 8 ; 032h-039h CSEG at 0000h ; reset cím LJMP Main ; ugrás a kezdőcímre ORG 0003h ; INT0 megszakítás címe RETI Main: MOV a,#10 END 64

65 Változók foglalása: DS (Define storage) nincs értékadás, csak helyfoglalás <változó neve>: DS <foglalandó byte-ok száma> x: DS 2 y: DS 1 Konstansok definiálása (értékadás): DB (Define byte), DW, DD (Define word, double word) csak CSEG lehet a helye, mivel konstans! 65

66 CSEG at 0000h mov dptr,#lookup_table ; a táblázat kezdőcíme mov a,#2 ; index movc a,@(a+dptr) ; a-ba mozgatás jmp $ ; infinite loop! MESSAGE: ; itt már nincs programkód ; az elejére nem tehetnénk! DB 'Number of samples', 0 LOOKUP_TABLE: DB 0,1,4,9,16 DB 25,36,49,64 ; egész számok négyzete END 66

67 Hasonló a C nyelv #define direktívájához $include (C8051F410.INC) LED EQU P0.5 COUNT EQU 5 CSEG at 0000h anl PCA0MD,#0BFh ; watchdog off mov PCA0MD,#000h mov XBR1,#040h ; crossbar on mov R7,#COUNT L1: cpl LED ; complemet LED djnz R7,L1 ; repeat COUNT times jmp $ ; infinite loop! END 67

68 jz L1 mov a,#10 L1: add a,#2 Mennyi a értéke? jz L1 mov a,#10 jmp L2 L1: add a,#2 L2: Mennyi a értéke? 68

69 L1: jnb P1.3,L1 Mi történik? cjne a,#3,l1 ; a=3 jmp L3 L1: jc L2 ; a>3 jmp L3 L2: ; a<3 L3: 69

70 Alprogramok meghívása: CALL <alprogram neve> Az alprogram neve egy memóriacímet jelent Bemeneti változók? Visszatérési érték? a programozóra van bízva lehet DPL, DPH, B, ACC az SDCC compiler is ezt követi baj lehet, ha a szubrutin hív egy másikat is lehet a verem (tipikus C megoldás) 70

71 int y=f(10,x); A programozó döntheti el az átadás módját mov dpl,#10 mov dph,_x call _f ; itt módosul dph és dpl ; y = (dph << 8) + dpl; 71

72 $include (C8051F410.INC) LED EQU P0.2 CSEG at 0000h jmp Main Main: anl PCA0MD, #0BFh ; watchdog off mov PCA0MD, #000h mov XBR1, #040h ; crossbar on Main1: cpl LED ; complement LED mov a,#5 ; wait a*10 ms call Wait jmp Main1 ; repeat forever 72

73 Wait: ; SYSCLK=191406Hz push acc ; 2 cycles Wait1: push acc ; 2 cycles mov a,#127 ; 2 cycles djnz acc,$ ; 127*5 cycles djnz acc,$ ; 256*5 cycles pop acc ; 2 cycles djnz acc,wait1 ; 5 cycles pop acc ; 2 cycles ret ; 6 cycles END 73

74 ; z=x+y ; 16-bit addition ; little endian data $include (C8051F410.inc) DSEG at 020h x: DS 2 y: DS 2 z: DS 2 CSEG at 0000h jmp main org 0100h Main: mov a,x add a,y mov z,a mov a,x+1 addc a,y+1 mov z+1,a jmp $ end 74

75 ; fill an array with ; ascending numbers $include (C8051F410.inc) DSEG at 020h x: DS 10 CSEG at 0000h jmp main org 0100h Main: mov R7,#10 mov R0,#x clr a Loop: inc a inc R0 djnz R7,Loop end 75

76 DSEG at 020h x: DS 10 sum: DS 2 CSEG at 0000h jmp main org 0100h Main: mov R7,#10 mov R0,#x clr a mov sum,a mov sum+1,a Loop: mov a,@r0 add a,sum mov sum,a clr a addc a,sum+1 mov sum+1,a inc R0 djnz R7,Loop end 76

77 65536 t TMR2RLH/TMR2RLL= t TMR2RLH/TMR2RLL=0 TMR2H/TMR2L TF2H interrupt 0 0 t Set TF2H (HW, interrupt) Clear TF2H (SW) 77

78 Detect ( t) LCALL (5 t) Interrupt handler t t t Instruction #1 Instruction #2 delay: TMR2 t TF2H TMR

79 $include (C8051F410.inc) DSEG at 30h x: DS 30 ; histogram array CSEG at 0000h ljmp Main ORG 002Bh mov a,tmr2l ; TMR2L = delay time/ t add a,#x ; x[tmr2l] mov r0,a ; address to index reg. ; x[tmr2l]++ inc r1 ; next sample anl TMR2CN,#07Fh ; clear TF2H IRQ flag reti ; no push/pop required? :04 A C8051Fxxx mikrovezérlők felépítése és programozása 79

80 Main: anl PCA0MD,#0BFh ; watchdog off mov PCA0MD,#000h mov TMR2CN,#0x04 ; enable timer 2 mov TMR2CF,#008h ; timer: sytem clock mov r1,#0 ; sample counter variable mov r0,#x ; move address of x to r0 L1: ; clear array element inc r0 ; next index cjne r0,#(x+30),l1 ; all elements? mov IE,#0A0h ; enable interrupt cjne r1,#255,$ ; wait here while not ready mov IE,#0 ; disable interrupt jmp $ ; infinite loop END 80

81 N= N=40000 N t TMR2RLH/TMR2RLL =25536=99* N t TMR2RLH/TMR2RLL TMR2H/TMR2L TF2H interrupt 0 0 t Set TF2H (HW, interrupt) Clear TF2H (SW) 81

82 $include (C8051F410.INC) LED EQU P0.2 CSEG at 0000h jmp Main ; reset, jump to the main ORG 002Bh ; Timer 2 IRQ vector anl TMR2CN,#07Fh ; clear interrupt flag cpl LED ; complement LED reti ; return from interrupt 82

83 Main: anl PCA0MD, #0BFh ; watchdog off mov PCA0MD, #000h mov XBR1, #040h ; crossbar on mov TMR2RLL, #0B2h ; Timer 2 reload register mov TMR2RLH, #0C1h ; mov TMR2L, #0B2h ; Timer 2 counter initial value mov TMR2H, #0C1h mov TMR2CN, #004h ; Start Timer 2 mov IE, #0A0h ; enable interrupts jmp $ ; repeat forever END fclk=1/ t=191406/12 Hz Hz (RESET utáni alapérték) 1 sec = t TMR2RL = = = 0xC1B2 83

84 Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 84

85 Speciális esetek Bitműveletek SFR elérés memóriatípusok assembler programrészek Az erőforrások korlátosak! változók pontosság tömbök mérete C és assembly keverése 85

86 type width bit default signed range unsigned range bit 1 unsigned - 0,1 char 8 signed short 16 signed int 16 signed long 32 signed float IEEE signed E-38, E+38 pointer 8-24 generic 86

87 Előjel 1 bit b31 Kitevő 8 bit b30..b23 mantissza 23 bit b22..b0 Előjel: 0:pozitív, 1:negatív Kitevő: Mantissza: előjel nélküli fixpontos bináris szám, bináris ponttal kezdve Pontosság: 23 bit, azaz 7 digit b 1 b b b b

88 Aritmetikai (signed) és logikai (unsigned) shift Példa: ADC adat 12-bites kettes komplemens adat short x; x = (ADC0H << 12) + (ADC0L << 4); // left justified x = ((signed short)(adc0h << 12) >> 4) + ADC0L; // right justified 88

89 Bit törlése x = x & ~(1 << 3); x &= ~(1 << 3); Bit beállítása x = x (1 << 3); x = (1 << 3); unsigned int, unsigned short x = -100; // , azaz Timer auto-reload módban hasznos 89

90 BELSŐ RAM (0-127, DIREKT) data unsigned char x; x=3; assembler: mov _x,#3 KÜLSŐ RAM (16-BITES CÍMZÉS) xdata unsigned char x; x=3; assembler: mov dptr,#_x mov a,#3 90

91 BELSŐ RAM (0..255, INDIREKT) idata unsigned char x; x=3; assembler: mov r0,#_x KÜLSŐ RAM (8-BITES CÍMZÉS) pdata unsigned char x; x=3; assembler: mov r0,#_x mov a,#3 91

92 CODE BIT code unsigned char x=3; y=x; assembler (read only): mov dptr,#_x clr a movc a,@a+dptr mov _y,a bit b; b=1; assembler: setb _b 92

93 SFR sfr at 0x80 P0; P0=3; assembler: mov 0x80,#3 SFR16 sfr16 at 0x8C8A TMR0; TMR0=100; assembler: mov 0x8A,#100 mov 0x8C,#0 vagy: mov 0x8C,#0 mov 0x8A,#100 A sorrend számíthat! (pl. PCA0L olvasás, PCA0CPLn írás) Ekkor inkább két 8-bites! 93

94 sbit at 0xD7 CARRY; CARRY=1; assembler: setb 0xD7 94

95 Declaration pointer type pointed xdata unsigned char * data p; data xdata data unsigned char * xdata p; xdata data xdata unsigned char * code p; code xdata code unsigned char * code p; code code unsigned char * xdata p; xdata * unsigned char * p; * * char (* data fp)(void); data function (code) *: depends on the memory model used 95

96 xdata at (0x4000) unsigned char x[16]; x[2]=7; assembler: mov a,#7 mov dptr,#0x

97 code at (0x7f00) char Msg[] = "Message"; putchar(msg[2]); assembler: mov dptr, #0x7F02 clr a movc mov dpl,a ; paraméterátadás lcall _putchar ; _ a név elé 97

98 bit at (0x80) GPIO_0; GPIO_0=1; assembler: setb 0x080 98

99 A változók alapértelmezett helyét szabja meg Célszerű választás: small leggyorsabb kód a programozó dönt A tárolási osztály választható Nem szabad keverni: más modellű object fájlok más modellű library fájlok Verem: idata opcionálisan: pdata Modell small medium large huge Variables data pdata xdata xdata 99

100 Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 100

101 C kódba assemblert illeszthetünk: asm clr a /* C stílusú komment */ mov R0,#0 // P0, C++ stílusú komment mov R1,#0x80 // C stílusú hexadecimális mov a,r2 jz L1 // címke használata mov R0,#0 L1: mov R1,#1 endasm; 101

102 A nevek elé a C fordító _-t generál: unsigned char c; c=5; asm mov _c,#5 endasm; lokális változók lehetnek regiszterekben: void f(void) { char c; /* regiszterbe kerül */ static char d; /* memóriába kerül */ 102

103 A függvények paraméterei: 1 byte: DPL 2 byte: DPL, DPH 3 byte: DPL, DPH, B 4 byte: DPL, DPH, B, ACC második paraméter: adatmemória Visszatérési értékek: 1 byte: DPL 2 byte: DPL, DPH 3 byte: DPL, DPH, B 4 byte: DPL, DPH, B, ACC reentrant függvények: verem 103

104 char add(char a, char b) { return a+b; } _add: mov r2,dpl mov a,_add_parm_2 ; direkt címzés add a,r2 mov dpl,a ret 104

105 char MaskP0(char a) { char c; } c=p0; c=c & a; return c; _MaskP0: mov r2,dpl mov r3,_p0 mov a,r2 anl ar3,a mov dpl,r3 ret ; r3 direkt címzése (erre van anl) 105

106 A függvény egyszerre több példányban futhat (például megszakításban) Nem használhat olyan változókat, amik statikusok pl. R0-R7 A verem a helye a paramétereknek, lokális változóknak Ritkán használatos Nagyteljesítményű processzorokon gyakran ez az alapértelmezett 106

107 char add(char a, char b) reentrant { return a+b; } _add: push _bp mov _bp,sp mov r2,dpl mov a,_bp add a,#0xfd mov r0,a mov a,@r0 add a,r2 mov dpl,a pop _bp ret 107

108 volatile unsigned char counter; /* Timer 2: megszakítás: 5 */ void IntHandler(void) interrupt 5 { TMR2CN&=~0x80; /* flag törlése */ counter++; } _IntHandler: anl _TMR2CN,#0x7F ; flag törlése inc _counter reti :09 A C8051Fxxx mikrovezérlők felépítése és programozása 108

109 volatile unsigned char counter; /* Timer 2: megszakítás: 5 */ void IntHandler(void) interrupt 5 using 1 { TMR2CN&=~0x80; /* flag törlése */ counter++; } _IntHandler: push psw mov psw,#0x08 ; R0..R7 helye 0x08-0x0F anl _TMR2CN,#0x7F inc _counter pop psw reti 109

110 /************************* EA kikapcsolása az elején, visszaállítás a végén **************************/ void f(void) critical { P0=0; P1=0xFF; } critical { P0=0; P1=0xFF; } 110

111 engedélyezés előtt az eseményforrás konfigurálása a főprogrammal ne ütközzön (mentés, visszaállítás) C: az Rn regisztereket nem menti a verem igénybevételének megfontolása túl gyakori kérések/a rutin futási ideje fontos elveszhetnek kérések flag-ek kezelése, törlése több flag egy megszakítás több megszakítási forrás kezelése, extra késleltetés! a prioritás figyelembe vétele 111

112 Volatile változók értékük bármikor változhat a megszakítás rutinban az optimalizálásból kimarad a változó Nem atomi műveletek atomi művelet: egyetlen utasítás pl: ne módosítsunk 16 bites változót a megszakítási rutinban critical használata a megszakítás késhet emiatt 112

113 unsigned char d; volatile unsigned char vd; d=5; mov _d,#0x05 P0=d+3; mov _P0,#0x08 vd=5; mov _vd,#0x05 P0=vd+3; mov a,#0x03 add a,_vd mov _P0,a 113

114 volatile int x; Megszakításban x változhat Főprogram: C Assembler if (x>10) clr c mov a,#0x0a subb a,_x clr a subb a,(_x + 1) jnc 114

115 volatile int x; Kimaradhat egy megszakításból x frissítése Main program protect_x=1; if (x>10) protect_x=0; Interrupt handler if (!protect_x) { x = (ADC0H << 8) ADC0L; } 115

116 buffer[0] buffer[1] ReadPtr AvailableSamples WritePtr buffer[readptr] buffer[writeptr] buffer[buffersize-2] buffer[buffersize-1] 116

117 volatile int buffer[buffersize]; volatile unsigned char WritePtr; volatile unsigned char AvailableSamples; unsigned char ReadPtr; void IRQ(void) interrupt ADC_VECTOR { AD0INT=0; buffer[writeptr] = (ADC0H << 8) ADC0L; WritePtr = (WritePtr + 1) % BUFFERSIZE; AvailableSamples++; // error, if > BUFFERSIZE } if (AvailableSamples) { Send(buffer[ReadPtr]); ReadPtr = (ReadPtr + 1) % BUFFERSIZE; AvailableSamples--; } Feladat: módosítsuk adatcsomagok esetére (PacketSize adja meg) 117

118 volatile bit UpdateAvailableSamples; volatile unsigned int AvailableSamples; // 16-bit! void IRQ(void) interrupt ADC_VECTOR { if (UpdateAvailableSamples) { AvailableSamples = (WritePtr-ReadPtr ) % BUFFERSIZE; UpdateAvailableSamples=0; } } UpdateAvailableSamples=1; while (UpdateAvailableSamples); for (i=0; i<availablesamples; i++) { Send(buffer[ReadPtr]); ReadPtr = (ReadPtr + 1) % BUFFERSIZE; } 118

119 A main() előtt a fordító generál egy kódot Változók kezdőértékének beállítása Tömböket is inicializál (0 értékkel) A watchdog miatt gond lehet! Saját kézbe vétel: unsigned char _sdcc_external_startup () { PCA0MD &= ~0x40; // watchdog off PCA0MD = 0x00; return 1; // 1: don t initialise variables } 119

120 120

121 Assemler (Keil) C fordító (SDCC, Keil, stb.) Silabs IDE intergált környezet debugger in-circuit emulation Config Wizard 121

122 USB Debug adapter, ICE Development kitek Toolstick kitek 122

Bevezetés az assembly nyelvbe

Bevezetés az assembly nyelvbe Jelfeldolgozás a közlekedésben 2015/2016 II. félév Bevezetés az assembly nyelvbe Memóriacímzési módok Általános forma: instruction destination, source Addressing Modes Címzési mód Instruction /Utasítás

Részletesebben

Bevezetés az assembly nyelvbe

Bevezetés az assembly nyelvbe Mechatronika és mikroszámítógépek 2016/2017 I. félév Bevezetés az assembly nyelvbe Makro utasítások felépítése - emlékeztető Általános forma: operation code (Általános forma: instruction 3 című utasítás:

Részletesebben

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

Mikrovezérlık története (nagyon) röviden Cím: Mikrovezérlık története (nagyon) röviden Készítette: Motika László Károly SZTE TTK Mérnök Informatikus I. félév 2006. november Mikrovezérlık története (nagyon) röviden A beágyazott számítógépeket

Részletesebben

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

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások Mechatronika és mikroszámítógépek 2018/2019 I. félév Külső megszakítások Megszakítás, Interrupt A megszakítás egy olyan esemény, vagy feltétel teljesülése, amely felfüggeszti a program futását, a vezérlést

Részletesebben

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

Mechatronika és mikroszámítógépek Mechatronika és mikroszámítógépek 2016/2017 I. félév 8051, C8051F020 mikro vezérlők és programozásuk Fontos tudnivalók Elérhetőség: ST. 108 E-mail: lovetei.istvan@mail.bme.hu Fontos tudnivalók: kjit.bme.hu

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2017, Szeged Mikrovezérlők Alkalmazástechnikája 18 jan. 1 Processzoroknál tipikusan párhuzamos átvitel adatbusz címbusz vezérlőjelek, szinkronizálás Mikrovezérlőknél soros átvitel Kevés vezeték

Részletesebben

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

Mechatronika és mikroszámítógépek Mechatronika és mikroszámítógépek 2018/2019 I. félév Órajelek, időzítők, megszakítások (4. lab) Órajel Internal Oscillator Control Register (OSCICN 0xB2) Bit Symbol Leírás 7 MSCLKE Missing Clock enable

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 2015.12.06. 11:45 Kommunikációs áramkörök és használatuk 1 Processzoroknál tipikusan párhuzamos átvitel adatbusz címbusz vezérlőjelek, szinkronizálás

Részletesebben

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

Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése SZEGEDI TUDOMÁNYEGYETEM Természettudományi Kar Kísérleti Fizika Tanszék Informatikus Fizikus szak Mikrokonverterrel vezérelt digitális jelgenerátor fejlesztése Diplomamunka Készítette: Kopasz Péter Gábor

Részletesebben

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

Mechatronika és mikroszámítógépek Mechatronika és mikroszámítógépek 2018/2019 I. félév 8051, C8051F020 mikro vezérlők és programozásuk Fontos tudnivalók Elérhetőség: ST. 108 E-mail: lovetei.istvan@mail.bme.hu Fontos tudnivalók: kjit.bme.hu

Részletesebben

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

1. Bevezetés. 2. A mikroszámítógépek felépítése 1. Bevezetés A mikroelektronika és a számítástechnika története rövid. A 19. században terveztek számítógépeket, amelyek utasításkészlettel rendelkeztek (Charles Babbage). E gépeket mechanikus szerkezetként

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 2015.12.06. 11:51 Analóg perifériák és használatuk 1 Gingl Zoltán, 2012, Szeged Mikrovezérlők Alkalmazástechnikája 2015.12.06. 11:51 Analóg

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2017, Szeged Mikrovezérlők Alkalmazástechnikája 18 szept. 1 18 szept. 2 Analóg jelekből kétállapotú jel Két bemeneti feszültség, V n,v p Logikai kimenet: 1, ha V p >V n 0, egyébként Hiszterézis

Részletesebben

Az vevő- és vezérlőáramkör programja

Az vevő- és vezérlőáramkör programja Az vevő- és vezérlőáramkör programja Központizár-vezérlés - IR vevő- és vezérlőáramkör INCLUDE 89C2051.mc ******************************************************************************** VÁLTOZÓK ********************************************************************************

Részletesebben

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

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás ATmega128 CPU Single-level pipelining Egyciklusú ALU működés Reg. reg., reg. konst. közötti műveletek 32 x 8 bit általános célú regiszter Egyciklusú

Részletesebben

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

1. Az utasítás beolvasása a processzorba A MIKROPROCESSZOR A mikroprocesszor olyan nagy bonyolultságú félvezető eszköz, amely a digitális számítógép központi egységének a feladatait végzi el. Dekódolja az uatasításokat, vezérli a műveletek elvégzéséhez

Részletesebben

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

A Számítógépek felépítése, mőködési módjai Mechatronika, Optika és Gépészeti Informatika Tanszék Kovács Endre tud. Mts. A Számítógépek felépítése, mőködési módjai Mikroprocesszoros Rendszerek Felépítése Buszrendszer CPU OPERATÍV TÁR µ processzor

Részletesebben

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák I. C8051Fxxx mikrovezérlők hardverfelépítése, működése 1. Adja meg a belső RAM felépítését! 2. Miben különbözik a belső RAM alsó és felső felének elérhetősége? 3. Hogyan érhetők el az SFR regiszterek?

Részletesebben

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

találhatók. A memória-szervezési modell mondja meg azt, hogy miként Memória címzési módok Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről) a program utasításai illetve egy utasítás argumentumai a memóriában találhatók. A memória-szervezési

Részletesebben

Jelfeldolgozás a közlekedésben

Jelfeldolgozás a közlekedésben Jelfeldolgozás a közlekedésben 2015/2016 II. félév 8051 és C8051F020 mikrovezérlők Fontos tudnivalók Elérhetőség: ST. 108 E-mail: lovetei.istvan@mail.bme.hu Fontos tudnivalók: kjit.bme.hu Aláírás feltétele:

Részletesebben

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

A mikroszámítógép felépítése. 1. Processzoros rendszerek fő elemei mikroszámítógépek alapja a mikroprocesszor. Elemei a mikroprocesszor, memória, és input/output eszközök. komponenseket valamilyen buszrendszer köti össze, amelyen az

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

A 32 bites x86-os architektúra regiszterei

A 32 bites x86-os architektúra regiszterei Memória címzési módok Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

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

A számítógép alapfelépítése Informatika alapjai-6 számítógép felépítése 1/8 számítógép alapfelépítése Nevezzük számítógépnek a következő kétféle elrendezést: : Harvard struktúra : Neumann struktúra kétféle elrendezés alapvetően egyformán

Részletesebben

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

Mérési utasítás Mikrokontroller programozás 2.sz. mérés Mérési utasítás Mikrokontroller programozás 2.sz. mérés Szükséges ismeretanyag: - IBM PC kezelése, szövegszerkesztés, Double Commander - SB80C515 mikrokontroller felépítése, utasításai - HyperTerminál

Részletesebben

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

Adatelérés és memóriakezelés Adatelérés és memóriakezelés Jelen nayagrészben az Intel x86-os architektúrára alapuló 32 bites processzorok programozását tekintjük. Egy program futása során (legyen szó a program vezérléséről vagy adatkezelésről)

Részletesebben

16F628A megszakítás kezelése

16F628A megszakítás kezelése 16F628A megszakítás kezelése A 'megszakítás' azt jelenti, hogy a program normális, szekvenciális futása valamilyen külső hatás miatt átmenetileg felfüggesztődik, és a vezérlést egy külön rutin, a megszakításkezelő

Részletesebben

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

[cimke:] [feltétel] utasítás paraméterek [; megjegyzés] Szoftver fejlesztés Egy adott mikroprocesszoros rendszer számára a szükséges szoftver kifejlesztése több lépésből áll: 1. Forrás nyelven megírt program(ok) lefordítása gépi kódra, amihez megfelelő fejlesztő

Részletesebben

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

Bevezetés a számítástechnikába Bevezetés a számítástechnikába, Címzési módok, Assembly Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 2/9. ú utasítás

Részletesebben

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

Assembly Rekurzív függvények, EXE, C programok. Iványi Péter Assembly Rekurzív függvények, EXE, C programok Iványi Péter Algoritmusok előadás Rekurzív függvény FÜGGVÉNY nyomtat(n) print n HA n!= 0 nyomtat(n-1) ELÁGAZÁS VÉGE FÜGGVÉNY VÉGE Rekurzív függvény org 100h

Részletesebben

Mikrokontrollerek. Tihanyi Attila 2007. május 8

Mikrokontrollerek. Tihanyi Attila 2007. május 8 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

Részletesebben

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2018, Szeged Mikrovezérlők Alkalmazástechnikája 18 szept. 1 18 szept. 2 A processzornak ütemjel (órajel) szükséges Számos periféria órajelét is adja Rendkívül sokféle opció DC-100MHz, pl.

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2015, Szeged Mikrovezérlők Alkalmazástechnikája 1 A processzornak ütemjel (órajel) szükséges Számos periféria órajelét is adja Rendkívül sokféle opció DC-100MHz, pl. 32768Hz (órakvarc) Fogyasztás/sebesség

Részletesebben

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

Bevezetés a számítástechnikába Bevezetés a számítástechnikába Megszakítások Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. november 9. Bevezetés Megszakítások

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom

Részletesebben

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

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

Részletesebben

A MiniRISC processzor

A MiniRISC processzor BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A MiniRISC processzor Fehér Béla, Raikovich Tamás, Fejér Attila BME MIT

Részletesebben

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.

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. 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. 1. Regiszterek Regiszterek fajtái a. Szegmensregiszterek cs (code):

Részletesebben

DDS alapú szinusz jelgenerátor fejlesztése

DDS alapú szinusz jelgenerátor fejlesztése SZEGEDI TUDOMÁNYEGYETEM Természettudományi Kar KÍSÉRLETI FIZIKAI TANSZÉK Informatikus-fizikus DIPLOMAMUNKA DDS alapú szinusz jelgenerátor fejlesztése Készítette: Mellár János Zsolt Témavezető: Dr. Gingl

Részletesebben

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

Bevezetés a méréstechnikába és jelfeldolgozásba. Tihanyi Attila április 24. Bevezetés a méréstechnikába és jelfeldolgozásba Tihanyi Attila 2007. április 24. Mikrovezérlők 1970 E.M.Hoff javasolja az univerzális vezérlő eszköz kialakítását 1971 4004 4040 4 bits 750kHz órajel 8 16

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2013, Szeged Mikrovezérlők Alkalmazástechnikája 1 2 Tulajdonságok Írási lehetőség Olvasás (konstansok) Scratchpad memory, flash program memory Endurance hányszor írható ( 10k-100k) Data retention

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter További Op. rsz. funkcionalitások PSP címének lekérdezése mov ah, 62h int 21h Eredmény: BX = PSP szegmens címe További Op. rsz. funkcionalitások Paraméterek kimásolása mov di, parameter

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Megszakítás- és kivételkezelés Fehér Béla Raikovich

Részletesebben

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

Számítógépek felépítése Számítógépek felépítése Emil Vatai 2014-2015 Emil Vatai Számítógépek felépítése 2014-2015 1 / 14 Outline 1 Alap fogalmak Bit, Byte, Word 2 Számítógép részei A processzor részei Processzor architektúrák

Részletesebben

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

Az integrált áramkörök kimenetének kialakítása 1 Az integrált áramörö imeneténe ialaítása totem-pole three-state open-olletor Az áramörö általános leegyszerűsített imeneti foozata: + tápfeszültség R1 V1 K1 imenet V2 K2 U i, I i R2 ahol R1>>R2, és K1,

Részletesebben

Máté: Assembly programozás

Máté: Assembly programozás Dr. Máté Eörs docens Képfeldolgozás és Számítógépes Grafika Tanszék Árpád tér 2. II. em. 213 6196, 54-6196 (6396, 54-6396) http://www.inf.u-szeged.hu/~mate Tantárgy leírás: http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/

Részletesebben

Assembly. Iványi Péter

Assembly. Iványi Péter Assembly Iványi Péter Miért? Ma már ritkán készül program csak assembly-ben Általában bizonyos kritikus rutinoknál használják Miért nem használjuk? Magas szintű nyelven könnyebb programozni Nehéz más gépre

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

Az AVR ATmega128 mikrokontroller

Az AVR ATmega128 mikrokontroller Az AVR ATmega128 mikrokontroller Rövid leírás Ez a leírás a Mérés labor II. tárgy első mikrokontrolleres témájú mérési gyakorlatához készült. Csak annyit tartalmaz általánosan az IC-ről, ami szerintünk

Részletesebben

MCS-51-es MIKROKONTROLLER ÖSSZEFOGLALÓ KÉSZÍTETTE: DR. KÓNYA LÁSZLÓ Tartalomjegyzék

MCS-51-es MIKROKONTROLLER ÖSSZEFOGLALÓ KÉSZÍTETTE: DR. KÓNYA LÁSZLÓ Tartalomjegyzék 1 2 ELEKTRONIKA SZAKCSOPORT BUDAPESTI MŰSZAKI FŐISKOLA KANDÓ KÁLMÁN VILLAMOSMÉRNÖKI KARA AUTOMATIKA INTÉZET Oktatási segédlet 2000 MCS-51-es MIKROKONTROLLER MCS-51-es MIKROKONTROLLER ÖSSZEFOGLALÓ KÉSZÍTETTE:

Részletesebben

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

Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 5. előadás Dr. Bécsi Tamás Megszakítások (Interrupts: IT) Megszakítás fogalma Egy aszinkron jelzés (pl. gomblenyomás) a processzor felé (Interrupt Request: IRQ), hogy valamely

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Kártyás ajtónyitó tervezése Horváth Gábor BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-02-19 Hálózati Rendszerek és Szolgáltatások

Részletesebben

Bevezetés az informatikába

Bevezetés az informatikába Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

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

Számítógép architektúrák Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

Programozott soros szinkron adatátvitel

Programozott soros szinkron adatátvitel Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.

Részletesebben

Programozás alapjai. 10. előadás

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz

assume CS:Code, DS:Data, SS:Stack Start mov dl, 100 mov dh, 100 push dx Rajz Feladat5: rajzolo.asm Feladat meghatározása A feladat célja bemutatni egy egyszerű grafikai program segítségével a közvetlen címzést (grafikus VGA 320*200). A program a kurzor mozgató gombok segítségével

Részletesebben

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

Részletesebben

Egyszerű RISC CPU tervezése

Egyszerű RISC CPU tervezése IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely

Részletesebben

Mikrovezérlők Alkalmazástechnikája

Mikrovezérlők Alkalmazástechnikája Gingl Zoltán, 2013, Szeged Mikrovezérlők Alkalmazástechnikája 2015.06.28. 22:20 Működést támogató perifériák és használatuk 1 A processzornak ütemjel (órajel) szükséges Számos periféria órajelét is adja

Részletesebben

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

Máté: Számítógép architektúrák I-51 (19) Cél: beépített rendszerekben való alkalmazás Fő szempont: olcsóság (ma már 1-15 ), sokoldalú alkalmazhatóság A memóriával, be- és kivitellel együtt egyetlen lapkára integrált számítógép Mikrovezérlő

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők Tárgykövetelmények, tematika Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2018 Házi feladat: kötelező

Részletesebben

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

Assembly Utasítások, programok. Iványi Péter Assembly Utasítások, programok Iványi Péter Assembly programozás Egyszerű logikán alapul Egy utasítás CSAK egy dolgot csinál Magas szintű nyelven: x = 5 * z + y; /* 3 darab művelet */ Assembly: Szorozzuk

Részletesebben

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h

assume CS:Code, DS:Data, SS:Stack Start: xor di, di mov si, 1 Torles int 10h mov dl, 40 xor bh, bh mov ah, 02h Kesleltet int 16h Fealadat3: labda.asm Feladat meghatározása A program célja az assembly rutinok időzítési lehetőségeinek bemutatása. Az időzítés az AH00, INT1Ah funkció segítségével történik. A program egy labda leesését

Részletesebben

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

Részletesebben

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

Számítógép Architektúrák (MIKNB113A) PANNON EGYETEM, Veszprém Villamosmérnöki és Információs Rendszerek Tanszék Számítógép Architektúrák (MIKNB113A) 4. előadás: Utasítás végrehajtás folyamata: címzési módok, RISC-CISC processzorok Előadó:

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása

Részletesebben

Assembly programozás levelező tagozat

Assembly programozás levelező tagozat Assembly programozás levelező tagozat Szegedi Tudományegyetem Képfeldolgozás és Számítógépes Grafika Tanszék 2011-2012-2 Tematika Assembly nyelvi szint. Az Intel 8086/88 regiszter készlete, társzervezése,

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

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

Számítógépek felépítése, alapfogalmak 2. előadás Számítógépek felépítése, alapfogalmak Lovas Szilárd, Krankovits Melinda SZE MTK MSZT kmelinda@sze.hu B607 szoba Nem reprezentatív felmérés kinek van ilyen számítógépe? 2 Nem reprezentatív felmérés

Részletesebben

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

1. ábra: Perifériára való írás idődiagramja BELÉPTETŐ RENDSZER TERVEZÉSE A tárgy első részében tanult ismeretek részbeni összefoglalására tervezzük meg egy egyszerű mikroprocesszoros rendszer hardverét, és írjuk meg működtető szoftverét! A feladat

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők 6. NVIC Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 ARM7, ARM9 megszakítás kezelés ARM7,

Részletesebben

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

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással Megoldás Elméleti anyag: Processzor belső felépítése, adat

Részletesebben

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása

Mi az assembly? Gyakorlatias assembly bevezető. Sokféle assembly van... Mit fogunk mi használni? A NASM fordítóprogramja. Assembly programok fordítása Mi az assembly Gyakorlatias assembly bevezető Fordítóprogramok előadás (A, C, T szakirány) programozási nyelvek egy csoportja gépközeli: az adott processzor utasításai használhatóak általában nincsenek

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

Assembly utasítások listája

Assembly utasítások listája Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek

Részletesebben

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA

4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA 4.1.1. I 2 C, SPI, I 2 S, USB, PWM, UART, IrDA A címben található jelölések a mikrovezérlők kimentén megjelenő tipikus perifériák, típus jelzései. Mindegyikkel röviden foglalkozni fogunk a folytatásban.

Részletesebben

8051-es mikrovezérlő. mikrovezérlő 1980-ból napjainkban

8051-es mikrovezérlő. mikrovezérlő 1980-ból napjainkban 8051-es mikrovezérlő mikrovezérlő 1980-ból napjainkban Mikrovezérlők A mikrokontroller egy mikroprocesszor és további periféria-áramkörök egyetlen közös egységbe integrálva. Első mikrovezérlő a Texas Instruments

Részletesebben

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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység Mikroprocesszor CPU C Central Központi P Processing Számító U Unit Egység A mikroprocesszor általános belső felépítése 1-1 BUSZ Utasítás dekóder 1-1 BUSZ Az utasítás regiszterben levő utasítás értelmezését

Részletesebben

Mikrovezérlők programozása

Mikrovezérlők programozása Analóg és digitális rsz-ek megvalósítása prog. mikroák-kel BMEVIEEM371 Budapesti Műszaki és Gazdaságtudományi Egyetem Mikrovezérlők programozása Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013.

Részletesebben

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

Máté: Számítógép architektúrák Máté: Számítógép architektúrák 211117 Utasításrendszer architektúra szintje ISA) Amit a fordító program készítőjének tudnia kell: memóriamodell, regiszterek, adattípusok, ok A hardver és szoftver határán

Részletesebben

MSP430 programozás Energia környezetben. Az I/O portok kezelése

MSP430 programozás Energia környezetben. Az I/O portok kezelése MSP430 programozás Energia környezetben Az I/O portok kezelése 1 Egyszerű I/O vezérlés Digitális I/O pinmode(pin, mode) kivezetés üzemmódjának beállítása digitalwrite(pin, state) - kimenetvezérlés digitalread(pin)

Részletesebben

Nagy Gergely április 4.

Nagy Gergely április 4. Mikrovezérlők Nagy Gergely BME EET 2012. április 4. ebook ready 1 Bevezetés Áttekintés Az elektronikai tervezés eszközei Mikroprocesszorok 2 A mikrovezérlők 3 Főbb gyártók Áttekintés A mikrovezérlők az

Részletesebben

A 6502 mikroprocesszor

A 6502 mikroprocesszor A 6502 mikroprocesszor Czirkos Zoltán BME EET 2013. február 13. A 6502 processzorról Z80-korabeli Chuck Peddle (rendszer) és Bill Mensch (layout) főtervezők MOS Technology de sok cég gyártotta azóta Apple

Részletesebben

A SAB80515/80535-ÖS MIKROKONTROLLER

A SAB80515/80535-ÖS MIKROKONTROLLER A SAB80515/80535-ÖS MIKROKONTROLLER TARTALOMJEGYZÉK Tartalomjegyzék 1. A SAB80515-ös mikrokontroller hardver felépítése...3 1.1. Mikroszámítógépek felépítése...3 1.1.1. A Neumann-elv...3 1.1.2. Mikroszámítógépek

Részletesebben

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ. 2010. november 8. Verzió 1.0. http://logsys.mit.bme.hu

LOGSYS LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ. 2010. november 8. Verzió 1.0. http://logsys.mit.bme.hu LOGSYS LCD KIJELZŐ MODUL FELHASZNÁLÓI ÚTMUTATÓ 2010. november 8. Verzió 1.0 http://logsys.mit.bme.hu Tartalomjegyzék 1 Bevezetés... 1 2 Kommunikációs interfész... 2 3 Memóriák az LCD vezérlőben... 3 3.1

Részletesebben

Silabs STK3700, Simplicity Studio laborgyakorlat

Silabs STK3700, Simplicity Studio laborgyakorlat Silabs STK3700, Simplicity Studio laborgyakorlat Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 Saját Firmware library Saját

Részletesebben

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

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Rendszer órajel Órajel osztás XTAL Divide Control (XDIV) Register 2 129 oszthat Órajel források CKSEL fuse bit Külső kristály/kerámia rezonátor Külső

Részletesebben

ARM (Advanced RISC Machine)

ARM (Advanced RISC Machine) POWERED ARM ARM (Advanced RISC Machine) 1983 kisérleti projekt Acorn Computers Ltd., 1985 ARM1 fejlesztői minták, 1985 ARM2 32 bites adatbusz 64MB memória címezhető, 1989 ARM3 4K cache, 1990 ARM név változtatás

Részletesebben

Stack Vezérlés szerkezet Adat 2.

Stack Vezérlés szerkezet Adat 2. Stack Vezérlés szerkezet Adat 2. Kód visszafejtés. Izsó Tamás 2013. november 14. Izsó Tamás Stack Vezérlés szerkezet Adat 2./ 1 Változó típusú paraméterekátadása 1. #include < s t d i o. h> int64 myfunc

Részletesebben

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

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás Alapfogalmak (MCU) I. Gépi szóhossz A processzor által egyszerre kezelhető adatmennyiség, azaz egy működési lépés során hány bit információ kerül

Részletesebben

Labor 2 Mikrovezérlők

Labor 2 Mikrovezérlők Labor 2 Mikrovezérlők ATMEL AVR - ARDUINO BUDAI TAMÁS 2015. 09. 06. Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása

Részletesebben

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK 1 Az adatok feldolgozását végezhetjük olyan általános rendeltetésű digitális eszközökkel, amelyeket megfelelő szoftverrel (programmal) vezérelünk. A mai digitális

Részletesebben

Az AVR programozás alapjai. Előadja: Both Tamás

Az AVR programozás alapjai. Előadja: Both Tamás Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,

Részletesebben

Az MSP430 mikrovezérlők digitális I/O programozása

Az MSP430 mikrovezérlők digitális I/O programozása 10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó

Részletesebben