PDA

View Full Version : Can I ask a favour please



lew247
- 17th August 2010, 13:38
I'm sure you'll have heard this before, but here goes anyway.
I'm trying to get back into pic programming 2 yrs after having brain surgery and I can do simple things like program lcd displays and so on
What is getting me at the moment is I cannot for the life of me figure out how these led display swork, or how I'd go about programming them.

Basically eventually I'm going to end up with a gps clock with 60 rgb or bi-colour led's around the outside, and an led module in the middle which will display information such as day, date, year and so on, and I may possibly link it up to several temp sensors as well and display things such as fridge/freezer temps, inside and outside temps and maybe more.

However I'm stuck.
I plan on using a GPS module and extracting the ZDA sentence to get the time or else probably the GPGGA sentence and using the pic to extract the time information and display it on the display along with some other info.

I want to use these diaplays (not bought them yet) http://www.sureelectronics.net/goods.php?id=903
and the manual for them is here http://www.sureelectronics.net/pdfs/DE-DP105_Ver1.0_EN[1].pdf
(http://www.sureelectronics.net/pdfs/DE-DP105_Ver1.0_EN[1].pdf)
I can't get it into my head how they work and no matter how many times I read the info in the manual I just cant digest it.
Can someone if they have time to have a look please tell me in simple words how they work, and what I'd need to program them using a pic please?

Also if its possible could someone post me an example code to say something like the word "welcome" (I plan on using 2 modules joined together and maybe in the final verion 4, 2 on top and 2 underneath)
This way I can digest the code and work through it to see exactly what it does, and then work out what I need and go from there.

Once I can get started I'm sure I'll be able to figure most of it out, its just getting started thats the problem.

If anyone can help I'll be eternally grateful

aerostar
- 17th August 2010, 21:03
Hi lew247

I have used these with pics, took a long time to get my head around using them !

I am at home at the moment, I will look to see what code I can post to help you when I go to work tomorrow, (some of it is commercial).

You have to design your own fonts, and store that in your pic. The addressing is a bit peculiar to say the least, however once you have the lookup routine and the adressing sorted, it makes a good display.

I use 2 of these together, gets complicated with more. I would suggest that you use the $GPRMC from the gps unit, it gives exactly what you want, time, date, and whether it is in synch or free running from receiver internal clock.

Keep checking this thread, as it may be a day or two before posting, and I need to check that the code I post will work !

There was a post a year or so ago about these displays, which started me off looking at the modules.


Have a look here
http://www.picbasic.co.uk/forum/showthread.php?t=11871

post 1 has sure.txt simple code.

aerostar
- 18th August 2010, 11:04
I have dug out some VERY early code.

It displays 00:00, 11:11... to 99:99

The code is rough !.

I used http://www.morse-code.com/HTMLobj-786/ClockFonts.zip to work out the character fonts, on the 0832 displays the first column and the last 2 columns I made all zeros, as this then gives a nice 5 x 7 font.

In the end I used 2 lookup tables as there is not enough room in the EE space for full A-Z etc.
and I had plenty of room in the pic code area.

I have done news tickermessages, sliding from right to left, and odometer type clock display with the change of digit moving into the display from the bottom, eg scroll vertically.

here is the code, as I said it is rough but does work.

I hope this will help you on your way.


'---------------------------------------------------------------------
'Sure electronics module 0832 led matrix
'


'displays XX:XX COUNTING 0 TO 9

DEFINE OSC 20
@ device PIC16F628A,HS_OSC,BOD_ON,MCLR_ON

TRISA = 0
TRISB = 0

'change your ports to suit

CS var PORTB.7 'Connect this to CS1 (set dip switchs to 1 = on 2/3/4 = off)
WR var PORTA.4 'connect this to wr
DATALINE var PORTA.1 'connect this to DATA

'connect RD on module to +5v
'connect OSC on module to GND


ALOOP VAR BYTE
COUNTER var byte
ADDRESS var byte
COMD var byte
ENDBIT var bit
CHARACTERS var byte [5]
SENDDOTS var byte
NUMBER VAR BYTE


' NUMBERS 0 TO 9 COLUMNS
data @0, %00000000,%01111100,%10001010,%10010010,%10100010, %01111100,%00000000,%00000000
data @8, %00000000,%00100010,%01000010,%11111110,%00000010, %00000010,%00000000,%00000000
DATA @16,%00000000,%01000010,%10000110,%10001010,%10010 010,%01100010,%00000000,%00000000
DATA @24,%00000000,%10000100,%10000010,%10100010,%10110 010,%11001100,%00000000,%00000000
DATA @32,%00000000,%00011000,%00101000,%01001000,%11111 110,%00001000,%00000000,%00000000
DATA @40,%00000000,%11110100,%10100010,%10100010,%10100 010,%10011100,%00000000,%00000000
DATA @48,%00000000,%01111100,%10010010,%10010010,%10010 010,%01001100,%00000000,%00000000
DATA @56,%00000000,%10000110,%10001000,%10010000,%10100 000,%11000000,%00000000,%00000000
DATA @64,%00000000,%01101100,%10010010,%10010010,%10010 010,%01101100,%00000000,%00000000
DATA @72,%00000000,%01100100,%10010010,%10010010,%10010 010,%01111100,%00000000,%00000000


CLEAR

CMCON=7



PAUSE 500

'---------------- SENDS COMMANDS-------------------------------------


COMD = %00000100 'Comand mode
ADDRESS = %00000001 'osc on
GOSUB COMANDSEND
ADDRESS = %00000011 'led on
GOSUB comandsend
ADDRESS = %10101111 'pwm 16/16
GOSUB comandsend
ADDRESS = %00011000 'RC int clk source on
GOSUB comandsend


'---------- SENDS IMAGE DATA TO DISPLAY-----------------------------

COMD = %00000101 'Data Mode
NUMBER=0 'SET NUMBER TO 0 as start

SHOWNUMBERS:

ADDRESS = 0 'DIG 1 0, DIG2 16, DIG3 32, DIG4 48
FOR ALOOP =0 TO 3 ' 4 DIGITS

FOR COUNTER = 0 TO 7 ' NUMBER OF COLUMNS PER DIGIT

read (NUMBER*8)+COUNTER,SENDDOTS

IF ALOOP=1 AND COUNTER = 7 THEN 'checks for colon in column 7 of 2nd digit
SENDDOTS=%00101000 'COLON IN COLUMN 7
ENDIF

GOSUB DATASEND
ADDRESS = ADDRESS + 2 ' ADDRESS INCREMENTS BY 2 EACH COLUMN
NEXT COUNTER
NEXT


PAUSE 1000
NUMBER=NUMBER+1 'increment number to be displayed
IF NUMBER =10 THEN
NUMBER=0
ENDIF
GOTO SHOWNUMBERS




'----------------- sends infomation to display ----------------------
DATASEND:

LOW CS
SHIFTOUT DATALINE,wr,1,[COMD\3] 'send lower 3 bits of COMD byte
SHIFTOUT DATALINE,wr,1,[ADDRESS\7] 'send lower 7 bits of adress byte
SHIFTOUT DATALINE,wr,1,[SENDDOTS] 'send led data
HIGH CS
RETURN

COMANDSEND:

LOW CS
SHIFTOUT DATALINE,wr,1,[COMD\3] 'send lower 3 bits of COMD byte
SHIFTOUT DATALINE,wr,1,[ADDRESS] 'send command byte
SHIFTOUT DATALINE,wr,1,[ENDBIT\1] 'send 1 ENDBIT
HIGH CS
RETURN

END

Acetronics2
- 18th August 2010, 11:08
Hi, Lew

Did you try a simple SEARCH for " 0832 matrix display " :rolleyes:
returns interesting matter ...

http://www.picbasic.co.uk/forum/search.php?searchid=236890

Alain

lew247
- 18th August 2010, 11:56
I searched for many combinations of things, but stupidly it never occured to me to search for that the way you wrote it. One of my problems at the moment is not being able to think of the obvious which gets really annoying at times.

Many thanks for the ideas everyone, I'm sure it will help me get started properly :)

Ioannis
- 21st August 2010, 16:29
Are these displays bright enough to be visible outside in light of a day?

Ioannis