M10 e Tandy 102 - Misura e trasmissione in CW della Temperatura
 
Eseguire delle misure di varie grandezze fisiche è senz'altro abbastanza facile per chi 
utilizza i microcomputer, in questo progetto descrivo un'altro sistema valido per leggere 
la temperatura della sonda LM135/235/335 che utilizza alcune caratteristiche del famoso 555.



A differenza del circuito del volmetro elettronico, dove occorre un bit di comando e uno di 
lettura di un comparatore, in questo caso è sufficiente usare solo un bit di lettura (D6). 
Più alta è la tensione presente sul pin 5 del 555 e più dura l'impulso positivo presente in 
uscita sul pin 3. Il programma in linguaggio macchina si sincronizza sulla pausa del segnale 
e poi conta la durata dell'impulso mentre il Basic esegue le necessarie conversioni per 
poter leggere sul display in gradi centigradi, (con un decimale) la temperatura misurata 
dalla sonda. 
La riga 20 la si attiva solo per lo sviluppo dei corretti parametri per il calcolo della
riga 21 o 22 nel caso che si utilizzi quarzi diversi per il clock dell'M10. 
I valori sono abbastanza precisi per le due frequenze menzionate, comunque dipendono anche
dalla tensione di lavoro del circuito con il 555.

Ora aggiungo un'altro semplice circuito per comandare un trasmettitore in CW.



Anche lo schema del trasmettitore è pronto.



Come si vede dal listato del programma, la trasmissione avviene in modo continuo dei gradi con
un decimale. Per semplificare il programma il punto decimale e lo zero vengono trasmessi con la 
lettera (T). Se ad esempio la temperatura è di 9,3 gradi/C la trasmissione sarà: 9T3T. 
Se invece fosse ad esempio di 13,5 gradi/C, la trasmissione sarà: 13T5.
Conoscere il decimale della temperatura permette di capire presto, quale sia la tendenza di 
variazione durante la giornata.

La riga (24) fa iniziare la trasmissione ogni giorno alle 8 e la ferma alle 24.   

1 CLEAR200,61997
2 U=186:X=103:P=231'X-TX, P-PAUSA
3 DIM D$(10):RESTORE100
5 FORF=62000TO62034:READA:POKEF,A:NEXT
8 RESTORE10:FORF=0TO9:READD$(F):NEXT
10 DATA "-----",".----","..---","...--","....-",".....","-....","--...","---..","----."
14 CLS
15 CALL62000
19 V=256*PEEK(62150)+PEEK(62151)
20'PRINT@54,V;" ";:GOTO15'RIGA DI PROVA
21 N=INT(V/10)-4100:N=INT(N/2)/10'QUARZO DA 6 MHZ
22'N=INT(V/10)-4870:N=INT(N/2.24)/10'QUARZO DA 7,2 MHZ
23 PRINT@54,"T=";N;" ";
24 T$=TIME$:B=VAL(MID$(T$,1,2)):IF B<8 THEN 15
25 V$=STR$(N)
27 FOR C=1TO4:K=VAL(MID$(V$,C+1,1))
28 IF K=0 THEN FOR G=1TO55:NEXT:GOSUB 60:FOR G=1TO56:NEXT:GOTO38 
30 N$=D$(K)
32 FOR M=1TO5
33 IF MID$(N$,M,1)="-" THEN GOSUB 60
35 IF MID$(N$,M,1)="." THEN GOSUB 70
37 NEXT M: FOR G=1TO50:NEXT G
38 REM
40 NEXT C:FOR G=1 TO 1000:NEXT:GOTO 15
60 FOR F=0TO31:OUTU,X:NEXT:FOR F=0TO11:OUTU,P:NEXT:RETURN
70 FOR F=0TO10:OUTU,X:NEXT:FOR F=0TO11:OUTU,P:NEXT:RETURN
100 DATA 243,33,198,242,1,0,0,30,64,219,208,163,194,57,242,
219,208,163,202,63,242,219,208,163,3,0,0,194,69,242,112,35,
113,251,201

Listato Assembler 8085/Z80 per lettura sonda Temperatura con frequenza a ciclo variabile
             
             ORIGINE = 62000       

                       DI                  ;DISABILITA INT.
                       LD HL,62150         ;HL = MEMORIA REG. BC
                       LD BC,0             ;CONTATORE A ZERO 
                       LD E,64             ;E = RIFERIMENTO PER D6
                ALTO:  IN A,208            ;LEGGE DATO
                       AND E               ;CONTROLLO D6
                       JPNZ ALTO           ;ASPETTA SE D6 = 1
               BASSO:  IN A,208
                       AND E
                       JPZ BASSO           ;ASPETTA SE D6 = 0
                 SEG:  IN A ,208           ;LETTURA SEGNALE
                       AND E                
                       BC+1                ;CON D6 = 1 BC = BC + 1
                       NOP                 ;RITARDO AGGIUNTO SOLO PER 
                       NOP                 ;QUARZO DA 6 - 7 MHZ
                       JPNZ SEG            ;FINE SE D6 = 0 
                       LD (HL),B           ;SALVA BC IN 62150 E 51
                       HL+1                
                       LD (HL),C
                       EI                  ;ATTIVA INT
                       RET                 ;TORNA AL BASIC

Nota: Il piccolo circuito con il 555 in oscillazione si può alimentare con la tensione 
      prelevata dal pin (9+) e (5,7-) della porta BCR, in tal caso conviene scollegare 
      il led dal circuito per ridurre il consumo di corrente. 
      Per attivare D6 e D5 della porta 208 in lettura e portarli sul connettore BCR, vedi 
      l'articolo sul Bus I2C.
      
Buoni esperimenti con i vecchi Pc, Emilio - ik1wjq

Vai a pagina1