Send data using a button

Greetings,

This project does not involve an Arduino, I just need help on something.

I'm making the smallest 8-bit breadboard computer without microprocessor, and I need to automatically inizialize the display without the Arduino in the push of a button, it needs to send 9 commands to the display with 10-bits (8 data bits, 1 RS bit and 1 Enable bit):

Display ON, cursor ON, Blink ON;
Display 2-line mode, 8-bit mode, font 5x8;
Return home;
Clear Display;
Write "R";
Write "A";
Write "M";
Write ">";
Write " ";

I have some 595 Shift Registers, some binary counters a lot of transistors and some 555 timers.
If i need others components I'll buy it, but remember, it needs to be the smallest as possible.

Thanks.

what's the display? Serial or parallel?

DIP switches for each 10 bit ➜ multiplexers triggered by a counter to sequence them in a raw

The display is 16x2 parallel, it uses the chip hd44780.

I could use the multiplexer but I think it's better to use an EEPROM with 4-bit address and 10 bits output, i don't think those exists, so i could use two small eeproms, any suggestions on what to use or if there is a smaller option?

Hello AndrewLevel100

We built such sequencers during my studies.

Take a view here to get some ideas and gain the knowledge:

https://www.vhdl-online.de/courses/system_design/synthesis/finite_state_machines_and_vhdl/start

hth

You might use the smallest PIC or ATMEL providing an I²C interface.

if you can use EEPROM it's even better of course

he said

would a microcontroller count as a microprocessor?

The PIC is classified as "microcontroller", so i need something that isn't a microcontroller or a a microprocessor for my computer, i've taken in consideration to use a microcontroller of some kind to do all the outputs, but i need to challenge myself of making it without the use of those.

1 Like

well, yes it count as a microprocessor, because i just could use an arduino to make the computer, and the whole project is useless, so i need to do it without microprocessors or microcontrollers, could you maybe suggest some eeproms or flash drives i could use that uses a 10 bits output but only 4 bit adresses?

I'm not an hardware guy — EEPROMs I know of would spit out 8 bits.

would the RS and enable bit stay the same across the 9 commands ?

Not really, because when sending a command instead of a text the RS would be "0", so the enable will be 0 too while sending an instruction some times.

Well, I could use the 4-bit mode of the display, but when i press the button "1" to write the number "1" on the display, i need 2 commands for that, maybe there is a circuit that sends 2 commands with the press of 1 button, could this work?
And how could i make this circuit?

as I said, I'm not an hardware guy so would go low tech : 10way DIP switches + multiplexers & counter :slight_smile:

And an EEPROM for the micro-code.

Would you please suggest me a really small eeprom with few address pins but with 8-bit parallel comunication?

AT28BV64B and the likes

Read

The AT28BV64B is accessed like Static RAM. When CE and OE are low and WE is high, the data stored at the memory location determined by the address pins are asserted on the outputs. The outputs are put in the high-impedance state when either CE or OE is high. This dual-line control gives designers flexibility in preventing bus contention in their system.

1 Like

Too big, I need something smaller.

well if you want a parallel one you need at least 2 power pins, 8 data lines, a couple control pins and the address pins

you won't find a module with just a few bytes, so expect 8 address pins probably ...

➜ 20 pins

if you go Serial you could have something smaller like AT24C01A

I'm not really a hardware person so take this for what it is worth

Use an oscillator to generate a clock.
Use a counter IC that counts the clock pulses.
The output of that counter is used as the address bus to the eprom/eeprom.

Use 4 bit mode of the display; you will have 8 bits per address. Each address will contain the 4 needed data bits as well as the R/S and E signals.

Below an example.

00010000 set R/S as needed
00011010 set data 0xA on bus
00111010 enable
00111010 enable (stretch)
00011010 disable
00010000 remove data
00000000 restore R/S

Each clock will place a new set of information on the bus 4+2 bit bus. You can stretch cycles by storing the same information twice in successive locations as shown for the enable.

You will have to match something like this with the datasheet.

If I use the 4-bit mode of the display how can I send the number "1" to print in the display pressing one button? I should send 2 different commands at the press of one button, but how?