Un petit projet qui ne paie pas de mine qui pourrait être bien pratique dans le temps. J'ai fais çà en // avec le projet du tour, j'avais un 18F4525 qui avait une pin HS mais je ne me rappelais plus lequel ni quelle pin . Quand on a passé des heures à débugger un code c'est bien de savoir quelle pin est hs, je me suis dit qu'un petit montage de test ne serait pas de trop et pourrait resservir.
Rien de compliqué, juste un couple résistance/led sur chaque pin, on fait clignoter et on voit les réfractaires.
Schéma:
Implantation sur le PCB:
Le code pour un 4525, tout simple, on allume et on éteind, puis on recommence.
Le fichier init:
Code : Tout sélectionner
;************************************************************************************************
; F6FCO - Platine test PIC 16F/18F 40pins
; Platine test 18F4525
; 25sept23
;
;
;********************************************************************************************** ;
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
list p=18f4525 ; processeur utilisé
#include <p18f4525.inc> ; Définitions des constantes PIC
CONFIG OSC = INTIO67 ; Oscillateur interne 8MHz
CONFIG IESO = OFF ; Délai au démarrage (ON/OFF)
CONFIG BOREN = OFF ; Reset si chute de tension (ON/OFF)
CONFIG PWRT = ON ; Délai au démarrage (ON/OFF)
CONFIG BORV = 0 ; Tension de reset en 1/10ème Volts
CONFIG WDT = OFF ; Mise hors service du watchdog (ON/OFF)
CONFIG PBADEN = OFF ; PORTB<4:0> les broches sont configurées comme E/S numériques lors de la réinitialisation
CONFIG LPT1OSC = OFF ; Timer1 configuré pour un fonctionnement plus puissant
CONFIG MCLRE = ON ; Mclr configuré comme entrée
CONFIG STVREN = ON ; Reset sur débordement de pile (ON/OFF)
CONFIG LVP = OFF ; Programmation basse tension autorisée (ON/OFF)
CONFIG XINST = OFF ; L'extension du jeu d'instructions et le mode d'adressage indexé sont désactivés(mode hérité)
CONFIG DEBUG = OFF ; Debugger hors service
CONFIG CP0 = OFF ; Code protection sur block 0 (ON/OFF)
CONFIG CP1 = OFF ; Code protection sur block 1 (ON/OFF)
CONFIG CP2 = OFF ; Code protection sur block 2 (ON/OFF)
CONFIG CPB = OFF ; Code protection sur bootblock (ON/OFF)
CONFIG CPD = OFF ; Code protection sur eeprom (ON/OFF)
CONFIG WRT0 = OFF ; Protection écriture block 0 (ON/OFF)
CONFIG WRT1 = OFF ; Protection écriture block 1 (ON/OFF)
CONFIG WRT2 = OFF ; Protection écriture block 2 (ON/OFF)
CONFIG WRTB = OFF ; Protection écriture bootblock (ON/OFF)
CONFIG WRTC = OFF ; Protection écriture configurations (ON/OFF)
CONFIG WRTD = OFF ; Protection écriture zone eeprom (ON/OFF)
CONFIG EBTR0 = OFF ; Protection lecture de table block 0 (ON/OFF)
CONFIG EBTR1 = OFF ; Protection lecture de table block 1 (ON/OFF)
CONFIG EBTR2 = OFF ; Protection lecture de table block 2 (ON/OFF)
CONFIG EBTRB = OFF ; Protection lecture de table bootblock (ON/OFF)
CBLOCK H'0'
;--------------- variables
Reg_1 :1 ; tempo
Reg_2 :1 ; tempo
Reg_3 :1 ; tempo
conchita :2 ; bonne à tout faire
ENDC
ORG H'0'
init
movlw B'01110011'
movwf OSCCON ; oscillateur à 8 Mhz
movlw 0Fh
movwf ADCON1 ; mode analogique
movwf 07h
movwf CMCON
movlw b'00000000'
movwf TRISA
clrf PORTA
movlw b'00000000'
movwf TRISB
clrf PORTB
movlw b'00000000'
movwf TRISC
clrf PORTC
movlw b'00000000'
movwf TRISD
clrf PORTD
movlw b'00000000'
movwf TRISE
clrf PORTE
Fichier main:
Code : Tout sélectionner
#include <Platine_init.asm>
main
movlw b'11111111'
movwf PORTA
movwf PORTB
movwf PORTC
movwf PORTD
movwf PORTE
call tempo500ms
clrf PORTA
clrf PORTB
clrf PORTC
clrf PORTD
clrf PORTE
call tempo500ms
bra main
tempo500ms
; Délai 400 000 Cycles de la machine
; Durée du délai 200 millisecond
; Fréquence de l'oscillateur 8 MHZ
movlw .119
movwf Reg_1,1
movlw .8
movwf Reg_2
movlw .3
movwf Reg_3
decfsz Reg_1,F,1
bra $-2
decfsz Reg_2
bra $-6
decfsz Reg_3
bra $-.10
return
END