tesina di sistemi - elettromoretto...“cd4060” ed un doppio flip-flop usato come un ulteriore...

28
Tesina di Sistemi Cronometro interfacciato al PC Palazzi Dario Pereira Rafael 5°BZ 2002/2003 Ipsia Moretto Brescia

Upload: others

Post on 27-Oct-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

Tesina di Sistemi Cronometro interfacciato al PC

Palazzi Dario Pereira Rafael 5°BZ 2002/2003

Ipsia Moretto Brescia

Page 2: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

2

Introduzione

Si pone il problema:

Progettare e realizzare un cronometro digitale da laboratorio precisione del centesimo di

sec., interfacciato su PC a mezzo scheda universale LX833 e PIO 82C55; si scelgano

componenti che lavorino in tecnologia C-MOS.

Si premette che il circuito progettato dovrà essere alimentato a 5V per compatibilità con i

componenti presenti sulla scheda di interfaccia (tecnologia TTL).

In analogia a quanto riportato nel circuito LX1188 si ritiene di poter effettuare il

conteggio degli impulsi provenienti dalla Base dei Tempi utilizzando 4 contatori non BCD

ma binari; infatti non è richiesta alcuna visualizzazione su display pertanto il conteggio in

binario non può che avere vantaggi (estende il fondo scala). Quattro contatori binari in

cascata (totale 16 bit) permettono un conteggio fino al limite $FFFF, 65535 in decimale

oppure 216 -1. Si sceglie perciò il componente CD4520 doppio contatore binario. L’uscita

dei contatori U1A, U1B deve essere connessa al Port A del PIO 82c55; l’uscita dei

contatori U2A, U2B deve essere connessa al Port B del PIO 82c55.

E’ opportuno utilizzare la Base dei tempi LX1189 in quanto la stessa è quarzata. Ci si

limiterà a prelevare solamente la frequenza di 100Hz che consente di misurare tempi con

la risoluzione del centesimo di secondo. Si osservi che gli integrati IC3 e IC2-B non

vengono utilizzati.

Sarà opportuno verificare il corretto funzionamento del circuito oscillatore a quarzo con

alimentazione pari a 5V

Page 3: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

3

82C55A CMOS Programmable Peripheral lnterface

CMOS (complementary metal oxide semiconductor)

Description: The Harris 82C55A is a high performance CMOS version of the industry standard 8255A and is manufactured using a self-aligned silicon gate CMOS process (Scaled SAJI IV). It’s a general purpose programmable I/O device which may be used with many different microprocessors. There are 24 I/O pins which may be individually programmed in 2 groups of 12 and used in 3 major modes of operation. The high performance and industry standard configuration of the 82C55A make it compatible with the 80C86, 80C88 and other microprocessors.

Features

?? Pin Compatible with NMOS 8255A ?? 24 Programmable I/O Pins ?? Fully TTL Compatible ?? High Speed, No “Wait State” Operation with 5MHz and 8MHz 80C86 and 80C88 ?? Direct Bit Set/Reset Capability ?? Enhanced Control Word Read Capability ?? L7 Process ?? 2.5mA Drive Capability on All I/O Ports ?? Low Standby Power (ICCSB) 10uA

Page 4: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

4

82C55A (Interfaccia parallela programmabile CMOS)

Descrizione: Lo 82C55A Harris, è una versione dello standard 8255A ad alta performance, ed è fabbricato usando un processo CMOS a porta di silicio alto allineante (Scala SAJI IV). Lo 82C55A è un dispositivo I/O programmabile a scopo generali che può essere usato con molti microprocessori diversi. Ci sono 24 piedini di I/O che possono essere programmati individualmente in 2 gruppi di 12 e usati in 3 modi di operazione. L’alta performance e la configurazione industriale standard dello 82C55A fanno si che questo sia compatibile con 80c86, 80c88 e altri processori. Caratteristiche: ?? Compatibile con 8255A ?? 24 piedini programmabili I/O ?? Facilmente compatibile TTL ?? Alta velocità d’operazioni con 5MHz e 8MHz 80C86 e 80C88 ?? SET/RESET compatibile direttamente ?? Compatibilità di controllo scrittura/lettura migliorata ?? Processo L7 ?? 2.5mA su tutte le porte I/O ?? Bassa alimentazione in standby 10uA

Page 5: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

5

Cd4013bm/Cd4013bc Dual D Flip-Flop Descrizione Generale

Il Cd4013b doppio flip-flop tipo D è un circuito integrato di tipo CMOS. Ogni flip-flop ha dato indipendente, set, reset, clok input, "Q " e"-Q ". Questi dispositivi possono essere usati per applicazioni di shift register , e collegando l'uscita "Q " all'input, per le applicazioni di toggle. Il livello logico presente all'input "D " viene trasferito all'uscita "Q" durante il passaggio al positivo dell'impulso del clock. il set o il reset sono indipendenti dal segnale di clock e sono realizzata da un livello alto sulle rispettive linee. Caratteristiche

?? Tensione di funzionamento 3.0V a 15V ?? Immunità ad alti rumori 0,45VDD (typ.)

Page 6: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

6

HCC/HCF 4518 B doppio contatore –up BCD HCC/HCF 4520 B doppio contatore –up binario

L’ HCC 4518B/4520B (scala di temperatura prolungata) e HCF 4518B/4520B (scala di temperatura intermedia) sono circuiti integrati monolitici, disponibile in 16 piedini. Pachetto di doppia linea di plastica o ceramica o pachetto micro plastico. L’ HCC/HCF 4518B doppio contatore up BCD e l’ HCC/HCF 4520B doppio contatore up binario, consistono ciascuno in due identici contatori sincroni a 4 stage. Gli stage di conteggi sono di tipo flip flops avendo un clock intercambiabile e con linee di enable per incrementoin uno dei due, al positivo o al negativo va transitato. Per operazione di singola unità l’entrate enable viene mantenuta alta e il contatore avanza ad ogni impulso positivo di clock. Il conteggio viene cancellato con un impulso alto sulla linea RESET. Il contatore può essere collegato in cascata con il modo di collegare Q4 nell’entrata enable del contatore successivo mentre l’entrata di clock posteriore viene tenuta bassa.

Page 7: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

7

Caratteristiche: ?? Velocità media di operazione 6 MHz TYP frequenza clock a 10V ?? Ingresso triggerato positivo o negativo ?? Trasportatore di propagazione interna sincrona ?? Corrente specifica non attiva da 20V per componenti HCC ?? Testato 100% per corrente non attiva

CD4060BM/CD4060BC Descrizione Contatori Binari Di Ripple Carry Di 14 Stage. Il conteggio avanza sul passaggio negativo di ogni impulso di clock. I conteggi sono resettati da un stato logico "1" sul reset indipendentemente dal clock. Caratteristiche Tensione di funzionamento: 1.0V a 15V Immunità ad alti rumori: 0.45VDD (typ.) Compatibilità a basse tensioni TTL Velocità Media di funzionamento di 8MHz. a VDD e 10V Entrata del clock triggerata

Page 8: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

8

Page 9: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

9

Schema a blocchi:

Elenco componenti: Resistenze ?? 3 res. da 2k2 ?? 1 res. da 2k7 ?? 8 res. da 10k ?? 1 res. da 100k ?? 1 res. da 1M Condensatori ?? 2 con. da 68pF ?? 4 con. da 100nF Diodi ?? 6 dio. 1n4148 Fotocellule ?? 3 fot.(Start,Lap,Stop) Quarzo ?? 1 qua da 3.2768Mhz

Page 10: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

10

Integrati ?? 1=4001(NOR) ?? 1=4011(NAND) ?? 1=4584(NOT Trigger) ?? 2=4520(Contatori HEX) ?? 1=4060(Contatore) ?? 1=4013(Flip-Flop) ?? 1=8255(Interfaccia parallela programmabile CMOS)

Page 11: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

11

Schema elettrico BASE DEI TEMPI

Page 12: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

12

Schema elettrico STADIO DI INGRESSO (DA FOTOCELLULE)

Page 13: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

13

Schema elettrico INTERFACCIA CON 8255

Page 14: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

14

Base dei tempi:

Q4 7Q5 5Q6 4Q7 6Q8 14Q9 13

Q10 15Q12 1Q13 2Q14 3

RST 12

PI 11

PO 10 PO 9

4060

C368pF

XTAL

3.2768M

R22K7

C268pF

R11M D 5 Q 1

CLK 3

Q 2R

4

S

6 U?A

4013

100Hz

Il seguente circuito detto anche “Time Base” è costituito più genericamente da un “Quarzo”, un contatore binario a 14 stati che viene usato come divisore di frequenza “CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”.

Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato ci fornisce la determinata frequenza che viene introdotta al piedino 11 del 4060.

Siccome lo usiamo non come un contatore ma come un divisore, per ottenere una frequenza pari a 200Hz quadra e necessario prendere l’uscita 14 e riportarla ulteriormente al 4013 funzionante come divisore per 2 che ci fornirà una frequenza pari a 100Hz con DC del 50%.

Page 15: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

15

Contatore:

Il blocco contatore è composto da due circuiti integrati CD4520, che è un doppio contatore up binario, sono di tipo sincroni a 4 stati. Questi possono essere collegati in cascata portando l’uscita Q4 del primo contatore all’enable del secondo

CD4518 Contatore BCD 0-9 9999 impulsi 99,99sec CD4520 Contatore BIN 0-15 FFFF impulsi 655,35sec

Page 16: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

16

Il contatore viene controllato dai seguenti segnali di commando: ??CK- Il segnale di clock arriva dalla base dei tempi e consiste in un’onda quadra con

f=100Hz e DC=50%; che ci permette di avere una precisione nel conteggio di centesimi di secondi

??Start/Stop- Segnale che arriva da una memoria latch che a sua volta prede i comandi dal circuito delle fotocellule. Questo viene collegato all’enable del primo contatore e se si trova ad un stato logico 1 fa si che inizi il conteggio, se invece si trova allo stato logico 0 il conteggio si ferma.

??Overrange- Segnale emesso dal contatore verso un’altra memoria latch che a sua volta lo rigira verso l’elaboratore dati. Questo segnale consiste nell’avvisare che il conteggio ha superato il limite predefinito e quindi che potrebbero esserci degli errori.

??Linee dati- consistono più dettagliatamente nelle 16 uscite dei rispettivi quattro contatori che inviano gli stati del conteggio verso l’elaboratore dati.

??Reset- Commando che parte dall’elaboratore dati verso il contatore con la funzione di azzerare il conteggio( segnale logico a livello alto).

Page 17: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

17

Page 18: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

18

Memoria LATCH(memoria SR):

S R Q Q Funzione 0 0 Memo memo Memoria 0 1 0 1 Reset 1 0 1 0 Set 1 1 Da evitare Da evitare Non utilizata

Ci sono due memorie latch nel nostro circuito; una per controllare il segnale di Start/Stop del conteggio e l’altra per controllare il segnale di Overrange. Queste memorie sono composte da due porte logiche NOR che hanno il seguente funzionamento. Questo circuito per la sua caratteristica di bloccare o memorizzare un valore logico viene chiamato LATCH(chiavistello) di tipo S-R ove, come abbiamo notato, ogni volta che l’ingresso S è uguale a uno, l’uscita principale Q si setta ad 1 quindi Q si pone a 0, per questo motivo S viene anche chiamato ingresso di set. Invece ogni volta che l’ingresso R viene posto ad uno si ha Q=0 e Q=1, ovvero viene azzerata l’uscita principale, per cui questo ingresso viene anche chiamato reset. La condizione di memoria è lo 0, 0 e quella da evitare è 1, 1 negli ingressi.

Interfaccia parallela programmabile 82C55A

IL circuito integrato INTEL 82C55A è un'interfaccia per I/O programmabile adatta a collegare una generica periferica al Bus della CPU. La configurazione operativa

Page 19: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

19

dell'82C55A è controllabile dal software, in modo da rendere inutile l'uso di circuiti logici esterni per il normale interfacciamento. Esso è progettato per l'uso con i microprocessori della famiglia INTEL. E' dotato di 24 linee: - 8 appartenenti al Port A; - 8 appartenenti al Port B; - 8 appartenenti al Port C. Le 8 linee del port A e del Port B possono essere programmate per funzionare o da ingressi o da uscite in 4 possibili modi: - Port A ingresso e Port B uscita; - Port A uscita e Port B uscita; - Port A ingresso e Port B ingresso; - Port A uscita e Port B ingresso. Le linee del Port C possono essere suddivise in due gruppi da 4 bit ciascuno. Ogni gruppo può essere programmabile o da ingresso o da uscita nei modi seguenti: - da PC0 a PC3 uscita e da PC4 a PC7 ingresso; - da PC0 a PC3 ingresso e da PC4 a PC7 uscita; - da PC0 a PC3 ingresso e da PC4 a PC7 ingresso; - da PC0 a PC3 uscita e da PC4 a PC7 uscita. Complessivamente nel Modo 0 si hanno 16 modi diversi di programmazione dell'82C55A. Le tre porte possono essere configurati dal programma in vari modi, ma ciascuno ha delle caratteristiche proprie che lo differenziano dagli altri. Port A: è costituito da un buffer bidirezionale ad 8 bit dotato di memoria (latch) e di un registro di memorizzazione d'ingresso. Port B: è costituito da un buffer d'uscita ad 8 bit dotato di memoria e da un registro di memorizzazione d'ingresso bafferizzato ad 8 bit. Port C: è costituito da un buffer d'uscita ad 8 bit dotato di memoria e da un buffer d'ingresso ad 8 bit (senza memorizzazione). Questo port può essere suddiviso in due port a 4 bit;b ciascuno di questi con dimensioni contenute contiene un registro di memorizzazione a 4 bit che può essere utilizzato per i segnali di controllo d'uscita e d'ingresso assieme ai port A e B. Nelle port vengono ragruppati in due gruppi, Gruppo A (Port A e C) e Gruppo B (Port B e C), in ciascun blocco di controllo (del Gruppo A e del B) riceve comandi dal circuito di controllo di lettura/scrittura o direttamente parole di controllo tramite il bus dati interno, ed emette segnali di controllo per il port ad esso associato. Il registro di controllo può essere solo scritto. Non sono ammesse operazioni di lettura su tale registro.

Page 20: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

20

Nel'82C55A viene utilizzato un buffer three-state bidirezionale ad otto bit per interfacciare il circuito integrato al Bus Dati del sistema. I dati sono trasmessi o ricevuti dal buffer sotto il controllo delle istruzioni di ingresso o di uscita inviate dalla CPU. Anche le parole di controllo e le informazioni di stato vengono trasferite attraverso questo buffer.

SELEZIONE DEL MODO OPERATIVO: Nel software possono essere selezionati tre diversi modi operativi: Modo 0 (ingresso/uscita normale). Questa configurazione operativa permette di instaurare su tutti i 3 port le normali funzioni di lettura o scrittura di un dato. Non è richiesto alcun segnale di controllo tipo handshake in quanto i dati vengono semplicemente letti o scritti nel Port relativo. Caratteristiche: - due Port ad 8 bit e due Port a 4 bit; - qualsiasi Port può essere definito come ingresso o come uscita; - le uscite sono memorizzate; - gli ingressi sono memorizzati; - sono possibili 16 diverse combinazioni di I/O

Page 21: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

21

Modo 1 (ingresso/uscita mediante stobe). Questo tipo di configurazione permette di trasferire dati da un Port mediante il controllo di segnali di handshake. Nel modo 1 il Port A e Port B usano le linee del Port C per generare o acquisire questi controlli. Caratteristiche: - due gruppi di trasferimento (gruppo A e gruppo B); - ciscun gruppo contiene un Port di dati ad 8 bit ed un Port di controllo dei dati da 4 bit; - i due Port di dati ad 8 bit possono essere sia d'ingresso che d'uscita. Sia le uscite che gli ingressi sono memorizzate; - i due Port a 4 bit vengono usati per emettere i segnali di controllo e fornire lo stato del dispositivo alle periferiche collegate ai due Port ad 8 bit. Modo 2 (ingresso-uscita di dati attraverso bus bidirezionale e segnali di controllo). Questa configurazione operativa permette all'82C55A di interfacciarsi direttamente ad un dispositivo avente un bus bidirezionale ad 8 bit. I segnali di controllo (con modalità di handshake) permettono di regolare il flusso dei dati in maniera analoga a quella vista per il Modo 1. E' possibile inoltre sia generare un segnale di interrupt che di abilitarne e disabilitarne il funzionamento. Caratteristiche: - si può usare solo il gruppo A; - un bus bidirezionale ad 8 bit disponibile sul Port A e 5 linee di controllo accessibili sul Port C; - sia gli ingressi che le uscite sono memorizzate; - il port di controllo a 5 bit (Port C) viene usato per controllare e leggere lo stato del bus bidirezionale ad 8 bit (Port A) Quando l'82C55A è programmato per funzionare in modo 1 o modo 2, i segnali di controllo possono essere utilizzati direttamente per generare richiesta di interrupt alla CPU. Quando ciò avviene, i segnali di richiesta di interrupt generati dal Port C possono essere abilitati o disabilitati ponendo a livello alto o basso il flip-flop, utilizzando l'istruzione set/reset di un singolo bit del Port C. Con tali istruzioni il programmatore può permettere o negare ad un dispositivo di I/O la possibilità di lanciare interrupt. Se viene posto ad 1 il contenuto di un dato bit del flip-flop, l'interrupt del dispositivo relativo viene abilitato , mentre se viene posto a 0 l'interrupt risulta disabilitato. Tutti i flip-flop di mascheramento vengono automaticamente resettati quando viene selezionato un modo o se il dispositivo viene resettato.

Page 22: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

22

Fotocellule

Il contatore deve funzionare con fotocellule normalmente installate sulla rotaia ad aria. Le fotocellule vengono connesse al contatore con due cavi appositi che terminano da un lato con due banane (NERA per il polo NEGATIVO e ROSSA per quello positivo della fotocellula) e dall’altro con un JACK audio che va infilato in una delle due boccole START o STOP del contatore (in alto a sinistra) Le fotocellule vengono alimentate internamente dal contatore elettronico e perciò non hanno bisogno di circuiti esterni aggiuntivi. Unica alimentazione esterna è quella delle due lampade poste dirimpetto alla fotocellula.

Le fotocellule sono complessivamente 3 quella di START, quella di STOP e quella di LAP (tempo intermedio); il circuito è quello riportato in figura. Modalità di funzionamento dello strumento: a) Modalità START-STOP : Il PIO viene predisposto a funzionare in modalità I/O (CW#11

$93). Il contatore 4520 viene resettato dal software (pin PC7 PIO); il segnale MODE (pin PC6) deve essere posto a livello ALTO; la fotocellula FSTART quando viene oscurata, fa partire il contatore attraverso il SET eseguito sul latch U3A-U3B. La fotocellula LAP non ha alcun effetto sul conteggio in corso. L’oscuramento della fotocellula FSTOP blocca il contatore 4520 e porta a livello basso PC1. Il software può perciò accorgersi che il contatore si è fermato andando a testare PC1. L’eventuale passaggio a livello alto di PC0 segnala invece una situazione di Overrange che rende il conteggio errato. Il software verificando PC1 può trarre le conclusioni seguenti : se PC1 è a livello Alto, il contatore è in attività; se PC1 passa da livello Alto a livello Basso il contatore si è fermato per effetto di uno STOP.

b) Modalità START: Il PIO viene predisposto a funzionare in modalità I/O (CW#11 $93). Il contatore 4520 viene resettato dal software (pin PC7 PIO); il segnale MODE (pin PC6) deve essere posto a livello BASSO; la fotocellula FSTART quando viene oscurata, fa partire il contatore attraverso il SET eseguito sul latch U3A-U3B. La fotocellula LAP non ha alcun effetto sul conteggio in corso. Quando la fotocellula FSTART viene nuovamente illuminata, si blocca il contatore 4520 e viene portato a livello basso PC1. Il software può perciò accorgersi che il contatore si è fermato andando a testare PC1. L’eventuale passaggio a livello alto di PC0 segnala invece una situazione di Overrange che rende il conteggio errato. Il software verificando PC1 può trarre le conclusioni

R1100K

Q1

2N3906PNP

DZ127V

Q2BPY62_2

POS+

NEG-

Page 23: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

23

seguenti : se PC1 è a livello Alto, il contatore è in attività; se PC1 passa da livello Alto a livello Basso il contatore si è fermato.

c) Modalità START-LAP-STOP : Il PIO viene predisposto a funzionare in modalità Strobed I/O (CW# $B6). Il contatore 4520 viene resettato dal software (pin PC7 PIO); il segnale MODE (pin PC6) deve essere posto a livello BASSO; la fotocellula FSTART quando viene oscurata, fa partire il contatore attraverso il SET eseguito sul latch U3A-U3B. La fotocellula LAP quando viene oscurata invia un segnale di strobe ai due port PA e PB del PIO 8255 provocando la memorizzazione dei dati del port (conteggio parziale). L’oscuramento poi della fotocellula FSTOP blocca il contatore 4520 e porta a livello basso PC1. Il software può perciò accorgersi che il contatore si è fermato andando a testare PC1. L’eventuale passaggio a livello alto di PC0 segnala invece una situazione di Overrange che rende il conteggio errato. Il software verificando PC1 può trarre le conclusioni seguenti : se PC1 è a livello Alto, il contatore è in attività; se PC1 passa da livello Alto a livello Basso il contatore si è fermato per effetto di uno STOP.

Page 24: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

24

Il software: Il software è stato progettato con “Delphi5”, è un programmino molto semplice senza troppe complicazioni, dato che non avevamo molto tempo ed anche perché volevamo lasciare la possibilità di sviluppare quest’ultimo in futuro seguendo le determinate richieste dei professori di Fisica. Dato questo abbiamo creato un semplice software che è in grado di segnalarci se il contatore è in funzionamento, prendere i dati del conteggio e alla fine resettare tutto il circuito e il software. Per provare abbiamo simulato il funzionamento delle fotocellule con due interruttori normalmente chiusi trascurando i dati rilevanti la distanza tra quest’ultime e di conseguenza i vari calcoli fisici.

PA0 IN Q0 U1A PA1 IN Q1 U1A PA2 IN Q2 U1A PA3 IN Q3 U1A PA4 IN Q0 U1B PA5 IN Q1 U1B PA6 IN Q2 U1B PA7 IN Q3 U1B

PB0 IN Q0 U2A PB1 IN Q1 U2A PB2 IN Q2 U2A PB3 IN Q3 U2A PB4 IN Q0 U2B PB5 IN Q1 U2B PB6 IN Q2 U2B PB7 IN Q3 U2B

PC0 IN OVF U3D PC1 IN STOP U3B PC2 IN STB U1F PC3

PC4 IN STB U1F PC5 PC6 OUT MODE U1C-U2B PC7 OUT RST U1AB-U2AB

Page 25: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

25

Sorgente Programma: unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ALed, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button2: TButton; Button1: TButton; led1: ThhALed; led2: ThhALed; rg1: TRadioGroup; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure rg1Click(Sender: TObject); private { Private declarations } public { Public declarations } Function Overrange : Boolean; Procedure Reset; end; var Form1: TForm1; implementation {$R *.DFM} Uses ZlPortio; Const

Page 26: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

26

Base = $300; Porta = Base + 0; Portb = Base + 1; Portc = Base + 2; Control = Base + 3; Procedure TForm1.Reset; var z : byte; Begin z := PortReadb(PortC); z := z OR $80; // alzo PC7 PortWriteb(PortC,z); z := z AND $7F; // abbasso PC7 PortWriteb(PortC,z); End; procedure TForm1.FormCreate(Sender: TObject); var z : byte; begin PortWriteb(Control,$93); //porta = in, portb = in, portc = up/out low/in PortWriteb(PortC,$00); // Reset del contatore Reset; // Predispone PC4 a livello Alto z := PortReadb(PortC); z := z OR $10; // alzo PC4 PortWriteb(PortC,z); end; procedure TForm1.Button1Click(Sender: TObject); begin // Reset del contatore Reset; end; Function TForm1.Overrange : Boolean; Begin If (PortReadB(PortC) AND $01) <> 0

Page 27: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

27

Then Result := true Else Result := False; End; procedure TForm1.Button2Click(Sender: TObject); var h, l : byte; ris : integer; begin (* If (PortReadB(PortC) AND $02) = 0 Then Begin *) h := PortReadb(PortB); l := PortReadb(PortA); ris := h*256+l; Edit1.Text := IntToStr(ris); // End; If Overrange Then Led2.Value := True; end; procedure TForm1.rg1Click(Sender: TObject); var z : byte ; begin Case rg1.ItemIndex of 1 : Begin z := PortReadb(PortC); z := z OR $10; // alzo PC4 PortWriteb(PortC,z); End; 0 : Begin z := PortReadb(PortC); z := z AND $EF; // abbasso PC4 PortWriteb(PortC,z); End; End; end; end.

Page 28: Tesina di Sistemi - elettromoretto...“CD4060” ed un doppio flip-flop usato come un ulteriore divisore per 2 “CD4013”. Abbiamo usato un quarzo da 3.2768MHz, che essendo sollecitato

28

Conclusioni Dopo la progettazione dello schema elettrico e il montaggio dell’hardware abbiamo creato il programma per provare semplicemente alcuni punti del funzionamento. Ovviamente il cronometro dev’essere migliorato per le richieste future. Abbiamo trovato dei problemi nell’interfacciamento con la scheda dello 8255, dato che quest’ultima ci restituiva i dati che entravano al contrario. Nonostante i vari problemi trovati nell’hardware siamo riusciti a far funzionare non perfettamente il circuito, anche per questo riteniamo che sia opportuno migliorarlo in futuro. Palazzi/Pereira