PDA

View Full Version : cách đưa dữ liệu từ 74hc595 vào led ma trận


olalamama
18-06-2009, 07:23 PM
mình đang làm quang báo bằng pic 16f877a,(4led ma trận 8x8 nối với 4 ic 595 và 4 ic này nối với nhau ) mình quét cột bằng một ic 74ls138 nối với 1 port VDK). còn đưa dữ liệu vào ic 74hc595 qua 1 port, vấn đề mình thắc mắc là khi đưa dữ liệu từng bít vào ic95, rồi đủ 8 bit sẽ xuất ra 1 lần, khi mình viết chữ A thì phải xuất 8 lần 8bit như thế từ 595 ra led man trận đầu tiên, vậy làm thế nào để hiện chữ B ở led matran đầu tiên và chữ A chuyễn qua led matran thứ 2(tiếp tục ấn chữ C thì chữ A chạy qua led 3, B qua led 2, C ở led 1) vì khi xuất ra 8 bít từ ic 595 rồi đưa dữ liệu vào thì 8 bít xuất ra tiếp theo sẽ thay thế 8 bit đầu, như vậy thì khi ấn chữ B sẽ mất chữ A. Còn nếu không xuất ra mà đưa 16 bit vào vào để chuyển qua con 595thứ 2 thì làm sao hiện được chữ A. các bạn giúp đỡ tý nhé

olalamama
22-06-2009, 09:13 PM
ko ai giup dỡ vậy trùi. chẳng lẽ hổng ai biết sao, đang bí phần viết code

huakhac_duy
02-07-2009, 03:16 AM
mình đang làm quang báo bằng pic 16f877a,(4led ma trận 8x8 nối với 4 ic 595 và 4 ic này nối với nhau ) mình quét cột bằng một ic 74ls138 nối với 1 port VDK). còn đưa dữ liệu vào ic 74hc595 qua 1 port, vấn đề mình thắc mắc là khi đưa dữ liệu từng bít vào ic95, rồi đủ 8 bit sẽ xuất ra 1 lần, khi mình viết chữ A thì phải xuất 8 lần 8bit như thế từ 595 ra led man trận đầu tiên, vậy làm thế nào để hiện chữ B ở led matran đầu tiên và chữ A chuyễn qua led matran thứ 2(tiếp tục ấn chữ C thì chữ A chạy qua led 3, B qua led 2, C ở led 1) vì khi xuất ra 8 bít từ ic 595 rồi đưa dữ liệu vào thì 8 bít xuất ra tiếp theo sẽ thay thế 8 bit đầu, như vậy thì khi ấn chữ B sẽ mất chữ A. Còn nếu không xuất ra mà đưa 16 bit vào vào để chuyển qua con 595thứ 2 thì làm sao hiện được chữ A. các bạn giúp đỡ tý nhé

theo minh sao khong cho pic sen ke vao ,8pica 8pic b,8pic a minh dang lam thu chua co ket
qua

tienchuan
02-07-2009, 09:05 AM
Mình cũng đang làm về led ma trận có phần cứng hoàn toàn giống bạn,mình cũng mới tìm hiểu nguyên lí hoạt động của mạch,và thấy rằng:

+) mạch của mình và bạn làm về led matrix theo kiểu quét hàng,tức ic 74138 sẽ điều khiển các hàng từ 1->8 (tất cả các hàng của các led nối chung lại với nhau,tức H1 của led matix thứ nhất nối với H1 của led matrix thứ 2,thứ 3,.. cho đén khi hết số led trong mạch,còn H2-> H8 cũng nối tương tự như vậy)
+)còn việc xuất dữ liệu ra hàng thì mỗi led matrix cần một ic74595 (bảng mạch có mấy led matrix thì cần bấy nhiêu ic74595),các ic này ghép nối tiếp nhau,vì 74595 là ic ghi dịch 8 bit ,nên khi ta đưa đủ 8 bit vào thì nó sẽ bị đầy,và bit tiếp theo (bit 9) sẽ bị đẩy ra ngoài qua chân số 9,như vậy ta phải ghép các ic74595 theo kiểu chân 9 của ic đầu nối với chân 14 của ic sau đẻ tiếp tục đẩy bit dữ liệu tiếp theo vào các ic 74595 còn lại.
+)như vậy ,giả sử bạn làm bảng quang báo có X led matrix,thì dữ liệu cần xuát ra theo hàng là 8X bit (nếu bạn chỉ dùng 1 màu,2 màu thì cần 2*8X bit ???),do đó bạn cần nạp đủ dữ liệu cho hàng vào trong các ic 74595,ròi mới xuất dữ liệu ra từng hàng (H1-->H8)
+) còn đối với câu hỏi của bạn,giả sử bạn muốn hiển thị chữ A ở led matrix thứ nhất,chử B ở led thứ 2 ,thì bạn chỉ cần mã hóa 16 bit để nạp cho từng hàng một của led matrix,tức 16 bit cho hàng thứ nhất sẽ bao gồm: 8 bit của led matrix đầu để hiển thị dòng đầu tiên của chữ A, 8 bít sau để hiển thị dòng đầu tiên của chữ B,sau khi mã hóa được 16 bit cho việc hiển thị chữ A và chũ B của hàng đầu tiên,bạn đưa vào 74595 để xuất ra H1 của led 1 và 2.Tiếp tục cho đến hàng thú 8.Thông thường, ta hay làm bảng mã cho kí tự hiển thị,sau dùng phương pháp tra bảng để lấy dữ liệu cho việc hiển thị kí tự)

=) mình xũng mới tìm hiểu nên chỉ biêt như vậy thôi,có gì bạn và mình cùng trao đổi để làm nha! Chúc vui vẻ !!
Mình ở DN,bạn ở đâu vậy? thôi,số Fone của mình đây:0905.638.093,có cùng j trao đổi nha!

tieuvu
27-07-2009, 01:44 PM
Bạn đưa bản vẽ nguyên lý của bạn lên đi.
Nguyên tắt là mỗi lần quét thì chỉ có 1 hàng và 1 cột được chọn, tức là tại 1 thời điểm, chỉ có 1 con led sáng.

greenfield
27-07-2009, 04:11 PM
ban cho mail di minh gui cho

longvy09
22-09-2009, 09:34 PM
Mình cũng đang viết 1 bài Matrix như vậy, nhưng quét hàng thì còn chạy đc chữ từ trái qua phải hoặc tử phải qua trái, còn quét cột thì nó sẽ chạy từ dưới lên trên hoặc từ trên xuống dưới. Các bạn có cách nào quét cột mà vẫn cho chạy từ trái qua phải ko?

mocdailam
24-09-2009, 04:18 AM
Mình cũng đang viết 1 bài Matrix như vậy, nhưng quét hàng thì còn chạy đc chữ từ trái qua phải hoặc tử phải qua trái, còn quét cột thì nó sẽ chạy từ dưới lên trên hoặc từ trên xuống dưới. Các bạn có cách nào quét cột mà vẫn cho chạy từ trái qua phải ko?

thì bạn trở ngang cái bảng lại thôi đồng thời cũng trở luôn mã hóa data. không thì dùng mấy phép dịch bit << / >>
khi cho chử chạy sang trái có nghĩa là dịch con trỏ sang phải( nếu bạn dùng con trỏ để xử lý) nếu dùng chỉ số mảng cũng tương tự.
Nếu bạn dùng buffer thì thay đổi cho phù hợp là được....
nói chung là cách xử lý tùy thuộc vào mạch và cách xây dựng data của bạn.

Mình nghỉ là bạn lấy code mẫu ở đâu đó rồi sửa lại!
theo mình nghĩ trước hết phải xây dựng data cho phù hợp với thiết kế mạch sao cho tiện với việc quét.(tùy thiết kế)

Huynh Thanh San
14-10-2009, 01:12 PM
Tôi đang tìm hiểu về quét led matrix số lượng >=10 con sử dụng 74HC595 , theo tui biết con này quét thì khó thiệt nhưng nó có ưu điểm hơn 74LS138 . sư huynh , bạn nào mần rùi thì post lên để mọi người cùng tham khảo và học hỏi theo , cùng nhau tiến bộ nhá

aladin_09
15-10-2009, 10:45 PM
Ai làm ledmatrix rồi có thể cho mình xin font 8x8 hoặc font lớn hơn được không?
Mình rất cảm ơn!

tienchuan
16-10-2009, 12:32 PM
Ai làm ledmatrix rồi có thể cho mình xin font 8x8 hoặc font lớn hơn được không?
Mình rất cảm ơn!

bạn xem thử kiểu font này:

const byte font[51][5]={
//******************BANG MA ASCII****************
//ascii_code:
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
0xFF,0xFF,0xA0,0xFF,0xFF,//! 1
0xFF,0xFF,0xF8,0xF4,0xFF,//' 2
0xEB,0x80,0xEB,0x80,0xEB,//# 3
0xDB,0xD5,0x80,0xD5,0xED,//$ 4
0xD8,0xEA,0x94,0xAB,0x8D,//% 5
0xC9,0xB6,0xA9,0xDF,0xAF,//& 6
0xFF,0xFF,0xF8,0xF4,0xFF,//' 7
0xFF,0xE3,0xDD,0xBE,0xFF,//( 8
0xFF,0xBE,0xDD,0xE3,0xFF,//) 9
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xF7,0xF7,0xC1,0xF7,0xF7,//+ 11
0xFF,0xA7,0xC7,0xFF,0xFF,//, 12
0xF7,0xF7,0xF7,0xF7,0xF7,//- 13
0xFF,0x9F,0x9F,0xFF,0xFF,//x 14
0xFF,0xC9,0xC9,0xFF,0xFF,/// 15
0xC1,0xAE,0xB6,0xBA,0xC1,//0 16
0xFF,0xBD,0x80,0xBF,0xFF,//1 17
0x8D,0xB6,0xB6,0xB6,0xB9,//2 18
0xDD,0xBE,0xB6,0xB6,0xC9,//3 19
0xE7,0xEB,0xED,0x80,0xEF,//4 20
0xD8,0xBA,0xBA,0xBA,0xC6,//5 21
0xC3,0xB5,0xB6,0xB6,0xCF,//6 22
0xFE,0x8E,0xF6,0xFA,0xFC,//7 23
0xC9,0xB6,0xB6,0xB6,0xC9,//8 24
0xF9,0xB6,0xBE,0xD6,0xE1,//9 25
0xFF,0xC9,0xC9,0xFF,0xFF,//: 26
0xFF,0xA4,0xC4,0xFF,0xFF,//// 27
0xF7,0xEB,0xDD,0xBE,0xFF,//< 28
0xEB,0xEB,0xEB,0xEB,0xEB,//= 29
0xFF,0xBE,0xDD,0xEB,0xF7,//> 30
0xFD,0xFE,0xAE,0xF6,0xF9,//? 31
0xCD,0xB6,0x8E,0xBE,0xC1,//@ 32
0x83,0xF5,0xF6,0xF5,0x83,//A 33
0xBE,0x80,0xB6,0xB6,0xC9,//B 34
0xC1,0xBE,0xBE,0xBE,0xDD,//C 35
0xBE,0x80,0xBE,0xBE,0xC1,//D 36
0x80,0xB6,0xB6,0xB6,0xBE,//E 37
0x80,0xF6,0xF6,0xFE,0xFE,//F 38
0xC1,0xBE,0xB6,0xB6,0xC5,//G 39
0x80,0xF7,0xF7,0xF7,0x80,//H 40
0xFF,0xBE,0x80,0xBE,0xFF,//I 41
0xDF,0xBF,0xBE,0xC0,0xFE,//J 42
0x80,0xF7,0xEB,0xDD,0xBE,//K 43
0x80,0xBF,0xBF,0xBF,0xFF,//L 44
0x80,0xFD,0xF3,0xFD,0x80,//M 45
0x80,0xFD,0xFB,0xF7,0x80,//N 46
0xC1,0xBE,0xBE,0xBE,0xC1,//O 47
0x80,0xF6,0xF6,0xF6,0xF9,//P 48
0xC1,0xBE,0xAE,0xDE,0xA1,//Q 49
0x80,0xF6,0xE6,0xD6,0xB9//R 50
};
//Phan tu hai
const byte font2[45][5]={
0xD9,0xB6,0xB6,0xB6,0xCD//S 51
0xFE,0xFE,0x80,0xFE,0xFE,//T 52
0xC0,0xBF,0xBF,0xBF,0xC0,//U 53
0xE0,0xDF,0xBF,0xDF,0xE0,//V 54
0xC0,0xBF,0xCF,0xBF,0xC0,//W 55
0x9C,0xEB,0xF7,0xEB,0x9C,//X 56
0xFC,0xFB,0x87,0xFB,0xFC,//Y89 24 57
0x9E,0xAE,0xB6,0xBA,0xBC,//Z90 25 58
0xFF,0x80,0xBE,0xBE,0xFF,//[ 59
0xFD,0xFB,0xF7,0xEF,0xDF,//\ 60
0xFF,0xBE,0xBE,0x80,0xFF,//] 61
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 62
0x7F,0x7F,0x7F,0x7F,0x7F,//_ 63
0xFF,0xFF,0xF8,0xF4,0xFF,//' 64
0xDF,0xAB,0xAB,0xAB,0xC7,//a 65
0x80,0xC7,0xBB,0xBB,0xC7,//b
0xFF,0xC7,0xBB,0xBB,0xBB,//c
0xC7,0xBB,0xBB,0xC7,0x80,//d
0xC7,0xAB,0xAB,0xAB,0xF7,//e 69
0xF7,0x81,0xF6,0xF6,0xFD,//f
0xF7,0xAB,0xAB,0xAB,0xC3,//g 71
0x80,0xF7,0xFB,0xFB,0x87,//h 72
0xFF,0xBB,0x82,0xBF,0xFF,//i 73
0xDF,0xBF,0xBB,0xC2,0xFF,//j 74
0xFF,0x80,0xEF,0xD7,0xBB,//k 75
0xFF,0xBE,0x80,0xBF,0xFF,//l 76
0x83,0xFB,0x87,0xFB,0x87,//m 77
0x83,0xF7,0xFB,0xFB,0x87,//n 78
0xC7,0xBB,0xBB,0xBB,0xC7,//o 79
0x83,0xEB,0xEB,0xEB,0xF7,//p 80
0xF7,0xEB,0xEB,0xEB,0x83,//q 81
0x83,0xF7,0xFB,0xFB,0xF7,//r 82
0xB7,0xAB,0xAB,0xAB,0xDB,//s 83
0xFF,0xFB,0xC0,0xBB,0xBB,//t 84
0xC3,0xBF,0xBF,0xDF,0x83,//u 85
0xE3,0xDF,0xBF,0xDF,0xE3,//v 86
0xC3,0xBF,0xCF,0xBF,0xC3,//w 87
0xBB,0xD7,0xEF,0xD7,0xBB,//x 88
0xF3,0xAF,0xAF,0xAF,0xC3,//y 89
0xBB,0x9B,0xAB,0xB3,0xBB,//z 90
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 92
0xE3,0xE3,0xC1,0xE3,0xF7,//->93
0xF7,0xE3,0xC1,0xE3,0xE3,//<-94
0xEF,0xC3,0x83,0xC3,0xEF,//95
0xFF,0xFF,0xFF,0xFF,0xFF//BLANK CHAR 96
};
// End of code table


không thì bạn dùng soft này để tạo font theo ý muốn:

chúc vui !

loctran
06-11-2009, 06:26 PM
Tôi đang tìm hiểu về quét led matrix số lượng >=10 con sử dụng 74HC595 , theo tui biết con này quét thì khó thiệt nhưng nó có ưu điểm hơn 74LS138 . sư huynh , bạn nào mần rùi thì post lên để mọi người cùng tham khảo và học hỏi theo , cùng nhau tiến bộ nhá
Thường thì người ra dùng 74HC595 để đưa data ra các chân, quét thì có thể dùng thẳng các PORT của PIC hoặc dùng 74138,
http://www.mediafire.com/file/fwg3y0nzu20/QUANGBAO.pdf
Gởi đính kèm file PDF, hy vọng là bạn cùng chia sẻ với tôi. Tôi chỉ mới mô phỏng trên Proteus thôi, trên Proteus này không hiểu sao mô phỏng con ULN2803 không được nên tôi bỏ bớt ra. Bạn cố nhìn ra nhé, đường line hơi lung tung chút.

newboystylew
30-11-2009, 11:42 PM
ban co the dung mang de gui du lieu ra 74595,sau do lap trinh de cho moi lan nhan phim thi du lieu de hien thi se dich di,nhu vay se duoc nhu mong muon cua ban,neu can,ban co the lien lac qua nick cua minh:nguyenquy_8908@yahoo.com

huytrung2009
28-12-2009, 11:16 PM
$MOD51
SDATA BIT P2.0
CK BIT P2.1
CLEAR BIT P2.2
ORG 00H
MAIN:
MOV DPTR,#DATALED1
LCALL HIENTHI
LJMP MAIN
HIENTHI:
MOV R7,#1
TT:
LCALL SCANMATRIX
CJNE A,#99H,TIEPTUC2
RET
TIEPTUC2:
DJNZ R7,TT
INC DPTR
INC DPTR
MOV A,DPL
CJNE A,#LOW(DATALED1+255),HIENTHI
MOV A,DPH
CJNE A,#HIGH(DATALED1+255),HIENTHI
RET
SCANMATRIX:
PUSH 00H
PUSH 01H
PUSH 02H
PUSH 03H
MOV R3,#0H
MOV R2,#64
CLR CK
CLR CLEAR
NOP
NOP
SETB CLEAR
NOP
SETB SDATA
SETB CK
NOP
CLR CK
CLR SDATA
SETB CK
NOP
CLR CK
SCAN:
MOV A,R3
MOVC A,@A+DPTR
CJNE A,#99H,TIEPTUC1
LJMP EXIT1
TIEPTUC1:
MOV P0,A
INC R3
MOV A,R3
MOVC A,@A+DPTR
MOV P1,A
LCALL DELAYLED
MOV P0,#0FFH;CHONG NHIEU
MOV P1,#0FFH;CHONG NHIEU
SETB CK
NOP
CLR CK
INC R3
DJNZ R2,SCAN
EXIT1:
POP 03H
POP 02H
POP 01H
POP 00H
RET
DELAYLED:
PUSH 00H
PUSH 01H
MOV R0,#2
LDELAY:
MOV R1,#250
DJNZ R1,$
DJNZ R0,LDELAY
POP 01H
POP 00H
RET
DATALED1:
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH












DB 7FH,0C0H,7FH,0DBH,7FH,0DBH,7FH,0DFH,0FFH,0E0H,0FFH ,0FFH
DB 0FFH,0C1H,0FFH,0FAH,7FH,7BH,0FFH,0FAH,0FFH,0C1H,0F FH,0FFH
DB 7FH,0DFH,7FH,0DFH,7FH,0C0H,7FH,0DFH,7FH,0DFH,0FFH, 0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0C0H,0FFH,0FBH,0FFH,0FBH,0FFH,0FBH,7FH,0C0H,0F FH,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,5FH,7FH,0DFH,0FFH,0E0H,0FFH ,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,0DFH,7FH,0DFH,0FFH,0EEH,0FF H,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,0DFH,7FH,0DFH,0FFH,0EEH,0FF H,0FFH
DB 0DFH,0E0H,6FH,0DFH,77H,0DFH,6FH,0DFH,0DFH,0E0H,0FF H,0FFH
DB 7FH,0C0H,0FFH,0FEH,0FFH,0FDH,0FFH,0FBH,7FH,0C0H,0F FH,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,0DBH,7FH,0DBH,0FFH,0E2H,0FF H,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0C0H,0FFH,0FEH,0FFH,0FDH,0FFH,0FBH,7FH,0C0H,0F FH,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,0DBH,7FH,0DBH,0FFH,0E2H,0FF H,0FFH
DB 7FH,0C0H,0FFH,0FBH,0FFH,0FBH,0FFH,0FBH,7FH,0C0H,0F FH,0FFH
DB 7FH,0DFH,7FH,0DFH,7FH,0C0H,7FH,0DFH,7FH,0DFH,0FFH, 0FFH
DB 5FH,0C0H,6FH,0DBH,77H,5BH,6FH,0DBH,5FH,0DFH,0FFH,0 FFH
DB 7FH,0C0H,7FH,0FBH,7FH,0FBH,7FH,0FBH,0FFH,0FCH,0FFH ,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0FFH,7FH,0FFH,7FH,0C0H,7FH,0FFH,7FH,0FFH,0FFH, 0FFH
DB 7FH,0C0H,7FH,0FBH,7FH,0FBH,7FH,0FBH,0FFH,0FCH,0FFH ,0FFH
DB 0FFH,0DFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0C0H,0FFH,0FBH,0FFH,0FBH,0FFH,0FBH,7FH,0C0H,0F FH,0FFH
DB 0FFH,0E0H,7FH,0DFH,7FH,0DFH,7FH,0DFH,0FFH,0EEH,0FF H,0FFH
DB 7FH,0C0H,0FFH,0FEH,0FFH,0FDH,0FFH,0FEH,7FH,0C0H,0F FH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FBH,0FFH,0FBH,0FFH,0FBH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0C0H,0FFH,0FBH,0FFH,0F5H,0FFH,0EEH,7FH,0DFH,0F FH,0FFH
DB 7FH,0C0H,0FFH,0FBH,0FFH,0FDH,0FFH,0FDH,0FFH,0C3H,0 FFH,0FFH
DB 0FFH,0E3H,0FFH,0DDH,0FFH,0DDH,0FFH,0DDH,0FFH,0E3H, 0FFH,0FFH
DB 0FFH,0E3H,0FFH,0DDH,0FFH,0DDH,0FFH,0EDH,0FFH,0C1H, 0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 7FH,0C0H,7FH,0DBH,7FH,0DBH,7FH,0DFH,0FFH,0E0H,0FFH ,0FFH
DB 7FH,0E1H,0FFH,0DFH,0FFH,0DFH,0FFH,0EFH,0FFH,0FFH
DB 7FH,0E3H,0BFH,0D5H,0DFH,55H,0BFH,0D5H,7FH,0DBH,0FF H,0FFH
DB 0FFH,0C1H,0FFH,0FBH,0FFH,0FDH,0FFH,0FDH,0FFH,0C3H, 0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FDH,7FH,0E0H,0FFH,0DDH,0FFH,0DDH,0FFH,0EFH,0 FFH,0FFH
DB 0EFH,0E1H,0F7H,0DFH,0D7H,0DFH,0EFH,0EFH,0BFH,0C0H, 7FH,0FFH
;so byte du lieu la 436





















DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 99H,99H,99H
END

thk1987
30-12-2009, 01:38 PM
ù mình cũng làm đề tài giống bạn, và cũng có chút thành công, cũng nhập chữ từ bàn phím, mỗi phím thì có thể hiển thị thay đổi ra 3 chữ. mỗi lần nhấn phím khác thì chữ trước đó dịch sang bền phải, có phím tăng giảm tốc độ chạy chữ, , tuy code gà lắm nhưng sài ok

blackangel
06-06-2010, 12:53 PM
em cũng đang làm đề tài về quang báo giao tiếp được với máy tính qua RS232, em muốn hỏi các sư huynh một chút là:
1. khi muốn giao tiếp được với máy tính thì ở pic( viết bằng CCS) mình tạo mã led như thế nào thì trên PC(viết bằng VB), mình cũng phải chuyển đổi sang mã Led y chang vậy phải không? tai em tham khảo một đoan code, thấy trên pic mã led khác với PC, em nghĩ nếu như vậy làm sao truyền được.
2. em sử dung con SRAM 6264, nối với pic qua PortB, vậy ngõ ra của 6264 mình nối vào đâu ah,tra datasheet em chỉ hiểu đc bảng trạng thái của nó thôi, còn mấy cái kia khó hiểu quá, ai biêt về con này chỉ cho em với nha.
3.ở cột em sử dung con IC 6B595(con này tích hợp từ 74595 và 2803), o hàng em đưa thẳng data qua PortD đc không, hay em phải đưa qua con IC74573 và TIP 127(2 transistor mắc Darlington), nó có tác dụng gì trong trường hợp này ah?
4.trước khi nối pic vớii may tính, Mình có thể lập trình cho nó tự hiển thị chữ trước, sau đó nếu giao tiép với may tính mình dùng ngắt đc không nhỉ?
mong mọi người chỉ giáo cho em với nha, em mới tìm hiểu nên cung còn nhiều điều chưa hiểu rõ lắm.

gianghctb1
06-06-2010, 03:15 PM
theo mình được bieetss, thì nếu 2 con 595 nối theo cách chân 9 của con trước nối vào chân 14 của con sau thì sau khi có 8 xung nhịp đầu, cứ mỗi xung nhịp tiếp theo thì 1 bit từ con đầu sẽ chuyển sang con 595 thứ 2! với cách hiểu như vậy thì mình vẫn chưa thể ghép nối 2 con 595 với nhay mà vẫn sử dụng độc lập, vì giả sử chữ A chẳng hạn, bạn cần có 8 số liệu 8 bit cho 8 hàng, khi bạn gửi 8 bit đầu ra con 595 đầu tiên, con thứ 2 sẽ không có gì, gửi tiếp 8 bit tiếp theo,gửi xong thì 8 bít đầu sẽ chuyển sang con thứ 2, cứ như vậy thì bảng led đầu sẽ hiển thị chữ A, còn bảng thứ 2 là chữ A cụt đầu :( , bác nào có cách giải quyết thì post lên diễn đàn cho em với nhé, hiện tại em đã làm được 2 bảng led, chú chạy từ phải sang trái(từ bảng 1 qua bảng 2) nhưng sử dụng 2 con 595 độc lập, nếu ai cần tham khảo thì pm luonghoang.giang nhé ^_^ mong được các bác giúp đỡ các nối tiếp 2 con 595(cách xử lý phần mềm để nâng cao hiệu quả)
chúc vui!

thuandt2085
27-06-2010, 10:21 AM
các bác ơi có tài liệu nào về con 74hc595 khong cho mình xin với mình đang vướng con đó không bít nó hoạt động theo nguyên tắc nào để ráp mạch cả mong các bác chỉ giáo dùm

hovanminh
27-06-2010, 06:45 PM
595 la giao tiep noi tiep spi. dung thu vien spi tong trinh bien dich la ok. chuc thanh cong

manhdktd
28-06-2010, 07:14 AM
các bác ơi có tài liệu nào về con 74hc595 khong cho mình xin với mình đang vướng con đó không bít nó hoạt động theo nguyên tắc nào để ráp mạch cả mong các bác chỉ giáo dùm
sao bạn không tìm trong datasheet nhỉ?chỉ cần vào google thì nó ra hàng đống đấy.

tranthao111982
28-07-2010, 10:08 PM
chào các bác! em là dân đang tập tểnh vào lạp trình pic16f877a. em đang có dự định lập trình led ma trận ghép nối 4 bản led (sử dụng loại 8x8) sửdụng ic 74hc595 để mở rộng vậy các bác có thể cho em một code ví dụ được không ạ

huankhi
11-08-2010, 10:09 PM
chào cả nhà
em đang làm mạch matrix LED dùng HC74595 để xuất dữ liệu và quét cột. nhưng không hiểu sao khi chạy hết dòng ký tự thì bị nhiễu ở cuối và chạy không đều.
xin cả nhà chỉ giáo

mitomtrung
18-09-2010, 08:33 AM
bạn quet led nhu thế về cơ bản là sai bét rồ inhu thế là bạn dang quét song song các con led chứ không phải là quét led ma trận
bạn coi lại lí thuyết trong cunghocavr.com di
đây là việc đòi hỏi bạn phải tự làm chứ hỏi người khác không ai trả lời đâu vì họ cũng mất công nghiên cứu nhiều lắm chứ
chúc may mắn

mitomtrung
18-09-2010, 08:34 AM
hỏi thế gian này led là chi
mà sao thấy nhiều người phải khổ

ngocnhipy
21-07-2012, 09:40 PM
co bac nao gjoj ve c gjup e voj e co chuong trinh led matrix 8x8 xem ho em xem tai sao ko xuat duoc ma de hien thi chu. e dung 1 ic74hc595 1led ma tran bac nao sua dc gui dum e qua dia chi ngocnhipy@gmail.com
#include <16f877.h>
#use delay(clock=20000000)
#byte port_B =0x06
#byte port_C =0x07
#bit data = 0x06.1
#bit clk = 0x06.0
#bit latch = 0x06.2
int8 buff_disp[80]; //Bo nho dem cho man hinh LED
typedef struct {
int8 b[5]; /* Data */
}T_font;
const T_font font[]={
//******************BANG MA ASCII****************
//ascii_code:
0xFF,0xFF,0xFF,0xFF,0xFF,//SPACE 0
0xFF,0xFF,0xA0,0xFF,0xFF,//! 1
0xFF,0xFF,0xF8,0xF4,0xFF,//' 2
0xEB,0x80,0xEB,0x80,0xEB,//# 3
0xDB,0xD5,0x80,0xD5,0xED,//$ 4
0xD8,0xEA,0x94,0xAB,0x8D,//% 5
0xC9,0xB6,0xA9,0xDF,0xAF,//& 6
0xFF,0xFF,0xF8,0xF4,0xFF,//' 7
0xFF,0xE3,0xDD,0xBE,0xFF,//( 8
0xFF,0xBE,0xDD,0xE3,0xFF,//) 9
0xD5,0xE3,0x80,0xE3,0xD5,//* 10
0xF7,0xF7,0xC1,0xF7,0xF7,//+ 11
0xFF,0xA7,0xC7,0xFF,0xFF,//, 12
0xF7,0xF7,0xF7,0xF7,0xF7,//- 13
0xFF,0x9F,0x9F,0xFF,0xFF,//x 14
0xFF,0xC9,0xC9,0xFF,0xFF,/// 15
0xC1,0xAE,0xB6,0xBA,0xC1,//0 16
0xFF,0xBD,0x80,0xBF,0xFF,//1 17
0x8D,0xB6,0xB6,0xB6,0xB9,//2 18
0xDD,0xBE,0xB6,0xB6,0xC9,//3 19
0xE7,0xEB,0xED,0x80,0xEF,//4 20
0xD8,0xBA,0xBA,0xBA,0xC6,//5 21
0xC3,0xB5,0xB6,0xB6,0xCF,//6 22
0xFE,0x8E,0xF6,0xFA,0xFC,//7 23
0xC9,0xB6,0xB6,0xB6,0xC9,//8 24
0xF9,0xB6,0xBE,0xD6,0xE1,//9 25
0xFF,0xC9,0xC9,0xFF,0xFF,//: 26
0xFF,0xA4,0xC4,0xFF,0xFF,//// 27
0xF7,0xEB,0xDD,0xBE,0xFF,//< 28
0xEB,0xEB,0xEB,0xEB,0xEB,//= 29
0xFF,0xBE,0xDD,0xEB,0xF7,//> 30
0xFD,0xFE,0xAE,0xF6,0xF9,//? 31
0xCD,0xB6,0x8E,0xBE,0xC1,//@ 32
0x83,0xF5,0xF6,0xF5,0x83,//A 33
0xBE,0x80,0xB6,0xB6,0xC9,//B 34
0xC1,0xBE,0xBE,0xBE,0xDD,//C 35
0xBE,0x80,0xBE,0xBE,0xC1,//D 36
0x80,0xB6,0xB6,0xB6,0xBE,//E 37
0x80,0xF6,0xF6,0xFE,0xFE,//F 38
0xC1,0xBE,0xB6,0xB6,0xC5,//G 39
0x80,0xF7,0xF7,0xF7,0x80,//H 40
0xFF,0xBE,0x80,0xBE,0xFF,//I 41
0xDF,0xBF,0xBE,0xC0,0xFE,//J 42
0x80,0xF7,0xEB,0xDD,0xBE,//K 43
0x80,0xBF,0xBF,0xBF,0xFF,//L 44
0x80,0xFD,0xF3,0xFD,0x80,//M 45
0x80,0xFD,0xFB,0xF7,0x80,//N 46
0xC1,0xBE,0xBE,0xBE,0xC1,//O 47
0x80,0xF6,0xF6,0xF6,0xF9,//P 48
0xC1,0xBE,0xAE,0xDE,0xA1,//Q 49
0x80,0xF6,0xE6,0xD6,0xB9,//R 50
0xD9,0xB6,0xB6,0xB6,0xCD,//S 51
};
//Phan tu hai
const T_font font2[]={
0xFE,0xFE,0x80,0xFE,0xFE,//T 52
0xC0,0xBF,0xBF,0xBF,0xC0,//U 53
0xE0,0xDF,0xBF,0xDF,0xE0,//V 54
0xC0,0xBF,0xCF,0xBF,0xC0,//W 55
0x9C,0xEB,0xF7,0xEB,0x9C,//X 56
0xFC,0xFB,0x87,0xFB,0xFC,//Y89 24 57
0x9E,0xAE,0xB6,0xBA,0xBC,//Z90 25 58
0xFF,0x80,0xBE,0xBE,0xFF,//[ 59
0xFD,0xFB,0xF7,0xEF,0xDF,//\ 60
0xFF,0xBE,0xBE,0x80,0xFF,//] 61
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 62
0x7F,0x7F,0x7F,0x7F,0x7F,//_ 63
0xFF,0xFF,0xF8,0xF4,0xFF,//' 64
0xDF,0xAB,0xAB,0xAB,0xC7,//a 65
0x80,0xC7,0xBB,0xBB,0xC7,//b
0xFF,0xC7,0xBB,0xBB,0xBB,//c
0xC7,0xBB,0xBB,0xC7,0x80,//d
0xC7,0xAB,0xAB,0xAB,0xF7,//e 69
0xF7,0x81,0xF6,0xF6,0xFD,//f
0xF7,0xAB,0xAB,0xAB,0xC3,//g 71
0x80,0xF7,0xFB,0xFB,0x87,//h 72
0xFF,0xBB,0x82,0xBF,0xFF,//i 73
0xDF,0xBF,0xBB,0xC2,0xFF,//j 74
0xFF,0x80,0xEF,0xD7,0xBB,//k 75
0xFF,0xBE,0x80,0xBF,0xFF,//l 76
0x83,0xFB,0x87,0xFB,0x87,//m 77
0x83,0xF7,0xFB,0xFB,0x87,//n 78
0xC7,0xBB,0xBB,0xBB,0xC7,//o 79
0x83,0xEB,0xEB,0xEB,0xF7,//p 80
0xF7,0xEB,0xEB,0xEB,0x83,//q 81
0x83,0xF7,0xFB,0xFB,0xF7,//r 82
0xB7,0xAB,0xAB,0xAB,0xDB,//s 83
0xFF,0xFB,0xC0,0xBB,0xBB,//t 84
0xC3,0xBF,0xBF,0xDF,0x83,//u 85
0xE3,0xDF,0xBF,0xDF,0xE3,//v 86
0xC3,0xBF,0xCF,0xBF,0xC3,//w 87
0xBB,0xD7,0xEF,0xD7,0xBB,//x 88
0xF3,0xAF,0xAF,0xAF,0xC3,//y 89
0xBB,0x9B,0xAB,0xB3,0xBB,//z 90
0xFB,0xE1,0xE0,0xE1,0xFB,//^ 92
0xE3,0xE3,0xC1,0xE3,0xF7,//->93
0xF7,0xE3,0xC1,0xE3,0xE3,//<-94
0xEF,0xC3,0x83,0xC3,0xEF,//95
0xFF,0xFF,0xFF,0xFF,0xFF//BLANK CHAR 96

};
// End of code table
//---------Chuong trinh con hien thi--------------------------------------------
void display(){
int8 i,time;
set_tris_B(0x00); // thiet lap B va C deu la dau ra
set_tris_C(0x00);
data=1; latch=1;clk=1;clk=0;latch=0; // bat dau dich cot
time=0;
for(time=0;time<1;time++)
{
for(i=79;i>0;i--)
{
port_C=buff_disp[i]; // xuat ma
delay_ms(100); // tao tre
port_C=0xff; // tat cot
clk=1;clk=0; // tao xung clock de dich
latch=1;latch=0;
port_C=char const
}
data=0; // Reset ghi dich

}
}
//------------Ket thuc chuong trinh con hien thi--------------------------------

//------------Chuong trinh con lay ma ASCII tu phan thu 1 cua font
void copy_2_ram1(int8 index_char)
{
int8 i,j;

for (j=0;j<=5;j++)
{ // Dich RAM
for (i=80;i>0;i--)
buff_disp[i]= buff_disp[i-1]; // Dich RAM sang trai
buff_disp[0]=font[index_char].b[j]; // Luu ma ascii vao RAM
display(); // Goi hien thi

}
buff_disp[0]=0xff;
}

//------------Chuong trinh con lay ma ASCII tu phan thu 2 cua font
//========Copy to Ram 2===================
void copy_2_ram2(int8 index_char) {

int8 i,j;

for (j=0;j<=5;j++)
{
for (i=80;i>0;i--) // Dich RAM
buff_disp[i]= buff_disp[i-1]; //Dich RAM sang trai
buff_disp[0]=font2[index_char].b[j]; //Luu ma ascii vao RAM
display(); // Goi hien thi
}
buff_disp[0]=0xff; // Them mot khoang trang giua hai ky tu
}
//---------------Ket thuc chuong trinh con lay ma ASCII tu phan thu 2 cuar font
void main()
{
int8 count,i,j;
int8 const max_char=56;
// Khai bao chuoi ky tu hien thi tai day
char const a[59]= {"HTL Truong Cao Dang Nghe Hai Duong. Khoa Dien - Dien tu "};// Ky tu NULL duco them
// Khoi tao chuong trinh chinh
for(i=0;i<56;++i)
write_eeprom(i,a[i]); //luu chuoi ky tu can hien thi vap Rom
write_eeprom(0xff,max_char); // Luu so ky tu toi da vao ROM

// ------------------------------
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
//-------------------------------

while(1){
for (i=0;i<=80;i++) // Clear RAM of buff_disp
buff_disp[i]=0xff;
for (i=0;i<=max_char;i++) // Begin of text
{
j=read_eeprom(i)-32; //Lay gia tri ASCII cua ky tu
if (j<=51)
copy_2_ram1(j);
else
{
j=j-52;
copy_2_ram2(j);
}
}
}
}

illusion
22-02-2014, 09:42 PM
pác nào cho em xin 1 đoạn code mẫu về nap vào 595 này với ạ, e nghĩ hoài mà làm ko ra. em muốn hiện 4 kí tự mnpq lên 4 led ma trận dùng 4 595. mà em không hiểu viết làm sao để dịch bit vào 595 hết.. em hiểu là có 1 xung clock thì nó dịch vào một bit nhưng em không biết làm sao cho nó liên tiếp nhau ạ. ai cho em xin đoạn code để nghiên cứu thêm a