Commit 9ebdcefb50b8f558f780cea1c219dfb85765443a

Authored by thubert
1 parent 39080e62

Affichage fonctionnel, mais fonctionnement a frequence plus haute pour eviter qu'il scintille

Showing 1 changed file with 35 additions and 14 deletions   Show diff stats
compteurLettre.txt
... ... @@ -5,8 +5,8 @@
5 5 .equ DDRC = 0x07
6 6 .equ PORTC = 0x08
7 7  
8   -.equ TCCR0A = 0x24 ; Initialisation du timer
9   -.equ TCCR0B = 0x25
  8 +.equ TTCR0A = 0x24 ; Initialisation du timer
  9 +.equ TTCR0B = 0x25
10 10 .equ TMSK0 = 0x6e
11 11  
12 12 .equ RAMEND = 0x21FF
... ... @@ -16,6 +16,11 @@
16 16 .def selAfficheur = r19
17 17 .def compteur = r20
18 18 .def seg = r21
  19 +.def aff0 = r0
  20 +.def aff1 = r1
  21 +.def aff2 = r2
  22 +.def aff3 = r3
  23 +
19 24 .org 0x000
20 25 ; Vecteur RESET
21 26 jmp debut
... ... @@ -26,7 +31,7 @@
26 31  
27 32 .org 0x0080
28 33 afficheur:
29   - .DB 0x3F, 0x30, 0x6D, 0x79, 0x72, 0x5B, 0x5F, 0x31, 0x7F, 0x7B, 0x77, 0x40, 0x4c, 0xfc, 0xcf, 0xc7, 0x40, 0xf6, 0x04, 0x3c, 0x40, 0x0E, 0x37, 0x54, 0x5c, 0x40, 0x40, 0x44, 0x5b, 0x4e, 0x1c, 0x1c, 0x40, 0x40, 0x40, 0x40, 0x63
  34 + .DB 0x3F, 0x30, 0x6D, 0x79, 0x72, 0x5B, 0x5F, 0x31, 0x7F, 0x7B, 0x77, 0x40, 0x4c, 0x7c, 0x4f, 0x47, 0x40, 0x76, 0x04, 0x3c, 0x40, 0x0E, 0x37, 0x54, 0x5c, 0x40, 0x40, 0x44, 0x5b, 0x4e, 0x1c, 0x1c, 0x40, 0x40, 0x40, 0x40, 0x63
30 35 ; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, °
31 36  
32 37  
... ... @@ -34,26 +39,37 @@ debut:
34 39 DDRA@IO <- 0xFF
35 40 DDRC@IO <- 0xFF
36 41 TTCR0A@IO <- 0x01
37   - TTCR0B@IO <- 0x04
38   - TMSK0 <- 0x6E
  42 + TTCR0B@IO <- 0x03
  43 + TMSK0 <- 0x01
39 44 selAfficheur <- 0x01
40 45 SEI
41 46  
42 47 boucle:
43 48  
44   - ; On affiche compteur sur le 7 segments
45   - seg <- afficheur@ROM[compteur]
46   - out portc,selAfficheur
47   - out porta,seg
48   -
49 49 ; On change de chiffre
50   - inc compteur
51   - si compteur > 36 alors compteur <- 0
  50 + aff3 <- aff2
  51 + aff2 <- aff1
  52 + aff1 <- aff0
  53 + inc aff0
  54 + si aff0 > 36 alors aff0 <- 0
  55 +
  56 +
  57 +
  58 +
  59 +
52 60  
53 61 ; On attend et on recommence
54 62 call tempo
55 63 call tempo
56 64 call tempo
  65 + call tempo
  66 + call tempo
  67 + call tempo
  68 + call tempo
  69 + call tempo
  70 + call tempo
  71 + call tempo
  72 + call tempo
57 73 saut boucle
58 74  
59 75 tempo:
... ... @@ -67,6 +83,11 @@ tempoA:
67 83  
68 84 tmr:
69 85 lsl selAfficheur
70   - si selAfficheur > 8 alors selAfficheur <-0x01
71   - portc@IO <- selAfficheur
  86 + si selAfficheur > 8 alors selafficheur <- 1
  87 + portc@IO <- 0xff - selAfficheur
  88 + si selAfficheur == 1 alors porta@IO <- afficheur@ROM[aff3]
  89 + si selAfficheur == 2 alors porta@IO <- afficheur@ROM[aff2]
  90 + si selAfficheur == 4 alors porta@IO <- afficheur@ROM[aff1]
  91 + si selAfficheur == 8 alors porta@IO <- afficheur@ROM[aff0]
  92 + sei
72 93 ret
... ...