Commit 930282df41e9894b7fd81ac4a54c8b8bb1a13204

Authored by Geoffrey PREUD'HOMME
1 parent aadee417

Afficheur numérique

Par Thomas
Showing 2 changed files with 71 additions and 1 deletions   Show diff stats
compteur.txt 0 → 100644
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
  1 +.equ PINA = 0x00 ; définition des adresses des ports
  2 +.equ DDRA = 0x01
  3 +.equ PORTA = 0x02
  4 +.equ PINC = 0x06
  5 +.equ DDRC = 0x07
  6 +.equ PORTC = 0x08
  7 +
  8 +.equ RAMEND = 0x21FF
  9 +.equ SPH = 0x3E ; initialisation de la pile
  10 +.equ SPL = 0x3D
  11 +
  12 +.def compteur = r20
  13 +.def seg = r21
  14 +
  15 +.org 0x000
  16 + ; Vecteur RESET
  17 + jmp debut
  18 +
  19 +.org 0x0080
  20 +
  21 +afficheur:
  22 + .DB 0x3F, 0x30, 0x6D, 0x79, 0x72, 0x5B, 0x5F, 0x31, 0x7F, 0x7B
  23 + ; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  24 +
  25 +
  26 +debut:
  27 + DDRA@IO <- 0xFF
  28 + DDRC@IO <- 0xFF
  29 +
  30 +boucle:
  31 +
  32 + ; On affiche compteur sur le 7 segments
  33 + seg <- afficheur@ROM[compteur]
  34 + out porta,seg
  35 +
  36 + ; On change de chiffre
  37 + inc compteur
  38 + si compteur > 9 alors compteur <- 0
  39 +
  40 + ; On attend et on recommence
  41 + call tempo
  42 + call tempo
  43 + call tempo
  44 + saut boucle
  45 +
  46 +tempo:
  47 + ldi r24,8
  48 +tempoA:
  49 + subi r22,1
  50 + sbci r23,0
  51 + sbci r24,0
  52 + brcc tempoA
  53 + ret
@@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
10 10
11 .equ SREG = 0x3F 11 .equ SREG = 0x3F
12 12
  13 +.equ WDTCSR = 0x60
  14 +
13 .equ EIMSK = 0x3D 15 .equ EIMSK = 0x3D
14 .equ EICRA = 0x69 16 .equ EICRA = 0x69
15 .equ EICRB = 0x6A 17 .equ EICRB = 0x6A
@@ -26,6 +28,10 @@ @@ -26,6 +28,10 @@
26 28
27 .def etat = r19 29 .def etat = r19
28 .def reference = r20 30 .def reference = r20
  31 +.def d3 = r20 ; Digit 3 (tout à gauche)
  32 +.def d2 = r20 ; Digit 2
  33 +.def d1 = r20 ; Digit 1
  34 +.def d0 = r20 ; Digit 0 (tout à droite)
29 35
30 ; Vecteurs d'interruptions 36 ; Vecteurs d'interruptions
31 37
@@ -47,9 +53,17 @@ @@ -47,9 +53,17 @@
47 .org 0x0008 ; INT3 53 .org 0x0008 ; INT3
48 jmp decrementer 54 jmp decrementer
49 55
  56 +.org 0x0080
  57 +
50 ; Tableaux de la mémoire du programme 58 ; Tableaux de la mémoire du programme
51 59
52 -.org 0x0080 60 +afficheurNombres:
  61 + .DB 0x7E, 0x0C, 0x37, 0x9F, 0x4D, 0xDB, 0xFB, 0x0E, 0xFF, 0xDF ; TODO Ce sont pas les bonnes valeurs
  62 + ; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  63 +
  64 +;afficheurLettres:
  65 +; .DB ; TODO
  66 +; ; A, B, C, D, E, F, G, H ; TODO
53 67
54 ; Programme 68 ; Programme
55 69
@@ -57,6 +71,9 @@ debut: @@ -57,6 +71,9 @@ debut:
57 ; Configuration des composants 71 ; Configuration des composants
58 SREG <- 0b10000000 72 SREG <- 0b10000000
59 73
  74 + ; Watchdog
  75 + WDTCSR <-
  76 +
60 ; Interruptions externes 77 ; Interruptions externes
61 EIMSK <- 0b00001111 78 EIMSK <- 0b00001111
62 EICRA <- 0b11111111 ; TODO Oscillations annulables ? 79 EICRA <- 0b11111111 ; TODO Oscillations annulables ?