\prog:Pict870H.asm|Affiche le code de la touche en Ascii, Hexa, Binaire ; Terminal à 9600 b/s .Proc 16F870 .Ref 16F870 .Macro Bank0to1 Set Status:#RP0 .Endmacro .Macro Bank1to0 Clr Status:#RP0 .Endmacro IniAdCon = 2'00001110 ; AN0, Left just DirA = 0 InitA = 0 DirB = 0 InitB = 0 \const;PortC| Série, bTxD = 6 bRxD = 7 DirC = 2'10000000 ; InitC = 2**bTxD ; 1er car ok IniRcSta = 2'10011000 IniTxSta = 2'00100100 IniSpBrg = 10'25 PortSer = 7 ; id \b;Ascii| CR = 16'0D LF = 16'0A BEL = 16'07 \var: | .Loc DebVar C1: .16 1 DataSnd: .Blk.16 1 DataRec: .Blk.16 1 SavBin: .16 1 SavHex: .16 1 SavOrder: .16 1 Temp: .16 1 ;Variables du test Alpha: .Blk.16 1 ; Pointeur dans la chaîne CAlpha: .Blk.16 1 ; Longueur de la chaîne \prog; | .Loc 0 Debut: Clr PortA Bank0to1 Move #IniAdCon,W Move W,AdCon1 Bank1to0 Move #DirA,W Move W,TrisA Move #DirB,W Move W,TrisB Move #DirC,W Move W,TrisC Move #InitA,W Move W,PortA Move #InitB,W Move W,PortB Move #InitC,W Move W,PortC Call Iniser Move #"+",W Call SndSer Loop: Call SndCR Call RecSer ; On recommence à chaque touche pressée Call SndSer Move W,SavBin Call SndSpace Move SavBin,W Call SndHexSp Move SavBin,W Call SndBin Call SndCR Jump Loop .Ins XSer7R.asi .Ins XHexR.asi .Align 16'8 .16 "P","i","c","t","8","7","0","h" ;.Fill.16 FinProg+1-APC,-1 ;.Loc 16'2007 ;.16 16'3F39 ; Config .End