\prog;PicT676A.asm| 12C676 \b;Lit analo RA0 pin 13 et affiche sur RC5..0 valeur modulo 64 ; Clignote Led pin 2 .Proc 16F870 .Ref 16F676 \const;PortA| ; = 0 AN0 bLed = 1 ; pin2 DirA = 2'001001 DirC = 0 SelAd = 2'00000001 ; AdOn Left justif ModeAdCon1 = 2'00010000 ; :8 ModeAnSel = 2'00000001 ; Sel An0 pin 13 .Loc DebVar C1: .16 1 C2: .16 1 Temp: .16 1 .Loc 0 Deb: Clr PortA Move #16'07,W Move W,CmCon Set Status:#RP0 ; page 1 Call 16'3FF Move W,OscCal Move #ModeAdCon1,W Move W,AdCon1 Move #ModeAnSel,W Move W,AnSel Clr Status:#RP0 ; retour page 0 Move #DirA,W Move W,TrisA Move #DirC,W Move W,TrisC Loop: Move #SelAd,W Move W,AdCon0 Call Del20 Set ADCon0:#Go W$: TestSkip,BC ADCon0:#Go Jump W$ ; Attente fin Move ADResH,W Move W,PortC And #2'11000000,W Move W,Temp ; poids fort dur RA5 RA4 RRC Temp RRC Temp Move #2'00110000,W And W,Temp Move PortA,W And #2'000011,W ; keep led state Or Temp,W Move W,PortA ; Attente Move #2**bLed,W Xor W,PortA ; Inverse bLed si niveaux OK A$: DecSkip,EQ C1 Jump A$ DecSkip,EQ C2 Jump A$ Jump Loop \rout:Del20| 20 \mu;s pour convertisseur AD \mod:W Del20: Move #6,W A$: Add #-1,W Skip,EQ Jump A$ Ret .Align 16'8 .16 "P","i","c","t","6","7","6","a" .Fill.16 FinProg+1-APC,-1 ; Accélère .Loc 16'2007 .16 16'3F84 ; Configuration .End