main.asm


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