Commit 9ebdcefb50b8f558f780cea1c219dfb85765443a
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,8 +5,8 @@ | ||
5 | .equ DDRC = 0x07 | 5 | .equ DDRC = 0x07 |
6 | .equ PORTC = 0x08 | 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 | .equ TMSK0 = 0x6e | 10 | .equ TMSK0 = 0x6e |
11 | 11 | ||
12 | .equ RAMEND = 0x21FF | 12 | .equ RAMEND = 0x21FF |
@@ -16,6 +16,11 @@ | @@ -16,6 +16,11 @@ | ||
16 | .def selAfficheur = r19 | 16 | .def selAfficheur = r19 |
17 | .def compteur = r20 | 17 | .def compteur = r20 |
18 | .def seg = r21 | 18 | .def seg = r21 |
19 | +.def aff0 = r0 | ||
20 | +.def aff1 = r1 | ||
21 | +.def aff2 = r2 | ||
22 | +.def aff3 = r3 | ||
23 | + | ||
19 | .org 0x000 | 24 | .org 0x000 |
20 | ; Vecteur RESET | 25 | ; Vecteur RESET |
21 | jmp debut | 26 | jmp debut |
@@ -26,7 +31,7 @@ | @@ -26,7 +31,7 @@ | ||
26 | 31 | ||
27 | .org 0x0080 | 32 | .org 0x0080 |
28 | afficheur: | 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 | ; 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, ° | 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,26 +39,37 @@ debut: | ||
34 | DDRA@IO <- 0xFF | 39 | DDRA@IO <- 0xFF |
35 | DDRC@IO <- 0xFF | 40 | DDRC@IO <- 0xFF |
36 | TTCR0A@IO <- 0x01 | 41 | TTCR0A@IO <- 0x01 |
37 | - TTCR0B@IO <- 0x04 | ||
38 | - TMSK0 <- 0x6E | 42 | + TTCR0B@IO <- 0x03 |
43 | + TMSK0 <- 0x01 | ||
39 | selAfficheur <- 0x01 | 44 | selAfficheur <- 0x01 |
40 | SEI | 45 | SEI |
41 | 46 | ||
42 | boucle: | 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 | ; On change de chiffre | 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 | ; On attend et on recommence | 61 | ; On attend et on recommence |
54 | call tempo | 62 | call tempo |
55 | call tempo | 63 | call tempo |
56 | call tempo | 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 | saut boucle | 73 | saut boucle |
58 | 74 | ||
59 | tempo: | 75 | tempo: |
@@ -67,6 +83,11 @@ tempoA: | @@ -67,6 +83,11 @@ tempoA: | ||
67 | 83 | ||
68 | tmr: | 84 | tmr: |
69 | lsl selAfficheur | 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 | ret | 93 | ret |