'-- tlc549m.bas ------------------------------------------------ >>fst'01<< - ' - 8-Bit AD Wandler TLC549 ueber Parallelport auslesen (Minimalbeispiel) ' - Verbindungen: (Bauanleitung im Internet; s.u.) ' ** TLC549 ****** ** SUB-C ********* ** Zweck ********************** ' Pin1 (REF+) <- Pin 5 (DATA3) = Versorgungs- & Referenzspannung ' Pin2 (ANALOG IN) - = Plus Messleitung ' Pin3 (REF-) - Pin18-19 (GND) = Masse & Minus Referenzspannug ' Pin4 (GND) - Pin18-19 (GND) = Masse & Minus Referenzspannug ' Pin5 (CS) <- Pin14 (AUTO FEED) = Chip-Select ' Pin6 (DATA OUT) -> Pin15 (ERROR) = Wandlerdaten ' Pin7 (I/O CLOCK) <- Pin16 (INIT/RESET) = Taktleitung ' Pin8 (VCC) <- Pin 5 (DATA3) = Versorgungs- & Referenzspannung '-- V 20041128 ------------------------------- http://www.FrankSteinberg.de - CLS PRINT "Auslesen des TLC549 8-Bit AD-Wandlers ueber LPT1 >>fst'01<<" BA% = 888 'Basisadresse LPT1 = 888 oder 956, LPT2 = 632 OUT BA%, 8 'Stromversorgung ueber Datenausgang 3 ein DO 'Start Hauptschleife 'AUTO FEED -> CS geht auf high = Bit1 (Wert 2) auf 0, 'INIT -> I/O CLOCK bleibt auf low = Bit2 (Wert 4) auf 0: OUT BA% + 2, 0 'AUTO FEED -> CS geht auf low = Bit1 (Wert 2) auf 1, 'INIT -> I/O CLOCK bleibt auf low = Bit2 (Wert 4) auf 0: OUT BA% + 2, 2 WDat% = 0 'alten Wandlerwert loeschen FOR I% = 7 TO 0 STEP -1 'Bits 7 - 0 des TLC 549 nacheinander auslesen IF (INP(BA% + 1) AND 8) THEN 'Bit3 (Wert 8) DATA OUT->ERROR gesetzt? WDat% = WDat% + 2 ^ I% 'wenn ja, Wert des Bits aufsummieren END IF 'AUTO FEED -> CS bleibt auf low = Bit1 (Wert 2) auf 1, 'INIT -> I/O CLOCK geht auf high = Bit2 (Wert 4) auf 1: OUT BA% + 2, 6 'AUTO FEED -> CS bleibt auf low = Bit1 (Wert 2) auf 1, 'INIT -> I/O CLOCK geht auf low = Bit2 (Wert 4) auf 0: OUT BA% + 2, 2 NEXT 'naechstes Bit holen PRINT USING "### "; WDat%; '8-Bit Wandlerwert anzeigen SLEEP 1 '1 Sekunde warten LOOP WHILE INKEY$ = "" 'Ende mit Tastendruck OUT BA%, 0 'Stromversorgung ausschalten