Config:
- 16F84A
- 3 poussoirs sur Ra0, Ra1 et Ra2, chacun avec une pullup externe 10k
- 1 buzzer, patte+ sur Rb0, patte- au gnd
- (Facultatif) si on veut que çà soit plus joli avec des jeux de lumière de ouf et faire la teuf dans l'appart on peut aussi mettre 5 leds multicolores sur Rb1, Rb4, Rb5, Rb6 et Rb7.
Le fichier .HEX pour ceux qui ne font pas d'ASM.
Code : Tout sélectionner
;**********************************************************************
; *
; NOM: Juke-box *
; Date: 28/01/2018 *
; Auteur: F6FCO JC Buisson
; PIC: 16F84A *
; *
;**********************************************************************
LIST p=16F84A ; Définition de processeur
#include <p16F84A.inc> ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _HS_OSC
OPTIONVAL EQU H'0008'
; --------------------------------------------------------------------------------------------
#define delai 800000
#define pin_buzzer PORTB,0 ; buzzer
; ---------------------- définitions des Leds et poussoirs
#define Led_DO PORTB,4
#define Led_RE PORTB,1
#define Led_FA PORTB,7
#define Led_SOL PORTB,5
#define Led_LA PORTB,6
#define Pous1 PORTA,0 ; poussoir avec pull-up (zero si appui) -> vers musique1
#define Pous2 PORTA,1 ; vers musique2
#define Pous3 PORTA,2 ; vers musique3
; -------------------- définitions des appels de sous-routines
#define FAA call faa
#define FA#A call fa#a
#define SOLA call sola
#define SOL#A call sol#a
#define LAA call laa
#define LA#A call la#a
#define SIA call sia
#define DO call do
#define DO# call do#
#define RE call re
#define RE# call re#
#define MI call mi
#define FA call fa
#define FA# call fa#
#define SOL call sol
#define SOL# call sol#
#define LA call la
#define LA# call la#
#define SI call si
#define DOb call dob
#define DO#b call do#b
#define REb call reb
#define d call tempo0
#define d1 call tempo1
#define d2 call tempo2
; --------------------- définitions des durées des notes
#define duree_faa 44
#define duree_fa#a 45
#define duree_sola 46
#define duree_sol#a 47
#define duree_laa 48
#define duree_la#a 48
#define duree_sia 49
#define duree_do 50
#define duree_do# 50
#define duree_re 51
#define duree_re# 51
#define duree_mi 52
#define duree_fa 55
#define duree_fa# 56
#define duree_sol 57
#define duree_sol# 57
#define duree_la 58
#define duree_la# 58
#define duree_si 59
#define duree_dob 62
#define duree_dob# 66
#define duree_reb 72
;*********************************************************************
CBLOCK 0x00C
cmpt1 ; compteur état haut
cmpt2 ; compteur état bas
cmpt3 ; compteur de temps note
cmpt4 ; compteur de temps note
Reg_1
Reg_2
Reg_3
ENDC
;**********************************************************************
org 0x000 ; Adresse de départ après reset
init
bsf STATUS,RP0 ; sélectionner banque 1
movlw OPTIONVAL ; charger masque
movwf OPTION_REG ; initialiser registre option
movlw b'00000111' ; A0 en entrée pour poussoirs
movwf TRISA
clrf TRISB ; Bit PORTB.0 en sortie
bcf STATUS,RP0 ; Sélectionner banque 0
clrf PORTB ; sorties portB à 0
movlw 5
movwf cmpt1 ; RAZ compteur
movwf cmpt2
;*********************************************************************
; PROGRAMME PRINCIPAL *
;*********************************************************************
main
poussoir1
btfsc Pous1 ; teste le poussoir 1, si pressé Pous1=0 et on saute
goto poussoir2
goto marseillaise
poussoir2
btfsc Pous2 ; teste le poussoir 2, si pressé Pous2=0
goto poussoir3
goto santiano
poussoir3
btfsc Pous3 ; idem
goto main
goto copains
; ################################################################################################
copains
; ------------- non ce n'était pas le radeau
DO ; non
d1
RE ; ce
d1
RE# ; n'é
d
MI ;tait
d1
RE ;pas
d2
DO ; le
d1
RE ; ra
d
MI ; deau
d2
d2
; ------------- de la méduse ce bateau
RE ; de
d1
DO ; la
d1
RE ; me
d
MI ; du
d
LA ; se
d1
SI ; ce
d1
DOb ; ba
d
SI ; teau
d2
; ------------ qu'on se le dise au fond des ports
LA ; qu'on
d1
SOL ; se
d1
MI ; le
d1
RE ; dise
d1
LAA ; au
d1
RE ; fond
d1
LAA ; des
d1
RE ; ports
d2
d2
; ------------ dise au fond des ports
DO ; dise
d1
MI ; au
d1
RE ; fond
d1
DO ; des
d1
FA#A ; ports
FA#A
d2
d2
; -------------- il naviguait en pere peinard
SOL#A ; il
d1
LAA ; na
d
SIA ; vi
d
DO ; guait
d1
DO ; en
d1
SIA ; père
d1
DO ; pei
d
LAA ; nard
LAA
d2
d2
; -------------- sur la grand mare des canards
DO ; sur
d1
SIA ; la
d1
LAA ; grand
d1
SOL#A ; ma
d
MI ; re
d1
MI ; des
d1
RE# ; ca
d
RE ;nards
d2
d2
; -------------- et s'appelait les copains d'abord
FA ; et
d1
MI ; s'app
d
RE ; elait
d1
DO ; les
d1
DO ; co
d
DO ; pains
d1
LAA ; d'a
d
FAA# ; bord
d2
d2
; -------------- les copains d'abord
MI ; les
d1
RE ; co
d
LAA ; pains
d1
SIA ; d'a
d
DO ; bord
goto main
; ################################################################################################
marseillaise
; ------------------ allons enfants de la patrie
DO ; al
d
DO ; lons
d
DO ; en
d
FA ; fants
FA
d1
FA ; de
d1
SOL ; la
d1
d1
SOL ; pa
d
DOb ; tri
DOb ; ii
d
LA ; i
FA ; e
; -------------------- Le jour de gloire est arrivé
d2
d2
FA ; le
d
LA ; jour
d
FA ; de
d
RE ; gloire
RE
d1
LA# ; est
LA#
LA#
d
SOL ; ar
d
MI ; ri
d
FA ; vé
; -------------------- contre nous de la tirannie
d2
d2
FA ; con
d
d
SOL ; tre
d1
LA ; nous
d1
LA ; de
d1
LA ; la
d1
LA# ; ti
d
LA ; ra
d
LA ; nie
LA ; ie
SOL ; e
SOL
; ------------------- L'étendart sanglant est levé
d2
d2
SOL ; l'é
d
LA ; ten
d
LA# ; dart
LA# ; art
d1
d1
LA# ; san
d
d
d
LA# ; glant
LA# ; ant
d1
DOb ; est
d1
d1
LA# ; le
LA ; vé
LA ; é
;--------------------- L'étendart sanglant est levé
d2
d2
DOb ; l'é
d
d
DOb ; ten
d
d
DOb ; dart
d1
d1
LA ; san
d
d
FA ; an
d
DOb ; glant
d1
LA ; est
d
FA ; le
d
DO ; vé
d2
;----------------------- Entendez-vous dans nos campagnes
DO ; en
d
DO ; ten
d
MI ; dez
SOL ; vou
SOL ; ous
SOL
d1
LA# ; dans
d1
LA ; nos
d1
MI ; cam
d
SOL ; pa
SOL
d
FA ; gnes
d2
D2
; ----------------------- mugir ces féroces soldats
RE# ; mu
d
RE ; gir
RE
d1
FA ; ces
d1
FA ; fé
d
FA ; ro
d
MI ; ces
FA ; sol
d
SOL ; dats
SOL
d2
d2
; ---------------------- Ils viennent jusque dans vos bras
;SOL ; ils
;d1
;SOL# ; vie
;d
;LA ; nnent
;LA
;d1
;LA ; jus
;d
;LA ; que
;d
;LA# ; dans
;DOb ; vos
;SOL ; bras
;d2
;d2
; ---------------------- égorger vos fils et vos compagnes
;SOL# ; é
;LA ; gor
;FA ; ger
;d1
;FA ; vos
;d1
;FA ; fils
;d1
;SOL# ; et
;d1
;SOL ; vos
;d1
;FA ; com
;d
;FA ; pa
;d
;MI ;gnes
;MI
;d2
;d2
; ---------------------- Aux armes citoyen
;DOb ; aux
;d1
;DOb ; ar
;DOb
;DOb
;d
;DOb ; mes
;d1
;d1
;LA ; ci
;d
;FA ; toy
;d
;SOL ; yens
;SOL
;d2
; ---------------------- Formez vos bataillons
;DOb ; For
;d
;DOb ; mez
;DOb
;DOb
;d1
;DOb ; vos
;d1
;LA ; ba
;d
;FA ; tail
;d
;SOL ; llons
;SOL
;d2
; ---------------------- Marchons marchons
;DO ; mar
;DO
;d
;FA ; chons
;FA
;FA
;d1
;d1
;d1
;SOL ; mar
;SOL
;d
;LA ; chons
;LA
;LA
;d2
; ---------------------- Qu'un sang impur
;LA# ; qu'un
;LA#
;LA#
;d1
;DOb ; sang
;d1
;REb ; im
;REb
;d
;SOL ; pur
;SOL
;SOL
;d2
; ---------------------- abreuve nos sillons
;REb ; a
;REb
;d
;DOb ; breu
;DOb
;DOb
;LA ; ve
;d1
;LA# ; nos
;d1
;SOL ; si
;FA ; llons
;FA
goto main
; ################################################################################################
santiano
; ------------------------ C'est un fameux trois-mats
SI ; c'est
SI
d
MI ; un
d1
MI ; fa
d
MI ; meux
s1
FA# ; trois
SOL ; mats
SOL
d1
; ------------------------- Fin comme un oiseau
SOL ; fin
LA ; comme
d1
SI ; un
d1
SI ; oi
LA ; seau
LA
LA
d2
d2
; --------------------- Hisse et haut Santiano
REb ; Hiss
d
REb ; é
d
SI ; haut
SI
SI
;goto main
d1
d1
MI ; San
FA# ; ti
SOL ; a
LA ; a
d
LA ; no
LA
LA
d2
; ------------------ Dix-huit noeuds, quatre-cent tonneaux
LA ; dix
d
LA ; huit
d1
LA ; noeuds
LA
d1
FA# ; qua
SOL ; tre
LA ; cent
LA
d1
FA# ; to
MI ; o
RE ; nneaux
; ------------------ Je suis fier d'y être matelot
d2
MI ; je
d1
FA# ; suis
SOL ; fier
d1
SOL ; d'y
d1
FA# ; e
d
RE ; tre
d1
MI ; ma
d
MI ; te
d
MI ; lot
MI
goto main
;----------------------------------------- FAA
faa
bsf Led_SOL
bsf Led_DO
movlw duree_faa
movwf cmpt3
movlw 1
movwf cmpt4
faa1a
decfsz cmpt3
goto faa1b
decfsz cmpt4
goto faa1b
bcf Led_DO
bcf Led_SOL
return
faa1b
bsf pin_buzzer
call tempo_DO1
bcf pin_buzzer
call tempo_DO1
goto faa1a
tempo_FAA ; 175hz
; Délai 2 857 Cycles de la machine
; Durée du délai 2857 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .180
movwf Reg_1
movlw .4
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- FA#A
fa#a
bsf Led_SOL
bsf Led_DO
movlw duree_fa#a
movwf cmpt3
movlw 1
movwf cmpt4
fa#a1a
decfsz cmpt3
goto fa#a1b
decfsz cmpt4
goto fa#a1b
bcf Led_DO
bcf Led_SOL
return
fa#a1b
bsf pin_buzzer
call tempo_FA#A
bcf pin_buzzer
call tempo_FA#A
goto fa#a1a
tempo_FA#A ; 185hz
; Délai 2 702 Cycles de la machine
; Durée du délai 2702 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .129
movwf Reg_1
movlw .4
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- SOLA
sola
bsf Led_RE
bsf Led_FA
movlw duree_sola
movwf cmpt3
movlw 1
movwf cmpt4
sola1a
decfsz cmpt3
goto sola1b
decfsz cmpt4
goto sola1b
bcf Led_DO
bcf Led_FA
return
sola1b
bsf pin_buzzer
call tempo_SOLA
bcf pin_buzzer
call tempo_SOLA
goto sola1a
tempo_SOLA ; 196hz
; Délai 2 551 Cycles de la machine
; Durée du délai 2551 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .78
movwf Reg_1
movlw .4
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- SOL#A
sol#a
bsf Led_DO
bsf Led_FA
movlw duree_sol#a
movwf cmpt3
movlw 1
movwf cmpt4
sol#a1a
decfsz cmpt3
goto sol#a1b
decfsz cmpt4
goto sol#a1b
bcf Led_DO
bcf Led_FA
return
sol#a1b
bsf pin_buzzer
call tempo_SOL#A
bcf pin_buzzer
call tempo_SOL#A
goto sol#a1a
tempo_SOL#A ; 208hz
; Délai 2 403 Cycles de la machine
; Durée du délai 2403 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .29
movwf Reg_1
movlw .4
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- LAA
laa
bsf Led_DO
bsf Led_SOL
movlw duree_laa
movwf cmpt3
movlw 1
movwf cmpt4
laa1a
decfsz cmpt3
goto laa1b
decfsz cmpt4
goto laa1b
bcf Led_DO
bcf Led_SOL
return
laa1b
bsf pin_buzzer
call tempo_LAA
bcf pin_buzzer
call tempo_LAA
goto laa1a
tempo_LAA ; 220hz
; Délai 2 273 Cycles de la machine
; Durée du délai 2273 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .242
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- LA#A
la#a
bsf Led_RE
bsf Led_FA
movlw duree_laa
movwf cmpt3
movlw 1
movwf cmpt4
la#a1a
decfsz cmpt3
goto la#a1b
decfsz cmpt4
goto la#a1b
bcf Led_FA
bcf Led_RE
return
la#a1b
bsf pin_buzzer
call tempo_LA#A
bcf pin_buzzer
call tempo_LA#A
goto la#a1a
tempo_LA#A ; 233hz
; Délai 2 146 Cycles de la machine
; Durée du délai 2146 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .200
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- SIA
sia
bsf Led_RE
bsf Led_SOL
movlw duree_sia
movwf cmpt3
movlw 1
movwf cmpt4
sia1a
decfsz cmpt3
goto sia1b
decfsz cmpt4
goto sia1b
bcf Led_SOL
bcf Led_RE
return
sia1b
bsf pin_buzzer
call tempo_SIA
bcf pin_buzzer
call tempo_SIA
goto sia1a
tempo_SIA ; 247hz
; Délai 2 024 Cycles de la machine
; Durée du délai 2024 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .159
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- DO
do
bsf Led_RE
bsf Led_DO
movlw duree_do
movwf cmpt3
movlw 1
movwf cmpt4
do1a
decfsz cmpt3
goto do1b
decfsz cmpt4
goto do1b
bcf Led_DO
bcf Led_RE
return
do1b
bsf pin_buzzer
call tempo_DO1
bcf pin_buzzer
call tempo_DO1
goto do1a
tempo_DO1 ; 262hz
; Délai 1 908 Cycles de la machine
; Durée du délai 1908 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .121
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- DO#
do#
bsf Led_DO
bsf Led_RE
movlw duree_do#
movwf cmpt3
movlw 1
movwf cmpt4
do#1a
decfsz cmpt3
goto do#1b
decfsz cmpt4
goto do#1b
bcf Led_DO
bcf Led_RE
return
do#1b
bsf pin_buzzer
call tempo_DO#1
bcf pin_buzzer
call tempo_DO#1
goto do#1a
tempo_DO#1 ; 277hz
; Délai 1 805 Cycles de la machine
; Durée du délai 1805 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .86
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- RE
re
bsf Led_RE
bsf Led_DO
movlw duree_re
movwf cmpt3
movlw 1
movwf cmpt4
re1a
decfsz cmpt3
goto re1b
decfsz cmpt4
goto re1b
bcf Led_RE
bcf Led_DO
return
re1b
bsf pin_buzzer
call tempo_RE1
bcf pin_buzzer
call tempo_RE1
goto re1a
tempo_RE1 ; 294hz
; Délai 1 700 Cycles de la machine
; Durée du délai 1700 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .51
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- RE#
re#
bsf Led_RE
bsf Led_FA
movlw duree_re#
movwf cmpt3
movlw 1
movwf cmpt4
re#1a
decfsz cmpt3
goto re#1b
decfsz cmpt4
goto re#1b
bcf Led_RE
bcf Led_FA
return
re#1b
bsf pin_buzzer
call tempo_RE#1
bcf pin_buzzer
call tempo_RE#1
goto re#1a
tempo_RE#1 ; 311hz
; Délai 1 607 Cycles de la machine
; Durée du délai 1607 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .20
movwf Reg_1
movlw .3
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- MI
mi
bsf Led_FA
bsf Led_SOL
movlw duree_mi
movwf cmpt3
movlw 1
movwf cmpt4
mi1a
decfsz cmpt3
goto mi1b
decfsz cmpt4
goto mi1b
bcf Led_FA
bcf Led_SOL
return
mi1b
bsf pin_buzzer
call tempo_MI1
bcf pin_buzzer
call tempo_MI1
goto mi1a
tempo_MI1 ; 330hz
; Délai 1 515 Cycles de la machine
; Durée du délai 1515 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .246
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- FA
fa
bsf Led_DO
bsf Led_FA
movlw duree_fa
movwf cmpt3
movlw 1
movwf cmpt4
fa1a
decfsz cmpt3
goto fa1b
decfsz cmpt4
goto fa1b
bcf Led_DO
bcf Led_FA
return
fa1b
bsf pin_buzzer
call tempo_FA1
bcf pin_buzzer
call tempo_FA1
goto fa1a
tempo_FA1 ; 349hz
; Délai 1 432 Cycles de la machine
; Durée du délai 1432 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .219
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- FA#
fa#
bsf Led_FA
bsf Led_SOL
movlw duree_fa#
movwf cmpt3
movlw 1
movwf cmpt4
fa#1a
decfsz cmpt3
goto fa#1b
decfsz cmpt4
goto fa#1b
bcf Led_FA
bcf Led_SOL
return
fa#1b
bsf pin_buzzer
call tempo_FA#1
bcf pin_buzzer
call tempo_FA#1
goto fa#1a
tempo_FA#1 ; 370hz
; Délai 1 351 Cycles de la machine
; Durée du délai 1351 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .192
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- SOL
sol
bsf Led_RE
bsf Led_SOL
movlw duree_sol
movwf cmpt3
movlw 1
movwf cmpt4
sol1a
decfsz cmpt3
goto sol1b
decfsz cmpt4
goto sol1b
bcf Led_SOL
bcf Led_RE
return
sol1b
bsf pin_buzzer
call tempo_SOL1
bcf pin_buzzer
call tempo_SOL1
goto sol1a
tempo_SOL1 ;392hz
; Délai 1 275 Cycles de la machine
; Durée du délai 1275 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .166
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
;----------------------------------------- SOL#
sol#
bsf Led_SOL
bsf Led_LA
movlw duree_sol#
movwf cmpt3
movlw 1
movwf cmpt4
sol#1a
decfsz cmpt3
goto sol#1b
decfsz cmpt4
goto sol#1b
bcf Led_SOL
bcf Led_LA
return
sol#1b
bsf pin_buzzer
call tempo_SOL#1
bcf pin_buzzer
call tempo_SOL#1
goto sol#1a
tempo_SOL#1 ;415hz
; Délai 1 204 Cycles de la machine
; Durée du délai 1204 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .143
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- LA
la
bsf Led_SOL
bsf Led_LA
movlw duree_la
movwf cmpt3
movlw 1
movwf cmpt4
la1a
decfsz cmpt3
goto la1b
decfsz cmpt4
goto la1b
bcf Led_LA
bcf Led_SOL
return
la1b
bsf pin_buzzer
call tempo_LA1
bcf pin_buzzer
call tempo_LA1
goto la1a
tempo_LA1; 440hz
; Délai 1 136 Cycles de la machine
; Durée du délai 1136 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .120
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- LA#
la#
bsf Led_LA
bsf Led_SOL
movlw duree_la#
movwf cmpt3
movlw 1
movwf cmpt4
la#1a
decfsz cmpt3
goto la#1b
decfsz cmpt4
goto la#1b
bcf Led_LA
bcf Led_SOL
return
la#1b
bsf pin_buzzer
call tempo_LA#1
bcf pin_buzzer
call tempo_LA#1
goto la#1a
tempo_LA#1; 466hz
; Délai 1 073 Cycles de la machine
; Durée du délai 1073 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .99
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- SI
si
bsf Led_FA
bsf Led_RE
movlw duree_si
movwf cmpt3
movlw 1
movwf cmpt4
si1a
decfsz cmpt3
goto si1b
decfsz cmpt4
goto si1b
bcf Led_FA
bcf Led_RE
return
si1b
bsf pin_buzzer
call tempo_SI1
bcf pin_buzzer
call tempo_SI1
goto si1a
tempo_SI1 ; 494hz
; Délai 1 012 Cycles de la machine
; Durée du délai 1012 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .79
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
return
;----------------------------------------- DOb
dob
bsf Led_DO
bsf Led_FA
movlw duree_dob
movwf cmpt3
movlw 1
movwf cmpt4
dob1a
decfsz cmpt3
goto dob1b
decfsz cmpt4
goto dob1b
bcf Led_DO
bcf Led_FA
return
dob1b
bsf pin_buzzer
call tempo_DOb1
bcf pin_buzzer
call tempo_DOb1
goto dob1a
tempo_DOb1 ; 523hz
; Délai 956 Cycles de la machine
; Durée du délai 956 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .60
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- DOb#
do#b
bsf Led_DO
bsf Led_RE
movlw duree_dob#
movwf cmpt3
movlw 1
movwf cmpt4
dob#1a
decfsz cmpt3
goto dob#1b
decfsz cmpt4
goto dob#1b
bcf Led_DO
bcf Led_RE
return
dob#1b
bsf pin_buzzer
call tempo_DOb#1
bcf pin_buzzer
call tempo_DOb#1
goto dob#1a
tempo_DOb#1 ; 554hz
; Délai 902 Cycles de la machine
; Durée du délai 902 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .42
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
;----------------------------------------- REb
reb
bsf Led_RE
bsf Led_DO
movlw duree_reb
movwf cmpt3
movlw 1
movwf cmpt4
reb1a
decfsz cmpt3
goto reb1b
decfsz cmpt4
goto reb1b
bcf Led_RE
bcf Led_DO
return
reb1b
bsf pin_buzzer
call tempo_REb1
bcf pin_buzzer
call tempo_REb1
goto reb1a
tempo_REb1 ; 587hz
; Délai 851 Cycles de la machine
; Durée du délai 851 microsecond
; Fréquence de l'oscillateur 4 MHZ
movlw .25
movwf Reg_1
movlw .2
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
; -------------------------------------------
tempo0
; Délai 10 000 Cycles de la machine
; Durée du délai 10 millisecond
; Fréquence de l'oscillateur 4 MHZ
movlw .251
movwf Reg_1
movlw .13
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
tempo1
; Délai 50 000 Cycles de la machine
; Durée du délai 50 millisecond
; Fréquence de l'oscillateur 4 MHZ
movlw .238
movwf Reg_1
movlw .65
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
return
tempo2
; Délai 100 000 Cycles de la machine
; Durée du délai 100 millisecond
; Fréquence de l'oscillateur 4 MHZ
movlw .221
movwf Reg_1
movlw .130
movwf Reg_2
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
nop
nop
return
END


pour le code

