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.


robot797 (author)2013-11-11

and now for arduino

diy_bloke (author)robot7972014-08-19

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

diy_bloke (author)diy_bloke2014-08-19

this might be what u are looking for:

Saeed Nazarian (author)2013-09-26

Hi, thanks. it's very useful. do you have any library for controlling lcd in this way? the code must be difficult, could you give us a sample of code?

About This Instructable




Bio: embedded system enthusiast ...
More by Jestin_Cubetech:Wireless Robo-car  using  360°  servo motorRaspberry Pi - Revision 2  DIY Add-On Boardwater tank automation - prototype
Add instructable to: