1 | ;+-------------------------------
|
2 | ;I Assembler Initialisierungskopf
|
3 | ;+-------------------------------
|
4 | ;I Einbinden der Definitionsdatei für ATmega8
|
5 | .include "m8def.inc"
|
6 |
|
7 |
|
8 | ;+-------------------------------
|
9 | ;I Reset und Internetvektoren
|
10 | rjmp conf ; 1 Power on Reset
|
11 | reti ; 2 INT0-Interrupt (1. externer Interrupt)
|
12 | reti ; 3 INT1-Interrupt (2. externer Interrupt)
|
13 | reti ; 4 TC 2 Compare Match
|
14 | reti ; 5 TC 2 Overflow
|
15 | reti ; 6 TC 1 Capure
|
16 | reti ; 7 TC 1 Compare Match 1
|
17 | reti ; 8 TC 1 Compare Match 2
|
18 | reti ; 9 TC 1 Overflow
|
19 | reti ;10 TC 0 Overflow
|
20 | reti ;11 SPI, STC Seriel Transfer Complete
|
21 | reti ;12 UART Rx Complete
|
22 | reti ;13 UART Data Register Empty
|
23 | reti ;14 UART Tx Complete
|
24 | reti ;15 ADC Conversion Complete
|
25 | reti ;16 EEPROM Ready
|
26 | reti ;17 Analog Comparator
|
27 | reti ;18 TWI (PC) Serial Interface
|
28 | reti ;19 Store Program Memory Ready
|
29 | ;+-------------------------------
|
30 | ;I Sprungmarke (Konfiguration)
|
31 | conf: ;Sprungadresse nach auslösen des Reset
|
32 | ;+-------------------------------
|
33 | cli ;alle Interrups verrübergehend sperren
|
34 | ;+-------------------------------
|
35 | ;I Initialisierung des Stackpointers (Managet Rücksprungadressen
|
36 | ldi r16, 0x04 ;High Byte Adresse RAMEND (SRAM)
|
37 | out SPH, r16 ;Register Stackpointer HIGH
|
38 | ldi r16, 0x5F ;Low Byte Adresse RAMEND (SRAM)
|
39 | out SPL, r16 ;Register Stackpointer LOW
|
40 | ;+-------------------------------
|
41 |
|
42 |
|
43 | ;+-------------------------------
|
44 | ;I Hardware-Konfiguration
|
45 | SBI DDRB,4 ;Ausgang der Hintergrundbeleuchtung konfigurieren
|
46 | SBI DDRD,2 ;Ausgang der Kontrastspannung konfigurieren
|
47 |
|
48 | SBI DDRC,4 ; C4 auf Ausgang
|
49 | CBI PORTC,4; C4 anschalten
|
50 |
|
51 | CBI DDRC,5 ; C5 auad Eingang
|
52 | SBI PORTC,5 ;Pullup anschalten
|
53 |
|
54 | ;+-------------------------------
|
55 |
|
56 | ;+-------------------------------
|
57 | ;I Hauptprogramm
|
58 | main:
|
59 | LDI r16, PINC
|
60 | ANDI r16,0b00100000
|
61 | CPI r16,0b00000000
|
62 | breq anschalten
|
63 | rjmp main
|
64 |
|
65 |
|
66 | anschalten:
|
67 | SBI PORTD,2
|
68 | SBI PORTB,4
|
69 | rjmp stop
|
70 |
|
71 | stop:
|
72 | rjmp stop
|