10 CLS 20 REM ** F6CSX - Octobre 1999 ** 25 REM 30 REM ** Configuration mat‚rielle ** 35 REM DX: adresse hexa du port parallŠle 40 DX = &H378 45 REM 48 REM INV = 1 si interface inverse les donn‚es, sinon INV=0 49 INV = 1 50 K = 255 * INV 51 REM 52 REM Sorties sur le port parallŠle LPT1 53 REM Data sur bit 0 54 REM Clock sur bit 1 55 REM Enable sur bit 2 56 REM 57 REM pr‚diviseur par P/P+1 58 P = 80 59 REM pas du synth‚ = Fref / R (voir RA0,RA1,RA2 du MC145156) 60 FCOMP = 12.5 61 REM 62 REM ** d‚claration des variables ** 64 DIM N(19) 65 REM N(18)=SW1, N(17)=SW2 66 N(18) = 1 - INV 68 N(17) = 1 - INV 70 REM 90 REM RAZ de toutes les sorties de l'interface 100 OUT DX, K 200 PRINT " ** LOGICIEL DE PROGRAMMATION DU MC145156 **" 210 PRINT 220 PRINT "Donn‚es :" 240 PRINT 250 PRINT " Pas du synth‚tiseur ="; FCOMP; " kHz" 260 PRINT " Le pr‚diviseur divise par P ="; P 262 PRINT " La fr‚quence interm‚diaire est de 21400 kHz" 264 IF INV = 0 THEN 270 265 PRINT " L'interface inverse les donn‚es" 270 PRINT 271 INPUT "VCO (E)mission ou (R)‚ception:"; B$ 272 IF B$ = "E" THEN 278 273 IF B$ = "e" THEN 278 275 INPUT " Fr‚quence … recevoir en kHz:"; FRX 276 FVCO = FRX - 21400: PRINT " La fr‚quence du VCO est :"; FVCO; " kHz" 277 GOTO 330 278 INPUT " Fr‚quence du VCO en kHz:"; FVCO 300 REM 310 REM d‚but du calcul 320 REM 330 M = FVCO / FCOMP 350 REM calcul de N et A 360 N = INT(M / P) 370 A = M - N * P 400 PRINT " N="; N 410 PRINT " A="; A 420 PRINT " P="; P 500 REM Compl‚mentation des donn‚es si interface inverseur 510 IF INV = 0 THEN 600 520 N = 1023 - N 530 A = 127 - A 600 REM ** conversion en binaire ** 650 FOR X = 10 TO 1 STEP -1 660 N(X + 6) = INT(N / 2 ^ (X - 1)) 670 N = N - N(X + 6) * (2 ^ (X - 1)) 680 NEXT X 700 FOR X = 7 TO 1 STEP -1 710 N(X - 1) = INT(A / 2 ^ (X - 1)) 720 A = A - N(X - 1) * (2 ^ (X - 1)) 730 NEXT X 800 PRINT "Affichage des donn‚es en binaire : MSB<----->LSB" 805 PRINT "Dans l'ordre: SW1, SW2, N(10 bits), A(7 bits)" 810 PRINT 820 FOR X = 18 TO 0 STEP -1 830 PRINT N(X); 840 NEXT X 1000 REM ** Envoi des donn‚es ** 1010 FOR X = 18 TO 0 STEP -1 1020 OUT DX, N(X) + 254 * INV 1030 OUT DX, N(X) + 2 + 250 * INV 1040 OUT DX, N(X) + 254 * INV 1050 NEXT X 1060 OUT DX, K 1065 REM 1070 REM envoi de l'impulsion de transfert (enable) 1080 FOR X = 1 TO 10 1090 OUT DX, 4 + 247 * INV 2000 NEXT X 2010 OUT DX, K 2020 REM 2100 PRINT " taper R pour Recommencer et T pour Terminer" 2110 A$ = INKEY$ 2120 IF A$ = "r" THEN 10 2125 IF A$ = "R" THEN 10 2130 IF A$ = "t" THEN 2200 2140 IF A$ = "T" THEN 2200 2150 GOTO 2110 2200 END