Low Cost 1 Wire Lcd for 8 Pin Micro Controllers [romanblack Shift1 System ]

Introduction: Low Cost 1 Wire Lcd for 8 Pin Micro Controllers [romanblack Shift1 System ]

Shift1 System is a cheap and simple way to get lots of digital output pins and only needs 1 PIC pin to drive it.

Step 1: How It Works - the Simple System

Normally, serial-in parallel-out shift register ICs can be set up for 2 pin operation;

DAT - data, is the next bit to be shifted in
CLK - clock pulse, on / edge the next bit is shifted in

This can be "cheated" to just use one pin and timed-length pulse. An RC network is used to provide a time delay for the DAT line to change. Very short pulses mean that a 1 bit is shifted in. With a long enough pulse the DAT voltage drops low enough so that a 0 bit is shifted in when the CLK line goes / again.

Step 2: Shift1 LATCHED System for Driving LCDs

Step 3: Circuit Diagram

1,  74hc595    - 1
2,  1.5 k  resistor -1
3,  33 k resistor - 1
4,   0.1uf  polyster capacitor -1
5,  2.2nf non capacitor   - 2
6, 220 ohm resistor -1
7, 2n7000 mosfet -1
8 ,5K preset -   1    ,for lcd contrast adjust
9, button switch - lcd back light ON/OFF [optional ]
10, pic12f675

Step 4: Vero Board Assembling

Step 5: Test Board - Pic12F675 Micro Development Board [3.0 Cm X 2.5 Cm Size]

Step 6: Finished Circuit Board

Step 7: Working Video

 source code : 

special thanks to roman black.
Microcontroller Contest

Participated in the
Microcontroller Contest

Be the First to Share


    • Tinkercad to Fusion 360 Challenge

      Tinkercad to Fusion 360 Challenge
    • Origami Speed Challenge

      Origami Speed Challenge
    • Electronics Contest

      Electronics Contest



    Reply 7 years ago on Introduction

    If you look at the c files it shouldnt be too hard to port that to Arduino, after all, that is C too. Sure there are some specific PIC registers that need sorting out for the arduino but that should be possible too. Should find a solution for the couple of assembler code instructions if you want to keep it purely Arduine IDE. Ofcourse one can also start from scratch, knowing the timings one needs for a HIGH and a LOW.
    Currently I have a 2 wire system with a SN164 that works well so I am not in a hurry to do an LCD on 1 pin, but I may give it a try for use with an attiny85


    Reply 7 years ago on Introduction

    this might be what u are looking for: