Bonjour
je remets en marche une carte electronique qui etait en vente en kit
c’etait un kit a monter soit meme.
8 entrées analogique ,convertion vers un PC
en passant par le port parallele.
un programme ecris en QB4 pour la gestion et affichage a l’ecran des données
voici un programme
et la photo de la carte.
ref du module : CH41
'****************************************************************************
'* FICHIER : ETANCHE2.BAS
" PIERRRE JUMEAUX
'* LE 1/09/1998
'* Aquisition : convertisseur 12 bits sur Lpt1
'* Restitution : carte 8 sorties sur Lpt2
'*
'****************************************************************************
debut:
DEFINT A-Z
DECLARE SUB Adc12DriverOpen (port%)
DECLARE SUB Adc12getvalue ()
CLS
SCREEN 12
WINDOW (1, 1)-(4095, 350)
’ **************************
CONST cshigh% = &HFE
CONST clockhigh% = &HFD
CONST clocklow% = &HFC
CONST databit% = &H80 'masque pour la broche 11 (data de ADC-12)
DIM SHARED adc&
DIM SHARED outputaddress% 'imprimer port output
DIM SHARED portin% 'imprime port input
DIM adcpre
DIM sortie(8) 'designation des huit sortie
CALL Adc12DriverOpen(1)
LINE (1, 35)-(4095, 320), 10, B 'cadre exterieur vert
LOCATE 24, 3: COLOR 15: PRINT « Modification de la Consigne = »
LOCATE 4, 2: PRINT " Tension De R‚f = 3,000 Volts "
LOCATE 25, 60: PRINT « Consigne = »
LINE (19, 37)-(4075, 100), 11, B 'cadre CIAN
adcpre = 0
adc& = 0
j = 0
t = 0
u = 0
x = 0
xx = 0
y = 0
yy = 0
z = 0
'*****************************************
OPEN « ETANCHE.MDB » FOR INPUT AS #1
INPUT #1, conf
LOCATE 23, 38: PRINT " "
LOCATE 25, 70: COLOR 10: PRINT conf
CLOSE #1
'******************************************
DO
j = j + 1
IF j = 5000 THEN GOTO eteint
IF j > 5000 THEN j = 0
IF t = 5000 THEN t = 0
IF sortie(1) = 1 THEN j = 0
LOCATE 1, 5: PRINT j
u = u + 1
IF u = 50 THEN u = 0
IF u < 10 THEN LOCATE 24, 33: PRINT " "
IF u > 20 THEN LOCATE 24, 33: COLOR 15: PRINT « F1 »
IF u < 10 THEN LOCATE 24, 33: LINE (60, 71)-(1750, 85), 12, B
IF u > 20 THEN LOCATE 24, 33: LINE (60, 71)-(1750, 85), 14, B
IF adc& > adcpre THEN
LINE (adc&, 0)-(adcpre, 30), 13, BF
ELSEIF adc& < adcpre THEN
LINE (adcpre, 0)-(adc&, 30), 0, BF
ELSE
END IF
adcpre = adc&
IF adc& > conf THEN LOCATE 4, 70: COLOR 10: PRINT "BON ": x = 10
IF adc& < conf THEN LOCATE 4, 70: COLOR 12: PRINT « MAUVAIS »: x = 12
LINE (100, 120)-(4000, 300), x, BF
'**********
’ IF adc& < conf THEN sortie(1) = 0 ELSE sortie(1) = 1
’ IF adc& < 2000 THEN sortie(2) = 0 ELSE sortie(2) = 1
'***********
car$ = INKEY$
IF car$ = « q » OR car$ = « Q » THEN END
IF LEN(car$) = 2 AND RIGHT$(car$, 1) = « ; » THEN GOSUB clignot 'TOUCHE F1
CALL Adc12getvalue
LOCATE 1, 70: COLOR 15: PRINT TIME$
'IF t = 5000 THEN t = 0
LOCATE 21, 66: COLOR 13: PRINT « ADC-12 = »; adc&
LOCATE 21, 3: COLOR 11: PRINT USING « TENSION = #.### Volts »; ((5 * adc&) / 4095)
GOSUB sortie
LOOP
'****************************************************************
clignot:
DO
car$ = INKEY$
IF car$ = « q » OR car$ = « Q » THEN END
y = y + 1
IF y = 25 THEN yy = yy + 1
IF y = 100 THEN y = 0
IF y > 25 THEN LOCATE 25, 3: COLOR 10: PRINT « FRAPPEZ La valeur de consigne: »
IF y < 25 THEN LOCATE 25, 3: PRINT " "
IF yy = 5 THEN GOTO modif
LOOP
'****************************************************************
modif:
y = 0
yy = 0
LOCATE 25, 36: PRINT " "
LOCATE 25, 70: PRINT " "
LOCATE 25, 3: COLOR 10: INPUT "FRAPPEZ La valeur de consigne: "; conf
LOCATE 25, 70: PRINT conf
LOCATE 23, 38: PRINT " "
OPEN « ETANCHE.MDB » FOR OUTPUT AS #1
WRITE #1, conf
CLOSE #1
LOCATE 25, 3: PRINT "CONSIGNE MEMORISE "
GOTO debut
'****************************************************************
sortie: 'PORT // Nø2 = 888 (ou la valeur de 0378)
d = 0
FOR g = 0 TO 7
IF sortie(g) <> 0 THEN d = d + 2 ^ g
NEXT g
OUT 888, d '956 888
OUT 890, 255 '957 890
OUT 890, 0 '957 890
RETURN
'**********************************************
eteint:
CLS
DO
’ IF adc& < conf THEN sortie(1) = 0 ELSE sortie(1) = 1
’ IF adc& < 1500 THEN sortie(2) = 0 ELSE sortie(2) = 1
car$ = INKEY$
'IF sortie(2) = 1 THEN GOTO debut 'attention au reglage de la sortie 2
IF car$ = « q » OR car$ = « Q » THEN END
CALL Adc12getvalue
LOCATE 1, 70: COLOR 15: PRINT TIME$
IF t = 5000 THEN t = 0
GOSUB sortie
IF INKEY$ <> « » THEN c = 1: GOTO debut
y = y + 1
IF y = 25 THEN yy = yy + 1
IF y = 100 THEN y = 0
IF y > 25 THEN LOCATE 12, 25: COLOR 12: PRINT « LE SYSTEME EST EN VEILLE !!! »
IF y < 25 THEN LOCATE 12, 25: PRINT " "
IF y > 25 THEN LOCATE 22, 15: COLOR 10: PRINT « APPUYER SUR UNE TOUCHE DU CLAVIER POUR LE REACTIVER »
IF y < 25 THEN LOCATE 22, 15: PRINT " "
LOOP
END
'***************************************************************************
'*
'* Adc12DriverOpen
'* This routine sets port addresses and powers up the ADC-12
'*
'* accepts:
'* 1 - use LPT1
'* 2 - use LPT2
'* 3 - use LPT3
'* 4 - use LPT4
'*
'* sets:
'* outputaddress
'* portin
'*
'***************************************************************************
’
SUB Adc12DriverOpen (port)
'read the printer port address from the BIOS
DEF SEG = 0
addr% = &H408 + 2 * (port - 1)
outputaddress% = PEEK(addr%) + (PEEK(addr% + 1) * 256)
portin% = outputaddress% + 1
'power up the ADC-12
OUT outputaddress%, cshigh%
END SUB
'***************************************************************************
'*
'* Adc12GetValue
'* This routine starts a new conversion and gets the result of
'* the PREVIOUS conversion. (The first result is invalid as no
'* conversion has been performed).
'*
'* Sets:
'* adc% - result of previous conversion
'*
'***************************************************************************
’
SUB Adc12getvalue
adc& = 0 'data is read into this string one bit at a time
OUT outputaddress%, clocklow% 'switch clock low, CS low
FOR j% = 1 TO 12 'read in 12 bits from ADC-12 serially
OUT outputaddress%, clockhigh% 'switch clock high
OUT outputaddress%, clocklow% 'switch clock low
' Shift the result so far one bit to the left
adc& = adc& * 2
' If the input is LOW, set the bottom bit in result
IF (INP(portin%) AND databit%) = 0 THEN
adc& = adc& + 1
END IF
NEXT
OUT outputaddress%, cshigh%
END SUB
Ce KIT CH41 etait en vente dans le magasine ELECTRONIQUE PRATIQUE
En bas a gauche de la photo
Je recherche tout documents concernant ce KIT
MERCI de me répondre.
Doctsf (Modèles & Marques)
Annonces 
