Wednesday, March 3, 2021

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR

Overview

Using 74HC595 shift registers, we can drive any display such as 7-segment or a dot matrix. It saves the controller pins with only three control signals requirements. These control signals are:

  1. Serial Clock
  2. Serial Data
  3. Enable pin

Two extra power supply pins are VCC and GND. Using these three pins we can drive a large amount of shift register as we need, for example 10 8-bit shift register.

A sample images of SN74HC595N from online store.
 

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Pins And Logic Diagram Of SN74HC595
 

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Timing Diagram
 

I make a single seven segments board driven by a single 74HC595 shift registers. I remove this single seven segments from an HP Print/Scan/Copy machine.

 
Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Fully Solder Board

 

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Copper Side After I Soldered.

This board is made using a simple toner-transfer method. I use my own HP laser printer with my hot plate iron at home.

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Schematic Diagram. The SSD is common anode type.

The SSD I used here is common anode type. I added three 1N4148 switching diode to reduce the voltage. Since each 1N4148 has a voltage drop of ~1V, thus three of this could make a voltage drop of ~3V. The SSD needs only ~2V of nominal working voltage.

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
A screen shot of PCB design
Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
High Quality Print Copper Side.
Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
An optional components side

Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
I took a 3D view of this PCB.
 

Design file could be downloaded here. The file Proteus 8 format. Please use the latest version to open.

Arduino Test Program

Arduino is popular due to ease of programming. I test this board with Arduino Uno I possess. I use shiftOut() function to interface to 74HC595. This function is considered as a software SPI. We can declare any pin on Arduino to shift out clock and data.
 
The syntax of shiftOut() is:
 
shiftOut(dataPin, clockPin, bitOrder, value)
 
Where,
  • dataPin - Serial data output synchronizes with clock
  • clockPin - Serial clock output 
  • bitOrder - Decide which bit order to transfer first. It could be MSBFIRST or LSBFIRST
  • value - An 8-bit data to transfer   
 In this programming interface I use board to display value between 0 and F, since the hexa decimal has 16 values.
 
The sketch is shown below.
 
Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Arduino Test Program
 
Making A Single 74HC595 Seven Segments Driver For Arduino PIC And AVR
Counting reaches 0x0A is hex.
 
Arduino test program could be download here
 
 

No comments:

Post a Comment

Search This Blog

Labels

25AA010A (1) 8051 (7) 93AA46B (1) ADC (30) Analog Comparator (1) Arduino (15) ARM (6) AT89C52 (7) ATMega32 (56) AVR (57) CCS PICC (28) DAC (1) DHT11 (2) Display (105) Distance Sensor (3) DS18B20 (3) dsPIC (2) dsPIC30F1010 (2) EEPROM (5) Environment Sensor (4) esp8266 (1) I2C (29) Input/Output (67) Interrupt (19) Keil (5) Keypad (10) LCD (47) Master/Slave (1) MAX7221 (1) MCP23017 (5) MCP23S17 (4) Meter (3) MikroC (2) Motor (15) MPLABX (71) Nokia 5110 LCD (3) OLED (2) One-Wire (6) Oscillator (8) PCB (6) PCD8544 (3) PCF8574 (5) PIC (107) PIC12F (2) PIC16F628A (2) PIC16F630 (1) PIC16F716 (3) PIC16F818 (10) PIC16F818/819 (2) PIC16F84A (15) PIC16F876A (1) PIC16F877A (9) PIC16F88 (1) PIC16F887 (60) PIC18 (19) PIC18F1220 (4) PIC18F2550 (3) PIC18F4550 (12) PWM (11) RTC (8) Sensor (10) SH1106 (1) Shift Register (11) Shift Registers (3) SPI (24) STM32 (6) STM32 Blue Pill (6) STM32CubeIDE (6) STM32F103C8T6 (6) SysTick (3) temperature sensor (11) Thermometer (21) Timer/Counter (31) TM1637 (2) UART (7) Ultrasonic (4) Voltmeter (7) WDT (1) XC16 (2) XC8 (94)