cách đưa dữ liệu từ 74hc595 vào led ma trận
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é
|
ko ai giup dỡ vậy trùi. chẳng lẽ hổng ai biết sao, đang bí phần viết code
|
Trích:
qua |
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! |
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. |
ban cho mail di minh gui cho
|
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?
|
Trích:
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ế) |
Tự tìm hiểu về quét Led Matrix
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á
|
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! |
2 Attachment(s)
Trích:
Code:
const byte font[51][5]={ chúc vui ! |
Trích:
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. |
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
|
bạn về tự nghiên cứu đi:
$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 |
ù 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
|
mach quang báo giao tiếp với may tinh
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. |
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! |
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
|
595 la giao tiep noi tiep spi. dung thu vien spi tong trinh bien dich la ok. chuc thanh cong
|
3 Attachment(s)
Trích:
|
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 ạ
|
matrix LED
1 Attachment(s)
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 |
led ma trận
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 |
hỏi thế gian này led là chi
mà sao thấy nhiều người phải khổ |
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); } } } } |
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
|
Múi giờ GMT. Hiện tại là 09:20 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam