Chào tất cả các anh em!
Sau một thời gian tìm tòi và học hỏi những gì mà người đi trước trong mảng quang báo để lại. Mình đã tĩch lũy được một số kinh nghiệm làm LMD với mục đích là học hỏi, thí nghiệm là chính và đã làm thành công LMD 8x64 với VDK 89x5x ( 89S hay 89C đều giống nhau cả, anh em nào quen cái nào thì xài cái đó) và IC 74HC595 (74LS595 đều thế)!
Phương án mình xử dụng là xuất trực tiếp dữ liệu hàng ra 1 port của 89 ( trong hình là port3) và dùng 3 chân của 1 port khác để giải mã quét cột, tốn rất ít chân của VDK, mỗi IC 74595 tương ứng với 8 cột của LMD.
Sau đây là sơ đồ phần cứng ( đã lược bỏ một số phần liên quan đến công suất, mạch reset 89 và một số thứ linh tinh khác cho mạch mô phỏng được dẽ dàng, anh em nào làm theo nên tính toán thêm phần công suất cho hợp lý nhé), hình ảnh mô phỏng trên proteus, và code viết bằng ASM rất đơn giản và dễ hiểu cho anh em nào mới bước chân vào làm LMD và học ASM!
Mọi ý kiến thắc mắc xin vui long post vào đây, mình sẽ giải đáp trong khả năng của mình!
Chúc thành công!
Sau một thời gian tìm tòi và học hỏi những gì mà người đi trước trong mảng quang báo để lại. Mình đã tĩch lũy được một số kinh nghiệm làm LMD với mục đích là học hỏi, thí nghiệm là chính và đã làm thành công LMD 8x64 với VDK 89x5x ( 89S hay 89C đều giống nhau cả, anh em nào quen cái nào thì xài cái đó) và IC 74HC595 (74LS595 đều thế)!
Phương án mình xử dụng là xuất trực tiếp dữ liệu hàng ra 1 port của 89 ( trong hình là port3) và dùng 3 chân của 1 port khác để giải mã quét cột, tốn rất ít chân của VDK, mỗi IC 74595 tương ứng với 8 cột của LMD.
Sau đây là sơ đồ phần cứng ( đã lược bỏ một số phần liên quan đến công suất, mạch reset 89 và một số thứ linh tinh khác cho mạch mô phỏng được dẽ dàng, anh em nào làm theo nên tính toán thêm phần công suất cho hợp lý nhé), hình ảnh mô phỏng trên proteus, và code viết bằng ASM rất đơn giản và dễ hiểu cho anh em nào mới bước chân vào làm LMD và học ASM!
Mọi ý kiến thắc mắc xin vui long post vào đây, mình sẽ giải đáp trong khả năng của mình!
Chúc thành công!
Code:
DULIEU BIT P2.2 CLK BIT P2.0 STOBE BIT P2.1 CHAR EQU P3 org 0000h start: mov a,#00h mov p2,#00h mov p3,#00h mov dptr,#DL mov r6,1 BD: mov r3,#64 ; Số cột dữ liệu cần truyền, tương ứng độ dài của bảng mã loop:mov r1,#0 loop1: setb DULIEU ;Cho một cột ở trạng thái Active mov r2,#0 ; Biến dữ liệu lap: setb CLK ; Cho xung clock để dịch cột cpl DULIEU cpl CLK setb STOBE ; Đưa cột ở trạng thái Active ra ( bỏ qua lệnh này nếu dùng IC 741HC64 hoặc 74HC4094, 4094) cpl STOBE mov a,r2 movc a,@a+dptr mov CHAR,a mov 7fh,#100 ; Chờ thời gian ngắn để mắt nhìn thấy djnz 7fh,$ mov CHAR,#0 ; Tắt toàn bộ Led inc r2 cjne r2,#64,lap ; Số cột led, dùng bao nhiêu cột thì số tương ứng inc r1 cjne r1,#6,loop1 ;tốc độ chạy chữ, giá trị càng cao thì càng chậm inc dptr djnz r3,loop djnz r6,BD jmp start ;===================================================== DL: DB 0H,0H,0H,0H,0H,0H DB 0H,0H,0H,0H,0H,0H DB 0H,0H,0H,0H,0H,0H DB 0H,0H,0H,0H,0H,0H DB 4EH,0DFH,0DBH,0DBH,0FBH,72H,0H ;S DB 7EH,0FFH,0C3H,0C3H,0FFH,7EH,0H ;O DB 0FFH,0FFH,1CH,38H,0FFH,0FFH,0H ;N DB 0FFH,0FFH,18H,18H,0FFH,0FFH,0H ;H DB 0FFH,0FFH,1BH,1BH,1FH,0EH,0H ;P DB 0H,0H,0H DB 0H,0H,0H END
Comment