Paolo Beghelli APPUNTI DI ELETTRONICA DIGITALE Pag.1 Indice 1. ELETTRONICA DIGITALE ................................................................................................................................. 2 1.1 Generalità.................................................................................................................................................................. 3 1.2 Sistema di numerazione binario................................................................................................................................ 3 1.3 Operazioni con i numeri binari ................................................................................................................................. 4 1.3.1 Somma ................................................................................................................................................................... 4 1.3.2 Differenza .............................................................................................................................................................. 4 1.3.3 Moltiplicazione ...................................................................................................................................................... 5 1.3.4 Divisione................................................................................................................................................................ 5 1.3.5 Complemento di un numero................................................................................................................................... 5 1.4 Altri sistemi di numerazione..................................................................................................................................... 7 1.4.1 Sistema esadecimale .............................................................................................................................................. 7 1.4.2 Sistema ottale......................................................................................................................................................... 8 1.5 I codici ...................................................................................................................................................................... 9 1.5.1 Codice BCD ( Binary Coded Decimal )................................................................................................................. 9 1.5.2 Codice ASCII ( American Standard Code for Information Interchange )............................................................ 10 1.5.3 Codice EBCDIC ( Extended Binary Coded Decimal Interchange Code ) ... Errore. Il segnalibro non è definito. 1.6 La logica combinatoria ................................................................................... Errore. Il segnalibro non è definito. 1. Pag.2 ELETTRONICA DIGITALE 1.1 Generalità L’elettronica digitale si occupa dell’elaborazione di segnali elettrici per eseguire operazioni di carattere matematico o logico. I segnali elettrici vengono elaborati sotto due stati diversi : - ON ( acceso ) = percorso da corrente - OFF ( spento ) = non percorso da corrente Alla base dell’ elettronica digitale c’è il : 1.2 Sistema di numerazione binario Ogni sistema di numerazione si basa sulla seguente EQUAZIONE FONDAMENTALE N = Cn bn + Cn-1 bn-1+ C1 b1 + C0 + b0 b Ci N = = = dove: base del sistema numero qualsiasi compreso tra 0 e b-1 (=cifra) esponente La generica cifra è detta anche DIGIT. Il sistema decimale comunemente usato non è altro che ricavato dalla E.F. con base b = 10 Esempio : 432 4102+3101+2100 = 432 La posizione occupata dalla cifra (DIGIT) indica il peso della cifra stessa ( centinaia, decine, unità …) NEL SISTEMA BINARIO: B Ci = = 2 può essere 1°0 L’equazione fondamentale diventa : N = Cn2n+Cn-12n-1+ C121+C020 Perciò: i numeri sono esprimibili nel sistema binario come successione di 1 e 0 Esempio : 2 = 121+020 C1 C0 Quindi, siccome N= C1C0 Esempio Per cui 9 : (=2+0) , nel sistema binario 2 diventa 9 = 123+022+021+120 : 10 (=uno, zero) (=8+0+0+1) 1001 nel sistema binario Pag.3 PASSAGGIO DAL SISTEMA DECIMALE AL SISTEMA BINARIO Per passare dal sistema binario al decimale basta applicare l’equazione fondamentale. Per passare invece dal decimale al binario, occorre invece dividere successivamente il numero per 2 segnando i resti, ordinandoli poi in modo inverso. ESEMPIO N=27 272 = 13 132 = 6 62 = 3 32 = 1 12 = 0 resto 1 resto 1 resto 0 resto 1 resto 0 Quindi 27 1 1 0 1 1 Infatti : 124+123+022+121+120 = 16+8+0+2+1 = 27 1.3 Operazioni con i numeri binari ( da non confondere con la LOGICA BINARIA ) 1.3.1 Somma Le regole della somma sono : 0+0 0+1 1+0 1+1 Esempio : = = = = 0 1 1 0 13 8 ------21 senza riporto senza riporto senza riporto con riporto 1101 1000 ---------10101 16+0+4+1 = 21 1.3.2 Differenza Le regole della differenza sono : 0-0 1-0 0-1 1-1 Esempio : = = = = 21 8 -----13 0 1 1 0 senza richiamo senza richiamo con richiamo senza richiamo 110101 1000 ---------01101 0+8+4+0+1 = 13 Pag.4 1.3.3 Moltiplicazione Le regole della moltiplicazione sono: 00 01 10 11 Esempio : = = = = 87 0 0 0 1 =56 senza riporti 1000 111 ----------------1000 10001000-----------------111000 = 32+16+8+0+0+0=56 1.3.4 Divisione La divisione si esegue per sottrazioni successive come nel caso decimale Esempio : 72= ------52= ------32= -------resto 1 7:2 111 10 = ---------1101 – 10 = ----------011 – 10 = ----------001 Risultato : 3 con rsto 1 ( sia nel caso decimale che binario ) Nota : in seguito useremo più sovente la somma e la moltiplicazione, mentre per la differenza vedremo il sistema del COMPLEMENTO in quale è più usato in quanto più adatto all’elaborazione nei circuiti elettronici. IMPORTANTE : LE CIFRE 0 E 1 VENGONO CHIAMATE BIT ( = BInary digiT ) 1.3.5 Complemento di un numero Pag.5 Si definisce complemento di un numero, qualunque sia la base del sistema di numerazione, la differenza tra la potenza n-esima della base e il numero stesso, dove n è il numero di cifre del numero Esempio : complemento a 10 del numero 127 103-127 = 873 Lo stesso risultato si può ottenere facendo il complemento a 9 e aggiungendo 1 Complemento a 9 di 1 Complemento a 9 di 2 Complemento a 9 di 7 = = = 8 7 2 872+1 = 873 In matematica binaria si preferisce pertanto calcolare il complemento a 1 e sommare successivamente 1 per ottenere il COMPLEMENTO a 2 Ciò perché il complemento a 1 è presto ricavato invertendo tutti i bit Esempio : N = 1011 Complemento a 1: = 0100 Complemento a 2 = 0100+ 1= -------0101 A questo punto possiamo eseguire la DIFFERENZA BINARIA come somma del complemento a 2 Esempio : 27 – 11 = 16 27 28 11011 01011 Il complemento a 2 di 01011 è : 10100+ 1= -----------10101 complemento a 1 complemento a 2 Eseguo : 11011+ 10101 = ---------110000 Pag.6 Eliminando la prima cifra a sinistra si ottiene . 1000 = 16 ( nel sistema decimale ) Note : 1) prima di eseguire il complemento a 1 devo pareggiare le cifre del sottraendo con quelle del minuendo aggiungendo a sinistra degli 0 2) eseguita la somma con il complemento a 2, il risultato ottenuto va privato del primo 1 a sinistra 3) nei sistemi elettronici si usa il sistema del complemento a 1, perché più semplice ed immediato ( basta invertire i bit ) 1.4 Altri sistemi di numerazione 1.4.1 Sistema esadecimale E’ un sistema a base 16 in cui le cifre vengono indicate con i simboli: 0 1 2 Esempio : 3 4 5 6 7 8 9 A B (10) (14) (15) C D E F (11) (12) (13) il numero E2B in esadecimale, corrisponde a : 14162+2161+11160 = 14256+216+111 = 3627 Pag.7 1.4.2 Sistema ottale E’ analogo al precedente, ma utilizza le cifre : 0 1 2 3 4 5 6 7 I motivi per cui sono stati introdotti questi due sistemi derivano dalla necessità di codificare in modo binario il nostro sistema decimale. Ora se utilizzo n. 3 bit, non riesco a codificare tutte l cifre da 0 a 9, infatti: Decimale 0 1 2 3 4 5 6 7 binario 000 001 010 011 100 101 110 111 Se invece utilizzo 4 bit, questi non sono sfruttati per le massime prestazioni possibili, perché con 4 bit posso rappresentare 16 cifre Decimale 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Pag.8 1.5 I codici In generale la codifica è un metodo per rappresentare determinate informazioni per mezzo di simboli. I simboli normalmente usati sono le lettere dell’alfabeto e le cifre da 0 a 9. I simboli disponibili, invece, nel sistema binario sono esclusivamente 0 e 1. Per poter quindi utilizzare questi simboli per rappresentare informazioni in modo comprensibile, sia di tipo numerico che non, sono stati formulati dei CODICI. 1.5.1 Codice BCD ( Binary Coded Decimal ) E’ un sistema di codifica soltanto numerico ed utilizza la rappresentazione binaria delle cifre da 0 a 9 ordinandole ( dando perciò un “ peso “ ) come nel sistema decimale. Per ogni cifra si utilizzano 4 bit. decimale 0 1 2 3 4 5 6 7 8 9 Esempio : N10 binario 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 = NBCD = 427 4 2 7 0100 / 0010 / 0111 Con il codice BCD il numero di bit necessari per rappresentare un numero è sempre maggiore dei corrispondenti in Binario puro, ma l’interpretazione è più semplice. Pag.9 1.5.2 Codice ASCII ( American Standard Code for Information Interchange ) E’ un sistema di codifica per rappresentare oltre ai numeri e alle lettere anche i simboli di punteggiatura, nonché alcuni comandi già formulati ( il codice ASCII era nato inizialmente per le telescriventi ). Esso utilizza 7 bit , per cui sono possibili 27 = 128 rappresentazioni di simboli diversi. I primi 3 bit hanno un “ peso “ maggiore ed indicano grosso modo la famiglia di appartenenza del simbolo, mentre gli altri 4 bit la individuano esattamente. Esempio : DEC ASCII 65 A Binario 26 25 24 100 0001 famiglia delle lettere maiuscole HEX 23 22 21 20 4 161 160 1 Viene aggiunto poi un ottavo bit di controllo parità. Esso non ha significato per la codifica, ma serve solo come controllo di eventuali errori. Vale 1 se i bit a 1 della codifica sono dispari, vale 0 se viceversa sono pari. Per quanto riguarda la codifica dei 128 simboli del codice ASCII, si fa riferimento alla tabella allegata. 1.5.3 Codice EBCDIC ( Extended Binary Coded Decimal Interchange Code ) E’ un codice che utilizza 8 bit, per cui consente 28= 256 rappresentazioni di simboli per le quali si rimanda alla tabella allegata. E’ un codice utilizzato in particolare dall’IBM per i grossi calcolatori. NOTA : l’insieme di 8 bit è molto utilizzato in elettronica. Esso si chiama comunemente byte. Un insieme di 4 bit si chiama semibyte o nible. Un Kbyte vale 210 = 1024 byte Pag.10