Nguyên văn bởi 1991conga
Xem bài viết
Thông báo
Collapse
No announcement yet.
Led matran bằng ASM có nhiều bạn quang tâm..................
Collapse
X
-
Đây là code mới kết hợp 3 kiểu chạy các bạn ngâm cứu tiếp nhé
Code:;QUETLED hien thi gom 80 cot va 8 hang SI BIT P3.0 ;pin 14 74HC595 SCK BIT P3.1 ;pin 11 74HC595 RCK BIT P3.2 ;pin 12 74HC595 ;******************************************* CHONHANG EQU P2 ;CHONHANG PORT P2 ;******************************************* CON_TRO EQU R0 DIA_CHI EQU R1 SO_COT EQU R2 TOC_DO EQU R3 DICHBIT EQU 08H ;hang 0>7 p2=00H>>07H ;**************************************** ;************BAT DAU CHUONG TRINH ******** ;****************************************** ORG 0000H LJMP MAIN ; ORG 0003H ;LJMP EX0ISR ; ORG 000BH ;Dia chi vector bo dinh thoi 0 ; LJMP T0ISR ; ORG 001BH ;Dia chi vector bo dinh thoi 1 ; LJMP T1ISR ;tao am thanh bipbip ; ORG 002BH ;Dia chi vector bo dinh thoi 2 ;*************************************** ORG 0030H ;************************** MAIN : MOV SP,#60H MOV TMOD,#11H;11H ;Ca 2 bo dinh thoi che do 1 MOV IE,#8AH ;8A;cho phep ngat do cac bo dinh thoi MOV DPTR,#CONGMINH ;******************************************************* ;*************CH/TR Chinh ***************************** PLAY: ;*************************** MOV DIA_CHI,#-80 DICH_TRAI:MOV TOC_DO,#3 LRAM: LCALL LOADLENRAM LCALL QUET8HANG DJNZ TOC_DO,EX_01 MOV TOC_DO,#3 INC DIA_CHI CJNE R1,#80,EX_01 LJMP DICH_PHAI EX_01: LJMP LRAM ;*************************** DICH_PHAI: MOV DIA_CHI,#80 dich_phai1: MOV TOC_DO,#3 LRAM_P: LCALL LOADLENRAM LCALL QUET8HANG DJNZ TOC_DO,EX_02 MOV TOC_DO,#3 DEC DIA_CHI CJNE DIA_CHI,#-80,EX_02 LJMP DICH_LEN EX_02: LJMP LRAM_P ;************************** DICH_LEN:mov r6,#100 MOV DICHBIT,#7 MOV TOC_DO,#3 LRAM_L: LCALL DICH_RAM_LEN LCALL QUET8HANG MOV A,DICHBIT CJNE A,#0,EX_04;khi DICHBIT=0 thì dung lai djnz r6,EX_05 mov DIA_CHI,#-9 ljmp dich_trai ; ljmp dich_phai1 ; LJMP LRAM_L EX_04: DJNZ TOC_DO,EX_05 MOV TOC_DO,#3 DEC DICHBIT EX_05: LJMP LRAM_L LJMP PLAY ;************************************************ ;************************************************ ;**********CH/TR con ********************** DICH_RAM_LEN: PUSH 00H PUSH 01H PUSH 02H MOV CON_TRO,#80H MOV DIA_CHI,#-9;addr giua bang=(80-62)/2 MOV SO_COT,#80 ;80cot LAPL_02: MOV A,DIA_CHI MOVC A,@A+DPTR MOV R5,DICHBIT CJNE R5,#0,Q_T1 LJMP KHDICH Q_T1: RL A ;Chay chu duoi len Q_T: CLR C;,muon chay xuong thay bang RR A RRC A ;Chay chu duoi len , DJNZ R5,Q_T;muon chay xuong thay bang RRC A KHDICH: MOV @CON_TRO,A INC CON_TRO INC DIA_CHI MOV A,DIA_CHI DJNZ SO_COT,LAPL_02 POP 00H POP 01H POP 02H RET ;********************************************** LOADLENRAM: PUSH 00H PUSH 01H PUSH 02H MOV CON_TRO,#80H ;Dia chi dau MOV A,DIA_CHI MOV SO_COT,#80 ;80cot LAPL_01: MOV A,DIA_CHI MOVC A, @A+DPTR ;lay du lieu MOV @CON_TRO,A ;ghi vao ram INC CON_TRO ;tang con to dia chi INC DIA_CHI ;tang dia chi trung gian DJNZ SO_COT,LAPL_01;du so cot chua POP 00H POP 01H POP 02H RET ;*********************************************** QUET8HANG: PUSH 07H PUSH 00H MOV R7,#7 ;chon hang LAPHANG: MOV CON_TRO,#80H CLR RCK LAPCOT: CLR SCK MOV A,@CON_TRO CLR C RRC A MOV @CON_TRO,A SETB SCK MOV SI,C INC CON_TRO CJNE CON_TRO,#0D1H,LAPCOT SETB RCK MOV CHONHANG,R7;Sang hang LCALL DELAYLED MOV CHONHANG,#8 DEC R7 CJNE R7,#-1,LAPHANG POP 00H POP 07H RET ;******************************************* ;******************************* DELAYLED: MOV 09H,#8 D1: MOV 10H,#250 DJNZ 10H,$ DJNZ 09H,D1 RET ;***************************;*********** ;************* CONGMINH: DB 7CH,0FEH,82H,82H,0CEH,4CH,0H,5CH,0BEH,0A2H,0BEH,5CH,0H,3EH,3EH,20H,3EH,1EH,0H,19H,3DH,25H,3FH,3EH,0H,0H DB 0FEH,0FEH,60H,30H,60H,0FEH,0FEH,0H,0BCH,0BEH,4H,0H,3EH,3EH,20H,3EH,1EH,0H,0FEH,0FEH,20H,3EH,1EH,0H,0H DB 0FEH,0FEH,90H,90H,80H,64H,0F6H,92H,0DEH,4CH,0H ;************* END
Comment
-
ý em là dùng kon 595 để đưa DL ra hàng và quét cột cơ chứ ko phải kon 138. kon 138 thì em làm đc rồiNguyên văn bởi CONGMINHfs Xem bài viếtBạn xem lại #1 cách mà mình thiết kế mạch là mạch thật luôn đó và khả năng mở rộng của nó,cái này bạn muốn 16 hang thì chỉ cần thêm 1em 74hc138 và tốn thêm 1 chân vdk nữa là ok rồi,tất nhiên phải sữa code lại là quét 8h thành 16hàng hay 24 hàng thì tùy bạn kể cả led 2 màu luôn..
Comment
-
Giờ em mới nhớ ra cái để hỏi: Ở trên em thấy bác chạy chữ "Công Minh FS", chữ này tạo như thế nào vậy bác? Mình cũng phải kẻ các ô tròn kích thước 8x80 như cái matrix của mình rồi tô chữ vào đó, xong dựa vào đó để dò ra code hả bác?Nguyên văn bởi CONGMINHfs Xem bài viếtTrong code có đó bạn vì ngẩu hứng nên mình chọn 80 byte ram từ 9EH đến EFH có phải là 80 byte không ,thực chất thì từ 9EH đến EEH nhưng vì lệnh so sánh nên phải là EFH
hỡi anh em còn ai thắc mắc gì nữa không ta....!!!!
Comment
-
Bạn ơi,mỗi khi muốn đổi nội dung phải lôi con atmel 8951 ra nạp lại code mất công quá,làm thế nào để nhập nội dung vào ô nhớ từ máy tính?cám ơn bạn nhé.Nguyên văn bởi CONGMINHfs Xem bài viếthỡi anh em còn ai thắc mắc gì nữa không ta....!!!!
Comment
-
Bác qua bền này nè hướng dẩn chi tiết lắm Hướng dẫn giao tiếp máy tính từ A đến Z(Hình ảnh)Nguyên văn bởi hongphuong98 Xem bài viếtBạn ơi,mỗi khi muốn đổi nội dung phải lôi con atmel 8951 ra nạp lại code mất công quá,làm thế nào để nhập nội dung vào ô nhớ từ máy tính?cám ơn bạn nhé.
Comment
-
Tôi có theo dõi luồng này và tôi cũng lập trình VB6 để giao tiếp và điều khiển các thiết bị .Mấy cái này đơn giản không cần ram ngoài, nhưng với quang báo phải cần ram ngoài để chứa nội dung được nhiều cũng như không cần tháo 89XX để nạp.Nguyên văn bởi PDEL Xem bài viếtBác qua bền này nè hướng dẩn chi tiết lắm Hướng dẫn giao tiếp máy tính từ A đến Z(Hình ảnh)
Dùng max 232 giao tiếp 89xx với máy tính nạp mã ácii tôi không biết bạn ạ!
Comment
-
À mình hiểu ý bạn rồi ,thì bạn thêm 1con 595 nữa và xuất nối tiếp với con kia,thay vì bạn cần 1 byteNguyên văn bởi 1991conga Xem bài viếtý em là dùng kon 595 để đưa DL ra hàng và quét cột cơ chứ ko phải kon 138. kon 138 thì em làm đc rồi
cho hàng thì bây giờ xuất 2 byte
chúc thành công !...
Comment
-
tặng bạn cái này:Tao Ma Chu Cho Led Matrix.rarNguyên văn bởi Ck33spkt Xem bài viếtGiờ em mới nhớ ra cái để hỏi: Ở trên em thấy bác chạy chữ "Công Minh FS", chữ này tạo như thế nào vậy bác? Mình cũng phải kẻ các ô tròn kích thước 8x80 như cái matrix của mình rồi tô chữ vào đó, xong dựa vào đó để dò ra code hả bác?
Comment
-
bác Congminh cho em hỏi 2 vấn đề cái :
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó- cái này hơi rắc rối), em xem trong code của bác không thấy (à em quên, bác code quét theo hàng, nhưng em muốn quét theo cột thì xử lý xao nhỉ ?)
cảm ơn bác.
Comment
-
Nguyên văn bởi huuthobka Xem bài viếtbác Congminh cho em hỏi 2 vấn đề cái :
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó- cái này hơi rắc rối), em xem trong code của bác không thấy (à em quên, bác code quét theo hàng, nhưng em muốn quét theo cột thì xử lý xao nhỉ ?)
cảm ơn bác.
- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
bản led của mình là 80 cột đúng không bạn,vậy từ trái qua phải cột đầu tiên mình chọn daichi là 0
thì tương ứng cột cuối bên trái là +80 và cột cuối bên phải là -80.
- để quét led lần lượt như vậy thì phải có một chương trình xử lý những đoạn mà có những cột không sáng ( kiểu như bác quét chữ CONGMINH thì đầu tiên là 32 cột tắt,sau đó là 31 cột tắt và 1 cột sáng, sau đó tiếp là 30 cột tắt và 2 cột sáng theo chữ mình quy định trong mã, cứ tiếp như vậy, đến 0 cột tắt và 32 cột sáng theo chữ trong bảng mã matrix, và sau đó là cứ dịch bình thường ). bác có thuật toán nào xử lý vấn đề đó không ? (em thì chỉ biết có hai cách là : 1, nạp thêm vào ROM những mã matrix; 2, viết một chương trình con để xử lý khoảng trắng đó
hoanh nghênh bạn đã hiểu được thấu đáo vấn đề cố giắng phát huy nhé
nếu bạn quét cột (với số cột không lớn) thì để đơn giản bạn nên tắt cột bằng mã trong bảng(mảng) luôn.
chúc thành công..!..
Comment
-
Vấn đề em băn khoăn chính là chỗ này,Nguyên văn bởi CONGMINHfs Xem bài viết- bác đặt biến DIACHI=#-80 là nghĩa thế nào nhỉ ?
bản led của mình là 80 cột đúng không bạn,vậy từ trái qua phải cột đầu tiên mình chọn daichi là 0
thì tương ứng cột cuối bên trái là +80 và cột cuối bên phải là -80.
giả xử DIA_CHI=-80 ; sau đó có lệnh mov a,dai_chi ; rồi có lệnh movc a,@a+dptr thì nó xẽ lấy mã hiển thị ở trước ô 9E (tức là 9EH-80=4EH );
Vậy tức là mình đã tốn mất 80byte RAM rồi phải không ? (tổng cộng mất 160byte RAM cho dữ liệu trắng ?).
Em hiểu có gì sai mong bác thông cảm,
hy vọng bác giúp đàn em thắc mắc này.
thank.
Comment
-
Nguyên văn bởi huuthobka Xem bài viếtVấn đề em băn khoăn chính là chỗ này,
giả xử DIA_CHI=-80 ; sau đó có lệnh mov a,dai_chi ; rồi có lệnh movc a,@a+dptr thì nó xẽ lấy mã hiển thị ở trước ô 9E (tức là 9EH-80=4EH );
Vậy tức là mình đã tốn mất 80byte RAM rồi phải không ? (tổng cộng mất 160byte RAM cho dữ liệu trắng ?)..
Đúng rồi đó bạn nhưng ta sử lí 160byte này như thế nào chứ đâu thể dùng phí thế
lúc nào có dịp nào đó cụ thể mình sẽ hướng dẫn bạn về cái khoản trắng này,chỉ có vài lệnh thôi.
gợi ý: dlieutrang......dulieu......dlieutrang .khi diachi nằm trong tầm dlieutrang thì dptr không lấy dulieu ở bảng mà lấy dulieu trắng cố định là 00h hoặc FFH....
Comment
Bài viết mới nhất
Collapse
-
bởi lvhnHãng nào tùy thích thôi bác! bây giờ các hãng đều hỗ trợ xem qua máy tính hay điện thoại đều được. Gắn Trước tiên mua về cắm nguồn set ip hết xong hãy lắp lên, cam poe chỉ cần 4 lõi là hoạt động bình thường nên 1 dây kéo cho 2 cam vẫn ok
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:49 -
-
Trả lời cho Tìm bạn thân quen cũ.bởi lvhnNhớ không nhầm thì lúc còn đi học có gặp chú 1 lần cf bãi xe Nguyễn Kim, giờ quán cf đó nghỉ bán rồi
-
Channel: Tâm tình dân kỹ thuật
Hôm qua, 15:44 -
-
Trả lời cho Thắc mắc pin 21v ?bởi lvhnCon số đấy biểu thị gần đúng thôi, cái đồng hồ đó có đảm bảo chính xác hay không? pin có cục lên 4v4 vẫn bình thường. Cái gì cũng có sai số trong phạm vi không quá lớn thì không ảnh hưởng gì đâu, bàn ngay ngón ngắn ngón dài mà
-
Channel: Điện tử dành cho người mới bắt đầu
Hôm qua, 15:32 -
-
Trả lời cho Amply bị rò DC 22 voltbởi lvhnThay mấy con transisto nhỏ đầu vào, thường vi sai lỗi hay bị. Khám tổng quát chân các linh kiện xem có bị rỉ sét nhiều không?
-
Channel: Điện thanh
Hôm qua, 15:24 -
-
bởi dinhthuong92Mạch này hiệu suất ra led đạt khoảng 90.7% tại 12V in, 40W out.
-
Channel: Nguồn!
27-07-2026, 10:15 -
-
bởi dinhthuong92Có lẽ nguồn viết bài này chỉ mang tính định tính để nói rằng cần thay đổi tổng trở tải để có Pmax chứ trình bày chưa chi tiết và thấu đáo một cách định lượng. Công thức tổng quát phải có mặt L mới được, và nói là "tổng...
-
Channel: Nguồn!
27-07-2026, 10:09 -
-
Trả lời cho [Chia sẻ] Tổng hợp các công ty AI Việt Nam đang làm gì thật sự — Từ voicebot, computer vision đến AI agentsbởi nguyendinhvanCàng ngày, CNTT càng trở nên lôi thôi , rách việc.
Cái AI và Ge... trên trình duyệt chỉ tổ làm vướng mắt, mất thì gian.
Tôi toàm phải mất cộng tắt nó đi.-
Channel: Xu hướng, nhu cầu và thị trường
25-07-2026, 14:59 -
-
bởi trung30000Em có con amply 12 sò D 718 và e688 , biến áp 15A, 30v 0 30 v, một kênh thì hoạt động bình thường, kênh còn lại nổ bụp bụp, sột sột, đèn tín hiệu nhảy lên vạch max, khoảng 4 đến 5 giây, sau đó đèn tín hiệu trả về mức không, Em thấy như...
-
Channel: Điện thanh
24-07-2026, 13:50 -
-
Trả lời cho Tìm hiểu máy hàn lăn (Rolling Welding)bởi hoang_3ibác cần thì liên hệ Em: mayhanhaivuong.com (0903238399)...
-
Channel: Điện tử công nghiệp
24-07-2026, 10:58 -
-
Trả lời cho Công thức tính định luật kirchhoffbởi abcnewmemberGiải bằng hệ phương trình bật nhất 3 ẩn.
...
-
Channel: Hỗ trợ học tập
23-07-2026, 14:52 -

Comment