9- Gestion de 2 feux de carrefourOn effectue la gestion de 2 feux de carrefour. Les SP de temporisation reprennent ceux precedents.
![]()
* fichier 2feux.asc * gestion de deux feux tricolores * (32s) Rouge feu 1/vert feu 2 - (4s) Rouge feu 1/Orange feu 2 - (2s) Rouge feu 1/Rouge feu 2 * (32s) Vert feu 1/Rouge feu 2 - (4s) Orange feu 1/Rouge feu 2 - (2s) Rouge feu 1/Rouge feu 2 * Feu tricolore 1 sur portB Feu rouge bit 2, orange bit 1 et vert bit 0. * Feu tricolore 2 sur portB Feu rouge bit 7, orange bit 6 et vert bit 5. * R O V R O V * 7 6 5 4 3 2 1 0 * 8 4 2 1 8 4 2 1 *Equivalences registres portb equ $04 * Constantes dureev equ 32 dureeo equ 4 duree2r equ 2 pile equ $ff *Variables org $0000 duree rmb 1 *Début du programme implantation en EEPROM org $F800 ******************** * Configuration ******************** * Pile start lds #pile ******************** *Programme principal ******************** * allumage du feu rouge feux 1 et vert feux 2. debut ldaa #$81 staa portb * tempo de 32 secondes bsr tempo32 * allumage du feu rouge feux 1 et feu orange feux 2 ldaa #$82 staa portb * tempo de 4 secondes bsr tempo4 * allumage du feu rouge feux 1 et feu rouge feux 2 ldaa #$84 staa portb * tempo de 2 secondes bsr tempo2 * allumage du feu vert feux 1 et rouge feux 2. ldaa #$24 staa portb * tempo de 32 secondes bsr tempo32 * allumage du feu orange feux 1 et feu rouge feux 2 ldaa #$44 staa portb * tempo de 4 secondes bsr tempo4 * allumage du feu rouge feux 1 et feu rouge feux 2 ldaa #$84 staa portb * tempo de 2 secondes bsr tempo2 bra debut ******************** * Sous Programmes ******************** *Sous programmes tempo32 ********************** * duree de temporisation de 32 secondes tempo32 ldaa #dureev staa duree bsr tempo rts *Sous programmes tempo4 ********************* * duree de temporisation de 4 secondes tempo4 ldaa #dureeo staa duree bsr tempo rts *Sous programmes tempo2 ********************** * duree de temporisation de 2 secondes tempo2 ldaa #duree2r staa duree bsr tempo rts *Sous programme tempo* ******************** * lecture du paramčtre duree determinant la duree de la tempo en seconde tempo ldaa duree * on effectue 10 boucles de 100 ms tduree ldab #10 * Duree de base de 100ms par decrementation de X qui dure 3µs*33333=99999µs t1s ldx #33333 t100ms dex bne t100ms * fin de la boucle 100ms decb bne t1s *fin de la boucle 1s deca bne tduree *fin de la duree fois 1s rts *************************** * Vecteurs d'interruptions *************************** *vecteur de reset org $fffe rstvect fdb start endUtilisation de l'adressage indexé
Giampiero D'AQUINO
Enseignant en Génie Electronique