Je trouve que c'est une très bonne idée ce recueil de mini-programmes, un forum c'est fait pour partager. Même si certains viendront piquer dans le tas et repartir sans un merci qu'ils jouent au hyènes si çà les amuse, ils n'en sortiront pas grandis. C'est la nouvelle société, on les laisse avec leur conscience.
Par contre çà peut bien aider les débutants complets pour se mettre le pied à l'étrier et éviter de se décourager. Et aussi apporter du sang neuf sur Fantaspic
Pas simple quand on démarre d'arriver à pondre un truc qui tourne.
Donc voici un Hello World sur 16F88 en deux fichiers, l'un appelle l'autre, j'ai l'habitude pour plus de clarté sur des gros programmes de faire un fichier init et un main, le dernier appelant le premier. Je trouve çà plus clair, en espérant que çà ne déroutera pas les débutants.
Une led qui clignotte sur B0.
Le fichier Init:
Code : Tout sélectionner
;**********************************************************************
;
; F6FCO
; Hello World
; xtal: 4Mhz
;
;
;**********************************************************************
List p=16F88 ; processeur utilisé
#include <p16F88.inc>
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_OFF & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
OPTIONVAL EQU H'0008'
; --------------------------------------------------------------------------------------------
CBLOCK 0x020
Reg_1
Reg_2
Reg_3
ENDC
;**********************************************************************
org 0x0000 ; Adresse de départ après reset
init
clrf PORTB ; sorties portB à 0
bsf STATUS,RP0 ; bank1
clrf ANSEL ; broches du CAN en I/O
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,5 ; bank0
clrf PORTB ; sorties portB à 0
Le fichier main:
Code : Tout sélectionner
#include <Init Hello World 88.asm>
;*********************************************************************
; PROGRAMME PRINCIPAL *
;*********************************************************************
main
bsf PORTB,0
call tempo300ms
bcf PORTB,0
call tempo300ms
goto main
tempo300ms
; Délai 300 000 Cycles de la machine
; Durée du délai 300 millisecond
; Fréquence de l'oscillateur 4 MHZ
movlw .153
movwf Reg_1
movlw .134
movwf Reg_2
movlw .2
movwf Reg_3
decfsz Reg_1,F
goto $-1
decfsz Reg_2,F
goto $-3
decfsz Reg_3,F
goto $-5
return
END
