Last active
June 16, 2016 07:40
-
-
Save PierreZ/0e16a141d273d59ba14c to your computer and use it in GitHub Desktop.
ST7 Assembly Code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: | |
; AUTHOR: | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
; #include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;------------------------------------------------------------------------ | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
boucl | |
JP boucl | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES D'INTERRUPTION | |
; | |
;************************************************************************ | |
dummy_rt: IRET ; Procédure vide : retour au programme principal. | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VECTEURS D'INTERRUPTION | |
; | |
;************************************************************************ | |
segment 'vectit' | |
DC.W dummy_rt ; Adresse FFE0-FFE1h | |
SPI_it DC.W dummy_rt ; Adresse FFE2-FFE3h | |
lt_RTC1_it DC.W dummy_rt ; Adresse FFE4-FFE5h | |
lt_IC_it DC.W dummy_rt ; Adresse FFE6-FFE7h | |
at_timerover_it DC.W dummy_rt ; Adresse FFE8-FFE9h | |
at_timerOC_it DC.W dummy_rt ; Adresse FFEA-FFEBh | |
AVD_it DC.W dummy_rt ; Adresse FFEC-FFEDh | |
DC.W dummy_rt ; Adresse FFEE-FFEFh | |
lt_RTC2_it DC.W dummy_rt ; Adresse FFF0-FFF1h | |
ext3_it DC.W dummy_rt ; Adresse FFF2-FFF3h | |
ext2_it DC.W dummy_rt ; Adresse FFF4-FFF5h | |
ext1_it DC.W dummy_rt ; Adresse FFF6-FFF7h | |
ext0_it DC.W dummy_rt ; Adresse FFF8-FFF9h | |
AWU_it DC.W dummy_rt ; Adresse FFFA-FFFBh | |
softit DC.W dummy_rt ; Adresse FFFC-FFFDh | |
reset DC.W main ; Adresse FFFE-FFFFh | |
END | |
;************************************************************************ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: infinite loop %10 | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
compte DS.B 1 ; counting var | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer de Pierre | |
res: | |
CLR compte ; Reset compteur de Pierre | |
boucl: | |
INC compte ; Increment compte | |
LD A,compte ; put I in A | |
CP A,#10 ; Compare A with decimal 10 | |
JREQ res ; Jump to reset compte | |
JP boucl ; Or jump to boucl |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;************************************************************************ | |
; TITLE: for loop | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
; #include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
i DS.B 1 ; | |
somme DS.B 1 ; | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CLR i ; Reset i and somme | |
CLR somme | |
boucl: | |
LD A,i | |
CP A,#20 | |
JRUGE end ; If i>=20, jump to end | |
INC i ; i++ | |
LD A,somme | |
ADD A,i ; A+i | |
LD somme,A | |
JP boucl | |
end: | |
JP end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: sub-program | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: Permet l'appel de sous-programme | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
calcul DS.B 1 ; | |
somme DS.B 1 ; | |
calcul_somme: | |
CLR calcul | |
LD X,A ; A into X | |
boucl: | |
CP X,#0 | |
JREQ fin ; if X ==0, jump to end | |
LD A,somme | |
LD calcul,X | |
ADD A,calcul ; A+X | |
LD somme,A | |
DEC X ; X-- | |
JP boucl | |
fin: | |
RET | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CLR somme ; Reset i and somme | |
NOP | |
LD X,#$88 | |
NOP | |
LD A,#22 | |
CALL calcul_somme | |
end: | |
JP end | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: switch LED on with button | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
; #include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;------------------------------------------------------------------------ | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
init_ports | |
;PADDR controle la direction de chaque bit du port : soit | |
;en entre´e (bit correspondant a` 0), soit en sortie (1). | |
;La LED1 est commande´e par le bit 0 du port A (PA0) | |
;en sortie push-pull | |
BSET PADDR, #0 ; PA0 en sortie | |
BSET PAOR, #0 ; PA0 en push-pull | |
;L'etat du bouton poussoir 1 est vu par le bit 3 | |
;du port A (PA3) en entre´e flottante | |
BRES PADDR, #3 ;PA3 en entrée | |
BRES PAOR, #3 ; PA3 en flottant | |
RET | |
etat_poussoir | |
BTJT PADR,#3,allume_LED ; Bit Test and Jump if True | |
JP eteint_LED | |
return | |
RET | |
allume_LED | |
BSET PADR, #0 ; LED allumé | |
JP return | |
eteint_LED | |
BRES PADR, #0 ; LED éteinte | |
JP return | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CALL init_ports | |
loop | |
CALL etat_poussoir | |
JP loop | |
boucl | |
JP boucl | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES D'INTERRUPTION | |
; | |
;************************************************************************ | |
dummy_rt: IRET ; Procédure vide : retour au programme principal. | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VECTEURS D'INTERRUPTION | |
; | |
;************************************************************************ | |
segment 'vectit' | |
DC.W dummy_rt ; Adresse FFE0-FFE1h | |
SPI_it DC.W dummy_rt ; Adresse FFE2-FFE3h | |
lt_RTC1_it DC.W dummy_rt ; Adresse FFE4-FFE5h | |
lt_IC_it DC.W dummy_rt ; Adresse FFE6-FFE7h | |
at_timerover_it DC.W dummy_rt ; Adresse FFE8-FFE9h | |
at_timerOC_it DC.W dummy_rt ; Adresse FFEA-FFEBh | |
AVD_it DC.W dummy_rt ; Adresse FFEC-FFEDh | |
DC.W dummy_rt ; Adresse FFEE-FFEFh | |
lt_RTC2_it DC.W dummy_rt ; Adresse FFF0-FFF1h | |
ext3_it DC.W dummy_rt ; Adresse FFF2-FFF3h | |
ext2_it DC.W dummy_rt ; Adresse FFF4-FFF5h | |
ext1_it DC.W dummy_rt ; Adresse FFF6-FFF7h | |
ext0_it DC.W dummy_rt ; Adresse FFF8-FFF9h | |
AWU_it DC.W dummy_rt ; Adresse FFFA-FFFBh | |
softit DC.W dummy_rt ; Adresse FFFC-FFFDh | |
reset DC.W main ; Adresse FFFE-FFFFh | |
END | |
;************************************************************************ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: Multiple LED | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
; #include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;------------------------------------------------------------------------ | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
init_ports_led_impair | |
;PADDR controle la direction de chaque bit du port : soit | |
;en entre´e (bit correspondant a` 0), soit en sortie (1). | |
;La LED1 est commande´e par le bit 0 du port A (PA0) | |
;en sortie push-pull | |
BSET PADDR, #0 ; PA0 en sortie | |
BSET PAOR, #0 ; PA0 en push-pull | |
BSET PADDR, #3 ; PA3 en sortie | |
BSET PAOR, #3 ; PA3 en push-pull | |
BSET PADDR, #7 ; PA7 en sortie | |
BSET PAOR, #7 ; PA7 en push-pull | |
BSET PBDDR, #5 ; PB5 en sortie | |
BSET PBOR, #5 ; PB5 en push-pull | |
RET | |
allume_impair | |
BSET PADR, #3 ; LED allumé | |
BSET PADR, #0 ; LED allumé | |
BSET PADR, #7 ; LED allumé | |
BSET PBDR, #5 ; LED allumé | |
RET | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CALL init_ports_led_impair | |
CALL allume_impair | |
loop | |
JP loop | |
boucl | |
JP boucl | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES D'INTERRUPTION | |
; | |
;************************************************************************ | |
dummy_rt: IRET ; Procédure vide : retour au programme principal. | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VECTEURS D'INTERRUPTION | |
; | |
;************************************************************************ | |
segment 'vectit' | |
DC.W dummy_rt ; Adresse FFE0-FFE1h | |
SPI_it DC.W dummy_rt ; Adresse FFE2-FFE3h | |
lt_RTC1_it DC.W dummy_rt ; Adresse FFE4-FFE5h | |
lt_IC_it DC.W dummy_rt ; Adresse FFE6-FFE7h | |
at_timerover_it DC.W dummy_rt ; Adresse FFE8-FFE9h | |
at_timerOC_it DC.W dummy_rt ; Adresse FFEA-FFEBh | |
AVD_it DC.W dummy_rt ; Adresse FFEC-FFEDh | |
DC.W dummy_rt ; Adresse FFEE-FFEFh | |
lt_RTC2_it DC.W dummy_rt ; Adresse FFF0-FFF1h | |
ext3_it DC.W dummy_rt ; Adresse FFF2-FFF3h | |
ext2_it DC.W dummy_rt ; Adresse FFF4-FFF5h | |
ext1_it DC.W dummy_rt ; Adresse FFF6-FFF7h | |
ext0_it DC.W dummy_rt ; Adresse FFF8-FFF9h | |
AWU_it DC.W dummy_rt ; Adresse FFFA-FFFBh | |
softit DC.W dummy_rt ; Adresse FFFC-FFFDh | |
reset DC.W main ; Adresse FFFE-FFFFh | |
END | |
;************************************************************************ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: Multiples LED | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
; #include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;------------------------------------------------------------------------ | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
init_ports_led | |
;PADDR controle la direction de chaque bit du port : soit | |
;en entre´e (bit correspondant a` 0), soit en sortie (1). | |
LD A, PADDR | |
OR A, #%11111111 ; Toutes les LEDs en sortie | |
LD PADR, A | |
LD A, PAOR | |
OR A, #%11111111 ; toutes les sorties en push_pull | |
LD PAOR, A | |
LD A, PBDDR | |
OR A, #%11111111 ; Toutes les LEDs en sortie | |
LD PBDR, A | |
LD A, PBOR | |
OR A, #%11111111 ; Toutes les LEDs en sortie | |
LD PBOR, A | |
RET | |
allume_pair | |
LD A, PADR | |
OR A, #%00010010 ; On allume les LED pairs | |
LD PADR, A | |
LD A, PBDR | |
OR A, #%01010000 ; On allume les LED pairs | |
LD PBDR, A | |
RET | |
allume_impair | |
LD A, PADR | |
OR A, #%10001001 ; On allume les LED impairs | |
LD PADR, A | |
LD A, PBDR | |
OR A, #%00100000 ; On allume les LED impairs | |
LD PBDR, A | |
RET | |
attend_500ms | |
LD X,#100 | |
boucle: | |
CP X,#0 | |
JREQ fin ; if X ==0, jump to end | |
NOP | |
DEC X ; X-- | |
JP boucle | |
fin: | |
RET | |
allume | |
LD A, PADR | |
OR A, #%10011011 ; On allume les LED impairs | |
LD PADR, A | |
LD A, PBDR | |
OR A, #%01110000 ; On allume les LED impairs | |
LD PBDR, A | |
RET | |
eteind | |
LD A, PADR | |
OR A, #%00000000 ; On allume les LED impairs | |
LD PADR, A | |
LD A, PBDR | |
OR A, #%00000000 ; On allume les LED impairs | |
LD PBDR, A | |
RET | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CALL init_ports_led | |
loop | |
;CALL allume_impair | |
CALL attend_500ms | |
;CALL allume_pair | |
CALL allume | |
CALL attend_500ms | |
CALL eteind | |
JP loop | |
boucl | |
JP boucl | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES D'INTERRUPTION | |
; | |
;************************************************************************ | |
dummy_rt: IRET ; Procédure vide : retour au programme principal. | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VECTEURS D'INTERRUPTION | |
; | |
;************************************************************************ | |
segment 'vectit' | |
DC.W dummy_rt ; Adresse FFE0-FFE1h | |
SPI_it DC.W dummy_rt ; Adresse FFE2-FFE3h | |
lt_RTC1_it DC.W dummy_rt ; Adresse FFE4-FFE5h | |
lt_IC_it DC.W dummy_rt ; Adresse FFE6-FFE7h | |
at_timerover_it DC.W dummy_rt ; Adresse FFE8-FFE9h | |
at_timerOC_it DC.W dummy_rt ; Adresse FFEA-FFEBh | |
AVD_it DC.W dummy_rt ; Adresse FFEC-FFEDh | |
DC.W dummy_rt ; Adresse FFEE-FFEFh | |
lt_RTC2_it DC.W dummy_rt ; Adresse FFF0-FFF1h | |
ext3_it DC.W dummy_rt ; Adresse FFF2-FFF3h | |
ext2_it DC.W dummy_rt ; Adresse FFF4-FFF5h | |
ext1_it DC.W dummy_rt ; Adresse FFF6-FFF7h | |
ext0_it DC.W dummy_rt ; Adresse FFF8-FFF9h | |
AWU_it DC.W dummy_rt ; Adresse FFFA-FFFBh | |
softit DC.W dummy_rt ; Adresse FFFC-FFFDh | |
reset DC.W main ; Adresse FFFE-FFFFh | |
END | |
;************************************************************************ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ST7/ | |
;************************************************************************ | |
; TITLE: Affichage valeur | |
; AUTHOR: Pierre Zemb | |
; DESCRIPTION: | |
;************************************************************************ | |
TITLE "SQUELET.ASM" | |
MOTOROLA | |
#include "ST7Lite2.INC" | |
; Enlever le commentaire si vous utilisez les afficheurs | |
#include "MAX7219.INC" | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SYMBOLES | |
; | |
;************************************************************************ | |
BYTES | |
segment byte 'ram0' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
compt_un DS.B 1 | |
compt_diz DS.B 1 | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES VARIABLES | |
; | |
;************************************************************************ | |
WORDS | |
segment byte 'rom' | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES CONSTANTES | |
; | |
;************************************************************************ | |
;------------------------------------------------------------------------ | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
init_ports_spi | |
LD A,#$0C | |
LD SPICR,A | |
LD A,#$03 | |
LD SPISR,A | |
LD A,#$5C | |
LD SPICR,A | |
BSET PBDDR,#2 | |
BSET PBOR,#2 | |
RET | |
wait | |
LD X,#0 | |
loop | |
NOP | |
INC X | |
CP X,#200 | |
JREQ wait2 | |
JP loop | |
wait2 | |
LD X,#0 | |
loop2 | |
NOP | |
INC X | |
CP X,#200 | |
JREQ wait3 | |
JP loop2 | |
wait3 | |
LD X,#0 | |
loop3 | |
NOP | |
INC X | |
CP X,#200 | |
JREQ wait4 | |
JP loop3 | |
wait4 | |
LD X,#0 | |
loop4 | |
NOP | |
INC X | |
CP X,#200 | |
JREQ fin_wait | |
JP loop4 | |
fin_wait | |
RET | |
incr_un | |
LD A,#4 | |
LD DisplayChar_Digit,A ; on travaille sur le 4eme chiffre | |
LD A,compt_un ; on charge dans A | |
CP A,#9 | |
JREQ incr_diz ; si on change de dizaine | |
INC A | |
LD compt_un,A | |
LD DisplayChar_Character,A | |
CALL MAX7219_DisplayChar | |
return | |
RET | |
incr_diz | |
LD A,compt_diz | |
CP A,#9 | |
JREQ reset_chiffre ; si on arrive à 100, jump => reset_chiffre | |
LD A,#0 ; reinitialise compt-un | |
LD compt_un,A ; on s'occupe de l'unite | |
LD DisplayChar_Character,A | |
CALL MAX7219_DisplayChar | |
LD X,compt_diz ; puis de la dizaine | |
INC X | |
LD DisplayChar_Character,X | |
LD compt_diz,X | |
LD A,#3 | |
LD DisplayChar_Digit,A | |
CALL MAX7219_DisplayChar | |
JP return | |
reset_chiffre | |
LD A,#0 | |
LD DisplayChar_Character,A | |
LD X,#4 | |
LD DisplayChar_Digit,X | |
CALL MAX7219_DisplayChar | |
LD X,#3 | |
LD DisplayChar_Digit,X | |
CALL MAX7219_DisplayChar | |
CLR compt_diz | |
CLR compt_un | |
JP return | |
;************************************************************************ | |
; | |
; FIN DE LA ZONE DE DECLARATION DES SOUS-PROGRAMMES | |
; | |
;************************************************************************ | |
;************************************************************************ | |
; | |
; PROGRAMME PRINCIPAL | |
; | |
;************************************************************************ | |
main: | |
RSP ; Reset Stack Pointer | |
CLR DisplayChar_Digit | |
CLR DisplayChar_Character | |
CLR compt_diz | |
CLR compt_un | |
LD A,#4 | |
LD DisplayChar_Digit,A | |
LD A,#0 | |
LD compt_un,A | |
CALL init_ports_spi | |
CALL MAX7219_Init | |
CALL MAX7219_Clear | |
CALL MAX7219_DisplayChar | |
boucl | |
CALL incr_un | |
CALL wait | |
JP boucl | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES SOUS-PROGRAMMES D'INTERRUPTION | |
; | |
;************************************************************************ | |
dummy_rt: IRET ; Procédure vide : retour au programme principal. | |
;************************************************************************ | |
; | |
; ZONE DE DECLARATION DES VECTEURS D'INTERRUPTION | |
; | |
;************************************************************************ | |
segment 'vectit' | |
DC.W dummy_rt ; Adresse FFE0-FFE1h | |
SPI_it DC.W dummy_rt ; Adresse FFE2-FFE3h | |
lt_RTC1_it DC.W dummy_rt ; Adresse FFE4-FFE5h | |
lt_IC_it DC.W dummy_rt ; Adresse FFE6-FFE7h | |
at_timerover_it DC.W dummy_rt ; Adresse FFE8-FFE9h | |
at_timerOC_it DC.W dummy_rt ; Adresse FFEA-FFEBh | |
AVD_it DC.W dummy_rt ; Adresse FFEC-FFEDh | |
DC.W dummy_rt ; Adresse FFEE-FFEFh | |
lt_RTC2_it DC.W dummy_rt ; Adresse FFF0-FFF1h | |
ext3_it DC.W dummy_rt ; Adresse FFF2-FFF3h | |
ext2_it DC.W dummy_rt ; Adresse FFF4-FFF5h | |
ext1_it DC.W dummy_rt ; Adresse FFF6-FFF7h | |
ext0_it DC.W dummy_rt ; Adresse FFF8-FFF9h | |
AWU_it DC.W dummy_rt ; Adresse FFFA-FFFBh | |
softit DC.W dummy_rt ; Adresse FFFC-FFFDh | |
reset DC.W main ; Adresse FFFE-FFFFh | |
END | |
;************************************************************************ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment