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 | 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 | ... | ... |