Mikrocontroller (Beispiel: ATMEL ATmega8)

Mikrocontroller Mikrocontroller (Beispiel: ATMEL ATmega8) PDIP (RESET) PC6 (RXD) PD0 (TXD) PD1 (INT0) PD2 (INT1) PD3 (XCK/T0) PD4 VCC GND (XTAL1/TOS...
Author: Erwin Schulz
1 downloads 2 Views 313KB Size
Mikrocontroller

Mikrocontroller (Beispiel: ATMEL ATmega8) PDIP (RESET) PC6 (RXD) PD0 (TXD) PD1 (INT0) PD2 (INT1) PD3 (XCK/T0) PD4 VCC GND (XTAL1/TOSC1) PB6 (XTAL2/TOSC2) PB7 (T1) PD5 (AIN0) PD6 (AIN1) PD7 (ICP1) PB0

1 2 3 4 5 6 7 8 9 10 11 12 13 14

28 27 26 25 24 23 22 21 20 19 18 17 16 15

PC5 (ADC5/SCL) PC4 (ADC4/SDA) PC3 (ADC3) PC2 (ADC2) PC1 (ADC1) PC0 (ADC0) GND AREF AVCC PB5 (SCK) PB4 (MISO) PB3 (MOSI/OC2) PB2 (SS/OC1B) PB1 (OC1A)

Ein-Chip-Computer mit konfigurierbaren Anschlusse: ¨ Analag-/Digitalkonverter (ADC) Digitale (TTL) Ein- und Ausgabe Komparatoreingang Serielle Kommunikation (RS232, TWI/I2 C, SPI) Harald Merkel, E-Praktikum 2014

2/??

Experimentierplatine

erenzkarte myAVR Board MK1/MK2/light mit ATmega8 / reference sheet myAVR board MK1/MK2/light with ATmega8

perimentierplattform:

1/2

myAVR Board MK1 LPT Version 1.6 / myAVR Board MK2 USB Version 2.1 / myAVR Board light Version 1.03

µTaster/Schalter (digital) µ buttons/switch (digital)

PC-Schnittstelle PC-interface

Anschluss über USB oder LPT / COM

RISC µController

Potentiometer (analog) potentiometer (analog) Schallwandler (Frequenzen) electric buzzer (frequenzies)

Lichtsensor light sensor

LED’s (digital/analog)

Eingabegeräte Input devices

Ausgabegeräte output devices

Erweiterungsbuchse Add-On socket

Speicheraufbau / memory structure

Register MEM 0x5F 0x5E 0x5D 0x5C 0x5B 0x5A 0x59 0x58 0x57 0x56 0x55 0x54 0x53 0x52 0x51 0x50 0x4F 0x4E 0x4D 0x4C 0x4B 0x4A 0x49 0x48

Name SREG SPH SPL Reserved GICR GIFR TIMSK TIFR SPMCR TWCR MCUCR MCUCSR TCCR0 TCNT0 OSCCAL SFIOR TCCR1A TCCR1B TCNT1H TCNT1L OCR1AH OCR1AL OCR1BH OCR1BL

Bit7 I – SP7

Bit6 T – SP6

Bit5 H – SP5

INT1 INTF1 OCIE2 OCF2 SPMIE TWINT SE – –

INT0 INTF0 TOIE2 TOV2 RWWSB TWEA SM2 – –

– – TICIE1 ICF1 – TWSTA SM1 – –

– COM1A1 ICNC1

– COM1A0 ICES1

Bit4 S – SP4

Bit3 V – SP3

Bit2 N SP10 SP2

– – – – – – OCIE1A OCIE1B TOIE1 OCF1A OCF1B TOV1 RWWSRE BLBSET PGWRT TWSTO TWWC TWEN SM0 ISC11 ISC10 – WDRF BORF – – CS02 Timer/Counter0 (8 Bits) Oscillator Calibration Register – – ACME PUD COM1B1 COM1B0 FOC1A FOC1B – WGM13 WGM12 CS12 Timer/Counter1 – Counter Register High byte Timer/Counter1 – Counter Register Low byte Timer/Counter1 – Output Compare Register A High byte Timer/Counter1 – Output Compare Register A Low byte Timer/Counter1 – Output Compare Register B High byte Timer/Counter1 – Output Compare Register B Low byte

Bit1 Z SP9 SP1

Bit0 C SP8 SP0

IVSEL – – – PGERS – ISC01 EXTRF CS01

IVCE – TOIE0 TOV0 SPMEN TWIE ISC00 PORF CS00

PSR2 WGM11 CS11

PSR10 WGM10 CS10

FLASH

SRAM

Interrupt - Vektoren

8K Program Flash (4 K x 16)

0x0000

0x0000

32 Register R0…31

0x001F 0x0020

64 I/O Register 0x005F 0x0060

1024 1024Byte ByteSRAM SRAM 512 Byte EEPROM

0x045F

Interruptvektoren / interrupt vectors Vector No.

Program Adress

Source Interrupt Definition Harald Merkel, E-Praktikum 2014

3/??

Schaltplan myAVR Board MK2 V2.10 www.myAVR.de

+5V 0V

10 9 8 7 6 5 4 3 2 1

+5V S1 1 2

1 2

0V

2

10 9 8 7 6 5 4 3 2 1

3

POT1

3 4

1 2

0V

0V

1 2 3

10K

1

1 2 3 4 5 6

+5V

+5V

+5V

S2

VCC

8

GND

PB0(ICP) PB1(OC1A) PB2(SS/OC1B) PB3(MOSI/OC2) PB4(MISO) PB5(SCK)

2 3 4 5 6 11 12 13

1 2

Speaker 2

SG1 1

2

0V

14 15 16 17 18 19

LED1 1,2K

0V LED2

1,2K

0V LED3

1 2

0V

1 2

100nF

0V 7

1

+5V

PD0(RXD) PD1(TXD) PD2(INT0) PD3(INT1) PB6(XTAL1/TOSC1) PD4(XCK/T0) PD5(T1) PB7(XTAL2/TOSC2)PD6(AIN0) PD7(AIN1)

1,2K

+5V

0V

0V

LED4 1,2K

0V

+5V 1 2 3 4 5 6

1 2 3 4 5 6

1 2 3 4 5 6

PHOTO

+5V

0V

0V

2

10

1 2

1

9

3 4

1

AGND

POT2

10K

AVCC

22

3

1 2

1 2

20

23 24 25 26 27 28

1 2

Q1

22 pF

AREF

PC0(ADC0) PC1(ADC1) PC2(ADC2) PC3(ADC3) PC4(ADC4/SDA) PC5(ADC5/SCL)

1 2

0V

22 pF

PC6(/RESET)

21

1 2

100nF

100nF

10µH

1

1 2

2

MEGA8-P

GND

STROMSTECKER +

IN

47µF/25V

7806 OUT

100nF

+ 47µF

D1 100nF

1 2

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20

1 2

+5V 0V

B2

1 2

0V

Harald Merkel, E-Praktikum 2014

4/??

Grundgerust ¨

#define F_CPU 3686400 #include

// Taktfrequenz des myAVR-Boards // AVR Register und Konstantendefinitionen

main () { ... do { ... } while (true); }

Startpunkt des Programmes: “main” ¨ Ubliche Ablaufstruktur: Initialisieren, dann Endlosschleife ¨ Alle notigen Declarationen in “avr\io.h” Kommentare mit “//”, bitte reichlich benutzen

Harald Merkel, E-Praktikum 2014

5/??

Kontrollstrukturen while-Schleife:

do { ... } while (bedingung);

¨ von 0 bis 9): for-Schleife (Beispiel zahlt

for (short i=0; i