Dl1414 & picaxe20x2

Dicky Mint

Senior Member
Hi I Haven't been around hear much lately but I've a question :-

Has anyone any experience of running a DL1414 with a picaxe?

I'm looking at a PICAXE-20X2 or M2 and a RTC for a watch project I'm looking into!

I'm looking at a port for the address Byte and most of the other pins for the RTC and stuff.

have I overstepped the bouds of credibility or could I have a practical project here?

I've designed the boards cause that's easy but, convieniently, left the programming to later!

I guess I'll have to bit-bang but I'm not entirely sure what the phrase means?

Any observations would be welcome?

Rick
 

inglewoodpete

Senior Member
Hi Rick, It really helps to provide a link to the device you are referring to. On the other hand, if anyone has experience with a DL1414 we have to assume that they know it through and through:).
 

hippy

Technical Support
Staff member
Looking at the DL1414 datasheet it looks easy enough. Bit-banging is simply setting the right pins at the right time, in the right order, to match what the chip's data timing diagram specifies.

This should get you started. After changing the #PICAXE and SYMBOL definitions to match your hardware ( both PIN_xx and DIR_xx ) this should alternate displays between "0123" and "<XY>", though it might be "3210" and ">YX<" ...

Code:
#Picaxe 20M2
#No_Data

; Circuit Diagram
;
;          DL1414
;      .-------------.
;  D6 -| 1   _ _  12 |- D5
;  D4 -| 2  |_|_| 11 |- D3
;  WR -| 3  |_|_| 10 |- D2
;  A1 -| 4  |_|_|  9 |- D1
;  A0 -| 5  |_|_|  8 |- D0
;  5V -| 6         7 |- 0V
;      `-------------'

; Output timing diagram
;
;        _______________
; Ax ---|_______________|---
;    _______         _______    
; WR        |_______|
;                ___________
; Dx -----------|___________

; Display Font
;
;        0 1 2 3 4 5 6 7 8 9 A B C D E F
;
; $2x   sp ! " # $ % & ' < > * + , - . /
; $3x    0 1 2 3 4 5 6 7 8 9 : ; { = } ?
; $4x    @ A B C D E F G H I J K L M N O
; $5x    P Q R S T U V W X Y Z [ \ ] ^ _

; Output pin definitions

Symbol PIN_WR = pinC.0 : SYMBOL DIR_WR = dirC.0

Symbol PIN_A0 = pinB.0 : SYMBOL DIR_A0 = dirB.0
Symbol PIN_A1 = pinB.1 : SYMBOL DIR_A1 = dirB.1

Symbol PIN_D0 = pinB.2 : SYMBOL DIR_D0 = dirB.2
Symbol PIN_D1 = pinB.3 : SYMBOL DIR_D1 = dirB.3
Symbol PIN_D2 = pinB.4 : SYMBOL DIR_D2 = dirB.4
Symbol PIN_D3 = pinB.5 : SYMBOL DIR_D3 = dirB.5
Symbol PIN_D4 = pinB.6 : SYMBOL DIR_D4 = dirB.6
Symbol PIN_D5 = pinB.7 : SYMBOL DIR_D5 = dirB.7

; Output Macros (inline)

#Macro Init
  DIR_WR = 1         ; Set pins as outputs
  DIR_A0 = 1
  DIR_A1 = 1
  DIR_D0 = 1
  DIR_D1 = 1
  DIR_D2 = 1
  DIR_D3 = 1
  DIR_D4 = 1
  DIR_D5 = 1
#EndMacro

#Macro Show( digit, character )
  PIN_WR = 1
  PIN_A0 = digit     ;     %01
  PIN_A1 = digit     /     %10
  PIN_WR = 0
  PIN_D0 = character ; %000001
  PIN_D1 = character / %000010
  PIN_D2 = character / %000100
  PIN_D3 = character / %001000
  PIN_D4 = character / %010000
  PIN_D5 = character / %100000
  PIN_WR = 1
#EndMacro

; Main program

PowerOnReset:
  Init
   
MainProgram:
  Do
    Show(0,"0") ; Digit 0 = "0"
    Show(1,"1") ; Digit 1 = "1"
    Show(2,"2") ; Digit 2 = "2"
    Show(3,"3") ; Digit 3 = "3"
    Pause 2000
    Show(0,"<") ; Digit 0 = "<"
    Show(1,"X") ; Digit 1 = "X"
    Show(2,"Y") ; Digit 2 = "Y"
    Show(3,">") ; Digit 3 = ">"
    Pause 2000
  Loop

; End of program
Added : It should be possible to fit that around also interfacing with an RTC.

One thing to bear in mind is that the DL1414 can draw up to 70mA, around 2mA per segment, so it might not be that suitable as a watch which is always on.
 
Last edited:

Dicky Mint

Senior Member
Hi hippy,

Thanks very much for the reply I'll certainly be pouring over your program!

At first glance it looks like it could be very useful!

I'm trying to suss out a way of switching on the display only when required?

I've included a pin to do this I'm just at a loss to find a really small push to make switch!

Thanks pete I've added a link to the DL1414.

RickView attachment DL1414T-datasheet 01.pdf
 

hippy

Technical Support
Staff member
I'm trying to suss out a way of switching on the display only when required?
That's a different datasheet to the one which I looked at and suggests a slightly lower power consumption. It might be worth measuring what the consumption actually is.

Your datasheet suggests a quiescent current of 1mA so it might be possible just to blank the display, perhaps then floating the Ax and Dx pins.

Otherwise you would need a high-side switch to turn power on before outputting the display data.

An LED watch was one of Sir Clive Sinclair's early products. Unfortunately that suffered many problems and had an incredibly short battery life.
 

Dicky Mint

Senior Member
Well that's what my customer wants a retro LED watch from the 70s!

Complete with powering problems!!!

I have tried to find a more suitable display but can only find this one?

I built a watch in the 70s from the Elkektor magazine but I don't remember what display or display driver it used!

There is a more recent Elektor watch project available as a kit but the display is a little large for my project!

I have done a Google search but can't find the display part number!

Rick
 

Buzby

Senior Member
...
An LED watch was one of Sir Clive Sinclair's early products. Unfortunately that suffered many problems and had an incredibly short battery life.
Don't I know it !. The Black Watch was the crappiest bit of Sinclair kit I ever bought, and it ended up in the bin. Look at the prices of them now :(
 
Top