Siemens alphanumeric display
Vertex78
Posts: 51
Has any of you used one of these displays before? I am having a heck of a time figuring out how to get them to work. Here is a link to the datasheet for them.
http://www.ortodoxism.ro/datasheets/siemens/DLO3416.pdf
The picture in the datasheet is different than what I have, but in the first paragraph it says that it is a drop in replacement for my model. <p>The way I have it hooked up to the xgs me is like this:
<img src="http://home.comcast.net/~zshutters/schematic.JPG" border="0">
·If cu is low then it goes into the loading cursor function, so I set it high, and set cue low. Then I set wr high since it is active on low. Next I set the digit address in a0 and a1 to low to select the rightmost digit. Then I loaded an ascii value onto rd and set wr low to write to the display. But I get nothing. So then I set bl high, and rerun the program and then a digit lights up but its nothing readable, just jiberish. I have four of these things, and I know that they work.(or at least worked before I messed with them lol)
<img src="http://home.comcast.net/~zshutters/DSCF0046.JPG" border="0">
http://www.ortodoxism.ro/datasheets/siemens/DLO3416.pdf
The picture in the datasheet is different than what I have, but in the first paragraph it says that it is a drop in replacement for my model. <p>The way I have it hooked up to the xgs me is like this:
<img src="http://home.comcast.net/~zshutters/schematic.JPG" border="0">
·If cu is low then it goes into the loading cursor function, so I set it high, and set cue low. Then I set wr high since it is active on low. Next I set the digit address in a0 and a1 to low to select the rightmost digit. Then I loaded an ascii value onto rd and set wr low to write to the display. But I get nothing. So then I set bl high, and rerun the program and then a digit lights up but its nothing readable, just jiberish. I have four of these things, and I know that they work.(or at least worked before I messed with them lol)
<img src="http://home.comcast.net/~zshutters/DSCF0046.JPG" border="0">
Comments
; /////////////////////////////////////////////////////////////////////////////
; Set device attributes
; /////////////////////////////////////////////////////////////////////////////
DEVICE SX52
RESET Init
FREQ 80_000_000
DEVICE OSCHS3 ; High-speed external oscillator
DEVICE IFBD ; Crystal feedback disabled
DEVICE XTLBUFD ; Crystal drive disabled
;//////////////////////////////////////////////////////////////////////////////
; rb.0 = clr active low
; rb.1 = wr active low
; rb.2 = bl active low
; rb.3 = cue
; rb.4 = cu
; rb.5 = A0
; rb.6 = A1
clrd equ rb.0
wr equ rb.1
bl equ rb.2
cue equ rb.3
cu equ rb.4
a0 equ rb.5
a1 equ rb.6
init
mov !rd, #%00000000
mov !rb, #%00000000
Start
setb cu
setb bl
clrb cue
setb clrd
;digit address
clrb a0
clrb a1
;load ascii value
mov rd, #%01011010
;timing diagram shows address setup time as 10ns
nop ; 12.5 ns delay
clrb wr
;timing diagram shows write time as 90ns
jmp $+1 ;100ns delay
jmp $+1
nop
nop
setb wr
jmp $
ok when i run this code, if i hold the reset button it shows a Z in the right most position (which is what should be there with the programm running normal) and when I let go of the reset it shows all segments lit up in left most position. Though If i turn the xgs of and then back on sometime the Z will be lit up in the correct place but then if I hit the reset it goes to a random spot with jiberish. I think maybe my timimg must be off. But from what I can tell from their timing diagram its ok it you go over the amount of time it takes, like how data write says 90ns and I did 100ns since that is the closest I can get without going under 90ns.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
·· With only a few lines of code, you can actually check the BUSY Flag in a subroutine and not have to worry about pauses/delays, etc.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Chris Savage
Parallax Tech Support
csavage@parallax.com
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
·1+1=10