9- Gestion de 2 feux de carrefour

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

DEBUT DE PAGE

Utilisation de l'adressage indexé

SOMMAIRE


Giampiero D'AQUINO
Enseignant en Génie Electronique