{"id":10610,"date":"2025-10-24T14:44:57","date_gmt":"2025-10-24T12:44:57","guid":{"rendered":"https:\/\/retrofixer.it\/?page_id=10610"},"modified":"2025-10-29T16:44:21","modified_gmt":"2025-10-29T15:44:21","slug":"porte-logiche","status":"publish","type":"page","link":"https:\/\/retrofixer.it\/en\/porte-logiche\/","title":{"rendered":"Logic gates"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"10610\" class=\"elementor elementor-10610\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4bd0146 e-flex e-con-boxed e-con e-parent\" data-id=\"4bd0146\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-64a8715 elementor-widget elementor-widget-text-editor\" data-id=\"64a8715\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>In questa pagina vedremo come funzionano le porte logiche, le funzioni base con cui eseguono le operazioni i computer e con le quali possiamo realizzare i nostri circuiti elettronici.<br \/>Sotto ogni simbolo trovate la sua tabella della verit\u00e0, questa ci dice come si comporta l&#8217;uscita della porta in base ai vari segnali di ingresso.<br \/>Provate voi stessi cliccando sulle porte A &#8211; B e controllate l&#8217;uscita della porta Q per vedere come si comporta realmente.<\/p><p>Una volta capito il funzionamento potete realizzare un vostro schema collegandole e testandole in questa pagina.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-afa4c68 elementor-widget elementor-widget-button\" data-id=\"afa4c68\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"\/simulatore-porte-logiche\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t<span class=\"elementor-button-icon\">\n\t\t\t\t<i aria-hidden=\"true\" class=\"fas fa-link\"><\/i>\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">Simulatore porte logiche<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ac348aa elementor-widget elementor-widget-html\" data-id=\"ac348aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 style=\"color:#69f;font-size:2.0em;font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif !important;\">Funzionamento delle Porte Logiche \ud83d\udca1<\/h1>\r\n\r\n    <div class=\"container_logic\">\r\n\r\n        <div class=\"gate-card\" id=\"gate-and\">\r\n            <h2>AND<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_and.png\" alt=\"Simbolo Porta AND\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione AND deve avere tutti gli ingressi attivi per dare l'uscita.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-or\">\r\n            <h2>OR<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_or.png\" alt=\"Simbolo Porta OR\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione OR deve avere un qualsiasi ingresso attivo per dare l'uscita.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-not\">\r\n            <h2>NOT (Inverter)<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_not.png\" alt=\"Simbolo Porta NOT\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione NOT inverte il segnale in ingresso.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-nand\">\r\n            <h2>NAND<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_nand.png\" alt=\"Simbolo Porta NAND\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n                \r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione NAND \u00e8 un AND negato (NOT+AND). Sar\u00e0 sempre attivo fino a che tutti gli ingressi saranno alti.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-nor\">\r\n            <h2>NOR<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_nor.png\" alt=\"Simbolo Porta NOR\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione NOR (NOT+OR) sar\u00e0 attiva fino a che tutti gli ingressi saranno bassi.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-xor\">\r\n            <h2>XOR<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_xor.png\" alt=\"Simbolo Porta XOR\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione XOR si attiva se uno solo degli ingressi \u00e8 a livello alto.<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"gate-card\" id=\"gate-xnor\">\r\n            <h2>XNOR<\/h2>\r\n            <div class=\"simulator\">\r\n                <div class=\"inputs\">\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso A\">A<\/button>\r\n                    <button class=\"logic-button input\" data-state=\"0\" aria-label=\"Ingresso B\">B<\/button>\r\n                <\/div>\r\n                <div class=\"gate-symbol\"><img decoding=\"async\" src=\"https:\/\/retrofixer.it\/wp-content\/uploads\/2025\/10\/logic_xnor.png\" alt=\"Simbolo Porta XNOR\"><\/div>\r\n                <div class=\"output\">\r\n                    <div class=\"logic-button led\" aria-label=\"Uscita Q\">Q<\/div>\r\n                <\/div>\r\n            <\/div>\r\n            <h3>Tabella della Verit\u00e0<\/h3>\r\n            <table>\r\n                <thead>\r\n                    <tr><th>A<\/th><th>B<\/th><th>Q<\/th><\/tr>\r\n                <\/thead>\r\n                <tbody>\r\n                    <tr><td>0<\/td><td>0<\/td><td>1<\/td><\/tr>\r\n                    <tr><td>0<\/td><td>1<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>0<\/td><td>0<\/td><\/tr>\r\n                    <tr><td>1<\/td><td>1<\/td><td>1<\/td><\/tr>\r\n                <\/tbody>\r\n            <\/table>\r\n            <span style=\"color:#444\">La funzione XNOR (NOT+XOR) si disattiva se uno solo degli ingressi \u00e8 a livello alto.<\/span>\r\n        <\/div>\r\n\r\n    <\/div> <script>\r\n        document.addEventListener('DOMContentLoaded', () => {\r\n            \r\n            \/\/ Seleziona TUTTI i pulsanti di input\r\n            const allInputs = document.querySelectorAll('.logic-button.input');\r\n\r\n            \/\/ Aggiungi un gestore di eventi a CIASCUN pulsante\r\n            allInputs.forEach(input => {\r\n                input.addEventListener('click', () => {\r\n                    \/\/ 1. Cambia lo stato (da '0' a '1' o da '1' a '0')\r\n                    const currentState = input.dataset.state;\r\n                    const newState = currentState === '0' ? '1' : '0';\r\n                    input.dataset.state = newState;\r\n                    \r\n                    \/\/ 2. Aggiungi\/Rimuovi la classe 'active' per cambiare il colore (CSS)\r\n                    input.classList.toggle('active');\r\n                    \r\n                    \/\/ 3. Trova la \"card\" genitore di questo pulsante...\r\n                    const parentCard = input.closest('.gate-card');\r\n                    \r\n                    \/\/ 4. ...e ricalcola solo la logica per QUELLA card\r\n                    updateGateLogic(parentCard);\r\n                });\r\n            });\r\n\r\n            \/\/ Funzione per calcolare la logica di una singola porta\r\n            function updateGateLogic(gateCard) {\r\n                if (!gateCard) return; \/\/ Sicurezza\r\n\r\n                const gateId = gateCard.id;\r\n                const inputs = gateCard.querySelectorAll('.input');\r\n                const outputLed = gateCard.querySelector('.led');\r\n\r\n                \/\/ Converte lo stato '0'\/'1' (stringa) in booleano (true\/false)\r\n                \/\/ !! Attenzione: la porta NOT ha un solo input!\r\n                const stateA = inputs[0] ? inputs[0].dataset.state === '1' : false;\r\n                const stateB = inputs[1] ? inputs[1].dataset.state === '1' : false;\r\n                \r\n                let result = false; \/\/ Il risultato dell'operazione logica\r\n\r\n                \/\/ 5. Applica la logica booleana corretta\r\n                switch (gateId) {\r\n                    case 'gate-and':\r\n                        result = stateA && stateB;\r\n                        break;\r\n                    case 'gate-or':\r\n                        result = stateA || stateB;\r\n                        break;\r\n                    case 'gate-not':\r\n                        result = !stateA;\r\n                        break;\r\n                    case 'gate-nand':\r\n                        result = !(stateA && stateB);\r\n                        break;\r\n                    case 'gate-nor':\r\n                        result = !(stateA || stateB);\r\n                        break;\r\n                    case 'gate-xor':\r\n                        \/\/ (A e NON B) o (NON A e B)\r\n                        result = (stateA !== stateB); \r\n                        break;\r\n                    case 'gate-xnor':\r\n                        \/\/ (A e B) o (NON A e NON B)\r\n                        result = (stateA === stateB);\r\n                        break;\r\n                }\r\n\r\n                \/\/ 6. Aggiorna il LED di uscita\r\n                if (result) {\r\n                    outputLed.classList.add('active');\r\n                } else {\r\n                    outputLed.classList.remove('active');\r\n                }\r\n            }\r\n\r\n            \/\/ 7. Calcola lo stato iniziale (tutto a 0) al caricamento della pagina\r\n            document.querySelectorAll('.gate-card').forEach(card => {\r\n                updateGateLogic(card);\r\n            });\r\n\r\n        });\r\n    <\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f7b21ad e-flex e-con-boxed e-con e-parent\" data-id=\"f7b21ad\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6bae988 elementor-widget elementor-widget-text-editor\" data-id=\"6bae988\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Se nei circuiti integrati trovate delle porte segnate come Q\u0304 (notate il trattino sopra), significa che \u00e8 negata, cio\u00e8 l&#8217;uscita \u00e8 invertita rispetto a come dovrebbe comportarsi normalmente. Negli schemi elettronici si possono trovare questi segnali per indicare che un segnale \u00e8 negato o attivo basso, prendiamo l&#8217;esempio di una Eprom, il suo pin Chip Enable che serve ad abilitare la memoria (CE) se non specificato, lo standard sarebbe che si attivi se il segnale \u00e8 alto, cio\u00e8 1 (5v nel caso fosse un segnale TTL). Se invece nel simbolo troviamo una bara sopra o se nella dicitura della porta troviamo scritto !CE o ~CE significa che per attivare quel segnale dobbiamo dargli un segnale invertito quindi il chip verr\u00e0 abilitato se forniremo un segnale basso, gnd (0v).<br \/>Se osserviamo il simbolo delle varie porte logiche possiamo vedere che su alcune c&#8217;\u00e8 un cerchietto in uscita, questo indica che l&#8217;uscita funziona in modo inverso, come prima \u00e8 negata e quindi se in base al simbolo l&#8217;uscita dovrebbe essere 0, verr\u00e0 portata a 1 e viceversa esattamente come se dopo l&#8217;uscita fosse collegata una porta NOT.<\/p><p>Tutte queste porte logiche possono essere messe a cascata e formare un circuito in grado di contare o memorizzare dati (con l&#8217;aiuto di un flip-flop).<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>In questa pagina vedremo come funzionano le porte logiche, le funzioni base con cui eseguono le operazioni i computer e con le quali possiamo realizzare i<span class=\"excerpt-hellip\"> [\u2026]<\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[19,15,507],"tags":[560,559,554,555,556,557,99,553,561],"class_list":["post-10610","page","type-page","status-publish","hentry","category-computer","category-console","category-pcb","tag-559","tag-didattica","tag-elettronica","tag-funzionamento","tag-io","tag-logic-port","tag-porte-logiche","tag-segnali"],"_links":{"self":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/10610","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/comments?post=10610"}],"version-history":[{"count":22,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/10610\/revisions"}],"predecessor-version":[{"id":10772,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/pages\/10610\/revisions\/10772"}],"wp:attachment":[{"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/media?parent=10610"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/categories?post=10610"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/retrofixer.it\/en\/wp-json\/wp\/v2\/tags?post=10610"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}