\prog;XDec|Test BCD-Bin et BinBCD ; Test des routines de conversion. On tape un nbre BCD 8 bits, ; il est affiché en binaire et reconverti ; Interface série sur RA0 RA1, 16F84 ou 16F870 à 4 MHz .Proc 16F84 TOIF = 2 DebVar = 16'0C ; F84 ; PIC à 4MHz (Quartz) ;R2400 = (417-8-2)/4 ;R4800 = (208-8-2)/4 R9600 = (104-8-2)/4 ;R38400 = (26-8-2)/4 ; non garanti RateAdjust = R9600 \var;Ports| \b;PortA bTxD = 0 bRxD = 1 bS1 = 2 bSw = 4 ; Syncro l'envoi - DirA = 2'10010 \b;Port B DirB = -1 ; Libre PortSer = 5 ; PortA .Ins XSerM.asi \var;| Globales .Loc DebVar SavW: .16 1 .Ins XTrSerV.asi .Ins XBcdV.asi .Loc 0 \prog;Programme| Start: Move #DirA,W Move W,TrisA Move #DirB,W Move W,TrisB StopOn ; Stop bit Loop: \b; On lit 2 chiffres 0..9 Call SndCR Call RecSer ; Ascii dans W et DataRec Call SndSer ; echo, détruit W Move DataRec,W And #2'1111,W Move W,Dizaine Call RecSer Call SndSer ; echo, détruitW Move DataRec,W And #2'1111,W Move W,Unite Call SndSpace ; On converti en décimal et affiche Call BCDBin Move Binaire,W Move W,SavW Call SndHex ; On reconverti en décimal et affiche Move SavW,W Move W,Binaire Call BinBCD Call SndSpace Move Dizaine,W Add #"0",W Call SndSer Move Unite,W Add #"0",W Call SndSer Jump Loop .Ins XDecR.asi .Ins XTrSerR.asi ; routine envoi série .End