Blame view

compteurLettre.txt 1.66 KB
3ce5291d   thubert   Ajout des caracte...
1
2
3
4
5
6
7
  .equ PINA = 0x00 ; définition des adresses des ports

  .equ DDRA = 0x01

  .equ PORTA = 0x02

  .equ PINC = 0x06

  .equ DDRC = 0x07

  .equ PORTC = 0x08

  

b2e56564   thubert   Ajout du timer
8
9
10
11
  .equ TCCR0A = 0x24 ; Initialisation du timer

  .equ TCCR0B = 0x25

  .equ TMSK0 = 0x6e

  

3ce5291d   thubert   Ajout des caracte...
12
13
14
15
  .equ RAMEND = 0x21FF

  .equ SPH = 0x3E ; initialisation de la pile

  .equ SPL = 0x3D

  

b2e56564   thubert   Ajout du timer
16
  .def selAfficheur = r19

3ce5291d   thubert   Ajout des caracte...
17
18
  .def compteur = r20

  .def seg = r21

b2e56564   thubert   Ajout du timer
19
  .org  0x000

3ce5291d   thubert   Ajout des caracte...
20
21
22
      ; Vecteur RESET

      jmp debut

  

b2e56564   thubert   Ajout du timer
23
24
25
  .org 0x002e

      ; Vecteur TIMER0

      jmp tmr

3ce5291d   thubert   Ajout des caracte...
26
  

b2e56564   thubert   Ajout du timer
27
  .org 0x0080

3ce5291d   thubert   Ajout des caracte...
28
29
30
31
32
33
34
35
  afficheur:

      .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

      ;      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,    °

  

  

  debut:

      DDRA@IO <- 0xFF

      DDRC@IO <- 0xFF

b2e56564   thubert   Ajout du timer
36
37
38
39
40
41
      TTCR0A@IO <- 0x01

      TTCR0B@IO <- 0x04

      TMSK0 <- 0x6E 

      selAfficheur <- 0x01

      SEI

      

3ce5291d   thubert   Ajout des caracte...
42
43
44
45
  boucle:

  

      ; On affiche compteur sur le 7 segments

      seg <- afficheur@ROM[compteur]

b2e56564   thubert   Ajout du timer
46
      out portc,selAfficheur

3ce5291d   thubert   Ajout des caracte...
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
      out porta,seg

      

      ; On change de chiffre

      inc compteur

      si compteur > 36  alors compteur <- 0

  

      ; On attend et on recommence

      call tempo

      call tempo

      call tempo

      saut boucle

  

  tempo:

      ldi r24,8

  tempoA:

      subi r22,1

      sbci r23,0

      sbci r24,0

      brcc tempoA

      ret

b2e56564   thubert   Ajout du timer
67
68
69
70
71
72
  

  tmr:

      lsl selAfficheur

      si selAfficheur > 8  alors selAfficheur <-0x01

      portc@IO <- selAfficheur

      ret