Jump to content
cp/m

Un microcontroller pe 1-biti

Recommended Posts

Hello,M-am jucat putin cu portile logice si am facut un calculator care aduna/scade toate numerele intregi de la 0 la 1. Ma gandeam ca ar putea interesa pe cineva...

Nu am citit nicio carte despre crearea microprocesoare si ce prezint eu aici este pur ce mi-a venit mie in cap pe WC. Probabil ca exista si variante mai eficiente, etc.

--------------

Opcode-uri:

01-sub n1,n2

11-add n1,n2

10-out pin

pin=11,10,01

--------------

Add


Tabela XOR
0 0 0
1 0 1
0 1 1
1 1 0
Tabela AND
0 0 0
0 1 0
1 0 0
1 1 1

Cazurile adunarii sunt:


//si 0+0=0 insa ala merge oricum.
0+1=1
1+0=1
1+1=10

Observam ca rezolva 2 din 3 cazuri ale adunarii: cele care nu trec peste ordin.

Pentru a 3-lea caz( 1+1 =10), xor-ul scoate prima cifra, iar a doua o facem cu un and.

Aici este simulat: The Logic Lab: simulating simple circuits of logic gates

--------------

Sub


Tabela NOT
1 0
0 1

Cazurile scaderii:


1-0=1
0-1=1 (pornim flagul de negativ)
0-0=0

Observam ca scaderea este fix xor, insa trebuie sa facem ceva cu care sa aflam daca nr este negativ sau nu.

Cazul negativ este 0-1=-1, deci noram 0 si ne da 1, apoi facem un and cu al doilea nr, si da 1. Asta e flagul pt negativ.

Simulare:The Logic Lab: simulating simple circuits of logic gates

--------------

Pini

Avem 3 pini. Argumentele sunt 11, 01 si 10:

-Pentru 11 folosim un AND

-Pentru 01 si 10 folosim NOT si AND.

--------------

Aici este proiectul complet.

http://falsemail.lx.ro/director/rstcpu.cml

Toate cele bune,

cp/m

Edited by cp/m
Link to comment
Share on other sites

interesant...vre-un cod de listening de la componente externe..ma refere la a conecta alte dispozitive la PC(ex: intrerupatoarele de curent) si sa le dai comenzi folosind porturile usb...

mov ax, 1234

out 199, ax

mov ax, -5678

out 199, ax

; Eternal loop to write

; values to port:

mov ax, 0

x1:

out 199, ax

inc ax

jmp x1

hlt

ceva de genu...e luat din niste exemple de la emulator8086..dar e numai simulator.

Any Ideea?

Link to comment
Share on other sites

Pai ca sa citesti, iti trebuie input si jumpuri etc. Mai sunt multe de imbunatatit, acum am inceput sa mai citesc pe Wikipedia.

Iar portul USB e cel mai greu port care il puteai alege, pana si IR mi se pare mai usor. Eventual sa scriu un program care controleaza 2 din cele 3 leduri de la tastatura si cu ala sa "programez" calculatorul. Iar ca output sa folosim keyboard-u.

Edited by cp/m
Link to comment
Share on other sites

sti ce mi se pare funny? 1+1= 2 porti logice

1+1+1+1+1+1+1+1 = 28 de porti logice :) (atat mi-a iesit mie... dar e posibil sa mearga si cu mai putin)

The Logic Lab: simulating simple circuits of logic gates

p.s.:http://www.neuroproductions.be/logic-lab/index.php?id=1370 :))

trafic normal versus ddos :)) (primu e normal, al doilea ddos, 3 e provideru =)) )

Edited by Xander
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...