nasrinamsia1
Messages postés1Date d'inscriptionmardi 23 août 2005StatutMembreDernière intervention23 août 2005
-
23 août 2005 à 16:57
powerf
Messages postés8Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention21 octobre 2008
-
21 oct. 2008 à 22:19
Je viens de faire un projet d'une pointeuse par carte à puce et je cherche des informations à propos de cela. merci
powerf
Messages postés8Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention21 octobre 2008 21 oct. 2008 à 22:19
pour ça il te faut savoir la lire .si tu veut faire aver la gold (16f84+24c16) c facile tu lit l'eeprom du pic en mode programation et puis tu fait se qu'il te sempble, j'ai deja ecrit un source qui lit les 64 octets du 16f84(integré dans la carte) avec un pic16f84a je me suis basé sur la doc de microchip :
********************************************************
;------------ Exemple d'application avec un PIC : Un clignotant ---------------
; Titre : lecture d'une golde
; Date : 26 avril 2007
; Auteur : B.A
;la_vera_strada@yahoo.fr
; PIC utilisé : PIC 16 F 84(A)
; On réalise une initialisation a la lecture sur une carte a puce asynchrone (golde) qui contien un microcontroleur pic
; donc on lit un pic avec un pic!l'horloge elle est sur RA1 et RB7 ou SDA elle est sur RA0,et la sortie de lecture est sur RA2
;et enfin MCLR est sur RA3.
;------------ Directive d' assemblage pour MPLAB ---------------
LIST p=16F84 ; Définition de processeur
#include ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
W EQU 0x00 ; variable W = 0
F EQU 0x01 ; variable F = 1
;------------ Définition des constantes ---------------
#define scl 1 ; horloge
#define sda 0 ; envoie des données
#define mclr 3 ; mode de prog
#define ack 2 ; lecture des données
;------------ Définition des registres temporaires ---------------
retard1 EQU 0x0C ; le registre temporaire retard1 se trouve à l' adresse 0C
tp2 EQU 0x10 ; le registre temporaire tp2 se trouve à l' adresse 10
retard2 EQU 0x0F ; le registre temporaire retard1 se trouve à l' adresse 0F
memo EQU 0x12 ; le registre temporaire memo se trouve à l' adresse 12
tp1 EQU 0x13 ; le registre temporaire memo se trouve à l' adresse 12
nbr EQU 0x14 ; le registre temporaire memo se trouve à l' adresse 12
;------------ Init des ports A et B ---------------
;;;; Donnees EEPROM interne du PIC : ;;;;
EEPROM_DATA equ 2100h
ORG EEPROM_DATA ; Contenu quelconque sous
DE 0C7h,005h,082h,085h ; des formes differentes...
DE 0B7h,065h,024h,0FFh ; Ces 64 octets d'EEPROM
ORG 0
BSF STATUS,5 ; on met à 1 le 5eme bit du registre status pour accéder
; à la 2eme page mémoire ( pour trisa et trisb )
MOVLW 0x00
MOVWF TRISB
MOVLW B'00100'
MOVWF TRISA
BCF STATUS,5 ; on remet à 0 le 5eme bit du registre status pour accéder
; à la 1eme page mémoire
;------------ raz de la led et du registre memo ---------------
int
call tempo
call tempo
;**********lecture*************
ire_oct
bsf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
movlw B'00001000'
movwf tp2
clrf memo
boucler
bcf PORTA,scl
call tempo
rrf memo
bcf memo,7
BTFSc PORTA,ack ;- on teste SDA : vaut-il '0' ?
bsf memo,7
bsf PORTA,scl
call tempo
DECFSZ tp2,F ;- huitieme cycle ?
GOTO boucler ; si non, on reboucle : cycle suivant.
;************le bit stop*************
bcf PORTA,sda
bcf PORTA,scl
call tempo
bcf PORTA,mclr
call tempo
tour
movf memo,W
movwf PORTB
goto tour
envoi1 ;*****************le bit 1*********
bsf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
return
envoi0 ;*****************le bit 0*********
bcf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
return
tempo ;*********une tamporisation de 5us************
nop
nop
RETURN ; retour au programme principal après l 'instruction CALL
tempo1
movlw 0xFF
movwf retard1
movlw 0xFF
movwf retard2
boucle11
DECFSZ retard1,F ; on décrémente retard1 et on saute la prochaine instruction si
GOTO boucle11 ; le registre retard1 = 0 sinon retour à tempo
movlw 0xFF
movwf retard1
DECFSZ retard2,F ; on décrémente retard2 et on saute la prochaine instruction si
GOTO boucle11 ; le registre retard2 = 0 sinon retour à tempo
RETURN ; retour au programme principal après l 'instruction CALL
powerf
Messages postés8Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention21 octobre 2008 21 oct. 2008 à 22:19
pour ça il te faut savoir la lire .si tu veut faire aver la gold (16f84+24c16) c facile tu lit l'eeprom du pic en mode programation et puis tu fait se qu'il te sempble, j'ai deja ecrit un source qui lit les 64 octets du 16f84(integré dans la carte) avec un pic16f84a je me suis basé sur la doc de microchip :
********************************************************
;------------ Exemple d'application avec un PIC : Un clignotant ---------------
; Titre : lecture d'une golde
; Date : 26 avril 2007
; Auteur : B.A
;la_vera_strada@yahoo.fr
; PIC utilisé : PIC 16 F 84(A)
; On réalise une initialisation a la lecture sur une carte a puce asynchrone (golde) qui contien un microcontroleur pic
; donc on lit un pic avec un pic!l'horloge elle est sur RA1 et RB7 ou SDA elle est sur RA0,et la sortie de lecture est sur RA2
;et enfin MCLR est sur RA3.
;------------ Directive d' assemblage pour MPLAB ---------------
LIST p=16F84 ; Définition de processeur
#include ; Définitions des constantes
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
W EQU 0x00 ; variable W = 0
F EQU 0x01 ; variable F = 1
;------------ Définition des constantes ---------------
#define scl 1 ; horloge
#define sda 0 ; envoie des données
#define mclr 3 ; mode de prog
#define ack 2 ; lecture des données
;------------ Définition des registres temporaires ---------------
retard1 EQU 0x0C ; le registre temporaire retard1 se trouve à l' adresse 0C
tp2 EQU 0x10 ; le registre temporaire tp2 se trouve à l' adresse 10
retard2 EQU 0x0F ; le registre temporaire retard1 se trouve à l' adresse 0F
memo EQU 0x12 ; le registre temporaire memo se trouve à l' adresse 12
tp1 EQU 0x13 ; le registre temporaire memo se trouve à l' adresse 12
nbr EQU 0x14 ; le registre temporaire memo se trouve à l' adresse 12
;------------ Init des ports A et B ---------------
;;;; Donnees EEPROM interne du PIC : ;;;;
EEPROM_DATA equ 2100h
ORG EEPROM_DATA ; Contenu quelconque sous
DE 0C7h,005h,082h,085h ; des formes differentes...
DE 0B7h,065h,024h,0FFh ; Ces 64 octets d'EEPROM
ORG 0
BSF STATUS,5 ; on met à 1 le 5eme bit du registre status pour accéder
; à la 2eme page mémoire ( pour trisa et trisb )
MOVLW 0x00
MOVWF TRISB
MOVLW B'00100'
MOVWF TRISA
BCF STATUS,5 ; on remet à 0 le 5eme bit du registre status pour accéder
; à la 1eme page mémoire
;------------ raz de la led et du registre memo ---------------
int
call tempo
call tempo
;**********lecture*************
ire_oct
bsf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
movlw B'00001000'
movwf tp2
clrf memo
boucler
bcf PORTA,scl
call tempo
rrf memo
bcf memo,7
BTFSc PORTA,ack ;- on teste SDA : vaut-il '0' ?
bsf memo,7
bsf PORTA,scl
call tempo
DECFSZ tp2,F ;- huitieme cycle ?
GOTO boucler ; si non, on reboucle : cycle suivant.
;************le bit stop*************
bcf PORTA,sda
bcf PORTA,scl
call tempo
bcf PORTA,mclr
call tempo
tour
movf memo,W
movwf PORTB
goto tour
envoi1 ;*****************le bit 1*********
bsf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
return
envoi0 ;*****************le bit 0*********
bcf PORTA,sda
bcf PORTA,scl
call tempo
bsf PORTA,scl
call tempo
bcf PORTA,scl
call tempo
return
tempo ;*********une tamporisation de 5us************
nop
nop
RETURN ; retour au programme principal après l 'instruction CALL
tempo1
movlw 0xFF
movwf retard1
movlw 0xFF
movwf retard2
boucle11
DECFSZ retard1,F ; on décrémente retard1 et on saute la prochaine instruction si
GOTO boucle11 ; le registre retard1 = 0 sinon retour à tempo
movlw 0xFF
movwf retard1
DECFSZ retard2,F ; on décrémente retard2 et on saute la prochaine instruction si
GOTO boucle11 ; le registre retard2 = 0 sinon retour à tempo
RETURN ; retour au programme principal après l 'instruction CALL