lignesd'entrée/sortie.
lasousroutine.
ComplétezprogressivementvotreprogrammeetenregistrezlesousunNOUVEAUNOMafindepouvoirle
Liseztoutelabibliothèquepoursavoircequiestpossible.
blank12F629.asmcommemiseenpagededépart.Ilfournitladispositionetl'espacementcorrects.
DessousprogrammessupplémentairespeuventêtretrouvésdanslecoursdeprogrammationPIC.Ceciest
lesaméliorationsnefonctionnentpas!!
Assurezvousquechaquesousroutineutiliseunfichier(unregistre)avecunnom(unnombrehexadécimal)
Voirl'articleDébuticiavecPIC12F629pourdesnotesdeprogrammationutilesetunecartedesfichiers.
d'unformatage/caractèrescachés.MPASMnegénèrepaslefichier.hexnécessairesiunproblèmeexiste
égalementdisponibledanslasection"CopieretColler".
numéroàunfichier.Deuxinstructionssontnécessairespoureffectuercetteopération.
Assurezvousquechaquesoussectionfonctionnecorrectementavantd'ajouterd'autresinstructions.
Ilspeuventêtreplacésdansvotreprogrammeetmodifiésden'importequellemanièrepours'adapteraux
motsautourdel'erreur(danslefichier.asm)etleprogrammesecompilera.N'utilisezpasEditPadcarilproduit
microàlabonnecadencedansleprogrammeetcréédesétiquettesquivouspermettentdesavoircequefait
;MettreCChdans
W;CCseraajoutéaucontenudufichier"2E".
Labibliothèquesuivanteestprésentéeparordrealphabétique.L'utilisationdecessousroutinesvous
Laversion"CopieretColler"decessousroutinessetrouveICI.
«Copieretcoller»dublocnoteset«Copieretcoller»dansvotreprogrammedansunautreblocnotes,au
rappelerencasdeproblèmemajeur.Nel'enregistrezpassouslenomprécédentcarparfoisMPASMne
Ceciestpratiquelorsqueplusieurslignesdesortiedoiventêtreactivées.
Unproblèmeinhabituelquevouspouvezrencontrerestunéchecdecompilationdevotreprogrammeenraison
surlasectiond'abonnementdusiteWeb.
Pensezsimplementàunmotouàuneexigence,allezaumotetlisezle.Denombreusessousroutinessont
l'assemblerapas(ilpenseraqu'iladéjàétéassembléetnefaitrien!!)etvousvousdemanderezpourquoi
besoin.
permettradedémarrertrèsrapidementetvousaideravec70%à90%d'unnouveauprojet.
dansunprogramme,maisilprésenteunfichier.lstcontenantlesdéfauts.Sivousouvrez.lstetvoyezdes
Voiciunelistedesousroutines,d'idéesetd'aidepourlePIC12F629.Elless'appliquentàtoutprojetutilisantle
quin'entrepasenconflitavecuneautresousroutinequevousavezcréée.
Collezlesdansvotreprogrammeetmodifiezlesenconséquence.Lemicroprendrachaqueinstructionet
AjouterMOVLW0CCh
ADDWF2Eh,1
AssurezvousquelesCALLsvontàunesousroutinequiaunRETURN(utilisezretlw00)pourramenerle
PIC12F629.
erreursanormales,ellesserontduesàdescaractèresdeformatagemasqués.Retapezsimplementtousles
VotreprogrammedoitêtrecréésurunmodèledansunéditeurdetextetelqueleBlocnotes,enutilisant
l'exécutera.Assurezvousd'avoirunRETLW00quiramènelemicroauMain.
descaractèrescachés.Pourutiliserlabibliothèquederoutinescidessous,accédezàl'ensemblederoutines
01/05/202216:26
1/23
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
PresquetoutescesinstructionsfonctionnentégalementavecPIC16F628.
Vérifiezsimplementlaoulesvaleursdeportetlepremierfichier
disponible.voir:SiteWebdeTalkingElectronicsAEEPPZ
AjouterunevaleuràunfichierLePIC12F629n'apasuneseuleinstructionpourajouterun
Ajoutezdes"bits"àunportactivezlesbitsoules"lignes".
Bibliothèquederoutines
pourPIC12F629
Machine Translated by Google
Adressaged'unensembledefichiers
01/05/202216:27
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
2/23
TOUSLESDRAPEAUXETBITS
AdresserundossierCelasignifie«agirsur»ou«travailleravec»undossier.Ilpeuts'agirde
Supposonsquenousayons8fichiersetquenousdevionslestraiteravecunsimplesousprogrammepourafficherlesdonnéessurunécran.
WDT
sélectionnelabanque1c'esticiquel'onaccèdeauregistreOPTION.
bcfOption_reg,3
j'aibesoinde;pour
activerlebit5;Mettez10h
dansWc'estlebit5;10hserontajoutésau
contenudufichier"05".
DECFSZ2A,1
TRISIO
03,0
CeciestnécessaireentantquePIC12F629neparviendrapasàdéfinirdeuxlignesouplusvialesinstructions
Minuterie0
envoyéesoumodifiées).Lesfichiersdontnousparlonssontlesfichiers"vides"de20hà5F.ProgrammeNile
Voiciquelquesunsdesindicateursetbitscourants.
;Copiezlefichier2AdansW
btfss03,0;ignorersiunreportdubitleplussignificatifa
bcf81h,3
alternativement,lebit5peutêtreSET
assignéà
L'auteuraconstatéquelePIC12F629neparviendrapasàdéfinirladeuxièmeligne.
programmationfacile.
gcf03,5
bsf81h,3
;supposonsqueGPIOalesbits0,1et2HIGHetnous
MOVWF2A,0
GPIO
movlwxxh
iorwfGPIO,1
;mettral'incrémentdufichier2AdansWmaislefichier2Anechangerapas!!
Leregistredesoptionsestdanslabanque1
assignéà
similaire.Seulslesfichierspeuventêtreprécisés(lesinstructionsduprogrammenepeuventpasêtre
ou:
INCF2A,0
Testezlebitderetenue:
IORWFGPIO,1
prééchelonneur
voir"Réglagedesbitsdesportsd'entréeoudesortie"
GPIObsf,0
GPIObsf,2
Ceciestparfoisappelé«blocnotes»ou«zonedublocnotes».Lesfichiersdoiventêtreséquentielspourfaire
parunensembled'instructionscouvertesparCALLTable.Lesinstructionsd'adressagetypiquessont:
sélectiondebanque:bsf03,5
ou:
voir:Minuteriedesurveillance
dossier85h
Siplusd'unelignedoitêtrerendue"HIGH"ou"LOW",enmêmetemps,vousdevezutiliser:
;Incrémenterlefichier2A
LesousprogrammeestappeléADRESSAGEINDIRECT.VoirAdressageindirect.
prééchelonneur
"déplacerunevaleurdansunfichier","incrémenterunfichier","décrémenterunfichier"outouteautreopération
Timer0estdanslabanque0
MOVLW10h
INCF2A,1
sélectionnelabanque0c'estlazonedeprogrammationnormale
Uncertainnombredefichierspeuventêtreutiliséspourstockerdesdonnéestemporaires,tellesqueleschiffresouleslettresd'untableaudebord.
porter
voirportd'entrée/sortie."DéfinitiondesbitsdeportHIGHouLOW"
suivantes:
bsfOption_reg,3
nilesvaleursdestableauxnepeuventêtremodifiées.Lesvaleursd'unetablepeuventêtreaccédéesetcopiées
Pourlesautresdrapeaux,voirPIC12F629Fichetechnique(.pdf4926Ko)
s'estproduit.
fichier05h
bsfGPIO,5
;Décrémenterlefichier2A
Machine Translated by Google
L'opérationANDmasqueratoutoupartiedesbitsd'unfichier.Decettefaçon,vouspouvez"supprimer"n'importequelmorceauduhautoudu
)
Comptoir
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
/
c
Contientlesindicateursdereport,desélectiondebanqueetdezéro.
etlw0F0h
^OUexclusifauniveaudubitdrapeaux=drapeaux
drapeaux=drapeaux<<1
<
allerà$+3
>=Supérieurouégal
0=Lerésultatd'uneopérationarithmétiqueoulogiquen'estpasnul
drapeau=~drapeau
!=Paségalà
Pourmasquer(supprimer)lequartetinférieur,ilestANDavecF0h(écrit0F0h)
!NON(complémentlogique)si!(un==b)
&&ETlogique
voiraussilespseudoinstructions
+Ajouter tot_len=entrée_len
zérodrapeau
=
Programmecourant/retour
sientrée_idx>num_entrées
ETvoiraussiMasque
1+(ré*4)
drapeaux=drapeaux&ERROR_BIT
Multiplicateur *
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
nombredemovfA,w
entrée_len=(tot–1)/8
indiced'entrée=0
1=Lerésultatd'uneopérationarithmétiqueoulogiqueestzéro
Exemple
>>Décalageàdroite
(longueur+1)*256
longueur
siEntry_idx==num_entries
Lamanièrelaplusrapided’effectuerl’opérationestlasuivante:
entrée_len=tot_len%16
|OUinclusifauniveaudubitdrapeaux=drapeaux|ERROR_BIT
OPÉRATEURSARITHMÉTIQUESETPRÉSÉANCE
%Module
03,2
||OUlogiqueÉgalà
Moinsque
sientrée_idx>=num_entrées
btfss03,2;sautersilebitzéroestdéfini
Parenthèsegauche
&ETauniveaudubit
Placezlavaleur(disonscountA)surlaquelleopérer,dansw:
~Complément
*
Statut
<<Décalageàgauche
8+1
l'indicateurzéroestlebit2dufichier03(lefichierSTATUS)
$
si(len==512)||(b==c)
sientrée_idx<=num_entrées
3/23
Parenthèsedroite
*
grignotageinférieur,etc.
un=b/c
^ERREUR_BIT
fichier03
;seulsles4bitssupérieursserontenw.
Diviseur
<=Inférieurouégal==Égal
à
(
>Plusgrandque
drapeaux=drapeaux>>1
Vouspouvezregarderlebit2:
un=b
sientrée_idx!=nombre_entrées
Pourmasquer(supprimer)lequartetsupérieur,ilestANDéavec0Fh(peuts'écrire00Fh)
–Négation(complémentà2)–1
01/05/202216:27
si(len==512)&&(b==c)
–Soustraire
*
zérobit
OPÉRATEUR
sientrée_idx<num_entrées
Machine Translated by Google
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
01/05/202216:27 www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
4/23
>>=Décalageàdroite,misàniveaudrapeaux>>=3
Moyenne:2;Moyenne,Moyenne+1contiendraledébordement
movfwTampon;déplacerlapremièrevaleurverslamoyenne
ÉTATbcf,RP0;retouràlabanque0
incfMoyenne+1,f;incrémenterl'octetdepoidsfort
indiced'entrée+=1
je–
movfwTampon+5
xorlwTampon+8;lafindutampon
entréetotale/=entrée_longueur
movwfMoyenne+1
|=OUinclusif,miségal
movwfFSR;pointeurFSRversletampon
^
movwfADRESSE;obtenirl'octetdepoidsfort
movfwTampon+4;ajouterunetroisièmevaleur
Multiplicateur,miségal
movwfFSR;réinitialisezle
addwfMoyenne,f
<<=Décalageàgauche,misàniveaudrapeaux<<=3
Tampon:8;letamponcontient8fichiers
movwfADRESL;récupèrel'octetdepoidsfaible
btfscSTATUS,C;s'ilyaeuundébordement
+=Ajouterà,définirégal
je++
incfMoyenne+1,f
Diviseur,miségal
––Décrémenter
movfwFSR;voirsiFSRaatteint
movlwTampon;obtenirl'adressedutampon
movfwTampon+1;etoctetdepoidsfort
drapeaux&=ERROR_FLAG
addwfMoyenne+1,f
*=
incfFSR,F;etpointeurversl'emplacementsuivant
indiced'entrée–=1
btfscSTATUT,Z;sic'estàlafin
movfwTampon+6;ajouteunequatrièmevaleur
indiced'entrée%=8
cbloch'20';débutdesregistresàusagegénéral
drapeaux^=ERROR_FLAG
addwfMoyenne,f;premieroctetdepoidsfaible
bsfSTATUT,RP0;banque1
incfFSR,F;pointeversl'emplacementsuivant
btfscSTATUT,C
/=
++Incrément
fin
mowfMoyenne
&=ET,miségal
movfwTampon+3;etajouterl'octetdepoidsfort
Soustraire,mettreégal
–=
movwfINDF;stockerdansletampon
Laroutinesuivanteprésentelamoyennede4valeurs.Résultaten:MoyenneetMoyenne+1.
movlwTampon;préparerlaréinitialisationduFSR
addwfMoyenne+1,f
%=module,miségal
movfwTampon+2;ajouterunesecondevaleur
drapeaux|=ERREUR_FLAG
AppelezGetADC;lisezl'ADC
movwfINDFetstockezle
addwfMoyenne,f
=OUexclusif,miségal
indexd'entrée*=longueur_entrée
btfscSTATUT,C
Moyenne
Machine Translated by Google
5/23
lesregistressetrouventdansd'autresbanquesetvousdevezvousrendredanscesbanquespourchargerlesdonnéesdanslefichiersélectionné(registre)ou
addwfMoyenne+1,f
bankel0x00ou00h
bcfSTATUT,C;diviseurpar2
lireàpartirdufichier.
VoicilalistedesfichierspourunPIC12F629dansbank0etbank1:
trisA
incfMoyenne+1,f
SÉLECTIONDEBANQUE
trisio
movfwTampon+7
Lorsdel'écritured'unprogramme,toutesvosinstructionssontécritesdansunezoneappeléebank0.Cependantcertainsdes
bcfSTATUT,C;diviseurpar4
Cependantvouspouvezutiliserunedirectivereconnueparl'assembleurappelée:bankselVouspouvez
utiliserlenomden'importequelregistredelabanquequevoussouhaitezsélectionneravecladirectivebanksel,telque:
pouralleràlabanque0:
01/05/202216:27
rrfMoyenne+1,f
banquel
banquel
rrfMoyenne,f
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
rrfMoyenne+1,f;endécalantl'octetdepoidsfort
Lemoyenleplussimpledepasserdebank0àbank1estdedéfinirrp0danslefichierd'état:bsfstatus,rp0
www.talkingelectronics.com/projects/StartHere12F629/Library12F629_P1.html
rrfMoyenne,f;puisoctetdepoidsfaible
Pourpasserdebank1àbank0lebitrp0esteffacé:bcfstatus,rp0
Machine Translated by Google
1 / 23 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !