8) Gestion d'un feu tricolore.
Elaboration d'une tempo de base de 1s et modulable par paramètre selon la durée des 3 feux.
Trois boucles imbriquées.

presentation du probleme
Séquence d'allumage :

Au démarrage :

Feu rouge 36s
Feu vert 32s
Feu Orange 4s

Pour une souplesse des temps de temporisation on se servira d'une base de temps de 1 seconde avec une sous base de 0,1s.

* fichier feux.asc
* gestion d'un feu tricolore
* Gestion D'un seul feu
* Feu tricolore sur portB Feu rouge bit 2, orange bit 1 et vert bit 0.
*                R  O  V
* 7  6  5  4  3  2  1  0

;Equivalences registres
 
portb		equ		$1004


*Constantes 
 
dureer	equ		36
dureev	equ		32
dureeo	equ		4
pile		equ		$ff


*Variables
 
		org		$0000
duree		rmb		1


;Début du programme implantation en EEPROM
 
		org		$F800

;*******************
;   Configuration        
;*******************

*initialisation de la pile
 
start		lds		#pile


;
;*******************
;Programme principal  
;*******************

* allumage du feu rouge et extinction du feu orange
 
debut		ldaa		#$04
		staa		portb

* tempo de 36 secondes
 
		ldaa		#dureer
		staa		duree
		bsr		tempo

* allumage du feu vert et extinction du feu rouge
 
		ldaa		#$01
		staa		portb

* tempo de 3 secondes
 
		ldaa		#dureev
		staa		duree
		bsr		tempo

* alumage du feu orange et extinction du feu vert
 
		ldaa		#$02
		staa		portb

* tempo de 4 secondes
 
		ldaa		#dureeo
		staa		duree
		bsr		tempo
		bra		debut


*****************
* Sous programmes  *
*****************

*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
		end


9- Gestion de 2 feux de carrefour

DEBUT DE PAGE

SOMMAIRE


Giampiero D'AQUINO
Enseignant en Génie Electronique